/* Деловое собрание · внутренние страницы и переход между страницами */

/* ---------- переход: четыре колонны ---------- */
.shutter { position: fixed; inset: 0; z-index: 200; display: grid; grid-template-columns: repeat(4, 1fr); pointer-events: none; }
.shutter i { background: var(--red); transform: scaleY(0); transform-origin: 50% 100%; transition: transform .7s var(--ease-io); }
.shutter i:nth-child(2) { transition-delay: .05s; } .shutter i:nth-child(3) { transition-delay: .1s; } .shutter i:nth-child(4) { transition-delay: .15s; }
.shutter i:nth-child(odd) { background: var(--bordo); }
html.shut-out .shutter { pointer-events: auto; }
html.shut-out .shutter i { transform: scaleY(1); }
html.shut-in .shutter i { transform: scaleY(1); transition: none; }
html.shut-in.shut-open .shutter i { transform: scaleY(0); transform-origin: 50% 0; transition: transform .8s var(--ease-io); }
html.shut-in.shut-open .shutter i:nth-child(1) { transition-delay: .15s; } html.shut-in.shut-open .shutter i:nth-child(2) { transition-delay: .05s; }
html.shut-in.shut-open .shutter i:nth-child(3) { transition-delay: .1s; } html.shut-in.shut-open .shutter i:nth-child(4) { transition-delay: 0s; }

.hdr__nav a[aria-current="page"]::after { transform: scaleX(1); }

/* ---------- первый экран внутренней страницы ---------- */
.phero { position: relative; min-height: 78vh; display: flex; align-items: flex-end; overflow: hidden; padding: 140px 0 clamp(48px, 8vh, 90px); }
.phero__mark { position: absolute; right: 4vw; bottom: -6vh; height: 88vh; aspect-ratio: 510/642; fill: currentColor; opacity: .09; pointer-events: none; }
.phero__mark rect { transform-box: fill-box; }
.phero .wrap { position: relative; }
.crumbs { display: flex; gap: 4px 10px; align-items: baseline; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-2); margin-bottom: 26px; flex-wrap: wrap; }
.crumbs a { text-decoration: none; }
.crumbs > * + *::before { content: "/"; margin-right: 10px; opacity: .5; }
.phero__title { font-weight: var(--fw-light); line-height: .95; text-transform: uppercase; letter-spacing: -.01em; max-width: 20ch; font-size: var(--fs-h1); }
.phero__title--split { font-size: calc(var(--fs-h1) * 1.12); }
.phero__title .phero__subline { font-size: clamp(1.25rem, 1.6vw + .7rem, 2.4rem); line-height: 1.15; letter-spacing: .02em; margin-top: .45em; max-width: 30ch; }
.phero__title .line, .sline .line { display: block; overflow: hidden; padding-bottom: .04em; }
.phero__title .line > span, .sline .line > span { display: inline-block; }
.js .phero__title .line > span, .js .sline .line > span { visibility: hidden; }
.phero__lead { margin-top: 30px; max-width: 52ch; font-size: clamp(17px, .5vw + 15px, 21px); color: var(--fg-2); }
.phero__meta { display: flex; gap: 36px; margin-top: 40px; flex-wrap: wrap; }
.phero__meta div { border-top: 1px solid var(--line); padding-top: 12px; min-width: 150px; }
.phero__meta b { display: block; font-weight: var(--fw-head); font-size: 30px; line-height: 1; }
.phero__meta span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }

/* ---------- общие блоки ---------- */
.psec { padding: var(--sec-m) 0; position: relative; }
.psec--tight { padding-top: var(--sec-s); }
.split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 100px); align-items: start; }
.split__side { position: sticky; top: 110px; }
.h2s { font-weight: var(--fw-light); font-size: var(--fs-h2s); line-height: 1; text-transform: uppercase; letter-spacing: -.01em; }
.prose p { margin-bottom: 1.1em; max-width: 62ch; }
.prose p:last-child { margin-bottom: 0; }
.prose .big { font-weight: var(--fw-head); font-size: clamp(1.4rem, 1.2vw + 1rem, 2.1rem); line-height: 1.25; max-width: 30ch; }
.quote { border-left: 1px solid var(--red); padding: 4px 0 4px 26px; margin: 36px 0; }
.quote p { font-weight: var(--fw-head); font-size: var(--fs-h3s); line-height: 1.3; }
.quote cite { display: block; margin-top: 12px; font-style: normal; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-2); }
.btnrow { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; margin-top: 36px; }
.btn--red { background: var(--red); color: var(--white); border-color: var(--red); }
.btn--red::before { background: var(--bordo); }
.btn--red:hover::before { transform: scaleY(1); }
.note { font-size: 13px; color: var(--fg-2); border-top: 1px solid var(--line); padding-top: 14px; margin-top: 28px; max-width: 70ch; }
.todo { display: inline-block; font-size: 12px; letter-spacing: .04em; padding: 3px 8px; border: 1px dashed currentColor; opacity: .7; white-space: normal; max-width: 100%;}

/* нумерованный список-ряды */
.rows { border-top: 1px solid var(--line); }
.rows li { display: grid; grid-template-columns: 70px minmax(0, 1fr) minmax(0, 1.2fr); gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: baseline; }
.rows b { font-weight: var(--fw-head); font-size: 13px; letter-spacing: .12em; color: var(--red-t); }
.rows h3 { font-weight: var(--fw-head); font-size: var(--fs-h4); line-height: 1.15; text-transform: uppercase; overflow-wrap: anywhere; hyphens: auto;}
.rows p { color: var(--fg-2); }
body[data-theme="red"] .rows b, body[data-theme="bordo"] .rows b, body[data-theme="ink"] .rows b { color: var(--pink); }

/* два контура */
.contours { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--line); }
.contour { padding: clamp(24px, 3vw, 44px); display: grid; gap: 14px; align-content: start; }
.contour + .contour { border-left: 1px solid var(--line); }
.contour__k { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--pink); }
.contour h3 { font-weight: var(--fw-light); font-size: var(--fs-h3s); line-height: 1; text-transform: uppercase; }
.contour ul { display: grid; gap: 8px; }
.contour li { padding-left: 18px; position: relative; }
.contour li::before { content: ""; position: absolute; left: 0; top: .8em; width: 8px; height: 1px; background: currentColor; }

/* реквизиты */
.req { width: 100%; border-collapse: collapse; table-layout: fixed;}
.req th, .req td { text-align: left; padding: 14px 0; border-bottom: 1px solid var(--line); vertical-align: top; font-weight: 400; }
.req th { width: 38%; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: var(--fg-2); padding-right: 20px; }
.copy { margin-left: 10px; font: inherit; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; background: none; border: 1px solid var(--line); color: inherit; padding: 2px 8px; cursor: pointer; }
.copy.is-done { border-color: var(--red); color: var(--red); }
.copy.is-done::after { content: " ✓"; }

/* ---------- участие: грейды ---------- */
.grades { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); perspective: 1400px; }
.gcard { position: relative; display: flex; flex-direction: column; min-height: 640px; padding: clamp(24px, 2.4vw, 36px); transform-style: preserve-3d; overflow: hidden; border-radius: 0; }
.gcard--white { background: var(--mist); color: var(--ink); box-shadow: 0 0 0 1px rgba(17,17,17,.08); }
.gcard--black { background: linear-gradient(160deg, #262626, #0b0b0b 60%); color: var(--white); }
.gcard--red { background: linear-gradient(160deg, #F0433A, #B81F1A 60%, #7A1420); color: var(--white); }
.gcard__top { display: flex; justify-content: space-between; align-items: flex-start; }
.gcard__mark { width: 22px; height: 28px; fill: currentColor; }
.gcard__k { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.gcard__name { margin-top: 70px; font-weight: var(--fw-light); line-height: .9; text-transform: uppercase; letter-spacing: -.02em; font-size: clamp(2.4rem, 15cqi, 4rem); }
.gcard__tag { margin-top: 10px; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; opacity: .8; }
.gcard__for { margin: 26px 0 20px; font-size: 16px; line-height: 1.5; opacity: .85; }
.gcard ul { border-top: 1px solid currentColor; border-color: rgba(128,128,128,.35); margin-top: auto; }
.gcard li { padding: 10px 0; border-bottom: 1px solid rgba(128,128,128,.28); font-size: 15px; line-height: 1.4; }
.gcard__duty { margin-top: 18px; font-size: 13px; opacity: .7; }
.gcard__price { margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(128,128,128,.35); font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.gprice { display: none; }
body.show-prices .gprice { display: block; }
body.show-prices .gprice-hide { display: none; }

.cmp { width: 100%; border-collapse: collapse; margin-top: clamp(40px, 6vw, 80px); font-size: 15px; }
.cmp th, .cmp td { padding: 14px 12px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.cmp thead th { font-weight: var(--fw-head); font-size: 22px; text-transform: uppercase; letter-spacing: .02em; padding-bottom: 18px; }
.cmp thead th:nth-child(3) { color: var(--fg); }
.cmp thead th:nth-child(4) { color: var(--red); }
.cmp td:first-child { color: var(--fg-2); width: 30%; }
.cmp .yes::before { content: ""; display: inline-block; width: 10px; height: 10px; background: var(--red); margin-right: 10px; vertical-align: 1px; }
.cmp .no { opacity: .35; }
.tablewrap { overflow-x: auto; }

/* статусы по Уставу */
.statuses { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.status { padding: 30px 30px 34px 0; display: grid; gap: 12px; align-content: start; }
.status + .status { padding-left: 30px; border-left: 1px solid var(--line); }
.status h3 { font-weight: var(--fw-light); font-size: var(--fs-h3s); line-height: 1; text-transform: uppercase; }
.status dl { margin: 8px 0 0; display: grid; gap: 12px; }
.status dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--pink); }
.status dd { margin: 2px 0 0; font-size: 15px; line-height: 1.45; }

/* путь по горизонтали */
.hsteps { position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-top: 40px; }
.hsteps__line { position: absolute; left: 0; right: 0; top: 0; height: 2px; background: var(--line); }
.hsteps__line span { position: absolute; inset: 0; background: var(--red); transform-origin: left; }
.hstep b { display: block; font-weight: var(--fw-head); font-size: var(--fs-num); line-height: 1; color: var(--red); }
.hstep h3 { margin: 18px 0 10px; font-weight: var(--fw-head); font-size: var(--fs-h4); text-transform: uppercase; line-height: 1.15; }
.hstep p { color: var(--fg-2); font-size: 15px; }
.hstep em { display: block; margin-top: 12px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-2); }

/* вопросы */
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; padding: 24px 50px 24px 0; position: relative; font-weight: var(--fw-head); font-size: var(--fs-h4); line-height: 1.25; text-transform: uppercase; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 16px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: translateY(-70%) rotate(45deg); transition: transform .5s var(--ease); }
.faq details[open] summary::after { transform: translateY(-20%) rotate(225deg); }
.faq__a { overflow: hidden; }
.faq__a p { padding: 0 0 26px; max-width: 70ch; color: var(--fg-2); }

/* ---------- органы: схема ---------- */
.orgmap { position: relative; display: grid; grid-template-columns: 1fr 1.2fr 1fr; grid-template-rows: auto 70px auto 70px auto; gap: 0 28px; }
.orgmap svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.orgmap path, .orgmap line { stroke: var(--red); stroke-width: 1.5; fill: none; }
.orgnode { position: relative; z-index: 1; padding: 22px 24px; border: 1px solid var(--line); background: var(--mist); display: grid; gap: 6px; text-decoration: none; transition: border-color .5s var(--ease), transform .6s var(--ease); }
.orgnode:hover { border-color: var(--red); transform: translateY(-3px); }
.orgnode b { font-weight: var(--fw-head); font-size: var(--fs-h4); text-transform: uppercase; line-height: 1.1; }
.orgnode span { font-size: 13px; color: var(--fg-2); }
.orgnode--top { grid-column: 2; grid-row: 1; background: var(--red); color: var(--white); border-color: var(--red); }
.orgnode--top span { color: rgba(255,255,255,.8); }
.orgnode--n { grid-column: 1; grid-row: 3; }
.orgnode--p { grid-column: 2; grid-row: 3; background: var(--ink); color: var(--white); border-color: var(--ink); }
.orgnode--p span { color: rgba(255,255,255,.7); }
.orgnode--e { grid-column: 3; grid-row: 3; }
.orgnode--d { grid-column: 2; grid-row: 5; }
.orgnode--pr { grid-column: 3; grid-row: 5; border-style: dashed; }

.organ { display: grid; gap: clamp(24px, 5vw, 80px); padding: clamp(32px, 4vw, 56px) 0; border-top: 1px solid var(--line); grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.organ__k { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--red); margin-bottom: 14px; }
.organ h2 { font-weight: var(--fw-light); line-height: 1; text-transform: uppercase; font-size: clamp(1.5rem, 1.4vw + .9rem, 2.5rem); overflow-wrap: anywhere; }
.facts { display: flex; gap: 28px; flex-wrap: wrap; margin: 6px 0 24px; }
.facts div { min-width: 120px; }
.facts b { display: block; font-weight: var(--fw-head); font-size: var(--fs-num); line-height: 1; }
.facts span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-2); }
.person { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 24px; align-items: center; margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--line); }
.person__img { aspect-ratio: 4/5; overflow: hidden; background: var(--grey); position: relative; }
.person__img img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 12%; filter: grayscale(1); transition: filter .8s var(--ease); }
.person:hover .person__img img { filter: none; }
.person b { display: block; font-weight: 400; font-size: 20px; text-transform: uppercase; }
.person span { display: block; margin-top: 4px; }
.person em { display: block; margin-top: 6px; font-size: 13px; color: var(--fg-2); }
.bureaus { display: grid; gap: 12px; margin-top: 26px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.bureau { border: 1px solid var(--line); padding: 18px 16px 20px; display: grid; gap: 30px; align-content: end; min-height: 150px; transition: background-color .5s var(--ease), color .5s var(--ease); min-width: 0;}
.bureau:hover { background: var(--red); color: var(--white); border-color: var(--red); }
.bureau b { font-weight: var(--fw-light); font-size: 36px; line-height: 1; }
.bureau span { line-height: 1.3; text-transform: uppercase; font-size: 13px; letter-spacing: 0; overflow-wrap: anywhere; hyphens: auto; }

/* ---------- документы ---------- */
.docs { border-top: 1px solid var(--line); }
.doc { display: grid; grid-template-columns: 60px minmax(0, 1fr) auto; gap: 24px; align-items: center; padding: 26px 0; border-bottom: 1px solid var(--line); }
.doc__ico { width: 44px; height: 56px; border: 1px solid currentColor; position: relative; display: grid; place-items: end center; padding-bottom: 6px; font-size: 11px; letter-spacing: .08em; }
.doc__ico::before { content: ""; position: absolute; right: -1px; top: -1px; width: 12px; height: 12px; background: var(--paper); border-left: 1px solid currentColor; border-bottom: 1px solid currentColor; }
.doc h3 { font-weight: var(--fw-head); font-size: var(--fs-h4); text-transform: uppercase; line-height: 1.15; }
.doc p { margin-top: 6px; font-size: 14px; color: var(--fg-2); }
.doc .btn { min-height: 44px; font-size: 12px; }
.doc--soon { opacity: .6; }

/* ---------- контакты ---------- */
.bigcontacts { display: grid; gap: 4px; }
.bigcontacts a { font-weight: var(--fw-light); font-size: clamp(1.8rem, 3.4vw + .6rem, 4.6rem); line-height: 1.1; text-decoration: none; letter-spacing: -.01em; position: relative; width: fit-content; overflow-wrap: anywhere;}
.bigcontacts a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 4px; height: 1px; background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .735s var(--ease); }
.bigcontacts a:hover::after { transform: scaleX(1); }
.cgrid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--line); margin-top: 60px; }
.cgrid > div { padding: 26px 26px 26px 0; }
.cgrid > div + div { padding-left: 26px; border-left: 1px solid var(--line); }
.cgrid h3 { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-2); font-weight: 400; margin-bottom: 12px; }

/* форма на светлом и на красном */
.form--light { background: var(--mist); color: var(--ink); box-shadow: 0 0 0 1px rgba(17,17,17,.08); }
.form--light input:not([type="checkbox"]), .form--light select, .form--light textarea { color: var(--ink); border-bottom-color: rgba(17,17,17,.35); }
.form--light input:focus { border-bottom-color: var(--red); }
.form--light .form__check input { accent-color: var(--red); }
.form select, .form textarea { font: inherit; font-size: 17px; letter-spacing: 0; text-transform: none; background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 8px 0; border-radius: 0; color: inherit; outline: none; }
.form textarea { resize: vertical; min-height: 70px; }
.form__row { display: grid; gap: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form__toggle { justify-self: start; background: none; border: 0; padding: 4px 0; font: inherit; font-size: 13px; color: inherit; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; opacity: .8; }
.form__more { display: grid; gap: 16px; }
.form__more[hidden] { display: none; }
.form label.is-bad span { color: var(--red); }
.form--light .form__ok { border-color: var(--red); }
.form__opt { font-size: 11px; opacity: .6; margin-left: 6px; }

/* политика */
.legal h2 { font-weight: var(--fw-head); font-size: var(--fs-h3s); text-transform: uppercase; margin: 44px 0 14px; }
.legal p, .legal li { max-width: 72ch; }
.legal ul { list-style: none; display: grid; gap: 6px; margin-bottom: 1em; }
.legal li { padding-left: 18px; position: relative; }
.legal li::before { content: ""; position: absolute; left: 0; top: .8em; width: 8px; height: 1px; background: currentColor; }

/* ---------- адаптив ---------- */
@media (max-width: 1080px) {
  .split, .contours, .grades, .statuses, .hsteps, .organ, .cgrid { grid-template-columns: 1fr; }
  .split__side { position: static; }
  .contour + .contour { border-left: 0; border-top: 1px solid var(--line); }
  .status, .status + .status { padding: 26px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .gcard { min-height: 0; }
  .gcard__name { margin-top: 40px; }
  .gcard ul { margin-top: 20px; }
  .rows li { grid-template-columns: 50px 1fr; }
  .rows li p { grid-column: 2; }
  .orgmap { grid-template-columns: 1fr; grid-template-rows: none; gap: 12px; }
  .orgmap svg { display: none; }
  .orgnode { grid-column: 1 !important; grid-row: auto !important; }
  .bureaus { grid-template-columns: 1fr 1fr; }
  .cgrid > div, .cgrid > div + div { padding: 22px 0; border-left: 0; border-bottom: 1px solid var(--line); }
  .phero__mark { opacity: .6; right: -20vw; }
  .hsteps__line { display: none; }
  .form__row { grid-template-columns: 1fr; }
  .doc { grid-template-columns: 44px 1fr; }
  .doc .btn { grid-column: 2; justify-self: start; }
}
@media (max-width: 600px) {
  .phero { min-height: 70svh; padding-top: 110px; }
  .phero__title { font-size: clamp(2rem, 9vw, 2.8rem); }
  .person { grid-template-columns: 96px 1fr; }
  .bureaus { grid-template-columns: 1fr; }
  .bureau { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .js .phero__title .line > span, .js .sline .line > span { visibility: visible; }
  .shutter { display: none; }
}

.form option { color: var(--ink); background: #fff; }
.req a { color: var(--red); }

/* правки после проверки 16.09: у секций внутренних страниц свой фон и цвет */
.page main > section[data-theme="red"] { background: var(--red); --fg: #fff; --fg-2: rgba(255,255,255,.86); --line: rgba(255,255,255,.3); color: #fff; }
.page main > section[data-theme="bordo"] { background: var(--bordo); --fg: #fff; --fg-2: rgba(245,175,175,.9); --line: rgba(255,255,255,.3); color: #fff; }
.page main > section[data-theme="ink"] { background: var(--ink); --fg: #fff; --fg-2: rgba(255,255,255,.7); --line: rgba(255,255,255,.3); color: #fff; }
.page main > section[data-theme="grey"] { background: var(--grey); --fg: var(--bordo); --fg-2: rgba(79,21,33,.84); --line: rgba(79,21,33,.32); color: var(--bordo); }
.page main > section[data-theme="dark"] { background: var(--dark); --fg: #fff; --fg-2: rgba(245,175,175,.9); --line: rgba(255,255,255,.26); --red-t: #F26B63; color: #fff; }
.page main > section[data-theme="grey"] { background: var(--grey); --fg: var(--bordo); --fg-2: rgba(79,21,33,.84); --line: rgba(79,21,33,.32); color: var(--bordo); }
.page main > section[data-theme="light"] { background: var(--light); --fg: var(--ink); --fg-2: rgba(17,17,17,.66); --line: rgba(17,17,17,.22); color: var(--ink); }
.page main > section[data-theme="white"] { background: var(--paper); --fg: var(--ink); --fg-2: rgba(17,17,17,.66); --line: rgba(17,17,17,.22); color: var(--ink); }
@media (max-width: 600px) { .bigcontacts a { font-size: clamp(1.5rem, 7.4vw, 2.2rem); } }
@media (max-width: 1080px) {
  .final__grid, .split, .organ, .person, .statuses, .grades { grid-template-columns: minmax(0, 1fr); }
  .person { grid-template-columns: 96px minmax(0, 1fr); }
  .organ > *, .person > *, .split > * { min-width: 0; }
  main { overflow-x: clip; }
}
@media (max-width: 600px) {
  .phero__title { font-size: clamp(1.9rem, 8.4vw, 2.6rem); }
  .phero__title, .h2s { overflow-wrap: anywhere; hyphens: auto; }
}
.status h3, .contour h3 { font-size: min(var(--fs-h3s), 8cqi); overflow-wrap: anywhere; }
.split__side .h2s { overflow-wrap: anywhere; }
.form { min-width: 0; }
.form label { min-width: 0; }
.form input:not([type="checkbox"]), .form select, .form textarea { width: 100%; min-width: 0; }
.req td { overflow-wrap: anywhere; }
@media (max-width: 600px) {
  .req, .req tbody, .req tr, .req th, .req td { display: block; width: 100%; }
  .req th { padding: 14px 0 2px; border-bottom: 0; }
  .req td { padding: 0 0 14px; }
  .form__row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- вторая очередь ---------- */
.hdr__nav { gap: clamp(14px, 1.6vw, 28px); }
@media (max-width: 1320px) and (min-width: 1081px) { .hdr__cta { display: none; } }

/* три направления ссылками */
.dirs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); align-items: end; }
.dir { position: relative; display: flex; flex-direction: column; justify-content: flex-end; min-height: 320px; padding: clamp(24px, 2.4vw, 36px); color: #fff; text-decoration: none; container-type: inline-size; overflow: hidden; }
.dir--tall { min-height: 380px; }
.dir:nth-child(1) { background: var(--red); } .dir:nth-child(2) { background: var(--grey); } .dir:nth-child(3) { background: var(--bordo); }
.dir:nth-child(2) { color: var(--ink); }
.dir:nth-child(2)::before { background: rgba(17,17,17,.06); }
.dir__n { position: absolute; top: 26px; left: clamp(24px, 2.4vw, 36px); font-size: 13px; letter-spacing: .12em; opacity: .7; }
.dir__t { font-weight: var(--fw-light); font-size: clamp(1.8rem, 11cqi, 3rem); line-height: 1; text-transform: uppercase; }
.dir__s { margin-top: 10px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; opacity: .8; }
.dir__go { margin-top: 26px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase; display: flex; align-items: center; gap: 12px; }
.dir__go::after { content: ""; width: 34px; height: 1px; background: currentColor; transition: width .7s var(--ease); }
.dir:hover .dir__go::after { width: 70px; }
.dir::before { content: ""; position: absolute; inset: 0; background: rgba(255,255,255,.06); transform: scaleY(0); transform-origin: bottom; transition: transform .8s var(--ease); }
.dir:hover::before { transform: scaleY(1); }

/* институты списком-якорями */
.insts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.inst-i { padding: 28px 24px 30px 0; border-bottom: 1px solid var(--line); display: grid; gap: 10px; align-content: start; scroll-margin-top: 110px; }
.inst-i:nth-child(3n+2), .inst-i:nth-child(3n) { padding-left: 24px; border-left: 1px solid var(--line); }
.inst-i b { font-weight: var(--fw-head); font-size: var(--fs-num); line-height: 1; color: var(--red); }
.inst-i h3 { font-weight: var(--fw-head); font-size: var(--fs-h4); line-height: 1.15; text-transform: uppercase; }
.inst-i p { font-size: 15px; color: var(--fg-2); }
.inst-i .tag { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-2); }
.inst-i a.link { justify-self: start; font-size: 12px; }

/* плитки (центры, клубы, форматы) */
.tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.tile { border: 1px solid var(--line); padding: 22px 20px 24px; display: grid; gap: 22px; transition: background-color .5s var(--ease), color .5s var(--ease), border-color .5s var(--ease); min-width: 0; align-content: end; min-height: 160px; }
.tile:hover { background: var(--red); border-color: var(--red); color: #fff; --fg-2: rgba(255,255,255,.85); }
.tile b { font-weight: var(--fw-head); font-size: var(--fs-num); line-height: 1; }
.tile h3 { font-weight: var(--fw-head); font-size: var(--fs-h4); line-height: 1.2; text-transform: uppercase; overflow-wrap: anywhere; }
.tile p { font-size: 14px; color: var(--fg-2); margin-top: 8px; }
.tile ul { font-size: 14px; color: var(--fg-2); display: grid; gap: 4px; margin-top: 8px; }
body[data-theme="bordo"] .tile:hover, .page main > section[data-theme="bordo"] .tile:hover, .page main > section[data-theme="ink"] .tile:hover { background: #fff; color: var(--ink); --fg-2: rgba(17,17,17,.7); }

/* треки ЦРБ */
.tracks { border-top: 1px solid var(--line); }
.track { display: grid; grid-template-columns: 90px minmax(0, 3fr) minmax(0, 4fr) minmax(0, 3fr); gap: 24px; padding: 30px 0; border-bottom: 1px solid var(--line); align-items: start; }
.track b { font-weight: var(--fw-head); font-size: var(--fs-num); line-height: 1; color: var(--red); }
.track h3 { font-weight: var(--fw-head); font-size: var(--fs-h3s); line-height: 1; text-transform: uppercase; }
.track h3 small { display: block; margin-top: 8px; font-size: 12px; letter-spacing: .1em; color: var(--fg-2); }
.track dt { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-2); margin-bottom: 6px; }
.track dd { margin: 0 0 14px; font-size: 15px; }

/* уровни Академии */
.levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: 12px; }
.level { padding: 26px 24px 28px; color: #fff; display: grid; gap: 12px; align-content: end; }
.level:nth-child(1) { background: var(--pink); color: var(--bordo); min-height: 280px; }
.level:nth-child(2) { background: var(--red); min-height: 380px; }
.level:nth-child(3) { background: var(--bordo); min-height: 480px; }
.level b { font-weight: var(--fw-head); font-size: var(--fs-num); line-height: 1; }
.level h3 { font-weight: var(--fw-head); font-size: var(--fs-h4); text-transform: uppercase; line-height: 1.1; }
.level p { font-size: 15px; opacity: .88; }

/* календарь */
.cal { border-top: 1px solid var(--line); }
.cal__row { display: grid; grid-template-columns: 200px minmax(0, 1fr) 220px; gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: baseline; text-decoration: none; transition: padding .6s var(--ease); }
a.cal__row:hover { padding-left: 14px; }
.cal__when { font-weight: var(--fw-head); font-size: 22px; color: var(--red); }
.cal__row h3 { font-weight: var(--fw-head); font-size: var(--fs-h4); text-transform: uppercase; line-height: 1.15; }
.cal__row p { font-size: 14px; color: var(--fg-2); margin-top: 6px; }
.cal__tag { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-2); justify-self: end; text-align: right; }
.filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; }
.filters button { font: inherit; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; padding: 10px 16px; border: 1px solid var(--line); background: none; color: inherit; cursor: pointer; transition: background-color .4s var(--ease), color .4s var(--ease); }
.filters button[aria-pressed="true"] { background: var(--red); border-color: var(--red); color: #fff; }

/* флагманские страницы */
.fhero { position: relative; min-height: 62vh; display: flex; align-items: flex-end; overflow: hidden; padding: 120px 0 clamp(40px, 6vh, 64px); }
.fhero .frame__art { position: absolute; inset: 0; }
.fhero .frame__art svg { width: 100%; height: 100%; }
.fhero .wrap { position: relative; }
.fhero .frame__n { font-weight: var(--fw-light); font-size: clamp(4rem, 9vw, 9rem); line-height: .9; color: var(--red); }
.facts--big b { font-size: clamp(2.6rem, 3vw + 1rem, 4.4rem); }
.sponsor { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 5vw, 80px); }

@media (max-width: 1080px) {
  .dirs, .insts, .levels { grid-template-columns: minmax(0, 1fr); }
  .dir, .dir--tall { min-height: 360px; }
  .inst-i, .inst-i:nth-child(3n+2), .inst-i:nth-child(3n) { padding: 24px 0; border-left: 0; }
  .track { grid-template-columns: 56px minmax(0, 1fr); }
  .track > :nth-child(n+3) { grid-column: 2; }
  .level, .level:nth-child(n) { min-height: 0; }
  .cal__row { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .cal__tag { justify-self: start; text-align: left; }
  .sponsor { grid-template-columns: minmax(0, 1fr); }
  .fhero { min-height: 56svh; }
}
.cal__row[hidden] { display: none; }
.page--flag .fhero .phero__lead { max-width: 46ch; }
.split .rows li { grid-template-columns: 56px minmax(0, 1fr); gap: 6px 20px; }
.split .rows li p { grid-column: 2; }
.rows li > * { min-width: 0; }
.rows b.dot { width: 9px; height: 9px; background: var(--red); align-self: center; margin-top: -2px; }
body[data-theme="red"] .rows b.dot, .page main > section[data-theme="bordo"] .rows b.dot, .page main > section[data-theme="ink"] .rows b.dot { background: var(--pink); }
.tile:not(:has(b)) h3 { border-top: 1px solid currentColor; padding-top: 14px; }
.mcard, .gcard { box-shadow: 0 18px 40px -24px rgba(0,0,0,.45); }

/* ---------- утилиты и тема тёмных секций (дизайн-система 16.09) ---------- */
:root { --sp-2xs: 10px; --sp-xs: 14px; --sp-s: 26px; --sp-m: 40px; --sp-l: 48px; --sp-xl: 56px; }
.mb-2xs { margin-bottom: var(--sp-2xs); } .mb-s { margin-bottom: var(--sp-s); } .mb-m { margin-bottom: var(--sp-m); } .mb-l { margin-bottom: var(--sp-l); } .mb-xl { margin-bottom: var(--sp-xl); }
.mt-0 { margin-top: 0; } .mt-2xs { margin-top: var(--sp-2xs); } .mt-xs { margin-top: var(--sp-xs); } .mt-s { margin-top: var(--sp-s); } .mt-m { margin-top: var(--sp-m); }
.measure-18 { max-width: 18ch; } .measure-20 { max-width: 20ch; } .measure-40 { max-width: 40ch; } .measure-60 { max-width: 60ch; }
.pt-page { padding-top: 150px; }
.linkrow { display: flex; gap: var(--sp-s); flex-wrap: wrap; }
.zash__tag.is-shown { opacity: 1; }
.phero__mark--red { fill: rgba(228,46,37,.1); }
.page main > section[data-theme="red"], .page main > section[data-theme="bordo"], .page main > section[data-theme="ink"] { --fg-2: rgba(255,255,255,.82); --line: rgba(255,255,255,.3); }
.page main > section[data-theme="bordo"] .eyebrow, .page main > section[data-theme="bordo"] .contour__k, .page main > section[data-theme="bordo"] .status dt { color: var(--pink); }
.page main > section:is([data-theme="bordo"], [data-theme="ink"], [data-theme="red"]) .prose { color: rgba(255,255,255,.88); }
.page main > section[data-theme="white"] .phero__lead { color: var(--fg-2); }

/* ---------- мобильная версия по проверке Fable (16.09) ---------- */
.hdr__nav-cta, .hdr__nav-tel { display: none; }
.form__err { color: #fff; font-size: 14px; border-left: 2px solid var(--pink); padding-left: 10px; }
.form--light .form__err { color: var(--red); border-color: var(--red); }
.form label.is-bad input:not([type="checkbox"]), .form label.is-bad textarea, .form label.is-bad select { border-bottom: 2px solid var(--pink); }
.form label.is-bad > span:first-child::after { content: " - заполните поле"; text-transform: none; letter-spacing: 0; color: var(--pink); }
.form label.form__check.is-bad span::after { content: none; }
.form label.form__check.is-bad { outline: 1px dashed var(--pink); outline-offset: 4px; }
.track h3 small { line-height: 1.3; }
.mcard__word, .mcard__no { font-size: max(11px, .7vw); }

@media (max-width: 1080px) {
  /* меню на весь экран */
  html.menu-open, html.menu-open body { overflow: hidden; }
  .hdr.open, body[data-theme] .hdr.open.is-scrolled { position: fixed; inset: 0; height: 100dvh; background: var(--bordo); color: #fff; overflow: auto; align-content: flex-start; padding-bottom: 32px; }
  .hdr.open .hdr__nav { gap: 6px; padding-top: 32px; }
  .hdr.open .hdr__nav a { font-size: 22px; padding: 10px 0; }
  .hdr.open .hdr__nav a::after { bottom: 4px; }
  .hdr.open .hdr__nav-cta { display: inline-flex; margin-top: 24px; font-size: 13px; padding: 0 20px; justify-content: center; }
  .hdr.open .hdr__nav-tel { display: block; font-size: 18px !important; }
  .hdr__burger { width: 48px; height: 48px; position: relative; }
  .hdr__burger span { width: 24px; margin: 7px auto; transition: transform .4s var(--ease); }
  .hdr__burger[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
  .hdr__burger[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }

  /* первый экран главной */
  .prolog__pin { justify-content: flex-start; padding-top: 104px; min-height: 100svh; }
  .prolog__text { padding-bottom: 24px; }
  .prolog__lead { color: #fff; }

  /* флагманские страницы: графика сверху, текст ниже на тёмной подложке */
  .fhero { flex-direction: column; align-items: stretch; padding-top: 88px; min-height: 0; }
  .fhero .frame__art { position: relative; inset: auto; height: 200px; opacity: .7; order: 2; }
  .fhero .wrap { order: 1; }
  .fhero .wrap .phero__title, .fhero .wrap .phero__lead, .fhero .frame__n { position: relative; }
  .fhero .crumbs { margin-bottom: 14px; }
  .fhero .frame__n { font-size: 3.4rem; margin-bottom: 4px; }
  .page--flag .fhero .wrap { padding-bottom: 8px; }

  /* лента институтов */
  .col { width: 184px; }
  .col h3 { hyphens: manual; overflow-wrap: break-word; }
  .col p { font-size: 13px; }
  .inst__progress { display: none; }


  /* зоны нажатия */
  .ftr__nav a { display: block; padding: 8px 0; }
  .final__contacts a { display: inline-block; padding: 8px 0; }
  .crumbs > * { padding: 8px 0; }
  .link { padding: 10px 0; }
  .copy { min-height: 36px; padding: 8px 12px; }
  .filters button { min-height: 44px; }
}
@media (min-width: 640px) and (max-width: 1080px) {
  .dirs, .cards, .grades, .napr__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bureaus { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bureau:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .hide-s { display: none; }
  /* красный фон: вторичный текст светлее для контраста */
  body[data-theme="red"], .page main > section[data-theme="red"] { --fg-2: rgba(255,255,255,.92); }
  .fine { font-size: 14px; }
  /* плотность */
  .psec--tight { padding-top: 32px; }
  .inst__pin, .halls__pin { padding: 64px 0; }
  .ftr { padding: 48px 0 24px; }
  .ftr__grid { gap: 28px; }
  .phero { padding-top: 104px; padding-bottom: 40px; min-height: 60svh; }
  /* заголовки без автопереносов */
  .phero__title, .h2s, .bureau span, .rows h3 { hyphens: manual; overflow-wrap: break-word; }
  .phero__title { font-size: clamp(1.8rem, 8.6vw, 3.2rem); }
  .bureaus { grid-template-columns: minmax(0, 1fr); }
  .bureau { min-height: 0; gap: 12px; }
  /* плитки без пустоты */
  .tile { min-height: 0; align-content: start; padding: 18px 16px; gap: 10px; }
  .tile:not(:has(b)) h3 { border-top: 0; padding-top: 0; }
  /* таблица форматов карточками */
  .tablewrap { overflow: visible; }
  .cmp, .cmp tbody, .cmp tr, .cmp td { display: block; width: 100%; }
  .cmp thead { display: none; }
  .cmp tr { padding: 14px 0; border-bottom: 1px solid var(--line); }
  .cmp td { border: 0; padding: 3px 0; }
  .cmp td:first-child { width: 100%; color: var(--fg); font-size: 15px; margin-bottom: 4px; }
  .cmp td[data-g]::before { content: attr(data-g) " · "; color: var(--fg-2); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
  .cmp td[data-g="Red"]::before { color: var(--red); }
}
@media (max-width: 1080px) { .hdr.open .hdr__nav a.hdr__nav-cta { font-size: 13px; padding: 0 20px; } }
@media (max-width: 600px) { .cmp td[data-g]::before { width: auto; height: auto; background: none; display: inline; margin: 0; vertical-align: baseline; } }
@media (max-width: 1080px) {
  .prolog__pin { min-height: 0; padding-bottom: 8px; }
  .prolog__markwrap { top: auto; bottom: -4vh; right: -10vw; height: min(46vh, 380px); transform: none !important; opacity: .07; }
  .scrollhint { margin-bottom: 36px; }
}
.ftr__nav { grid-template-columns: repeat(2, minmax(0, auto)); column-gap: 32px; }

/* ---------- третья очередь ---------- */
.clubs { display: grid; gap: 0; border-top: 1px solid var(--line); }
.club { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 12px 40px; padding: 32px 0; border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.club__head h2 { font-size: var(--fs-h3s); }
.club__who { margin-top: 8px; font-size: 13px; color: var(--fg-2); }
.club .fine { grid-column: 2; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; align-content: flex-start; }
.chips li { border: 1px solid var(--line); padding: 8px 14px; font-size: 14px; transition: background-color .4s var(--ease), color .4s var(--ease), border-color .4s var(--ease); }
.chips li:hover { background: var(--red); color: #fff; border-color: var(--red); }
.face--empty .face__img { display: grid; place-items: center; background: var(--mist); border: 1px dashed var(--line); }
.face__mark { width: 30%; aspect-ratio: 510/642; fill: rgba(228,46,37,.25); }
.news { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.nitem { padding: 30px 30px 34px 0; border-bottom: 1px solid var(--line); display: grid; gap: 12px; align-content: start; }
.nitem:nth-child(even) { padding-left: 30px; border-left: 1px solid var(--line); }
.nitem__date { font-size: 13px; letter-spacing: .12em; color: var(--red); }
.nitem__t { font-weight: var(--fw-head); font-size: var(--fs-h3s); line-height: 1.15; text-transform: uppercase; }
.nitem p:not([class]) { color: var(--fg-2); }
.nitem__tag { font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-2); }
@media (max-width: 1080px) {
  .club { grid-template-columns: minmax(0, 1fr); }
  .club .fine { grid-column: 1; }
  .news { grid-template-columns: minmax(0, 1fr); }
  .nitem, .nitem:nth-child(even) { padding: 24px 0; border-left: 0; }
}
.face[hidden] { display: none; }

/* телефон: у секций главной свой фон, шапка непрозрачная (правка по iPhone, 16.09) */
@media (max-width: 1080px), (prefers-reduced-motion: reduce) {
  .home main > section[data-theme="red"] { background: var(--red); --fg: #fff; --fg-2: rgba(255,255,255,.92); --line: rgba(255,255,255,.3); color: #fff; }
  .home main > section[data-theme="bordo"] { background: var(--bordo); --fg: #fff; --fg-2: rgba(245,175,175,.95); --line: rgba(255,255,255,.3); color: #fff; }
  .home main > section[data-theme="ink"] { background: var(--ink); --fg: #fff; --fg-2: rgba(255,255,255,.75); --line: rgba(255,255,255,.2); color: #fff; }
  .home main > section[data-theme="grey"] { background: var(--grey); --fg: var(--bordo); --fg-2: rgba(79,21,33,.84); --line: rgba(79,21,33,.32); color: var(--bordo); }
  .home main > section[data-theme="dark"] { background: var(--dark); --fg: #fff; --fg-2: rgba(245,175,175,.9); --line: rgba(255,255,255,.26); --red-t: #F26B63; color: #fff; }
  .home main > section[data-theme="grey"] { background: var(--grey); --fg: var(--bordo); --fg-2: rgba(79,21,33,.84); --line: rgba(79,21,33,.32); color: var(--bordo); }
  .home main > section[data-theme="light"] { background: var(--light); --fg: var(--ink); --fg-2: rgba(17,17,17,.66); --line: rgba(17,17,17,.22); color: var(--ink); }
  .home main > section[data-theme="white"] { background: var(--paper); --fg: var(--ink); --fg-2: rgba(17,17,17,.66); --line: rgba(17,17,17,.22); color: var(--ink); }
  .home .halls .mcard--front { background: #fafaf8; color: var(--ink); }
}
@media (max-width: 1080px) {
  body[data-theme="white"] .hdr.is-scrolled { background: var(--paper); }
  body[data-theme="red"] .hdr.is-scrolled { background: var(--red); }
  body[data-theme="ink"] .hdr.is-scrolled { background: var(--ink); }
  body[data-theme="bordo"] .hdr.is-scrolled { background: var(--bordo); }
  .hdr.is-scrolled { box-shadow: 0 1px 0 var(--line); }
}

/* страница автора */
.author__img { max-width: 440px; margin-top: 26px; }
.author__img img { filter: none; }

/* ресурсная карта на главной: 4 колонны-входа */
.rmap { padding: var(--sec-m) 0; }
.rmap__aside { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-2); }
.rmap__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 6px solid var(--ink); }
.rmap__card { position: relative; isolation: isolate; display: flex; flex-direction: column; gap: 10px; min-height: 340px; padding: 26px 24px 26px; text-decoration: none; color: var(--ink); border-left: 1px solid var(--line); overflow: hidden; transition: color .5s var(--ease); }
.rmap__card:last-child { border-right: 1px solid var(--line); }
.rmap__shaft { position: absolute; inset: 0; z-index: -1; background: var(--red); transform: scaleY(0); transform-origin: bottom; transition: transform .7s var(--ease); }
.rmap__card:nth-child(2) .rmap__shaft { background: var(--bordo); }
.rmap__card:nth-child(4) .rmap__shaft { background: var(--ink); }
.rmap__card:hover, .rmap__card:focus-visible { color: #fff; }
.rmap__card:hover .rmap__shaft, .rmap__card:focus-visible .rmap__shaft { transform: scaleY(1); }
.rmap__n { font-size: 13px; letter-spacing: .12em; color: var(--red); transition: color .5s var(--ease); }
.rmap__card:hover .rmap__n { color: var(--pink); }
.rmap__t { font-weight: var(--fw-light); font-size: clamp(1.5rem, 9cqi, 2rem); line-height: 1; text-transform: uppercase; margin-top: 18px; overflow-wrap: anywhere; }
.rmap__q { font-size: 15px; opacity: .7; }
.rmap__foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.rmap__faces { display: flex; }
.rmap__faces img { width: 40px; height: 40px; object-fit: cover; object-position: 50% 15%; border: 2px solid var(--paper); margin-left: -8px; filter: grayscale(1); }
.rmap__faces img:first-child { margin-left: 0; }
.rmap__meta { font-size: 13px; line-height: 1.35; opacity: .75; flex: 1 1 120px; }
.rmap__date { font-weight: var(--fw-head); font-size: var(--fs-num); line-height: 1; text-transform: uppercase; color: var(--red); margin-right: 6px; }
.rmap__card:hover .rmap__date { color: #fff; }
.rmap__chip { font-size: 13px; padding: 5px 10px; border: 1px solid currentColor; opacity: .85; white-space: nowrap; }
.rmap__card { container-type: inline-size; }

/* партнёры: главная и страница «Партнёрам» */
.partners { padding-top: var(--sec-m); padding-bottom: var(--sec-m); }
.partners__aside { max-width: 44ch; display: grid; gap: 18px; justify-items: start; }
.partners__aside p { font-size: 16px; line-height: 1.5; color: var(--fg-2); }
.partn { display: grid; gap: 0; }
.partn__gen { position: relative; overflow: hidden; background: var(--red); color: #fff; padding: clamp(28px, 4vw, 56px); display: grid; gap: 14px; min-height: 280px; align-content: end; }
.partn__mark { position: absolute; right: clamp(16px, 4vw, 60px); top: 50%; transform: translateY(-50%); width: clamp(120px, 16vw, 230px); height: clamp(150px, 20vw, 290px); fill: rgba(255,255,255,.14); }
.partn__k { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--pink); }
.partn__gen .partn__k { color: #fff; opacity: .85; }
.partn__name { font-weight: var(--fw-light); font-size: var(--fs-display); line-height: .9; text-transform: uppercase; position: relative; }
.partn__d { max-width: 56ch; font-size: 16px; line-height: 1.5; position: relative; }
.partn__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-left: 1px solid rgba(255,255,255,.25); }
.partn__col { padding: 26px 22px 30px; border-right: 1px solid rgba(255,255,255,.25); border-bottom: 1px solid rgba(255,255,255,.25); display: flex; flex-direction: column; gap: 14px; min-width: 0; text-decoration: none; color: inherit; position: relative; }
.partn__col::before { content: ""; position: absolute; left: -1px; top: 0; width: 7px; height: 7px; border: solid var(--pink); border-width: 1px 0 0 1px; }
.partn__n { font-size: 13px; letter-spacing: .12em; opacity: .6; }
.partn__item { display: grid; gap: 4px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.18); }
.partn__item--logo { align-items: start; }
.partn__logo { display: block; height: 32px; width: auto; max-width: 100%; object-fit: contain; background: #fff; border-radius: 6px; padding: 6px 12px; margin-bottom: 6px; }
.partn__item b { font-weight: var(--fw-head); font-size: clamp(.95rem, .5vw + .7rem, 1.2rem); line-height: 1.15; text-transform: uppercase; overflow-wrap: anywhere; }
.partn__item span { font-size: 13px; line-height: 1.4; opacity: .7; }
.partn__col--you { justify-content: space-between; transition: background-color .5s var(--ease); }
.partn__col--you:hover { background: var(--red); }
.partn__col--you .partn__k { color: #fff; font-size: 18px; letter-spacing: .04em; line-height: 1.2; }
.partn__cta { font-size: 13px; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid currentColor; align-self: flex-start; padding-bottom: 4px; }
.partn__cta::after { content: " →"; }
.partn__note { font-size: 13px; line-height: 1.5; opacity: .75; margin-top: 22px; max-width: 80ch; }

/* 4 плитки в ряд */
.tiles--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.tiles--4 .tile { align-content: start; }

/* роли: 2 × 2, перекрестье линий */
.roles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); }
.role { padding: clamp(26px, 3vw, 48px) clamp(20px, 3vw, 48px) clamp(26px, 3vw, 44px) 0; display: grid; gap: 14px; align-content: start; border-bottom: 1px solid var(--line); min-width: 0; }
.role:nth-child(even) { padding-left: clamp(20px, 3vw, 48px); padding-right: 0; border-left: 1px solid var(--line); }
.role__k { justify-self: start; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--pink); border: 1px solid rgba(245,175,175,.6); padding: 4px 10px; }
.role h3 { font-weight: var(--fw-light); font-size: var(--fs-h3s); line-height: 1; text-transform: uppercase; overflow-wrap: anywhere; }
.role p:not([class]) { color: var(--fg-2); max-width: 48ch; }
.role__r { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; opacity: .6; margin-top: 8px; }

@media (max-width: 1080px) {
  .rmap__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rmap__card { min-height: 260px; border-bottom: 1px solid var(--line); }
  .rmap__card:nth-child(2) { border-right: 1px solid var(--line); }
  .partn__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tiles--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .rmap__grid { grid-template-columns: minmax(0, 1fr); }
  .rmap__card { min-height: 0; border-right: 1px solid var(--line); gap: 8px; padding: 22px 18px; }
  .rmap__t { margin-top: 6px; font-size: 2rem; }
  .rmap__foot { margin-top: 14px; }
  .partn__grid { grid-template-columns: minmax(0, 1fr); }
  .partn__gen { min-height: 0; }
  .partn__name { font-size: clamp(2.6rem, 16vw, 4rem); }
  .tiles--4 { grid-template-columns: minmax(0, 1fr); }
  .roles { grid-template-columns: minmax(0, 1fr); }
  .role, .role:nth-child(even) { padding-left: 18px; padding-right: 0; border-left: 1px solid var(--line); }
}
@media (hover: none) { .rmap__shaft { display: none; } }
.track dd.track__sp { border-left: 2px solid var(--red); padding-left: 12px; }
.track dd.track__sp b { display: block; font-size: 18px; font-weight: var(--fw-head); color: var(--fg); text-transform: uppercase; margin-bottom: 4px; line-height: 1.2; }
.track dl { margin: 0; }
.track dl dd:last-child { margin-bottom: 0; }
@media (max-width: 1080px) { .track { row-gap: 14px; } .track > h3 { align-self: center; } }

/* узкие телефоны: длинные слова переносятся, по слогам только на самых узких */
main :is(p, li, h2, h3, dd, figcaption, td) { overflow-wrap: break-word; }
@media (max-width: 359px) {
  main :is(p, li, h2, h3, dd, figcaption, td) { hyphens: auto; }
  .person span, .person b { hyphens: auto; overflow-wrap: break-word; }
}
.track dd.track__sp + dd.track__sp { margin-top: -4px; }
.tracks .track:last-child { border-bottom: 0; }

/* имя человека-ссылка выглядит как обычное имя */
:is(.face figcaption, .person) b a.link { font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; padding: 0; display: inline; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
:is(.face figcaption, .person) b a.link::after, :is(.face figcaption, .person) b a.link::before { content: none; display: none; }
:is(.face figcaption, .person) b a.link:hover { color: var(--red); }
.rmap__title { margin: 0; }
.rmap .sechead { align-items: center; margin-bottom: clamp(24px, 3vw, 40px); }

/* ресурсная карта: читаемость (17.09) */
.rmap__card { background: var(--mist); }
.rmap__ic { width: 30px; height: 30px; fill: none; stroke: var(--red); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; transition: stroke .5s var(--ease); }
.rmap__card:hover .rmap__ic { stroke: #fff; }
.rmap__t { font-weight: 400; }
.rmap__q { opacity: 1; color: rgba(17,17,17,.72); }
.rmap__meta { opacity: 1; color: rgba(17,17,17,.72); }
.rmap__chip { opacity: 1; border-color: rgba(228,46,37,.45); color: var(--ink); }
.rmap__card:hover .rmap__q, .rmap__card:hover .rmap__meta, .rmap__card:hover .rmap__chip { color: #fff; border-color: rgba(255,255,255,.6); }
.rmap__title { color: var(--ink); font-weight: 400; }
@media (max-width: 640px) {
  .rmap__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; border-bottom: 0; }
  .rmap__card, .rmap__card:last-child, .rmap__card:nth-child(2) { border: 1px solid var(--line); min-height: 0; padding: 16px 14px 16px; gap: 6px; }
  .rmap__ic { width: 26px; height: 26px; }
  .rmap__t { font-size: clamp(14px, 4.6vw, 17px); margin-top: 10px; line-height: 1.1; overflow-wrap: normal; hyphens: manual; }
  .rmap__q { font-size: 13px; line-height: 1.3; }
  .rmap__foot { margin-top: 12px; gap: 6px; }
  .rmap__faces img { width: 28px; height: 28px; }
  .rmap__meta { display: none; }
  .rmap__date { font-size: 26px; margin-right: 0; }
  .rmap__chip { font-size: 11px; padding: 3px 7px; }
  .rmap__chip:nth-child(n+3) { display: none; }
  .rmap .sechead { margin-bottom: 16px; }
}

/* белый фон сайта (17.09): чипы и плитки на белом */
.rmap__card, .rmap__card:last-child { border-color: transparent; }
.rmap__grid { gap: 10px; }

/* доводка по разбору (17.09) */
@media (max-width: 1080px) {
  .halls__cardzone { min-height: 0; margin-bottom: 28px; }
}

/* лица сообщества: группы и списки без фото (17.09) */
.pgroup { margin-top: var(--sec-s); }
.pgroup[hidden] { display: none; }
.pgroup__h { margin-bottom: var(--sec-in); }
.faces--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: var(--sec-in); }
.plist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(16px, 2.4vw, 36px); }
.plist li { border-top: 1px solid var(--line); padding: 16px 0 22px; display: grid; gap: 4px; align-content: start; min-width: 0; }
.plist b { font-weight: 400; font-size: 18px; text-transform: uppercase; letter-spacing: .02em; line-height: 1.2; }
.plist span { font-size: 15px; }
.plist em { font-size: 13px; color: var(--fg-2); }
@media (max-width: 1080px) { .faces--4, .plist { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .plist { grid-template-columns: minmax(0, 1fr); } }

/* карточки людей: подробности (17.09) */
.face__more { margin-top: 6px; font-size: 13px; color: var(--fg-2); }
.face__more summary { cursor: pointer; list-style: none; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--fg); display: inline-flex; gap: 8px; align-items: center; padding: 6px 0; }
.face__more summary::-webkit-details-marker { display: none; }
.face__more summary::after { content: "+"; font-size: 16px; line-height: 1; }
.face__more[open] summary::after { content: "−"; }
.face__more ul { display: grid; gap: 6px; margin: 6px 0 8px; }
.face__more li { padding-left: 12px; position: relative; }
.face__more li::before { content: ""; position: absolute; left: 0; top: .6em; width: 5px; height: 1px; background: currentColor; }
.face__more p { margin: 0 0 8px; }
.face__src { font-size: 12px; color: var(--fg-2); }
.faces--4 .face b { font-size: 17px; line-height: 1.2; }
.faces--4 > .face { min-width: 0; }
.faces--4 .face figcaption { min-width: 0; }
.faces--4 .face figcaption > *, .face__more li, .face__more p { overflow-wrap: break-word; hyphens: auto; }
@media (max-width: 600px) { .faces--4 { gap: 16px 12px; } .faces--4 .face b { font-size: 15px; } .faces--4 .face span { font-size: 14px; } }

/* результаты эко-среды: плашки по 2 в ряд */
.results { padding: var(--sec-m) 0; }
.nums { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); margin-top: var(--sec-in); }
.nums__item { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; column-gap: clamp(18px, 2.4vw, 36px); padding: clamp(22px, 2.4vw, 34px) clamp(22px, 2.6vw, 40px); border-top: 2px solid var(--red); background: var(--mist); }
.nums__n { font-weight: var(--fw-light); font-size: clamp(2.6rem, 4.4vw, 4.6rem); line-height: 1; color: var(--red); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nums__n::after { content: attr(data-suf); }
.nums__pre { position: absolute; left: clamp(22px, 2.6vw, 40px); top: 10px; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-2); opacity: .8; }
.nums__t { margin: 0; font-size: 17px; line-height: 1.45; color: var(--fg-2); }
.nums__fine { margin-top: 14px; }
.nums__eco { margin-top: var(--sec-in); }
.nums__eco ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 10px; }
.nums__eco li { padding: 14px 18px; background: var(--mist); border-left: 3px solid var(--bordo); font-size: 16px; }
@media (max-width: 760px) { .nums { grid-template-columns: 1fr; } .nums__item { grid-template-columns: 1fr; row-gap: 6px; padding-top: 34px; } }

.nums__item:has(.nums__pre) { padding-top: clamp(38px, 3.4vw, 46px); }
.nums__pre { top: 14px; }

/* членский билет внутри каждого формата: только на телефоне и при отключённой анимации */
.hall__card { display: none; }
@media (max-width: 1080px), (prefers-reduced-motion: reduce) {
  .halls__cardzone { display: none; }
  .hall__card { display: flex; flex-direction: column; position: relative; aspect-ratio: 1.586 / 1; max-width: 380px; padding: 7% 8%; margin: 0 0 22px; border-radius: 14px; overflow: hidden; box-shadow: 0 18px 40px -24px rgba(0,0,0,.6); }
  .hall__card .mcard__mark { width: 11%; aspect-ratio: 510 / 642; fill: currentColor; }
  .hall__card--0 { background: #FAFAF8; color: var(--ink); }
  .hall__card--1 { color: var(--white); background: linear-gradient(135deg, #2a2a2a 0%, #0b0b0b 60%); box-shadow: 0 0 0 1px rgba(255,255,255,.18), 0 22px 44px -26px rgba(0,0,0,.8); }
  .hall__card--2 { color: var(--white); background: linear-gradient(135deg, #F0433A 0%, #B81F1A 55%, #7A1420 100%); box-shadow: 0 0 0 1px rgba(255,255,255,.45), 0 22px 44px -26px rgba(40,0,0,.6); }
}

.nums__item:last-child:nth-child(odd) { grid-column: 1 / -1; }

/* плашки как карточки ресурсной карты: значок сверху, две в ряд и на телефоне */
.nums { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 24px); }
.nums__item, .nums__item:has(.nums__pre) { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: clamp(18px, 2.2vw, 30px); border-top: 0; min-height: 0; }
.nums__ic { width: 34px; height: 34px; fill: none; stroke: var(--red); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; margin-bottom: clamp(10px, 1.6vw, 22px); }
.nums__pre { position: static; display: block; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.nums__n { font-size: clamp(2.2rem, 3.6vw, 4rem); }
.nums__t { font-size: clamp(14px, 1.2vw, 17px); }
.nums__item:last-child:nth-child(odd) { grid-column: auto; }
@media (max-width: 760px) { .nums { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nums__item, .nums__item:has(.nums__pre) { display: flex; padding: 16px; } .nums__n { font-size: clamp(1.9rem, 9vw, 2.6rem); } }

.nums__item:not(:has(.nums__pre)) .nums__ic { margin-bottom: calc(clamp(10px, 1.6vw, 22px) + 21px); }

/* правка Инги 21.09: слишком много белого и не виден переход между блоками. Светлые секции чередуются: белый, тёплый серый, бледно-розовый */
:root { --tint-mist: #ECE9E7; --tint-blush: #F8E3E0; }
.home main > section[data-theme="white"][data-tint="mist"], .page main > section[data-theme="white"][data-tint="mist"] { background: var(--tint-mist); }
.home main > section[data-theme="white"][data-tint="blush"], .page main > section[data-theme="white"][data-tint="blush"] { background: var(--tint-blush); }
section[data-tint] .rmap__card, section[data-tint] .nums__item, section[data-tint] .tile, section[data-tint] .ecard, section[data-tint] .card { background-color: #fff; }
section[data-tint] .mcard--front, section[data-tint] .hall__card--0 { box-shadow: 0 0 0 1px rgba(17,17,17,.08), 0 18px 40px -22px rgba(0,0,0,.35); }

/* правка Инги 21.09 (вечер): фон вокруг карточек White, Black, Red заметно серее, карточки остаются */
:root { --tint-grey: #DBD9D7; }
.home main > section[data-theme="white"][data-tint="grey"], .page main > section[data-theme="white"][data-tint="grey"] { background: var(--tint-grey); }

/* Форма молодёжных проектов: выбор нескольких вариантов */
.form [hidden] { display: none !important; }
.form__set { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: 10px; }
.form__set legend { padding: 0; margin-bottom: 8px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.form__chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
.msel > summary { list-style: none; cursor: pointer; position: relative; font-size: 17px; line-height: 1.35; padding: 8px 28px 8px 0; border-bottom: 1px solid rgba(17,17,17,.35); }
.msel > summary::-webkit-details-marker { display: none; }
.msel > summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 8px; height: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-75%) rotate(45deg); transition: transform .3s var(--ease); }
.msel[open] > summary::after { transform: translateY(-25%) rotate(-135deg); }
.msel > summary:focus-visible { outline: 2px solid var(--red); outline-offset: 4px; }
.msel__list { display: grid; gap: 12px; padding: 16px 0 6px; }
.form__set.is-bad legend { color: var(--red-t); }
.form__set.is-bad legend::after { content: " - выберите хотя бы один вариант"; text-transform: none; letter-spacing: 0; }
.form__set.is-bad .msel > summary { border-bottom: 2px solid var(--red-t); }
@media (max-width: 640px) { .form__chips { grid-template-columns: minmax(0, 1fr); } }
