/* ServGo Blog — inherits the exact landing design tokens and Montserrat font.
   All selectors are scoped to .blog-page to avoid regressions on other pages. */
.blog-page { min-height:100vh; background:#fff; }
.blog-page .blog-nav-current { color:var(--navy); font-weight:800; }
.blog-page .topbar .brand { white-space:nowrap; }
.blog-page .blog-wrap { width:min(1160px, calc(100% - 40px)); margin-inline:auto; }
.blog-page .blog-hero { padding:70px 0 58px; background:radial-gradient(circle at 84% 12%,rgba(124,58,237,.09),transparent 31%),radial-gradient(circle at 10% 90%,rgba(47,91,235,.09),transparent 34%),var(--bg); border-bottom:1px solid var(--line); }
.blog-page .blog-hero-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(270px,.68fr); gap:60px; align-items:center; }
.blog-page .blog-hero h1 { font-size:clamp(36px,4.3vw,59px); letter-spacing:-.045em; line-height:1.08; max-width:730px; margin:12px 0 18px; font-weight:800; }
.blog-page .blog-hero h1 span { color:var(--blue); }
.blog-page .blog-hero-lead { font-size:clamp(15px,1.5vw,18px); color:var(--gray); line-height:1.7; max-width:580px; margin:0 0 26px; }
.blog-page .blog-pillar-list { display:flex; gap:12px; flex-wrap:wrap; list-style:none; padding:0; margin:24px 0 0; }
.blog-page .blog-pillar-list li { display:flex; align-items:center; gap:8px; color:var(--navy); font-size:12px; font-weight:700; }
.blog-page .blog-pillar-list li:before { content:'✓'; display:inline-grid; place-items:center; width:24px; height:24px; border-radius:8px; background:var(--mint-soft); color:var(--mint); }
.blog-page .blog-hero-visual { position:relative; isolation:isolate; min-height:300px; border-radius:28px; background:var(--navy); padding:30px; box-shadow:0 25px 60px rgba(13,27,42,.16); overflow:hidden; }
.blog-page .blog-hero-visual:before { content:''; position:absolute; width:290px; height:290px; border-radius:50%; top:-112px; right:-90px; background:var(--grad); filter:blur(12px); opacity:.55; z-index:-1; }
.blog-page .blog-hero-visual:after { content:''; position:absolute; inset:auto -70px -145px 30px; height:250px; border-radius:50%; background:rgba(124,58,237,.23); filter:blur(30px); z-index:-1; }
.blog-page .visual-kicker { color:#B7C7F5; font-size:12px; letter-spacing:.12em; font-weight:800; }
.blog-page .visual-title { color:#fff; font-size:24px; line-height:1.25; font-weight:800; letter-spacing:-.03em; margin:8px 0 20px; }
.blog-page .visual-dash { display:grid; grid-template-columns:1fr 1fr; gap:11px; transform:rotate(-4deg); }
.blog-page .visual-dash > div { border:1px solid rgba(255,255,255,.22); border-radius:15px; background:rgba(255,255,255,.13); backdrop-filter:blur(10px); padding:16px 14px; min-height:76px; }
.blog-page .visual-dash span { font-size:11px; color:#E8EEFF; display:block; margin-bottom:10px; }
.blog-page .visual-dash strong { font-size:15px; color:#fff; font-weight:800; }
.blog-page .visual-dash .visual-accent { background:#fff; border-color:#fff; }
.blog-page .visual-dash .visual-accent span { color:var(--gray); }
.blog-page .visual-dash .visual-accent strong { color:var(--blue); }
.blog-page .blog-content { padding:52px 0 88px; }
.blog-page .blog-controls { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:20px; margin:0 0 30px; }
.blog-page .blog-topics { display:flex; flex-wrap:wrap; gap:8px; }
.blog-page .blog-topic { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:9px 16px; border-radius:12px; border:1px solid var(--line-dk); background:#fff; font-size:13px; font-weight:700; color:var(--gray); transition:all .18s ease; }
.blog-page .blog-topic:hover { color:var(--blue); border-color:var(--blue); }
.blog-page .blog-topic.is-active { background:var(--navy); color:white; border-color:var(--navy); }
.blog-page .blog-search { display:flex; align-items:center; gap:8px; background:var(--bg); border:1px solid var(--line); border-radius:13px; padding:5px 5px 5px 14px; }
.blog-page .blog-search:focus-within { border-color:var(--blue); box-shadow:0 0 0 3px rgba(47,91,235,.1); }
.blog-page .blog-search input { border:0; outline:0; background:transparent; min-width:175px; width:220px; max-width:40vw; font:500 14px var(--font); color:var(--navy); }
.blog-page .blog-search button { border:0; color:white; background:var(--grad); border-radius:9px; min-height:38px; padding:8px 13px; font-weight:700; font-size:13px; }
.blog-page .blog-section-title { font-size:clamp(22px,2.7vw,31px); font-weight:800; letter-spacing:-.03em; margin:0 0 21px; }
.blog-page .blog-feature { border:1px solid var(--line); border-radius:25px; background:#fff; overflow:hidden; display:grid; grid-template-columns:1fr .85fr; min-height:330px; box-shadow:var(--shadow); transition:transform .2s,box-shadow .2s; }
.blog-page .blog-feature:hover,.blog-page .blog-card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.blog-page .blog-feature-body { padding:clamp(24px,3vw,43px); display:flex; flex-direction:column; align-items:flex-start; }
.blog-page .blog-kicker { font-size:11px; font-weight:800; letter-spacing:.055em; text-transform:uppercase; color:var(--blue); }
.blog-page .blog-feature h2 { font-size:clamp(25px,2.8vw,39px); letter-spacing:-.04em; line-height:1.2; margin:17px 0 14px; font-weight:800; }
.blog-page .blog-feature p { color:var(--gray); font-size:15px; line-height:1.65; margin:0 0 24px; }
.blog-page .blog-text-link { margin-top:auto; font-size:14px; font-weight:800; color:var(--blue); display:inline-flex; align-items:center; gap:10px; }
.blog-page .blog-feature-art { position:relative; min-height:290px; display:flex; align-items:center; justify-content:center; padding:30px; overflow:hidden; background:linear-gradient(145deg,#E4ECFF,#EDE5FF); }
.blog-page .blog-feature-art:before,.blog-page .blog-card-art:before { content:''; position:absolute; width:250px; height:250px; border:1px solid rgba(255,255,255,.7); border-radius:50%; top:-70px; right:-60px; }
.blog-page .blog-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:23px; }
.blog-page .blog-card { border:1px solid var(--line); background:#fff; border-radius:20px; overflow:hidden; display:flex; flex-direction:column; min-width:0; box-shadow:var(--shadow); transition:transform .2s,box-shadow .2s; }
.blog-page .blog-card-art { height:155px; position:relative; overflow:hidden; display:flex; justify-content:center; align-items:center; background:linear-gradient(135deg,#E4ECFF,#EDE5FF); }
/* Real editorial illustrations — not decorative placeholders. */
.blog-page .blog-feature-art img,
.blog-page .blog-card-art img {
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
}
.blog-page .blog-feature-art img { object-fit:cover; }
.blog-page .blog-article-figure {
    margin:0 0 42px;
}
.blog-page .blog-article-figure img {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:1200/650;
    object-fit:cover;
    border-radius:22px;
    background:var(--bg);
    box-shadow:var(--shadow);
}
.blog-page .blog-article-figure figcaption {
    margin-top:12px;
    color:var(--gray);
    font-size:12px;
    font-weight:600;
    line-height:1.6;
}
.blog-page .blog-card-body { padding:23px; display:flex; flex:1; flex-direction:column; }
.blog-page .blog-card h3 { font-size:19px; line-height:1.34; letter-spacing:-.025em; font-weight:800; margin:12px 0 12px; }
.blog-page .blog-card p { font-size:13.5px; color:var(--gray); line-height:1.65; margin:0 0 24px; }
.blog-page .blog-count { color:var(--gray); font-size:13px; margin-bottom:22px; }
.blog-page .blog-empty { text-align:center; border:1px dashed var(--line-dk); padding:55px 20px; border-radius:20px; background:var(--bg); }
.blog-page .blog-empty h2 { margin:0 0 8px; font-size:24px; }
.blog-page .blog-empty p { color:var(--gray); }
.blog-page .blog-empty a { display:inline-block; margin-top:10px; color:var(--blue); font-weight:800; }
.blog-page .blog-cta { margin-top:67px; border-radius:26px; padding:clamp(29px,4vw,54px); background:var(--navy); color:white; display:flex; gap:30px; align-items:center; justify-content:space-between; position:relative; overflow:hidden; }
.blog-page .blog-cta:after { content:''; position:absolute; width:360px; height:360px; right:-120px; top:-185px; border-radius:50%; background:var(--grad); opacity:.3; }
.blog-page .blog-cta > * { position:relative; z-index:1; }
.blog-page .blog-cta h2 { color:white; font-weight:800; font-size:clamp(25px,3vw,37px); max-width:590px; letter-spacing:-.035em; line-height:1.18; margin:9px 0 12px; }
.blog-page .blog-cta p { color:#C5CFE1; max-width:630px; margin:0; }
.blog-page .blog-cta .primary-action { flex-shrink:0; background:#fff; color:var(--navy); box-shadow:none; margin:0; }
.blog-page .blog-article-head { background:var(--bg); padding:43px 0 54px; border-bottom:1px solid var(--line); }
.blog-page .blog-breadcrumb { display:flex; gap:9px; align-items:center; font-size:12.5px; font-weight:600; color:var(--gray); margin-bottom:32px; }
.blog-page .blog-breadcrumb a:hover { color:var(--blue); }
.blog-page .blog-article-head h1 { font-size:clamp(32px,4.3vw,55px); max-width:950px; line-height:1.13; letter-spacing:-.042em; font-weight:800; margin:18px 0; }
.blog-page .blog-article-head .blog-intro { max-width:790px; color:var(--gray); font-size:clamp(16px,1.7vw,19px); line-height:1.67; margin:0 0 22px; }
.blog-page .blog-article-meta { display:flex; align-items:center; gap:12px; flex-wrap:wrap; color:var(--gray); font-size:12.5px; font-weight:600; }
.blog-page .blog-meta-dot { height:4px; width:4px; border-radius:50%; background:var(--gray-lt); }
.blog-page .blog-reading-layout { display:grid; grid-template-columns:minmax(0,740px) minmax(0,290px); justify-content:space-between; gap:70px; padding:48px 0 80px; }
.blog-page .blog-article-body { min-width:0; }
.blog-page .blog-article-body h2 { scroll-margin-top:100px; margin:42px 0 17px; font-weight:800; line-height:1.22; letter-spacing:-.028em; font-size:clamp(22px,2.3vw,29px); }
.blog-page .blog-article-body h2:first-child { margin-top:0; }
.blog-page .blog-article-body p { font-size:16px; line-height:1.85; margin:0 0 17px; color:#374256; }
.blog-page .blog-article-body ul { margin:0 0 27px; padding:0; list-style:none; }
.blog-page .blog-article-body li { position:relative; font-size:15px; line-height:1.7; color:#374256; padding:7px 0 7px 30px; }
.blog-page .blog-article-body li:before { position:absolute; content:'✓'; left:0; color:var(--mint); font-weight:800; }
.blog-page .blog-article-body .blog-divider { height:1px; width:100%; background:var(--line); margin:38px 0; }
.blog-page .blog-side { align-self:start; position:sticky; top:92px; background:var(--bg); border:1px solid var(--line); border-radius:17px; padding:23px 22px; }
.blog-page .blog-side h2 { font-size:14px; font-weight:800; letter-spacing:-.01em; margin:0 0 15px; }
.blog-page .blog-side ol { padding:0; margin:0; list-style:none; display:grid; gap:12px; counter-reset:toc; }
.blog-page .blog-side li { counter-increment:toc; display:flex; gap:9px; align-items:baseline; }
.blog-page .blog-side li:before { content:counter(toc,decimal-leading-zero); color:var(--blue); font-weight:800; font-size:11px; }
.blog-page .blog-side a { font-size:12.5px; font-weight:600; line-height:1.5; color:var(--gray); }
.blog-page .blog-side a:hover { color:var(--blue); }
.blog-page .blog-related { padding:48px 0 76px; background:var(--bg); border-top:1px solid var(--line); }
.blog-page .blog-related .blog-cards { margin-top:0; }
.blog-page a:focus-visible,.blog-page button:focus-visible,.blog-page input:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
@media (max-width:980px) {
 .blog-page .blog-hero-inner { gap:28px; grid-template-columns:1fr .7fr; }
 .blog-page .blog-reading-layout { gap:28px; grid-template-columns:minmax(0,1fr) 230px; }
 .blog-page .blog-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px) {
 .blog-page .blog-wrap { width:min(100% - 32px,1160px); }
 .blog-page .blog-hero { padding:44px 0; }
 .blog-page .blog-hero-inner { display:block; }
 .blog-page .blog-hero-visual { margin-top:30px; min-height:260px; }
 .blog-page .blog-controls { align-items:stretch; }
 .blog-page .blog-topics { overflow-x:auto; flex-wrap:nowrap; width:100%; padding-bottom:5px; }
 .blog-page .blog-topic { white-space:nowrap; }
 .blog-page .blog-search { flex:1; }
 .blog-page .blog-search input { max-width:none; width:100%; min-width:0; }
 .blog-page .blog-feature { grid-template-columns:1fr; }
 .blog-page .blog-feature-art { min-height:200px; order:-1; }
 .blog-page .blog-cards { grid-template-columns:1fr; }
 .blog-page .blog-cta { display:block; }
 .blog-page .blog-cta .primary-action { margin-top:23px; }
 .blog-page .blog-reading-layout { display:block; padding-top:30px; }
 .blog-page .blog-side { position:static; margin:0 0 35px; }
 .blog-page .blog-article-head { padding:30px 0 43px; }
 .blog-page .blog-article-body p { font-size:15px; }
 .blog-page .blog-content { padding:36px 0 60px; }
}
@media (prefers-reduced-motion:reduce) {
 .blog-page .blog-feature,.blog-page .blog-card,.blog-page .blog-topic { transition:none; }
}

/* Editorial formats — factual examples, accessible tables and additional figures. */
.blog-page .blog-takeaways {padding:27px 29px;margin:0 0 28px;border:1px solid #D6E0F7;border-radius:22px;background:#F1F5FF}
.blog-page .blog-takeaways h2 {font-size:23px;margin:0 0 14px}
.blog-page .blog-takeaways ul {margin:0}
.blog-page .blog-takeaways li {font-size:15px;padding-top:6px;padding-bottom:6px}
.blog-page .blog-method-note {border-left:3px solid var(--blue);padding:11px 17px;background:#F8FAFD;color:var(--gray);font-size:13px;line-height:1.7;margin:0 0 32px}
.blog-page .blog-inline-figure {margin:28px 0 32px}
.blog-page .blog-inline-figure img {display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:17px;background:#F3F5FA}
.blog-page .blog-inline-figure figcaption {font-size:12px;line-height:1.6;color:var(--gray);margin-top:10px}
.blog-page .blog-example {margin:26px 0 33px;padding:24px 26px;border:1px solid #D5DBEA;border-radius:17px;background:#F7F9FD}
.blog-page .blog-example h3 {font-size:16px;font-weight:800;margin:0 0 14px;color:var(--navy)}
.blog-page .blog-example-content {white-space:pre-line;overflow-wrap:anywhere;font:500 14px/1.8 var(--font);color:#2E405A}
.blog-page .blog-data-scroll {max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:16px;margin:24px 0 29px}
.blog-page .blog-data-table {width:100%;border-collapse:collapse;font-size:13px;min-width:450px}
.blog-page .blog-data-table th {background:#EFF3FB;color:var(--navy);text-align:left;font-weight:800;padding:14px 16px}
.blog-page .blog-data-table td {padding:13px 16px;color:#39455B;border-top:1px solid var(--line);vertical-align:top}
.blog-page .blog-data-table tbody tr:nth-child(even){background:#FAFBFE}
.blog-page .blog-pitfall {background:#FFF7ED;border-left:4px solid #D98B38;padding:22px 25px;margin:43px 0 22px;border-radius:5px 17px 17px 5px}
.blog-page .blog-pitfall h2 {margin:0 0 10px;font-size:21px}
.blog-page .blog-pitfall p {margin:0;font-size:15px}
.blog-page .blog-today {border:1px solid #CFE6D9;background:#F2FAF5;border-radius:19px;padding:23px 25px;margin:30px 0}
.blog-page .blog-today h2 {margin:0 0 18px;font-size:23px}
.blog-page .blog-today ol {list-style:decimal;padding-left:24px;margin:0;display:grid;gap:11px}
.blog-page .blog-today li {padding-left:4px;line-height:1.65;font-size:15px;color:#294637}
.blog-page .blog-today li:before {content:none}
.blog-page .blog-sources {margin:40px 0}
.blog-page .blog-sources h2 {font-size:22px;margin:0 0 13px}
.blog-page .blog-sources ul {margin:0}
.blog-page .blog-sources li:before {content:"↗";color:var(--blue)}
.blog-page .blog-sources a {color:#244BD6;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.blog-page .blog-side .blog-side-small {font-size:11px;line-height:1.6;margin:22px 0 0;border-top:1px solid var(--line);padding-top:15px;color:var(--gray)}
@media (max-width:720px) {
 .blog-page .blog-takeaways,.blog-page .blog-example,.blog-page .blog-today {padding:19px}
 .blog-page .blog-article-body h2 {scroll-margin-top:95px}
 .blog-page .blog-takeaways h2,.blog-page .blog-today h2 {font-size:21px}
 .blog-page .blog-data-table {font-size:12px}
}

/* On narrow phones, swipe a detailed process diagram rather than shrinking text. */
@media (max-width:720px) {
  .blog-page .blog-inline-figure {overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:4px}
  .blog-page .blog-inline-figure img {min-width:760px;max-width:none;width:760px}
  .blog-page .blog-inline-figure figcaption {max-width:100%;position:sticky;left:0;background:#fff;padding:7px 2px}
  .blog-page .blog-reading-layout {display:flex;flex-direction:column}
  .blog-page .blog-reading-layout .blog-side {order:-1}
}

/* Actual (browser-rendered) ServGo demo screenshots, not abstract illustrations. */
.blog-page .blog-demo-gallery {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
  margin:25px 0 35px;
  align-items:start;
}
.blog-page .blog-demo-shot {
  margin:0;
  min-width:0;
  padding:12px 12px 14px;
  border:1px solid var(--line);
  background:#F8FAFE;
  border-radius:18px;
}
.blog-page .blog-demo-shot img {
  display:block;
  width:100%;
  max-width:360px;
  height:auto;
  aspect-ratio:420 / 860;
  object-fit:contain;
  background:white;
  margin:0 auto;
  border-radius:11px;
  box-shadow:0 8px 24px rgba(13,27,42,.09);
}
.blog-page .blog-demo-shot figcaption {
  display:block;
  margin-top:13px;
  color:var(--gray);
  font-size:12px;
  line-height:1.55;
}
@media (max-width:720px) {
  .blog-page .blog-demo-gallery {
    display:flex;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    gap:13px;
    margin-right:-16px;
    padding:0 16px 12px 0;
    scrollbar-width:thin;
  }
  .blog-page .blog-demo-shot {
    flex:0 0 min(82vw,310px);
    scroll-snap-align:start;
  }
}

/* Обложка статей платформы, у которых ещё нет иллюстрации: тема крупным шрифтом. */
.blog-page .blog-art-text { position:relative; z-index:1; font-size:clamp(22px,2.6vw,34px); font-weight:800; letter-spacing:-.03em; color:var(--blue); text-align:center; line-height:1.15; padding:0 18px; }
.blog-page .blog-faq h3 { font-size:18px; margin:22px 0 8px; }
