/* Шапка: два яруса. Верх: марка, разделы, язык, допуск. Низ: панель услуг. */
.hdr { position: fixed; inset: 0 0 auto 0; z-index: 100; color: var(--paper); background: linear-gradient(180deg, rgba(4,2,2,.92), rgba(4,2,2,.6) 62%, rgba(4,2,2,0)); pointer-events: none; }
.hdr > * { pointer-events: auto; }
.hdr a, .hdr button { color: var(--paper); cursor: pointer; }
.hdr-top { display: flex; align-items: center; gap: 22px; padding: 15px var(--gutter) 9px; }
.hdr .mark { font-family: var(--classic); font-weight: 400; font-size: clamp(1.05rem, 1.45vw, 1.35rem); letter-spacing: .2em; text-transform: uppercase; white-space: nowrap; margin-right: auto; }
.hdr-nav { display: flex; gap: clamp(16px, 2.2vw, 34px); }
.hdr-nav a, .svc a, .hdr-cta, .lang button { font-family: var(--sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; white-space: nowrap; }
.hdr-nav a { position: relative; padding: 6px 0; opacity: .8; transition: opacity .3s; }
.hdr-nav a::after { content: ''; position: absolute; left: 0; right: 100%; bottom: 1px; height: 1px; background: currentColor; transition: right .45s var(--ease); }
.hdr-nav a:hover, .hdr-nav a.on { opacity: 1; } .hdr-nav a:hover::after, .hdr-nav a.on::after { right: 0; }
.hdr-r { display: flex; align-items: center; gap: clamp(10px, 1.3vw, 18px); }
.lang { display: flex; border: 1px solid rgba(236,236,232,.32); }
.lang button { background: none; border: 0; padding: 7px 10px; opacity: .55; transition: opacity .3s, background .3s; }
.lang button[aria-pressed="true"] { opacity: 1; background: rgba(236,236,232,.14); }
.lang button:hover { opacity: 1; }
.hdr-cta { border: 1px solid rgba(236,236,232,.6); padding: 8px 16px; transition: background .3s, color .3s; }
.hdr-cta:hover { background: var(--paper); color: #060404 !important; }
.svc { display: flex; align-items: center; gap: clamp(14px, 2.2vw, 34px); padding: 7px var(--gutter); border-top: 1px solid rgba(236,236,232,.12); border-bottom: 1px solid rgba(236,236,232,.08); background: rgba(4,2,2,.55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); max-height: 44px; overflow: hidden; transition: max-height .45s var(--ease), opacity .35s, padding .45s var(--ease), border-color .3s; }
.svc-l { font-family: var(--classic); font-style: italic; font-size: 15px; opacity: .72; margin-right: 4px; white-space: nowrap; }
.svc a { font-size: 10.5px; opacity: .78; transition: opacity .3s; padding: 3px 0; }
.svc a:hover { opacity: 1; }
.svc a:last-child { margin-left: auto; opacity: .6; }
.hdr.compact .svc { max-height: 0; opacity: 0; padding-top: 0; padding-bottom: 0; border-color: transparent; }
.menu-btn { top: 9px; }
.menu .menu-svc { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 8px 22px; align-items: baseline; }
.menu .menu-svc span { font-family: var(--classic); font-style: italic; font-size: 1.1rem; opacity: .7; width: 100%; }
.menu .menu-svc a { font-family: var(--sans); font-size: 12px; letter-spacing: .2em; text-transform: uppercase; line-height: 1.6; }
@media (max-width: 1100px) { .hdr-nav { display: none; } .hdr-top { padding-right: calc(var(--gutter) + 56px); } .menu-btn { display: block; } }
@media (max-width: 640px) {
  .hdr-top { gap: 12px; padding-top: 12px; }
  .hdr .mark { font-size: 1rem; letter-spacing: .14em; }
  .hdr-cta { display: none; }
  .svc { overflow-x: auto; scrollbar-width: none; gap: 20px; }
  .svc::-webkit-scrollbar { display: none; }
  .svc a:last-child { margin-left: 0; }
  .menu-btn { top: 6px; }
}

.wk-row[id] { scroll-margin-top: 150px; }

/* ---------- страховка вёрстки: ничего не вылезает за экран, текст переносится ---------- */
html, body { overflow-x: clip; }
h1, h2, h3, h4, p, li, label, button, a { overflow-wrap: break-word; }
@media (max-width: 860px) {
  .role-in, .ft-head, .why-grid, .path, .access, .seal, .prec-body, .ab-hero, .rule, .fx-hero .sub, .lay-in, .vs, .vows, .rooms3, .tools, .limits, .verts, .wk-row, .wk-terms, .live-grid, .ledger .fields, .ledger .out { grid-template-columns: minmax(0, 1fr) !important; }
  .ab-hero > *, .rule > *, .lay-in > *, .wk-row > *, .live-grid > * { min-width: 0; }
  h1, h2 { overflow-wrap: anywhere; hyphens: auto; }
  .role-in > *, .access > *, .ft-head > * { min-width: 0; }
  .access form { transform: none; }
}

/* ---------- руки: двигается именно рука; шов и вспышка тёмно-бордовые ---------- */
.cut { background: transparent !important; }
.cut img { mix-blend-mode: normal; }
.limb { filter: drop-shadow(0 5px 7px rgba(10,2,4,.38)); }
.knot i { background: radial-gradient(circle, rgba(120,18,32,.85) 0 7%, rgba(88,12,24,.5) 26%, rgba(52,6,14,.18) 52%, rgba(52,6,14,0) 72%) !important; mix-blend-mode: multiply !important; }
.knot .seam { background: linear-gradient(180deg, rgba(58,6,14,0), #4a0a14 10%, #6e1019 50%, #4a0a14 90%, rgba(58,6,14,0)) !important; box-shadow: 0 0 calc(16px + var(--flare, 0) * 24px) calc(2px + var(--flare, 0) * 6px) rgba(70,8,18,.45) !important; opacity: .92; }
.canvas > .pulse { border-color: rgba(110,16,28,.8) !important; box-shadow: 0 0 26px rgba(70,8,18,.45) !important; }

/* ---------- допуск: плашка Telegram, этапы, анкета ---------- */
.access { align-items: start; }
.ax-l .sub { max-width: 28em; }
.tg { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; align-items: end; margin-top: 30px; max-width: 30em; padding: 18px 22px 18px 24px; position: relative; border: 1px solid rgba(236,236,232,.28); background: rgba(10,4,5,.55); color: var(--paper); transition: background .4s, color .4s, border-color .4s; }
.tg::before { content: ''; position: absolute; left: -1px; top: -1px; bottom: -1px; width: 3px; background: var(--spray); }
.tg-k { grid-column: 1 / -1; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; opacity: .65; }
.tg-n { font-family: var(--classic); font-size: clamp(1.25rem, 2.2vw, 1.7rem); line-height: 1.1; }
.tg-n b { font-weight: 400; font-style: italic; letter-spacing: .02em; margin-left: .35em; }
.tg-go { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; opacity: .8; white-space: nowrap; }
.tg:hover { background: var(--paper); color: #060404; border-color: var(--paper); }
.ax-steps { list-style: none; counter-reset: ax; margin: 34px 0 0; padding: 0; display: grid; gap: 14px; max-width: 30em; }
.ax-steps li { counter-increment: ax; display: grid; grid-template-columns: 2.2em 1fr; font-size: 15px; line-height: 1.5; opacity: .88; }
.ax-steps li::before { content: counter(ax, upper-roman); font-family: var(--classic); font-style: italic; opacity: .7; }
.ax-steps b { font-weight: 500; }
.access .stamp { margin-top: 30px; display: inline-block; }
.ax-form, .ax-done { background: var(--paper); color: var(--asphalt); padding: clamp(24px, 3.4vw, 48px); box-shadow: 0 24px 60px rgba(0,0,0,.35); display: block !important; transform: none !important; }
.ax-form[hidden], .ax-done[hidden] { display: none !important; }
.ax-set { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.ax-set legend { font-family: var(--classic); font-size: 1.55rem; line-height: 1; display: flex; gap: 12px; align-items: baseline; margin-bottom: 16px; padding: 0; }
.ax-set legend span { font-family: var(--classic); font-style: italic; font-size: 1rem; opacity: .55; min-width: 1.6em; }
.ax-form label { display: grid; gap: 6px; font-family: var(--sans); font-size: 10.5px; letter-spacing: .16em; text-transform: uppercase; color: #5b5b55; margin-bottom: 16px; }
.ax-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 26px; }
.ax-form input:not([type=radio]):not([type=checkbox]), .ax-form textarea, .ax-form select { font: inherit; font-size: 16px; letter-spacing: 0; text-transform: none; color: var(--asphalt); background: transparent; border: 0; border-bottom: 1px solid rgba(18,18,18,.55); border-radius: 0; padding: 7px 0 9px; width: 100%; resize: vertical; }
.ax-form select { appearance: none; -webkit-appearance: none; background-image: linear-gradient(45deg, transparent 50%, #55554f 50%), linear-gradient(135deg, #55554f 50%, transparent 50%); background-position: calc(100% - 12px) 55%, calc(100% - 7px) 55%; background-size: 5px 5px; background-repeat: no-repeat; padding-right: 26px; }
.ax-form input:focus, .ax-form textarea:focus, .ax-form select:focus { outline: none; border-bottom-color: var(--spray); box-shadow: 0 1px 0 var(--spray); }
.ax-types { display: flex; flex-wrap: wrap; gap: 8px; }
.ax-types label { display: block; margin: 0; position: relative; }
.ax-types input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ax-types span { display: inline-block; border: 1px solid rgba(18,18,18,.42); padding: 10px 15px; font-size: 11.5px; letter-spacing: .1em; text-transform: none; color: var(--asphalt); transition: background .25s, color .25s; }
.ax-types input:checked + span { background: var(--asphalt); color: var(--paper); border-color: var(--asphalt); }
.ax-types input:focus-visible + span { outline: 2px solid var(--spray); outline-offset: 2px; }
.ax-hint { font-size: 12px; opacity: .6; margin: -6px 0 0; }
.ax-ck { grid-template-columns: 18px 1fr !important; align-items: start; gap: 12px !important; letter-spacing: 0 !important; text-transform: none !important; font-size: 14px !important; line-height: 1.5; color: #2c2c28 !important; }
.ax-ck input { margin-top: 3px; accent-color: #7b121d; width: 16px; height: 16px; }
.ax-go { width: 100%; margin-top: 6px; background: var(--asphalt); color: var(--paper); border: 0; padding: 18px 22px; font-family: var(--sans); font-size: 12px; letter-spacing: .26em; text-transform: uppercase; cursor: pointer; transition: background .35s; }
.ax-go:hover { background: #5b0f18; }
.ax-form .formnote { min-height: 1.4em; margin: 14px 0 0; font-size: 14px; color: #55554f; }
.ax-form .formnote.bad { color: #8a1522; }
.ax-done h3 { font-family: var(--classic); font-weight: 400; font-size: clamp(1.9rem, 3.2vw, 2.8rem); margin: 8px 0 12px; line-height: 1; }
.ax-kicker { font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; opacity: .6; }
.ax-done pre { white-space: pre-wrap; word-break: break-word; font-family: var(--mono); font-size: 12.5px; line-height: 1.55; background: rgba(18,18,18,.06); border-left: 2px solid #7b121d; padding: 16px 18px; margin: 20px 0; max-height: 300px; overflow: auto; }
.ax-act { display: flex; flex-wrap: wrap; gap: 10px; }
.ax-btn { display: inline-block; background: var(--asphalt); color: var(--paper); border: 1px solid var(--asphalt); padding: 14px 20px; font-family: var(--sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; cursor: pointer; transition: background .3s, color .3s; }
.ax-btn:hover { background: #5b0f18; border-color: #5b0f18; }
.ax-btn.ghost { background: transparent; color: var(--asphalt); border-color: rgba(18,18,18,.5); }
.ax-btn.ghost:hover { background: var(--asphalt); color: var(--paper); border-color: var(--asphalt); }
.tg-pill { position: fixed; right: var(--gutter); bottom: 22px; z-index: 90; display: flex; align-items: baseline; gap: 10px; padding: 10px 16px; color: var(--paper); background: rgba(6,3,3,.84); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); border: 1px solid rgba(236,236,232,.28); border-left: 3px solid var(--spray); transition: opacity .4s, transform .4s var(--ease), background .3s, color .3s; }
.tg-pill span { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; opacity: .65; }
.tg-pill b { font-family: var(--classic); font-style: italic; font-weight: 400; font-size: 1.05rem; }
.tg-pill:hover { background: var(--paper); color: #060404; }
.tg-pill.tg-hide, .menu-open .tg-pill { opacity: 0; pointer-events: none; transform: translateY(10px); }
@media (max-width: 640px) { .ax-grid { grid-template-columns: 1fr; } .tg-pill span { display: none; } .tg-pill { padding: 9px 14px; bottom: 14px; } }
.access { grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr); gap: clamp(32px, 5vw, 80px); }
.access h2 { font-size: clamp(2.3rem, 4.4vw, 4.9rem); line-height: .98; overflow-wrap: break-word; }
@media (max-width: 860px) { .access { grid-template-columns: minmax(0, 1fr) !important; } .access h2 { font-size: clamp(2.2rem, 11vw, 3.6rem); } }

.ax-steps li > span { display: block; }

.limits { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ---------- плашка Coming soon на главной ---------- */
.soon-tag { position: absolute; z-index: 6; right: var(--gutter); top: 138px; display: flex; align-items: center; gap: 12px; padding: 9px 16px 9px 14px; border: 1px solid rgba(236,236,232,.28); background: rgba(6,3,4,.72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: var(--paper); transition: background .35s, color .35s, border-color .35s; }
.soon-tag i { width: 7px; height: 7px; background: var(--spray); box-shadow: 0 0 10px 2px rgba(196,58,75,.7); animation: soonp 2.4s ease-in-out infinite; }
@keyframes soonp { 50% { opacity: .35; } }
.soon-tag span { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; opacity: .7; }
.soon-tag b { font-family: var(--classic); font-style: italic; font-weight: 400; font-size: 1.1rem; }
.soon-tag:hover { background: var(--paper); color: #060404; border-color: var(--paper); }
@media (max-width: 640px) { .soon-tag { top: 124px; padding: 7px 12px; gap: 9px; } .soon-tag span { display: none; } }

/* ---------- меню: «Услуги» выпадающим списком, Hades с пометкой soon ---------- */
.svc { display: none !important; }
.hdr-nav { align-items: center; gap: clamp(13px, 1.7vw, 30px); }
.dd { position: relative; }
.dd-b { background: none; border: 0; padding: 6px 0; display: inline-flex; align-items: center; gap: 8px; font-family: var(--sans); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--paper); opacity: .8; cursor: pointer; transition: opacity .3s; }
.dd-b i { width: 5px; height: 5px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg) translateY(-2px); transition: transform .3s; }
.dd:hover .dd-b, .dd.open .dd-b, .dd:focus-within .dd-b { opacity: 1; }
.dd:hover .dd-b i, .dd.open .dd-b i { transform: rotate(225deg) translate(-1px, 1px); }
.dd-p { position: absolute; left: -18px; top: 100%; min-width: 250px; padding: 14px 0 8px; display: none; }
.dd-p::before { content: ''; position: absolute; inset: 8px 0 0 0; z-index: -1; background: rgba(6,3,4,.97); border: 1px solid var(--f-line, rgba(236,236,232,.2)); box-shadow: 0 24px 50px rgba(0,0,0,.6); }
.dd:hover .dd-p, .dd:focus-within .dd-p, .dd.open .dd-p { display: block; }
.dd-p a { display: block; padding: 12px 22px; font-family: var(--sans); font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--paper); opacity: .78; white-space: nowrap; transition: background .25s, opacity .25s; }
.dd-p a:hover { background: rgba(236,236,232,.08); opacity: 1; }
.dd-p a:last-child { border-top: 1px solid rgba(236,236,232,.14); margin-top: 6px; opacity: .6; }
.hdr-nav a.hdr-soon sup { position: relative; top: -.55em; margin-left: 7px; padding: 2px 5px; font-size: 8px; letter-spacing: .14em; background: var(--spray); color: #fff; vertical-align: baseline; }
@media (max-width: 1240px) { .hdr-nav { display: none; } .hdr-top { padding-right: calc(var(--gutter) + 56px); } .menu-btn { display: block; } }

.wk-more { display: inline-block; margin-top: 12px; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--paper); border-bottom: 1px solid rgba(236,236,232,.4); padding-bottom: 3px; transition: border-color .3s, color .3s; }
.wk-more:hover { border-color: var(--spray); color: #fff; }

/* плашка Hades: слева сверху, чтобы не перекрывать слово «пакт» справа */
.soon-tag { right: auto; left: var(--gutter); }

/* ---------- плашка с девизом: картина на весь экран, как остальные плашки сайта ---------- */
.motto-band { position: relative; z-index: 2; min-height: 64vh; display: grid; place-items: center; padding: clamp(60px, 10vh, 110px) var(--gutter); overflow: hidden; background: #050303; border-top: 1px solid rgba(236,236,232,.12); border-bottom: 1px solid rgba(236,236,232,.12); }
.motto-band .plate::before { background: radial-gradient(70% 80% at 50% 50%, rgba(4,2,2,.55), rgba(4,2,2,.9)); }
.motto-band .plate img { object-position: 50% 40%; filter: grayscale(.55) brightness(.5) contrast(1.1); }
.mb-in { position: relative; z-index: 4; display: grid; justify-items: center; gap: 16px; text-align: center; }
.mb-k { font-size: 11px; letter-spacing: .34em; padding-left: .34em; opacity: .7; }
.mb-la { font-family: var(--classic); font-weight: 300; font-size: clamp(2.6rem, 8vw, 8.4rem); line-height: .92; text-transform: uppercase; letter-spacing: .01em; }
.mb-la em { font-style: italic; box-shadow: inset 0 -.1em 0 rgba(158,29,42,.75); }
.mb-ru { font-family: var(--classic); font-style: italic; font-weight: 300; font-size: clamp(1.1rem, 2vw, 1.7rem); opacity: .85; }
.motto-band .museum { z-index: 5; }

/* заголовок «Международное право» не должен уходить под карточку договора */
.role.r-law .role-in > div:first-child { min-width: 0; position: relative; z-index: 3; }
.role.r-law h2 { font-size: clamp(2.4rem, 5vw, 5.4rem); overflow-wrap: normal; }
.role.r-law .law-vis .doc { inset: 4% 0 4% 10%; }
@media (max-width: 1000px) { .role.r-law h2 { font-size: clamp(2.4rem, 11vw, 4.4rem); } .role.r-law .law-vis .doc { inset: 4% 0; } }
