/* Geologica (SIL Open Font License 1.1), variable weight, served from our own host:
 * Google Fonts domains are unreliable from the RU zone. One file per character set
 * covers weights 200-500. */
@font-face {
	font-family: 'Geologica';
	font-style: normal;
	font-weight: 200 500;
	font-display: swap;
	src: url('../fonts/geologica-cyrillic-ext.woff2') format('woff2');
	unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
@font-face {
	font-family: 'Geologica';
	font-style: normal;
	font-weight: 200 500;
	font-display: swap;
	src: url('../fonts/geologica-cyrillic.woff2') format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
	font-family: 'Geologica';
	font-style: normal;
	font-weight: 200 500;
	font-display: swap;
	src: url('../fonts/geologica-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Geologica';
	font-style: normal;
	font-weight: 200 500;
	font-display: swap;
	src: url('../fonts/geologica-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ------------------------------------------------------------------------------------
 * Base. Values follow the design files (design_handoff_b24u_site); the inline styles of
 * B24UHeader / B24UFooter are reproduced as classes one to one.
 * ---------------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html, body { overflow-anchor: none; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
	margin: 0;
	background: #0e0f10;
	color: #fff;
	font-family: 'Geologica', system-ui, sans-serif;
	font-weight: 300;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
a { color: inherit; text-decoration: none; }
a:hover { opacity: .85; }
.home a:hover { opacity: .8; }
h1, h2 { text-wrap: balance; }
.num { font-variant-numeric: tabular-nums; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ------------------------------------------------------------------------------------
 * Header of inner pages (B24UHeader). Navigation shows from 1100 px; below it the
 * full-screen menu opens from the burger button.
 * ---------------------------------------------------------------------------------- */
.hdr { position: relative; z-index: 30; max-width: 1600px; margin: 0 auto; padding: 0 clamp(16px, 3.5vw, 64px); color: #fff; font-family: 'Geologica', system-ui, sans-serif; font-weight: 300; }
.hdr__bar { height: 80px; display: flex; align-items: center; gap: 28px; border-bottom: 1px solid rgba(255,255,255,min(1, calc(.12 * var(--b24u-bd, 1)))); }
.hdr__logo { flex: none; display: flex; align-items: center; margin-right: auto; }
.hdr__nav { display: none; align-items: center; gap: 30px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; text-shadow: 0 1px 12px rgba(0,0,0,.4); }
.hdr__sol-btn { padding: 0; border: 0; background: none; color: #fff; font: inherit; letter-spacing: inherit; text-transform: inherit; cursor: pointer; display: flex; align-items: center; gap: 6px; opacity: .8; }
.hdr__sol-btn.is-active, .hdr.is-sol-open .hdr__sol-btn { opacity: 1; }
.hdr__sol-btn .arrow { font-size: 10px; }
.hdr__link { opacity: .8; border-bottom: 1px solid transparent; padding: 4px 0; }
.hdr__link.is-active { opacity: 1; border-bottom-color: #fff; }
.hdr__lang { flex: none; font-size: 13px; letter-spacing: .06em; display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; opacity: min(1, calc(.75 * var(--b24u-tx, 1))); }
.hdr__lang:hover { opacity: 1; }
/* Tap targets of at least 44 x 44 px without moving anything: an invisible hit area around
 * links that are narrower or lower than that (mobile check, 2026-10-04). */
.hdr__lang, .hbar__lang, .hero__lang, .hbar__logo, .sol__row a.k, .sol__kick a { position: relative; }
.hdr__lang::before, .hbar__lang::before, .hero__lang::before, .hbar__logo::before { content: ''; position: absolute; top: 0; bottom: 0; left: -9px; right: -9px; }
.sol__row a.k::before, .sol__kick a::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; bottom: -14px; }
.hdr__login { position: relative; flex: none; }
.hdr__login > summary { flex: none; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; padding: 8px 14px; border: 1px solid rgba(255,255,255,.4); border-radius: 999px; list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.hdr__login > summary::-webkit-details-marker { display: none; }
.hdr__login > summary .arrow { font-size: 10px; }
.hdr__login-menu { position: absolute; right: 0; top: calc(100% + 10px); z-index: 60; min-width: 240px; padding: 8px; border-radius: 18px 18px 18px 0; background: rgba(14,15,16,.92); -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); border: 1px solid rgba(255,255,255,.14); display: flex; flex-direction: column; font-size: 16px; letter-spacing: 0; text-transform: none; }
.hdr__login-menu a { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 12px; }
.hdr__login-menu a:hover { background: rgba(255,255,255,.08); opacity: 1; }
.hdr__login-menu a span { font-size: 13px; color: rgba(255,255,255,.6); }
.hdr__burger { width: 44px; height: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid rgba(255,255,255,.4); background: none; color: #fff; cursor: pointer; }

/* Solutions panel (wide screens). It stays open while the pointer travels from the
 * button to the panel: closing waits 250 ms (site.js). */
.hdr__sol { display: none; position: absolute; top: 80px; left: clamp(16px, 3.5vw, 64px); right: clamp(16px, 3.5vw, 64px); padding-top: 8px; }
.hdr.is-sol-open .hdr__sol { display: block; }
.hdr__sol-panel { padding: clamp(24px, 3vw, 40px); border-radius: 28px 28px 28px 0; background: rgba(14,15,16,.82); border: 1px solid rgba(255,255,255,.16); -webkit-backdrop-filter: blur(24px); backdrop-filter: blur(24px); display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px; }
.hdr__sol-title { font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.hdr__sol-grid { margin-top: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 32px; }
.hdr__sol-list { margin-top: 16px; display: flex; flex-direction: column; gap: 4px; }
.hdr__sol-item { padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.1); display: flex; flex-direction: column; gap: 4px; }
.hdr__sol-item:hover { opacity: 1; border-bottom-color: rgba(255,255,255,.45); }
.hdr__sol-item .t { font-size: 18px; }
.hdr__sol-item .d { font-size: 14px; line-height: 1.45; color: rgba(255,255,255,.72); }

@media (min-width: 1100px) {
	.hdr__nav { display: flex; }
	.hdr__burger { display: none; }
}

/* Full-screen menu (narrow screens; the home hero uses it on every width). */
.menu { position: fixed; inset: 0; z-index: 60; height: 100vh; height: 100svh; overflow-y: auto; padding: 0 clamp(16px, 3.5vw, 64px) 32px; background: rgba(14,15,16,.94); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); color: #fff; }
.menu[hidden] { display: none; }
.menu__bar { position: sticky; top: 0; height: 72px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid rgba(255,255,255,.12); }
.menu__label { font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.65); }
.menu__close { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.4); background: none; color: #fff; font-size: 18px; cursor: pointer; }
.menu__group { padding: 16px 0 6px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,.6); }
.menu__sol { display: block; padding: 7px 0; font-weight: 200; font-size: clamp(20px, 5vw, 28px); line-height: 1.3; }
.menu__rule { margin-top: 16px; border-top: 1px solid rgba(255,255,255,.12); }
.menu__link { display: block; padding: 12px 0; font-weight: 200; font-size: clamp(28px, 8vw, 44px); line-height: 1.1; border-bottom: 1px solid rgba(255,255,255,.1); }
body.is-menu-open { overflow: hidden; }

/* ------------------------------------------------------------------------------------
 * Footer (B24UFooter).
 * ---------------------------------------------------------------------------------- */
.ftr { max-width: 1600px; margin: 0 auto; padding: clamp(48px, 6vw, 88px) clamp(16px, 3.5vw, 64px) 32px; font-family: 'Geologica', system-ui, sans-serif; font-weight: 300; font-size: 15px; color: rgba(255,255,255,min(1, calc(.7 * var(--b24u-tx, 1)))); border-top: 1px solid rgba(255,255,255,min(1, calc(.12 * var(--b24u-bd, 1)))); }
.ftr__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); gap: 36px 32px; }
.ftr__col { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ftr__title { font-weight: 400; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,min(1, calc(.5 * var(--b24u-tx, 1)))); padding-bottom: 10px; }
.ftr__col a { display: flex; align-items: center; min-height: 40px; color: #fff; font-size: 16px; }
.ftr__col a:hover { opacity: .7; }
.ftr__bottom { margin-top: clamp(40px, 5vw, 64px); padding-top: 24px; border-top: 1px solid rgba(255,255,255,min(1, calc(.1 * var(--b24u-bd, 1)))); display: flex; flex-wrap: wrap; align-items: center; gap: 12px 28px; font-size: 14px; }
.ftr__legal { display: flex; align-items: center; gap: 12px; margin-right: auto; }
.ftr__legal svg { color: #fff; }
.ftr__bottom a { color: inherit; display: inline-flex; align-items: center; min-height: 44px; }
.ftr__bottom a:hover { color: #fff; opacity: 1; }

/* ------------------------------------------------------------------------------------
 * Buttons (README: 1 px outline, radius 999, height 44-52 px) and the 404 page.
 * ---------------------------------------------------------------------------------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 28px; border-radius: 999px; border: 1px solid rgba(255,255,255,min(1, calc(.75 * var(--b24u-bd, 1)))); background: transparent; color: inherit; font: inherit; font-weight: 400; font-size: 17px; cursor: pointer; }
.btn:hover { background: rgba(255,255,255,.12); opacity: 1; }
.nf { max-width: 1600px; margin: 0 auto; padding: clamp(64px, 12vw, 160px) clamp(16px, 3.5vw, 64px); }
.nf__title { margin: 0; font-weight: 200; font-size: clamp(40px, 7vw, 88px); line-height: 1.05; letter-spacing: -.01em; }
.nf__text { margin: 20px 0 32px; font-size: 18px; line-height: 1.5; color: rgba(255,255,255,.72); }

/* ------------------------------------------------------------------------------------
 * Application forms (business and partner), shared by the home page and the signup pages
 * (templates/partials/form-*.php, js/forms.js). Moved here from home.css.
 * ---------------------------------------------------------------------------------- */
.af-cap { font-weight: 400; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,min(1, calc(.6 * var(--b24u-tx, 1)))); }
.af-btn { height: 56px; padding: 0 28px; border-radius: 999px 999px 999px 0; border: 1px solid rgba(255,255,255,min(1, calc(.75 * var(--b24u-bd, 1)))); background: rgba(255,255,255,.08); box-shadow: inset 0 0 0 999px rgba(12,13,14,min(1, calc(.3 * var(--b24u-pl, 1)))); color: #fff; font: inherit; font-size: 17px; font-weight: 400; display: inline-flex; align-items: center; justify-content: center; gap: 12px; cursor: pointer; text-decoration: none; }
.af-btn:hover { background: rgba(255,255,255,.14); }
.af-btn:disabled { opacity: .45; cursor: default; }
.af-btn--s { height: auto; min-height: 44px; padding: 0 20px; font-size: 15px; border-color: rgba(255,255,255,min(1, calc(.55 * var(--b24u-bd, 1)))); background: transparent; box-shadow: none; }
.aform { flex: 1 1 440px; min-width: 0; max-width: 620px; box-sizing: border-box; padding: clamp(24px, 3vw, 40px); border-radius: 28px 28px 28px 0; background: rgba(14,15,16,min(1, calc(.55 * var(--b24u-pl, 1)))); border: 1px solid rgba(255,255,255,min(1, calc(.18 * var(--b24u-bd, 1)))); box-shadow: inset 0 0 0 999px rgba(12,13,14,min(1, calc(.42 * var(--b24u-pl, 1)))); -webkit-backdrop-filter: var(--b24u-bf, none); backdrop-filter: var(--b24u-bf, none); display: flex; flex-direction: column; gap: 22px; color: #fff; font-family: 'Geologica', system-ui, sans-serif; font-weight: 300; }
/* Fields are boxes, not the design's underline: the line read as a divider, not as a place to
   type (owner, 2026-10-04). */
.aform input[type=text], .aform input[type=email], .aform input[type=tel], .aform textarea { width: 100%; box-sizing: border-box; height: 52px; padding: 0 16px; border: 1px solid rgba(255,255,255,min(1, calc(.28 * var(--b24u-bd, 1)))); border-radius: 12px; background: rgba(255,255,255,.06); color: #fff; font: inherit; font-size: 18px; outline: none; -webkit-appearance: none; appearance: none; transition: border-color .15s ease, background-color .15s ease; }
.aform textarea { height: auto; min-height: 88px; padding: 12px 16px; font-size: 17px; line-height: 1.45; resize: vertical; }
.aform input:focus, .aform textarea:focus { border-color: rgba(255,255,255,.8); background: rgba(255,255,255,.09); }
.aform input::placeholder, .aform textarea::placeholder { color: rgba(255,255,255,.4); opacity: 1; }
.aform input.is-bad { border-color: #d9826b; }
.aform__hd { display: flex; justify-content: space-between; gap: 12px; font-weight: 400; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: rgba(255,255,255,min(1, calc(.65 * var(--b24u-tx, 1)))); }
.aform__bar { height: 2px; background: rgba(255,255,255,.14); }
.aform__bar > div { height: 2px; width: 100%; background: rgb(var(--b24u-acc, 196,176,110)); transform-origin: 0 50%; transform: scaleX(.5); }
.aform__step { display: flex; flex-direction: column; gap: 22px; }
.aform__step[hidden], .aform__done[hidden], .aform__check[hidden], .aform__err[hidden] { display: none; }
.aform__f { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.aform__two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 22px 24px; }
.aform__check { display: flex; flex-direction: column; gap: 8px; font-size: 15px; }
.aform__st { display: flex; gap: 10px; align-items: center; }
.aform__st::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: rgba(255,255,255,.5); flex: none; }
.aform__st.is-ok::before { background: #3d9a5f; }
.aform__st.is-bad::before { background: #d9826b; }
.aform__go { align-self: flex-start; }
.aform__ok { display: flex; gap: 12px; align-items: flex-start; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,min(1, calc(.75 * var(--b24u-tx, 1)))); cursor: pointer; }
.aform__ok input { margin: 2px 0 0; width: 18px; height: 18px; accent-color: rgb(var(--b24u-acc, 196,176,110)); flex: none; }
.aform__ok a { text-decoration: underline; color: inherit; }
.aform__btns { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.aform__back { height: 56px; padding: 0 12px; border: 0; background: none; color: rgba(255,255,255,min(1, calc(.75 * var(--b24u-tx, 1)))); font: inherit; font-size: 15px; cursor: pointer; }
.aform__submit { flex: 1 1 auto; }
.aform__note { font-size: 14px; line-height: 1.45; color: rgba(255,255,255,min(1, calc(.75 * var(--b24u-tx, 1)))); }
.aform__err { font-size: 14px; line-height: 1.45; color: #e9a594; }
.aform__sites-hd { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.aform__sites-hd .t { font-size: 20px; font-weight: 400; }
.aform__sites-hd .acc { font-size: 14px; color: rgb(var(--b24u-acc, 196,176,110)); }
.aform__site { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; align-items: center; }
.aform__site input[type=text] { height: 46px; }
.aform__site .st { font-size: 14px; white-space: nowrap; color: rgba(255,255,255,min(1, calc(.6 * var(--b24u-tx, 1)))); }
.aform__site .st.is-ok { color: rgba(255,255,255,min(1, calc(.85 * var(--b24u-tx, 1)))); }
.aform__site .st.is-bad { color: #e9a594; }
.aform__done { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.aform__done .t { font-size: clamp(26px, 2.2vw, 34px); letter-spacing: -0.02em; }
.aform__done p { margin: 0; font-size: 16px; line-height: 1.5; color: rgba(255,255,255,min(1, calc(.8 * var(--b24u-tx, 1)))); }
.aform__f--co { position: relative; gap: 8px; }
.aform__cos { display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,min(1, calc(.18 * var(--b24u-bd, 1)))); border-radius: 14px; overflow: hidden; background: rgba(14,15,16,.92); }
.aform__cos[hidden] { display: none; }
.aform__co { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border: 0; border-bottom: 1px solid rgba(255,255,255,.08); background: none; color: #fff; font: inherit; font-size: 15px; text-align: left; cursor: pointer; }
.aform__co:last-child { border-bottom: 0; }
.aform__co:hover { background: rgba(255,255,255,.08); }
.aform__co .inn { flex: none; color: rgba(255,255,255,.55); font-size: 13px; }
.aform__hint { font-size: 13px; color: rgba(255,255,255,.55); }

/* "What's next" after a partner application: home page (B24UAfter) and /partner-signup. */
.psteps { display: flex; flex-direction: column; border-top: 1px solid rgba(255,255,255,min(1, calc(.18 * var(--b24u-bd, 1)))); }
.psteps__it { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 4px 16px; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,min(1, calc(.12 * var(--b24u-bd, 1)))); align-items: baseline; }
.psteps__it .n { font-size: 13px; color: rgba(255,255,255,min(1, calc(.55 * var(--b24u-tx, 1)))); }
.psteps__it .t { font-size: 17px; font-weight: 400; }
.psteps__it .tm { font-size: 13px; color: rgb(var(--b24u-acc, 196,176,110)); }
.psteps__it .d { grid-column: 2 / -1; font-size: 15px; line-height: 1.45; color: rgba(255,255,255,min(1, calc(.72 * var(--b24u-tx, 1)))); }
.aform__hint--l { font-size: 15px; line-height: 1.5; color: rgba(255,255,255,min(1, calc(.78 * var(--b24u-tx, 1)))); }
