/* hector-selfhost-fonts */
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibmplexsans-400-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibmplexsans-400-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;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibmplexsans-600-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibmplexsans-600-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;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibmplexsans-700-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/ibmplexsans-700-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;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jetbrainsmono-400-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jetbrainsmono-400-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;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/jetbrainsmono-600-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/jetbrainsmono-600-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;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/jetbrainsmono-700-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/jetbrainsmono-700-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;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/jetbrainsmono-800-cyrillic.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/jetbrainsmono-800-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;}

.anchor-target {
  display: block;
  position: relative;
  top: -90px;
  visibility: hidden;
}

:root {
  --bg: #060807;
  --bg-elev: #0c100e;
  --surface: #0f1411;
  --surface-border: rgba(94,255,170,0.18);
  --text: #d8ffe9;
  --text-dim: #6f9885;
  --accent: #5dffa6;     /* terminal green */
  --accent-2: #ffb454;   /* amber */
  --accent-3: #ff5d6c;   /* alert red */
  --grid-line: rgba(93,255,166,0.06);
  --font-mono: 'JetBrains Mono', monospace;
  --font-sans: 'IBM Plex Sans', sans-serif;
  --glow: 0 0 24px rgba(93,255,166,0.25);
}

[data-theme="light"] {
  --bg: #f4f6f1;
  --bg-elev: #ffffff;
  --surface: #ffffff;
  --surface-border: rgba(20,60,40,0.14);
  --text: #102018;
  --text-dim: #5b7568;
  --accent: #0a8f4f;
  --accent-2: #c47a00;
  --accent-3: #c43a3a;
  --grid-line: rgba(10,90,50,0.05);
  --glow: 0 0 0 transparent;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--font-sans);
  background: var(--bg);
  color: var(--text);
  overflow-x: hidden;
  transition: background .4s ease, color .4s ease;
  background-image:
    linear-gradient(var(--grid-line) 1px, transparent 1px),
    linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);
  background-size: 48px 48px;
}

/* scanline overlay */
body::before {
  content: '';
  position: fixed; inset: 0; z-index: 9999; pointer-events: none;
  background: repeating-linear-gradient(
    to bottom, rgba(255,255,255,0.012) 0px, rgba(255,255,255,0.012) 1px,
    transparent 1px, transparent 3px
  );
  mix-blend-mode: overlay;
  opacity: .5;
}
[data-theme="light"] body::before { display: none; }

.container { max-width: 1240px; margin: 0 auto; padding: 0 32px; position: relative; z-index: 2; }
.mono { font-family: var(--font-mono); }

/* ===== Header ===== */
header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--bg) 80%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--surface-border);
}
.nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 16px 32px; max-width: 1240px; margin: 0 auto;
}
.logo { font-family: var(--font-mono); font-weight: 700; font-size: 19px; display: flex; align-items: center; gap: 10px; letter-spacing: .02em; text-decoration: none; color: inherit; }
.logo-mark { display: flex; align-items: center; }
.logo-mark svg { width: 26px; height: 26px; display: block; }
.logo-cursor { color: var(--accent-2); animation: blink 1.1s step-end infinite; }
.nav-links { display: flex; gap: 16px; list-style: none; font-size: 12px; font-family: var(--font-mono); }
.nav-links-cta { display: none; }
.nav-links a { color: var(--text-dim); text-decoration: none; transition: color .2s; position: relative; }
.nav-links a::before { content: '> '; color: var(--accent); opacity: 0; transition: opacity .2s; }
.nav-links a:hover { color: var(--text); }
.nav-links a:hover::before { opacity: 1; }
.nav-right { display: flex; align-items: center; gap: 14px; }

.nav-burger {
  display: none; flex-direction: column; justify-content: center; gap: 5px;
  width: 36px; height: 32px; padding: 0; border: 1px solid var(--surface-border);
  border-radius: 4px; background: var(--surface); cursor: pointer;
}
.nav-burger span { display: block; width: 16px; height: 2px; margin: 0 auto; background: var(--text); transition: transform .25s, opacity .25s; }
.nav-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

.theme-toggle {
  width: 70px; height: 28px; border-radius: 4px;
  background: var(--surface); border: 1px solid var(--surface-border);
  position: relative; cursor: pointer; font-family: var(--font-mono); font-size: 10px;
  display: flex; align-items: center; justify-content: space-between; padding: 0 6px;
  color: var(--text-dim); letter-spacing: .05em;
}
.theme-toggle::after {
  content: ''; position: absolute; top: 2px; left: 2px;
  width: 36px; height: 22px; border-radius: 3px;
  background: var(--accent); opacity: .25;
  transition: transform .3s;
}
[data-theme="light"] .theme-toggle::after { transform: translateX(28px); }

.btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-mono); font-weight: 600; font-size: 13px;
  padding: 12px 22px; border-radius: 4px; cursor: pointer;
  text-decoration: none; transition: all .25s; letter-spacing: .03em;
}
.btn-primary {
  background: var(--accent); color: #04140b; border: 1px solid var(--accent);
  box-shadow: var(--glow);
}
.btn-primary:hover { box-shadow: 0 0 32px rgba(93,255,166,0.5); transform: translateY(-2px); }
body[data-theme="light"] .btn-primary { color: #ffffff; }
.btn-ghost { background: transparent; color: var(--text); border: 1px solid var(--surface-border); }
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }
.btn::before { content: '₽'; opacity: .6; }
.btn-primary::before { content: '>'; }

/* ===== Preloader ===== */
body:not(.loaded) { overflow: hidden; }
.preloader {
  position: fixed; inset: 0; z-index: 10000;
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
  transition: opacity .5s ease, visibility .5s ease;
}
@keyframes hectorPreOut { to { opacity: 0; visibility: hidden; pointer-events: none; } }
@media (max-width: 768px) {
  .preloader { transition: opacity .25s ease, visibility .25s ease; animation: hectorPreOut .3s ease .45s forwards; }
}
body.loaded .preloader { opacity: 0; visibility: hidden; pointer-events: none; }
.preloader-inner { width: min(360px, 80vw); display: flex; flex-direction: column; align-items: center; gap: 20px; }
.preloader-mark { display: flex; align-items: center; gap: 10px; font-family: var(--font-mono); font-weight: 800; font-size: 22px; color: var(--text); }
.preloader-mark svg { width: 30px; height: 30px; }
.preloader-bar {
  width: 100%; height: 4px; border-radius: 2px; overflow: hidden;
  background: var(--surface); border: 1px solid var(--surface-border);
}
.preloader-fill { width: 0%; height: 100%; background: var(--accent); box-shadow: var(--glow); transition: width .08s linear; }
.preloader-meta {
  width: 100%; display: flex; justify-content: space-between;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .15em; color: var(--text-dim);
}
.preloader-pct { color: var(--accent); font-weight: 700; }
.preloader-brand { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.preloader-tagline {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: .25em;
  color: var(--text-dim); text-transform: uppercase;
}

/* ===== Hero ===== */
.hero { padding: 90px 0 70px; }
.hero-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 60px; align-items: start; }
.terminal-bar {
  display: flex; align-items: center; gap: 10px; margin-bottom: 28px;
  font-family: var(--font-mono); font-size: 12px; color: var(--text-dim);
}
.dot { width: 10px; height: 10px; border-radius: 50%; }
.dot.r { background: var(--accent-3); } .dot.y { background: var(--accent-2); } .dot.g { background: var(--accent); }
.terminal-bar .path { margin-left: 8px; opacity: .7; }

h1 {
  font-family: var(--font-mono);
  font-size: clamp(32px, 5.4vw, 60px);
  line-height: 1.18; font-weight: 800; letter-spacing: -.01em;
}
h1 .accent { color: var(--accent); text-shadow: var(--glow); }
h1 .cursor {
  display: inline-block; width: .5em; height: .9em; background: var(--accent);
  vertical-align: text-bottom; animation: blink 1s steps(1) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

.hero p.lead {
  margin-top: 24px; font-size: 17px; color: var(--text-dim);
  max-width: 560px; line-height: 1.75; font-family: var(--font-sans);
}
.hero-cta { margin-top: 36px; display: flex; gap: 14px; flex-wrap: wrap; }

.status-panel {
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px;
  padding: 22px; font-family: var(--font-mono); font-size: 13px;
}
.status-panel .title { color: var(--accent); font-weight: 700; margin-bottom: 16px; letter-spacing: .05em; font-size: 12px; }
.status-row { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px dashed var(--surface-border); color: var(--text-dim); }
.status-row:last-child { border-bottom: none; }
.status-row span:last-child { color: var(--text); font-weight: 600; }
.status-row .ok { color: var(--accent); }
.status-row .warn { color: var(--accent-2); }

/* ===== Section heading ===== */
.section { padding: 90px 0; }
.section-head { margin-bottom: 50px; }
.section-tag {
  font-family: var(--font-mono); font-size: 12px; color: var(--accent);
  display: flex; align-items: center; gap: 10px; margin-bottom: 14px; letter-spacing: .08em;
}
.section-tag::before { content: '//'; opacity: .6; }
.section-tag::after { content: ''; flex: 1; height: 1px; background: var(--surface-border); }
.section-head h2 { font-family: var(--font-mono); font-size: clamp(24px,3.6vw,38px); font-weight: 700; line-height: 1.3; }
.section-head p { margin-top: 14px; color: var(--text-dim); font-size: 15.5px; max-width: 640px; line-height: 1.7; font-family: var(--font-sans); }

/* ===== Services ===== */
.services-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.service-card {
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px;
  padding: 30px; position: relative; min-width: 0;
  opacity: 0; transform: translateY(30px);
  transition: border-color .3s, box-shadow .3s;
}
.service-card.visible { animation: rise .6s ease forwards; }
@keyframes rise { to { opacity: 1; transform: translateY(0); } }
.service-card:hover { border-color: var(--card-color); box-shadow: 0 0 30px -10px var(--card-color); }
.service-card .head-row { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 18px; }
.service-card .id-tag {
  font-family: var(--font-mono); font-size: 11px; color: var(--card-color);
  border: 1px solid var(--card-color); border-radius: 3px; padding: 4px 10px; letter-spacing: .08em;
}
.service-card .priority { font-family: var(--font-mono); font-size: 11px; color: var(--text-dim); }
.service-card h3 { font-family: var(--font-mono); font-size: 19px; font-weight: 700; margin-bottom: 10px; }
.service-card p { color: var(--text-dim); line-height: 1.7; margin-bottom: 18px; font-size: 14.5px; font-family: var(--font-sans); }
.service-card .sub-list { list-style: none; display: flex; flex-direction: column; gap: 9px; font-family: var(--font-mono); font-size: 13px; }
.service-card .sub-list li { display: flex; align-items: center; gap: 10px; color: var(--text); }
.service-card .sub-list li::before { content: '['; color: var(--card-color); }
.service-card .sub-list li::after { content: ']'; color: var(--card-color); }
.service-card.span-2 { grid-column: span 2; }
.service-card.span-2 .sub-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px 24px; }
.service-card .more {
  margin-top: 22px; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-mono); font-weight: 600; font-size: 13px; text-decoration: none; color: var(--card-color);
}

/* ===== How it works ===== */
.steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; border: 1px solid var(--surface-border); border-radius: 6px; overflow: hidden; }
.step {
  padding: 28px 24px; border-right: 1px solid var(--surface-border);
  opacity: 0; transform: translateY(20px); min-width: 0;
}
.step:last-child { border-right: none; }
.step.visible { animation: rise .6s ease forwards; }
.step .step-num { font-family: var(--font-mono); font-size: 28px; font-weight: 800; color: var(--accent); opacity: .5; }
.step h3 { font-family: var(--font-mono); font-size: 15px; margin: 12px 0 8px; font-weight: 700; }
.step p { color: var(--text-dim); font-size: 13.5px; line-height: 1.6; font-family: var(--font-sans); }

/* ===== Tech log ===== */
.tech-log {
  font-family: var(--font-mono); font-size: 13.5px; line-height: 2.1;
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px; padding: 28px 32px;
}
.tech-log .line { display: flex; gap: 14px; flex-wrap: wrap; }
.tech-log .ts { color: var(--text-dim); }
.tech-log .ok-tag { color: var(--accent); }
.tech-log .ru-tag { color: var(--accent-2); }
.compliance-note {
  margin-top: 28px; padding-top: 24px; border-top: 1px dashed var(--surface-border);
  color: var(--text-dim); font-size: 14.5px; line-height: 1.8; font-family: var(--font-sans);
}
.compliance-note b { color: var(--accent); font-family: var(--font-mono); }

/* ===== Cases ===== */
.cases-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.case-card {
  border: 1px solid var(--surface-border); border-radius: 6px; overflow: hidden; background: var(--surface);
  opacity: 0; transform: translateY(30px); min-width: 0;
}
.case-card.visible { animation: rise .6s ease forwards; }
.case-cover {
  height: 130px; display: flex; align-items: flex-start; justify-content: space-between;
  padding: 16px; font-family: var(--font-mono); font-size: 11px; color: var(--text-dim);
  border-bottom: 1px solid var(--surface-border);
  background:
    repeating-linear-gradient(135deg, var(--cover-c) 0px, var(--cover-c) 1px, transparent 1px, transparent 14px);
}
.case-cover .status { color: var(--accent); }
.case-body { padding: 22px; }
.case-body h3 { font-family: var(--font-mono); font-size: 16px; margin-bottom: 10px; font-weight: 700; }
.case-body p { color: var(--text-dim); font-size: 13.5px; line-height: 1.65; font-family: var(--font-sans); }

/* ===== FAQ ===== */
.faq-list { display: flex; flex-direction: column; gap: 0; border: 1px solid var(--surface-border); border-radius: 6px; overflow: hidden; }
.faq-item { border-bottom: 1px solid var(--surface-border); }
.faq-item:last-child { border-bottom: none; }
.faq-q {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  padding: 20px 26px; display: flex; justify-content: space-between; align-items: center; gap: 24px;
  font-family: var(--font-mono); font-size: 14.5px; font-weight: 600; color: var(--text);
  transition: background .2s;
}
.faq-q:hover { background: var(--surface); }
.faq-q .icon { color: var(--accent); font-size: 14px; }
.faq-item.open .faq-q { color: var(--accent); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .35s ease; color: var(--text-dim); font-size: 14.5px; line-height: 1.75; padding: 0 26px; font-family: var(--font-sans); }
.faq-item.open .faq-a { max-height: 260px; padding-bottom: 22px; }

/* ===== CTA ===== */
.cta-section {
  border: 1px solid var(--accent); border-radius: 6px;
  padding: 56px; display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: center;
  background: var(--surface); box-shadow: var(--glow);
  position: relative;
}
.cta-section::before {
  content: '// READY TO DEPLOY'; position: absolute; top: -12px; left: 32px;
  background: var(--bg); padding: 0 12px; font-family: var(--font-mono); font-size: 12px; color: var(--accent); letter-spacing: .1em;
}
.cta-section h2 { font-family: var(--font-mono); font-size: clamp(24px,3.6vw,36px); line-height: 1.3; margin-bottom: 14px; font-weight: 700;}
.cta-section p { font-size: 15px; line-height: 1.7; max-width: 460px; color: var(--text-dim); font-family: var(--font-sans); }
.cta-section > * { min-width: 0; }
.form-grid { display: flex; flex-direction: column; gap: 12px; font-family: var(--font-mono); min-width: 0; max-width: 100%; }
.form-grid input, .form-grid textarea { max-width: 100%; }
.form-grid input, .form-grid textarea {
  width: 100%; padding: 15px 18px; border-radius: 4px; border: 1px solid var(--surface-border);
  background: var(--bg); color: var(--text); font-family: var(--font-mono); font-size: 14px; outline: none;
}
.form-grid input:focus, .form-grid textarea:focus { border-color: var(--accent); }
.form-grid input::placeholder, .form-grid textarea::placeholder { color: var(--text-dim); }
.form-note { font-size: 11.5px; color: var(--text-dim); }
.form-note a { color: var(--accent); }

/* ===== Footer ===== */
footer { padding: 60px 0 30px; border-top: 1px solid var(--surface-border); margin-top: 40px; }
.footer-grid { display: grid; grid-template-columns: 1.4fr repeat(5,1fr); gap: 32px; padding-bottom: 40px; }
.footer-grid h3 { font-family: var(--font-mono); font-size: 12px; text-transform: uppercase; letter-spacing: .12em; color: var(--accent); margin-bottom: 16px; font-weight: 700; }
.footer-grid ul { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.footer-grid a { color: var(--text-dim); text-decoration: none; font-size: 13.5px; font-family: var(--font-mono); }
.footer-grid a:hover { color: var(--accent); }
.footer-bottom { border-top: 1px solid var(--surface-border); padding-top: 24px; display: flex; justify-content: space-between; color: var(--text-dim); font-size: 12.5px; font-family: var(--font-mono); flex-wrap: wrap; gap: 12px; }
.footer-tagline {
  font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em;
  color: var(--accent-2); margin-bottom: 14px;
}

@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; }
  .services-grid, .cases-grid { grid-template-columns: 1fr 1fr; }
  .steps { grid-template-columns: repeat(2,1fr); }
  .step { border-bottom: 1px solid var(--surface-border); }
  .cta-section { grid-template-columns: 1fr; padding: 32px; }
  .footer-grid { grid-template-columns: repeat(2,1fr); }

  .nav-burger { display: flex; }
  .nav-links {
    display: flex; flex-direction: column; gap: 0;
    position: absolute; top: 100%; left: 0; right: 0;
    background: var(--bg); border-bottom: 1px solid var(--surface-border);
    max-height: 0; overflow: hidden; transition: max-height .3s ease;
    font-size: 14px;
  }
  .nav-links li { border-top: 1px solid var(--surface-border); }
  .nav-links a { display: block; padding: 16px 32px; }
  .nav.nav-open .nav-links { max-height: 70vh; overflow-y: auto; }
  .nav-right .btn-primary, .nav-right .theme-toggle { display: none; }
  .nav-links-cta { display: block; }
  .nav-links-cta a { color: var(--accent); font-weight: 700; }
}
@media (max-width: 640px) {
  .services-grid, .cases-grid { grid-template-columns: 1fr; }
  .service-card.span-2 { grid-column: span 1; }
  .service-card.span-2 .sub-list { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .step { border-right: none; }
}

/* ===== Cookie banner ===== */
.cookie-banner {
  position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 1000;
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px;
  max-width: 760px; margin: 0 auto;
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px;
  padding: 18px 22px; box-shadow: 0 10px 40px -10px rgba(0,0,0,.5);
  transform: translateY(120%); opacity: 0; transition: transform .4s ease, opacity .4s ease;
}
.cookie-banner.visible { transform: translateY(0); opacity: 1; }
.cookie-banner p {
  flex: 1 1 320px; margin: 0; color: var(--text-dim); font-size: 13.5px; line-height: 1.6;
  font-family: var(--font-sans);
}
.cookie-banner a { color: var(--accent); }
.cookie-banner .btn { flex-shrink: 0; }
@media (max-width: 640px) {
  .cookie-banner { left: 12px; right: 12px; bottom: 12px; padding: 16px; }
  .cookie-banner .btn { width: 100%; text-align: center; }
}

/* ===== Legal pages ===== */
.legal-page { max-width: 820px; margin: 0 auto; font-family: var(--font-sans); color: var(--text); }
.legal-page h1 { font-family: var(--font-mono); font-size: 32px; margin-bottom: 8px; }
.legal-page .legal-updated { color: var(--text-dim); font-size: 13px; font-family: var(--font-mono); margin-bottom: 40px; }
.legal-page h2 {
  font-family: var(--font-mono); font-size: 18px; margin: 36px 0 14px; padding-top: 16px;
  border-top: 1px solid var(--surface-border); color: var(--accent);
}
.legal-page h2:first-of-type { border-top: none; padding-top: 0; }
.legal-page p, .legal-page li { color: var(--text-dim); line-height: 1.8; font-size: 14.5px; margin-bottom: 12px; }
.legal-page ul, .legal-page ol { padding-left: 22px; margin-bottom: 12px; }
.legal-page a { color: var(--accent); }
.legal-page strong { color: var(--text); }
.legal-page .legal-card {
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px;
  padding: 22px 26px; margin-top: 16px;
}
.legal-page .legal-card p { margin-bottom: 6px; }
.legal-page .legal-card p:last-child { margin-bottom: 0; }

/* ===== Inner page hero ===== */
.page-hero { padding: 60px 0 50px; }
.page-hero h1 { font-size: clamp(30px, 5vw, 48px); }
.page-hero p.lead { margin-top: 20px; }

/* ===== Contact ===== */
.contact-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: 40px; align-items: start; }
.contact-card {
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px;
  padding: 28px 32px; font-family: var(--font-mono); font-size: 14px;
}
.contact-card + .contact-card { margin-top: 20px; }
.contact-card .title { color: var(--accent); font-weight: 700; margin-bottom: 16px; letter-spacing: .05em; font-size: 12px; }
.contact-row { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px dashed var(--surface-border); color: var(--text-dim); }
.contact-row:last-child { border-bottom: none; }
.contact-row span:last-child { color: var(--text); text-align: right; }
.contact-row a { color: var(--accent); text-decoration: none; }
.contact-row a:hover { text-decoration: underline; }

/* ===== About ===== */
.about-lead { max-width: 720px; color: var(--text-dim); font-size: 15.5px; line-height: 1.8; font-family: var(--font-sans); }
.about-lead + .about-lead { margin-top: 14px; }
.pillars-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 16px; margin-top: 8px; }
.pillar-card {
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px;
  padding: 22px 18px; text-align: center;
}
.pillar-card .num { font-family: var(--font-mono); font-size: 12px; color: var(--accent); margin-bottom: 10px; }
.pillar-card .name { font-family: var(--font-mono); font-size: 14px; font-weight: 700; line-height: 1.4; }
.requisites-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; align-items: start; }
.values-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.value-card {
  background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px; padding: 26px;
}
.value-card .id-tag {
  font-family: var(--font-mono); font-size: 11px; color: var(--accent);
  border: 1px solid var(--accent); border-radius: 3px; padding: 4px 10px; letter-spacing: .08em;
  display: inline-block; margin-bottom: 14px;
}
.value-card h3 { font-family: var(--font-mono); font-size: 17px; margin-bottom: 10px; }
.value-card p { color: var(--text-dim); font-size: 14px; line-height: 1.7; font-family: var(--font-sans); }
.value-card .more {
  margin-top: 18px; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-mono); font-weight: 600; font-size: 13px; text-decoration: none; color: var(--accent);
}
.value-card h3 a { color: inherit; text-decoration: none; }
@media (max-width: 900px) {
  .contact-grid { grid-template-columns: 1fr; }
  .pillars-grid { grid-template-columns: repeat(2,1fr); }
  .values-grid { grid-template-columns: 1fr; }
  .requisites-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .pillars-grid { grid-template-columns: 1fr; }
  .contact-row { flex-direction: column; gap: 2px; }
  .contact-row span:last-child { text-align: left; }
}

/* ===== Blog article ===== */
.article-meta { display: flex; gap: 16px; align-items: center; margin-bottom: 20px; font-family: var(--font-mono); font-size: 12px; flex-wrap: wrap; }
.article-tag { background: var(--accent); color: var(--bg); border-radius: 3px; padding: 3px 10px; font-weight: 700; letter-spacing: .06em; }
.article-date, .article-read { color: var(--text-dim); }
.article-content { max-width: 820px; margin: 0 auto; font-family: var(--font-sans); }
.article-content h2 { font-family: var(--font-mono); font-size: 22px; margin: 44px 0 16px; padding-top: 20px; border-top: 1px solid var(--surface-border); color: var(--text); }
.article-content h2:first-of-type { border-top: none; padding-top: 0; margin-top: 0; }
.article-content h3 { font-family: var(--font-mono); font-size: 16px; color: var(--accent); margin: 26px 0 10px; }
.article-content p { color: var(--text-dim); line-height: 1.8; font-size: 15px; margin-bottom: 14px; }
.article-content ul, .article-content ol { color: var(--text-dim); font-size: 15px; line-height: 1.8; padding-left: 22px; margin-bottom: 16px; }
.article-content li { margin-bottom: 6px; }
.article-content strong { color: var(--text); }
.article-content a { color: var(--accent); }
.article-content pre { background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px; padding: 18px 22px; overflow-x: auto; margin: 20px 0; }
.article-content code { font-family: var(--font-mono); font-size: 13px; color: var(--accent-2); }
.article-content pre code { color: var(--text); font-size: 13px; line-height: 1.6; }
.article-content h1 { font-family: var(--font-mono); font-size: 32px; line-height: 1.25; margin: 0 0 24px; color: var(--text); }
.article-content img { max-width: 100%; height: auto; display: block; border-radius: 8px; margin: 0 0 28px; }
.article-content table { max-width: 100%; display: block; overflow-x: auto; }
.article-content .article-stack { font-family: var(--font-mono); font-size: 13px; color: var(--text-dim); border-top: 1px solid var(--surface-border); padding-top: 16px; margin-top: 30px; }
.article-quote { border-left: 3px solid var(--accent); padding: 14px 20px; margin: 20px 0; background: var(--surface); border-radius: 0 6px 6px 0; color: var(--text-dim); font-size: 14.5px; line-height: 1.7; }
.article-toc { background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px; padding: 22px 28px; margin-bottom: 40px; }
.article-toc .section-tag { margin-bottom: 12px; }
.article-toc ol { padding-left: 20px; margin: 0; }
.article-toc li { margin-bottom: 6px; }
.article-toc a { font-family: var(--font-mono); font-size: 13px; color: var(--text-dim); text-decoration: none; }
.article-toc a:hover { color: var(--accent); }
.table-wrapper { overflow-x: auto; margin: 20px 0; }
.article-table { width: 100%; border-collapse: collapse; font-family: var(--font-sans); font-size: 14px; }
.article-table th { background: var(--surface); border: 1px solid var(--surface-border); padding: 12px 16px; text-align: left; font-family: var(--font-mono); font-size: 12px; color: var(--accent); letter-spacing: .05em; }
.article-table td { border: 1px solid var(--surface-border); padding: 11px 16px; color: var(--text-dim); line-height: 1.5; }
.article-table tr:hover td { background: var(--surface); }
@media (max-width: 640px) {
  .article-content h2 { font-size: 19px; }
  .article-table th, .article-table td { padding: 8px 10px; font-size: 13px; }
}
/* ===== Form checkbox consent ===== */
.form-checkbox { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; margin-bottom: 4px; }
.form-checkbox input[type="checkbox"] { width: 16px; height: 16px; min-width: 16px; margin-top: 2px; accent-color: var(--accent); cursor: pointer; }
.form-checkbox span { font-size: 13px; color: var(--text-dim); line-height: 1.55; font-family: var(--font-sans); }
.form-checkbox a { color: var(--accent); text-decoration: none; }
.form-checkbox a:hover { text-decoration: underline; }

/* ===== Document examples in blog article ===== */
.article-doc-example { background: var(--surface); border: 1px solid var(--surface-border); border-radius: 8px; overflow: hidden; margin: 20px 0 32px; }
.doc-header { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 14px 20px; background: var(--bg); border-bottom: 1px solid var(--surface-border); flex-wrap: wrap; }
.doc-title { font-family: var(--font-mono); font-size: 13px; font-weight: 700; color: var(--text); }
.doc-meta { font-family: var(--font-mono); font-size: 11px; color: var(--text-dim); }
.doc-sections { padding: 8px 0; }
.doc-section { display: grid; grid-template-columns: 32px 180px 1fr; gap: 8px; align-items: baseline; padding: 9px 20px; border-bottom: 1px dashed var(--surface-border); }
.doc-section:last-child { border-bottom: none; }
.doc-num { font-family: var(--font-mono); font-size: 11px; color: var(--accent); }
.doc-label { font-family: var(--font-mono); font-size: 12px; font-weight: 600; color: var(--text); }
.doc-value { font-family: var(--font-sans); font-size: 13px; color: var(--text-dim); line-height: 1.5; }
.doc-link { display: inline-block; padding: 10px 20px; font-family: var(--font-mono); font-size: 12px; color: var(--accent); text-decoration: none; border-top: 1px solid var(--surface-border); width: 100%; box-sizing: border-box; }
.doc-link:hover { background: var(--bg); }
@media (max-width: 640px) {
  .doc-section { grid-template-columns: 28px 1fr; grid-template-rows: auto auto; }
  .doc-value { grid-column: 2; }
  .doc-header { flex-direction: column; gap: 4px; }
}
/* ===== Хлебные крошки (видимые, контентные страницы) 2026-08-22 ===== */
.breadcrumbs{font-size:13px;margin:2px 0 20px;display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:#6b7280;line-height:1.4;}
.breadcrumbs a{color:#6b7280;text-decoration:none;transition:color .2s;}
.breadcrumbs a:hover{color:var(--accent,#0a84ff);}
.breadcrumbs .bc-sep{opacity:.45;}
.breadcrumbs .bc-current{color:#111827;}
@media(max-width:640px){.breadcrumbs{font-size:12px;gap:5px;}}

/* ссылки в терминальном пути шапки статьи 2026-08-22 */
.terminal-bar .path a,.page-hero .path a{color:var(--accent,#0a84ff);text-decoration:none;}
.terminal-bar .path a:hover,.page-hero .path a:hover{text-decoration:underline;}

/* контакты в шапке/подвале + соцсети 2026-08-22 */
.header-contacts{display:flex;align-items:center;gap:10px;margin-right:6px;}
.header-contacts .hc-phone{font-weight:600;font-size:14px;color:var(--text,#111);text-decoration:none;white-space:nowrap;}
.header-contacts .hc-phone:hover{color:var(--accent);}
.soc{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;transition:transform .15s;}
.soc:hover{transform:translateY(-2px);}
.soc-tg{color:#229ED9;}
.soc-max{color:#1C7CFF;}
.footer-contacts{margin-top:16px;display:flex;flex-direction:column;gap:6px;}
.footer-contacts .fc-line{color:var(--text-dim);font-size:14px;text-decoration:none;display:inline-block;}
.footer-contacts a.fc-line:hover{color:var(--accent);}
.footer-contacts .social-icons{display:flex;gap:10px;margin-top:8px;}
@media(max-width:1200px){.header-contacts .hc-phone{display:none;}}
@media(max-width:860px){.header-contacts{display:none;}}

/* контакты в мобильном меню 2026-08-22 */
.nav-mobile-contacts{display:none;}
@media(max-width:768px){
  .nav-mobile-contacts{display:block;padding:16px 32px;}
  .nav-mobile-contacts a::before{display:none!important;content:none!important;}
  .nav-mobile-contacts a.nmc-line{display:block;padding:0 0 8px;color:var(--text);font-family:var(--font-sans);font-size:15px;text-decoration:none;}
  .nav-mobile-contacts a.nmc-line:hover{color:var(--accent);}
  .nav-mobile-contacts .nmc-soc{display:flex;gap:14px;margin-top:6px;}
  .nav-mobile-contacts .nmc-soc a.soc{padding:0;width:38px;height:38px;}
}

/* фирменные цвета соцсетей везде (перекрываем наследование) 2026-08-22 */
.soc-tg,.footer-contacts .soc-tg,.nav-mobile-contacts .soc-tg{color:#229ED9 !important;}
.soc-max,.footer-contacts .soc-max,.nav-mobile-contacts .soc-max{color:#1C7CFF !important;}

/* top-bar с контактами над меню 2026-08-22 */
.topbar{border-bottom:1px solid var(--surface-border);background:var(--surface,#f6f6f4);}
.topbar-inner{display:flex;align-items:center;justify-content:flex-end;gap:18px;min-height:38px;font-size:13.5px;}
.topbar .tb-item{color:var(--text-dim);text-decoration:none;white-space:nowrap;}
.topbar .tb-item:hover{color:var(--accent);}
.topbar .tb-phone{font-weight:600;}
.topbar .tb-soc{display:flex;align-items:center;gap:8px;}
.topbar .soc{width:26px;height:26px;}
@media(max-width:640px){ .topbar-inner{justify-content:center;gap:14px;flex-wrap:wrap;padding:6px 0;} .topbar .tb-mail{display:none;} }

/* footer-bottom: контакты в правом краю нижней строки (перенос из бренд-колонки) */
.footer-bottom{align-items:flex-start;}
.fb-info{display:flex;flex-direction:column;gap:10px;}
.footer-bottom .fb-contacts{margin-top:0;align-items:flex-end;text-align:right;}
.footer-bottom .fb-contacts .social-icons{justify-content:flex-end;margin-top:6px;}
@media (max-width:640px){
  .footer-bottom{flex-direction:column;}
  .footer-bottom .fb-contacts{align-items:flex-start;text-align:left;}
  .footer-bottom .fb-contacts .social-icons{justify-content:flex-start;}
}
/* end footer-bottom */

/* footer-contacts: горизонтальный ряд (1–2 строки), правка v2 */
.footer-bottom .fb-contacts{margin-top:0;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 20px;max-width:62%;text-align:right;}
.footer-bottom .fb-contacts .fc-line{font-size:13px;white-space:nowrap;}
.footer-bottom .fb-contacts .social-icons{margin-top:0;gap:12px;}
@media (max-width:640px){
  .footer-bottom{flex-direction:column;}
  .footer-bottom .fb-contacts{justify-content:flex-start;max-width:100%;text-align:left;}
}
/* end fb-contacts v2 */

/* footer-bottom: одна линия — копирайт слева, контакты справа (v3, no-wrap desktop) */
.footer-bottom{flex-wrap:nowrap;align-items:center;}
.footer-bottom .fb-info{flex:1 1 auto;min-width:0;}
.footer-bottom .fb-contacts{flex:0 0 auto;max-width:none;}
@media (max-width:900px){
  .footer-bottom{flex-wrap:wrap;align-items:flex-start;}
  .footer-bottom .fb-info{flex:1 1 100%;}
  .footer-bottom .fb-contacts{justify-content:flex-start;text-align:left;}
}
/* end v3 */

/* nav-mobile-contacts: адрес-строка (span) как блок */
.nav-mobile-contacts span.nmc-line{display:block;padding:0 0 8px;color:var(--text);font-family:var(--font-sans);font-size:15px;}
/* end nmc-addr */

/* ===== Reusable image gallery + lightbox (site-wide) — .ig-carousel ===== */
.ig-carousel{position:relative;margin:8px 0 4px;}
.ig-track{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 14px;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.ig-track::-webkit-scrollbar{display:none;}
.ig-card{flex:0 0 auto;height:clamp(240px,52vw,340px);border:1px solid var(--surface-border);border-radius:10px;overflow:hidden;cursor:zoom-in;scroll-snap-align:start;background:var(--surface);position:relative;transition:transform .35s cubic-bezier(.22,.61,.36,1),box-shadow .35s ease,border-color .35s ease;}
.ig-card img{height:100%;width:auto;object-fit:contain;display:block;}
.ig-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 60%,rgba(0,0,0,.55) 100%);opacity:0;transition:opacity .35s ease;pointer-events:none;}
.ig-card .ig-cap{position:absolute;left:0;right:0;bottom:0;padding:12px 14px;z-index:2;color:#fff;font-size:12.5px;line-height:1.3;font-weight:600;transform:translateY(6px);opacity:0;transition:transform .35s ease,opacity .35s ease;pointer-events:none;}
.ig-card:hover{transform:translateY(-6px);box-shadow:0 14px 34px rgba(0,0,0,.28);border-color:var(--accent);}
.ig-card:hover::after{opacity:1;}
.ig-card:hover .ig-cap{transform:translateY(0);opacity:1;}
.ig-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:1px solid var(--surface-border);background:var(--surface);color:var(--text,#111);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;transition:background .2s,color .2s,opacity .2s,border-color .2s;box-shadow:0 6px 18px rgba(0,0,0,.18);}
.ig-nav:hover{background:var(--accent);border-color:var(--accent);color:#fff;}
.ig-nav svg{width:20px;height:20px;}
.ig-nav.prev{left:-10px;} .ig-nav.next{right:-10px;}
.ig-nav[disabled]{opacity:0;pointer-events:none;}
.ig-lb{position:fixed;inset:0;z-index:10001;display:flex;align-items:center;justify-content:center;background:rgba(10,10,14,.92);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;padding:40px 16px;}
.ig-lb.open{opacity:1;visibility:visible;}
.ig-lb-stage{position:relative;max-width:min(92vw,860px);width:100%;display:flex;flex-direction:column;align-items:center;}
.ig-lb-img{max-width:100%;max-height:84vh;border-radius:10px;box-shadow:0 24px 70px rgba(0,0,0,.6);transform:scale(.94);opacity:0;transition:transform .38s cubic-bezier(.22,.61,.36,1),opacity .3s;background:#fff;}
.ig-lb.open .ig-lb-img{transform:scale(1);opacity:1;}
.ig-lb-cap{margin-top:14px;text-align:center;color:#fff;}
.ig-lb-cap b{display:block;font-size:16px;margin-bottom:3px;}
.ig-lb-cap span{font-size:13px;color:rgba(255,255,255,.6);}
.ig-lb-close{position:absolute;top:-34px;right:0;width:36px;height:36px;border:none;background:transparent;color:#fff;cursor:pointer;opacity:.8;transition:opacity .2s,transform .2s;display:flex;align-items:center;justify-content:center;}
.ig-lb-close:hover{opacity:1;transform:rotate(90deg);}
.ig-lb-arrow{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,border-color .2s;}
.ig-lb-arrow:hover{background:var(--accent);border-color:var(--accent);}
.ig-lb-arrow.prev{left:max(16px,3vw);} .ig-lb-arrow.next{right:max(16px,3vw);}
.ig-lb-arrow svg{width:24px;height:24px;}
.ig-lb-count{position:absolute;top:-32px;left:0;color:rgba(255,255,255,.6);font-size:13px;letter-spacing:.04em;}
@media(max-width:640px){.ig-nav{display:none;}.ig-lb-arrow{width:44px;height:44px;}.ig-lb-close{top:-30px;}}

/* views counter icon in article meta (added 2026-08-23) */
.article-views{display:inline-flex;align-items:center;gap:6px;color:var(--text-dim);}
.article-views svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;}

/* unified app-icon social icons */
.soc{overflow:hidden;}
.soc svg{width:100%;height:100%;display:block;}
.soc img{width:100%;height:100%;display:block;}

/* hector-promo-banner */
.promo-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); gap: 16px; }
.promo-card { position: relative; display: flex; flex-direction: column; background: var(--surface); border: 1px solid var(--surface-border); border-radius: 6px; padding: 22px 24px; }
.promo-badge {
  display: inline-flex; align-items: center; font-family: var(--font-mono); font-size: 16px; font-weight: 800;
  color: #04140b; background: var(--accent); border-radius: 4px; padding: 6px 14px; letter-spacing: .05em;
  margin-bottom: 12px; align-self: flex-start;
  animation: promoPulse 2s ease-in-out infinite;
}
body[data-theme="light"] .promo-badge { color: #ffffff; animation-name: promoPulseLight; }
@keyframes promoPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(93,255,166,.55); }
  50% { box-shadow: 0 0 0 9px rgba(93,255,166,0); }
}
@keyframes promoPulseLight {
  0%, 100% { box-shadow: 0 0 0 0 rgba(10,143,79,.45); }
  50% { box-shadow: 0 0 0 9px rgba(10,143,79,0); }
}
.promo-title { font-size: 17px; margin: 0 0 8px; }
.promo-text { color: var(--text-dim); font-size: 14px; line-height: 1.5; margin: 0 0 16px; flex: 1 0 auto; }
.promo-foot { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-top: auto; }
.promo-expiry { font-family: var(--font-mono); font-size: 12px; color: var(--accent-3); }
