/* ===== EManagement24 — Blueprint theme ===== */

@font-face{
  font-family:'Oswald'; font-style:normal; font-weight:500 700; font-display:swap;
  src:url('../fonts/oswald-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'Oswald'; font-style:normal; font-weight:500 700; font-display:swap;
  src:url('../fonts/oswald-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122;
}
@font-face{
  font-family:'PT Sans'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/ptsans-400-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'PT Sans'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/ptsans-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+2000-206F,U+20AC,U+2122;
}
@font-face{
  font-family:'PT Sans'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/ptsans-700-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'PT Sans'; font-style:normal; font-weight:700; font-display:swap;
  src:url('../fonts/ptsans-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+2000-206F,U+20AC,U+2122;
}
@font-face{
  font-family:'PT Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/ptmono-400-cyrillic.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}
@font-face{
  font-family:'PT Mono'; font-style:normal; font-weight:400; font-display:swap;
  src:url('../fonts/ptmono-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+2000-206F,U+20AC,U+2122;
}

:root{
  --paper:#EDF1EC; --paper-raised:#F7F9F5;
  --ink:#14212B; --ink-dim:#4B5A5F;
  --line: rgba(20,33,43,.12); --line-strong: rgba(20,33,43,.28);
  --blueprint-ink:#0F2A3D; --blueprint-line: rgba(255,255,255,.14); --blueprint-line-strong: rgba(255,255,255,.34);
  --blueprint-text:#DCE6EC; --blueprint-text-dim:#93ABBC;
  --signal:#C96A2C; --signal-ink:#8A431B; --signal-contrast:#2B1206;
  --font-display:'Oswald','Arial Narrow',sans-serif;
  --font-body:'PT Sans','Segoe UI',sans-serif;
  --font-mono:'PT Mono','Courier New',monospace;
  --container:1160px;
  --space-1:.5rem; --space-2:1rem; --space-3:1.75rem; --space-4:2.75rem; --space-5:4.5rem;
}
@media (prefers-color-scheme: dark){
  :root{ --paper:#12181D; --paper-raised:#181F25; --ink:#E6EBE5; --ink-dim:#98A6A0;
    --line: rgba(230,235,229,.10); --line-strong: rgba(230,235,229,.24);
    --signal:#E08A46; --signal-ink:#F0B27E; --signal-contrast:#1A0F06; }
}
:root[data-theme="dark"]{ --paper:#12181D; --paper-raised:#181F25; --ink:#E6EBE5; --ink-dim:#98A6A0;
  --line: rgba(230,235,229,.10); --line-strong: rgba(230,235,229,.24);
  --signal:#E08A46; --signal-ink:#F0B27E; --signal-contrast:#1A0F06; }
:root[data-theme="light"]{ --paper:#EDF1EC; --paper-raised:#F7F9F5; --ink:#14212B; --ink-dim:#4B5A5F;
  --line: rgba(20,33,43,.12); --line-strong: rgba(20,33,43,.28);
  --signal:#C96A2C; --signal-ink:#8A431B; --signal-contrast:#2B1206; }

*{ box-sizing:border-box; }
html{ font-size:100%; scroll-behavior:smooth; }
body{ margin:0; background:var(--paper); color:var(--ink); font-family:var(--font-body); line-height:1.6; -webkit-font-smoothing:antialiased; }
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto;} *{animation-duration:.001ms !important; transition-duration:.001ms !important;} }
img,svg{ display:block; max-width:100%; }
a{ color:inherit; }
h1,h2,h3{ font-family:var(--font-display); text-transform:uppercase; text-wrap:balance; margin:0; font-weight:600; }
p{ margin:0; }
ul,ol{ margin:0; padding:0; }
li{ list-style:none; }
button,input,textarea{ font-family:inherit; font-size:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--signal); outline-offset:3px; }

.container{ max-width:var(--container); margin-inline:auto; padding-inline:clamp(1.25rem,4vw,3rem); }
.eyebrow{ display:inline-flex; align-items:center; gap:.5rem; font-family:var(--font-mono); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--signal-ink); }
.eyebrow::before{ content:""; width:.9rem; height:1px; background:var(--signal-ink); }
.eyebrow--on-dark{ color:var(--signal); }
.eyebrow--on-dark::before{ background:var(--signal); }

.grid-surface{
  background-image:
    repeating-linear-gradient(0deg, var(--line) 0 1px, transparent 1px 56px),
    repeating-linear-gradient(90deg, var(--line) 0 1px, transparent 1px 56px);
  background-position:-1px -1px;
}

/* ---------- NAV ---------- */
.nav{ position:sticky; top:0; z-index:50; background:var(--blueprint-ink); border-bottom:1px solid var(--blueprint-line); }
.nav__row{ display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); height:64px; }
.brand{ display:flex; align-items:center; gap:.55rem; text-decoration:none; color:var(--blueprint-text); min-width:0; }
.brand__ring{ flex:none; width:26px; height:26px; color:var(--signal); }
.brand__mark{ font-family:var(--font-mono); font-weight:700; font-size:.8rem; letter-spacing:.03em; background:var(--signal); color:var(--signal-contrast); padding:.2rem .4rem; line-height:1; flex:none; }
.brand__word{ font-family:var(--font-display); text-transform:uppercase; letter-spacing:.08em; font-size:1rem; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.nav__links{ display:flex; align-items:center; gap:var(--space-4); }
.nav__list{ display:flex; gap:var(--space-3); }
.nav__list a{ text-decoration:none; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; color:var(--blueprint-text-dim); padding-block:.4rem; border-bottom:1px solid transparent; transition:color .15s ease,border-color .15s ease; }
.nav__list a:hover, .nav__list a.nav-current{ color:var(--blueprint-text); border-color:var(--signal); }
.nav__actions{ display:flex; align-items:center; gap:var(--space-3); }
.nav__actions .signin{ text-decoration:none; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--blueprint-text-dim); }
.nav__actions .signin:hover{ color:var(--blueprint-text); }
.nav__toggle{ display:none; background:none; border:1px solid var(--blueprint-line-strong); color:var(--blueprint-text); padding:.5rem .7rem; font-family:var(--font-mono); font-size:.75rem; letter-spacing:.05em; cursor:pointer; }

.btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.05em; text-transform:uppercase; text-decoration:none; padding:.65rem 1.15rem; border:1px solid transparent; cursor:pointer; transition:transform .15s ease; }
.btn--primary{ background:var(--signal); color:var(--signal-contrast); font-weight:700; }
.btn--primary:hover{ transform:translateY(-1px); }

/* ---------- HERO ---------- */
.hero{
  background:var(--blueprint-ink); color:var(--blueprint-text);
  background-image:
    repeating-linear-gradient(0deg, var(--blueprint-line) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(90deg, var(--blueprint-line) 0 1px, transparent 1px 64px);
  background-position:-1px -1px;
  border-bottom:1px solid var(--blueprint-line-strong);
}
.hero__inner{ padding-block:var(--space-5) var(--space-4); max-width:44rem; }
.hero h1{ margin-top:var(--space-2); font-size:clamp(2rem,1.5rem + 2.2vw,3.2rem); line-height:1.08; color:#fff; }
.hero p{ margin-top:var(--space-3); color:var(--blueprint-text); max-width:36rem; }

.subscribe{ margin-top:var(--space-4); display:flex; gap:.6rem; max-width:28rem; flex-wrap:wrap; }
.subscribe input{ flex:1; min-width:12rem; background:transparent; border:1px solid var(--blueprint-line-strong); padding:.75rem .9rem; color:#fff; }
.subscribe input::placeholder{ color:var(--blueprint-text-dim); }
.subscribe input:focus{ border-color:var(--signal); }
.subscribe__success{ display:none; font-family:var(--font-mono); font-size:.8rem; margin-top:.6rem; width:100%; color:#8fd6c8; }
.subscribe.success .subscribe__success{ display:block; }
.subscribe.success input,.subscribe.loading input{ opacity:.5; pointer-events:none; }
.subscribe [data-members-error]{ font-family:var(--font-mono); font-size:.8rem; margin-top:.6rem; width:100%; color:#e59a8a; }
.subscribe [data-members-error]:empty{ display:none; }

/* page (non-home) title band — smaller than the home hero */
.page-head{ background:var(--blueprint-ink); color:var(--blueprint-text); border-bottom:1px solid var(--blueprint-line-strong); }
.page-head__inner{ padding-block:var(--space-4) var(--space-3); max-width:46rem; }
.page-head h1{ margin-top:.6rem; font-size:clamp(1.8rem,1.4rem + 1.8vw,2.8rem); color:#fff; }

/* ---------- SECTION / CARDS ---------- */
.section{ padding-block:var(--space-5); }
.section__head{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--space-3); margin-bottom:var(--space-4); flex-wrap:wrap; }
.section__head h2{ font-family:var(--font-mono); text-transform:uppercase; font-size:1.05rem; letter-spacing:.05em; }
.section__head a{ text-decoration:none; font-family:var(--font-mono); font-size:.78rem; letter-spacing:.04em; text-transform:uppercase; color:var(--signal-ink); border-bottom:1px solid var(--signal-ink); padding-bottom:2px; }

.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-3); }
.card{ background:var(--paper-raised); border:1px solid var(--line-strong); display:flex; flex-direction:column; text-decoration:none; color:inherit; }
.card__art{ aspect-ratio:16/10; background:var(--blueprint-ink); position:relative; overflow:hidden; border-bottom:1px solid var(--line-strong); }
.card__art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.card__art .card__art-duotone{ filter:url(#duotone-blueprint); transition:opacity .45s ease, transform .5s ease; }
.card:hover .card__art img{ transform:scale(1.04); }
.card:hover .card__art-duotone{ opacity:0; }
.card__art .card__fallback{ position:absolute; inset:0; width:100%; height:100%; }
.card__body{ padding:var(--space-3); display:flex; flex-direction:column; gap:.6rem; flex:1; }
.card__tag{ font-family:var(--font-mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--signal-ink); }
.card h3{ font-family:var(--font-body); text-transform:none; font-weight:700; font-size:1.05rem; line-height:1.35; letter-spacing:0; }
.card p{ color:var(--ink-dim); font-size:.9rem; line-height:1.55; }

.pagination{ display:flex; justify-content:center; gap:1rem; margin-top:var(--space-4); font-family:var(--font-mono); font-size:.8rem; letter-spacing:.04em; text-transform:uppercase; }
.pagination a{ text-decoration:none; color:var(--signal-ink); border-bottom:1px solid var(--signal-ink); padding-bottom:2px; }
.pagination span{ color:var(--ink-dim); }

/* ---------- POST / PAGE PROSE ---------- */
.post{ padding-block:var(--space-5); }
.post__meta{ display:flex; gap:1rem; flex-wrap:wrap; font-family:var(--font-mono); font-size:.75rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-dim); margin-top:var(--space-2); }
.post__feature{ margin-top:var(--space-4); border:1px solid var(--line-strong); overflow:hidden; position:relative; }
.post__feature-base{ width:100%; display:block; transition:transform .6s ease; }
.post__feature-duotone{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:url(#duotone-blueprint); transition:opacity .5s ease, transform .6s ease; }
.post__feature:hover .post__feature-base,
.post__feature:hover .post__feature-duotone{ transform:scale(1.03); }
.post__feature:hover .post__feature-duotone{ opacity:0; }
@media (prefers-reduced-motion: reduce){
  .card__art img, .card__art-duotone, .post__feature-base, .post__feature-duotone{ transition:none; }
}
.post-content{ max-width:42rem; margin-inline:auto; padding-inline:clamp(1.25rem,4vw,3rem); margin-top:var(--space-4); padding-bottom:var(--space-5); font-size:1.05rem; }
.post-content p{ margin-top:1.1em; line-height:1.75; }
.post-content p:first-child{ margin-top:0; }
.post-content h2{ margin-top:2.2em; font-size:1.5rem; }
.post-content h3{ margin-top:1.8em; font-size:1.15rem; }
.post-content ul,.post-content ol{ margin-top:1.1em; padding-left:1.4rem; }
.post-content li{ list-style:disc; margin-top:.4em; line-height:1.65; }
.post-content ol li{ list-style:decimal; }
.post-content a{ color:var(--signal-ink); text-decoration-color:var(--line-strong); }
.post-content blockquote{ margin:1.6em 0; padding-left:1.2rem; border-left:2px solid var(--signal); font-family:var(--font-body); font-weight:700; font-size:1.15rem; line-height:1.55; color:var(--ink); }

/* Some older articles were written with manual <strong>/<u> line-labels
   instead of real <h2>/<u> heading tags. Style those existing patterns to
   read as proper section headings — no wording is touched, only presentation. */
.post-content br + strong,
.post-content p > strong:first-child:not(:only-child){
  display:block;
  margin-top:2.2em;
  font-family:var(--font-display);
  text-transform:uppercase;
  font-weight:600;
  font-size:1.3rem;
  letter-spacing:.01em;
  color:var(--ink);
}
.post-content u{
  display:inline-block;
  text-decoration:none;
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.05em;
  text-transform:uppercase;
  font-weight:700;
  font-style:normal;
  color:var(--signal-ink);
  margin-top:1.8em;
}
.post-content br + br{ content:""; }
.post-content br + br::before{ content:""; display:block; height:.6em; }
.post-content img{ width:100%; margin-top:1.6em; border:1px solid var(--line-strong); }
.post-content .kg-bookmark-icon{ width:20px; height:20px; margin-top:0; border:none; }
.post-content .kg-bookmark-thumbnail img{ width:100%; height:100%; margin-top:0; border:none; }
.post-content figcaption{ font-family:var(--font-mono); font-size:.8rem; color:var(--ink-dim); margin-top:.5rem; }
.post-content code{ font-family:var(--font-mono); background:var(--paper-raised); padding:.1em .35em; font-size:.9em; }
.post-content hr{ margin:2.4em 0; border:none; border-top:1px solid var(--line-strong); }

/* Koenig editor break-out widths — required by Ghost (gscan) */
.post-content .kg-width-wide{
  width:100%;
  max-width:var(--container);
  margin-left:50%;
  transform:translateX(-50%);
}
.post-content .kg-width-full{
  width:100vw;
  max-width:100vw;
  margin-left:50%;
  transform:translateX(-50%);
}
.post-content .kg-width-wide img,
.post-content .kg-width-full img{ width:100%; margin-top:0; border:none; }
.post-content .kg-width-wide figcaption,
.post-content .kg-width-full figcaption{ text-align:center; }

/* Koenig button cards — ride in a row (wrap on mobile) instead of stacking
   as full-width blocks, and use an outline style rather than solid fill:
   two solid copper blocks back to back is too much accent mass for a page
   where copper is meant to read as "the one signal", not a filled area. */
.post-content .kg-button-card,
.post-content .kg-button-card.kg-align-left,
.post-content .kg-button-card.kg-align-center,
.post-content .kg-button-card.kg-align-right{
  display:inline-flex;
  width:auto;
  vertical-align:top;
  margin:1.2em 1.5em 0 0;
}
.post-content .kg-btn,
.post-content .kg-button-card a.kg-btn-accent,
.post-content .kg-button-card a.kg-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-family:var(--font-mono);
  font-size:.8rem;
  letter-spacing:.04em;
  text-transform:uppercase;
  text-decoration:none;
  padding:.65rem 1.25rem;
  border-radius:0;
  border:1px solid var(--signal-ink);
  background:transparent;
  background-color:transparent;
  color:var(--signal-ink);
  font-weight:700;
  transition:background-color .15s ease, color .15s ease, border-color .15s ease;
}
.post-content .kg-btn:hover,
.post-content .kg-button-card a.kg-btn-accent:hover,
.post-content .kg-button-card a.kg-btn:hover{
  background:var(--signal);
  background-color:var(--signal);
  border-color:var(--signal);
  color:var(--signal-contrast);
}

/* ---------- CONTACT / FORMS (used by page.hbs "Контакти") ---------- */
.field{ margin-bottom:var(--space-3); }
.field label{ display:block; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:.45rem; }
.field input,.field textarea{ width:100%; background:var(--paper); border:1px solid var(--line-strong); padding:.75rem .85rem; color:var(--ink); }
.field textarea{ min-height:7rem; resize:vertical; }
.field input:focus,.field textarea:focus{ border-color:var(--signal); }

/* ---------- FOOTER ---------- */
.site-footer{ background:var(--blueprint-ink); color:var(--blueprint-text-dim); border-top:1px solid var(--blueprint-line-strong); }
.footer__inner{ padding-block:var(--space-5) var(--space-4); display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:var(--space-4); }
.footer__brand p{ margin-top:var(--space-2); max-width:24rem; font-size:.9rem; }
.footer h4{ font-family:var(--font-mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; color:var(--blueprint-text); margin-bottom:var(--space-2); }
.footer__list{ display:flex; flex-direction:column; gap:.55rem; }
.footer__list a{ text-decoration:none; font-size:.9rem; color:var(--blueprint-text-dim); }
.footer__list a:hover{ color:var(--signal); }
.footer__bottom{ border-top:1px solid var(--blueprint-line); padding-block:var(--space-3); display:flex; justify-content:space-between; align-items:center; font-family:var(--font-mono); font-size:.72rem; letter-spacing:.03em; color:var(--blueprint-text-dim); flex-wrap:wrap; gap:.75rem; }

@media (max-width:860px){
  .nav__links{ display:none; }
  .nav__toggle{ display:inline-flex; }
  .nav.is-open .nav__links{ display:flex; position:absolute; top:64px; left:0; right:0; background:var(--blueprint-ink); flex-direction:column; align-items:flex-start; padding:var(--space-3) clamp(1.25rem,4vw,3rem); border-bottom:1px solid var(--blueprint-line-strong); gap:var(--space-3); }
  .nav.is-open .nav__list{ flex-direction:column; gap:var(--space-2); }
  .cards{ grid-template-columns:1fr; }
  .footer__inner{ grid-template-columns:1fr; }
}
