/* 19c blog — speaks the 19computing.co.uk design language:
   Montserrat headings + after-line accents, rounded-2xl shadow-card cards,
   gradient btn-primary buttons, coloured icon chips per category (the site's
   primary / green / purple service-card idiom). Palette = the site's own
   Tailwind blue (primary) / slate (secondary). Everything here is self-contained:
   the site's tailwind.css is a purged build, so new utilities can't be relied on. */

:root{
  --bl-blue:#2563eb;--bl-blue-d:#1d4ed8;--bl-blue-l:#3b82f6;--bl-blue-50:#eff6ff;--bl-blue-100:#dbeafe;--bl-blue-300:#93c5fd;
  --bl-ink:#0f172a;--bl-ink-2:#1e293b;--bl-txt:#334155;--bl-mid:#475569;--bl-dim:#64748b;--bl-faint:#94a3b8;
  --bl-line:#f1f5f9;--bl-line-2:#e2e8f0;--bl-bg:#f8fafc;
  --bl-shadow:0 20px 25px -5px rgba(0,0,0,.05),0 10px 10px -5px rgba(0,0,0,.02);
  --bl-shadow-sm:0 2px 8px rgba(15,23,42,.05);
  --bl-shadow-hover:0 20px 25px -5px rgba(0,0,0,.09),0 10px 10px -5px rgba(0,0,0,.04);
}

/* ── per-topic accents (chip bg / chip fg / strong) ── */
.acc-blue,.bl-chip--blue{--a-bg:#eff6ff;--a-fg:#2563eb;--a-st:#1d4ed8}
.acc-red,.bl-chip--red{--a-bg:#fef2f2;--a-fg:#dc2626;--a-st:#b91c1c}
.acc-sky,.bl-chip--sky{--a-bg:#f0f9ff;--a-fg:#0284c7;--a-st:#0369a1}
.acc-indigo,.bl-chip--indigo{--a-bg:#eef2ff;--a-fg:#4f46e5;--a-st:#4338ca}
.acc-green,.bl-chip--green{--a-bg:#f0fdf4;--a-fg:#16a34a;--a-st:#15803d}
.acc-amber,.bl-chip--amber{--a-bg:#fffbeb;--a-fg:#d97706;--a-st:#b45309}
.acc-purple,.bl-chip--purple{--a-bg:#faf5ff;--a-fg:#9333ea;--a-st:#7e22ce}
.bl-chip{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;height:2.25rem;width:2.25rem;border-radius:.75rem;background:var(--a-bg);color:var(--a-fg);font-size:.95rem}
.bl-chip--lg{height:3rem;width:3rem;font-size:1.25rem}

/* ── reading progress ── */
.bl-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:60;pointer-events:none}
.bl-progress div{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);transform-origin:0 50%;transform:scaleX(0);transition:transform .1s linear}

/* ── kickers / eyebrows (site: "text-primary-600 font-semibold uppercase tracking-wider text-sm") ── */
.bl-kicker{display:inline-block;color:var(--bl-blue);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}
.bl-kicker--light{color:var(--bl-blue-300)}

/* ── hero ── */
.bl-hero{padding:8.5rem 0 3.5rem;overflow:hidden}
@media(min-width:1024px){.bl-hero{padding:10.5rem 0 4.5rem}}
.bl-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60rem 30rem at 85% -10%,rgba(59,130,246,.22),transparent 60%),radial-gradient(40rem 20rem at -10% 110%,rgba(59,130,246,.12),transparent 60%);pointer-events:none}
.bl-hero>div{position:relative}
.bl-hero__in{max-width:52rem}
.bl-h1{font-family:Montserrat,sans-serif;font-weight:800;color:#fff;font-size:clamp(1.85rem,4.2vw,3.1rem);line-height:1.12;letter-spacing:-.015em;margin:.9rem 0 1rem}
.bl-h1--c{margin:1rem auto 0}
.bl-h1.after-line::after{margin:1.5rem auto 0}
.bl-lede{font-size:clamp(1.02rem,1.6vw,1.2rem);line-height:1.6;color:rgba(255,255,255,.8);max-width:46rem;margin:0 0 1.6rem}
.bl-lede--c{margin:1.6rem auto 0;max-width:42rem}
.bl-eyebrow{display:inline-flex;align-items:center;gap:.6rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--bl-blue-300)}
.bl-eyebrow .bl-chip{height:1.9rem;width:1.9rem;font-size:.8rem;border-radius:.6rem;background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.15)}
.bl-hero__stats{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.6rem;margin-top:1.8rem;font-size:.85rem;color:rgba(255,255,255,.65)}
.bl-hero__stats i{color:var(--bl-blue-300);margin-right:.35rem}
.bl-hero__stats a{color:rgba(255,255,255,.85);text-decoration:underline;text-underline-offset:3px}

.blog-breadcrumb{font-size:.8rem;color:var(--bl-dim);display:flex;flex-wrap:wrap;align-items:center;gap:.15rem}
.blog-breadcrumb a{color:var(--bl-dim)}.blog-breadcrumb a:hover{color:var(--bl-blue)}
.blog-breadcrumb i{font-size:.5rem;margin:0 .45rem}
.hero-bg .blog-breadcrumb,.hero-bg .blog-breadcrumb a{color:rgba(255,255,255,.6)}
.hero-bg .blog-breadcrumb a:hover{color:#fff}
.hero-bg .blog-breadcrumb span{color:rgba(255,255,255,.85)}

.bl-byline{display:flex;align-items:center;gap:.8rem;margin:0 0 1.25rem}
.bl-byline__av,.bl-author__av{flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:999px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;font-family:Montserrat,sans-serif;font-weight:800}
.bl-byline__av{height:2.6rem;width:2.6rem;font-size:.85rem;box-shadow:0 0 0 3px rgba(255,255,255,.12)}
.bl-byline__t{display:flex;flex-direction:column;line-height:1.35}
.bl-byline__t b{color:#fff;font-size:.92rem}
.bl-byline__t>span{color:rgba(255,255,255,.65);font-size:.82rem}
.bl-byline__t i{font-size:.7rem;margin-right:.2rem}
.bl-dot{display:inline-block;width:3px;height:3px;border-radius:9px;background:currentColor;vertical-align:middle;margin:0 .45rem;opacity:.7}

.blog-tags{display:flex;gap:.4rem;flex-wrap:wrap}
.blog-tag{background:var(--bl-blue-50);color:var(--bl-blue);font-size:.7rem;font-weight:600;padding:.22rem .75rem;border-radius:999px;text-decoration:none;border:1px solid var(--bl-blue-100);transition:all .3s ease}
.blog-tag:hover{background:var(--bl-blue-100)}
.blog-tag--sm{font-size:.62rem;padding:.1rem .55rem}
.hero-bg .blog-tag{background:rgba(255,255,255,.08);color:#bfdbfe;border:1px solid rgba(255,255,255,.18)}
.hero-bg .blog-tag:hover{background:rgba(255,255,255,.18);color:#fff}

/* ── body layout ── */
.bl-body{padding:3rem 0 4.5rem}
@media(min-width:1024px){.bl-body{padding:4rem 0 5.5rem}}
.bl-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;align-items:start}
@media(min-width:1024px){
  .bl-grid{grid-template-columns:270px minmax(0,46rem);gap:clamp(2.5rem,4vw,4rem);justify-content:center}
  .bl-grid--index{grid-template-columns:minmax(0,1fr) 300px;justify-content:stretch}
}
.bl-main{min-width:0}
.bl-side{display:flex;flex-direction:column;gap:1.25rem;min-width:0}
@media(min-width:1024px){.bl-side{position:sticky;top:6.5rem;max-height:calc(100vh - 8rem);overflow:auto;scrollbar-width:thin;padding-bottom:.5rem}}
@media(max-width:1023px){.bl-side .bl-card--hire{display:none}}

/* ── on this page (collapsible on mobile, open + scroll-spy on desktop) ── */
.bl-toc{background:#fff;border:1px solid var(--bl-line-2);border-radius:1rem;padding:0;box-shadow:var(--bl-shadow-sm)}
.bl-toc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:.95rem 1.1rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bl-dim);font-weight:700}
.bl-toc summary::-webkit-details-marker{display:none}
.bl-toc summary i{font-size:.7rem;transition:transform .2s}
.bl-toc[open] summary i{transform:rotate(180deg)}
.bl-toc ol{list-style:none;margin:0 1.1rem 1rem;padding:0;border-left:2px solid var(--bl-line-2)}
.bl-toc li a{display:block;padding:.38rem 0 .38rem .9rem;margin-left:-2px;border-left:2px solid transparent;color:var(--bl-mid);text-decoration:none;font-size:.86rem;line-height:1.38;transition:color .2s,border-color .2s}
.bl-toc li a:hover{color:var(--bl-blue)}
.bl-toc li a.on{color:var(--bl-blue);border-left-color:var(--bl-blue);font-weight:600}

/* ── "In short" ── */
.bl-tldr{position:relative;background:linear-gradient(180deg,#f8fafc,#fff);border:1px solid var(--bl-line-2);border-radius:1rem;padding:1.4rem 1.6rem 1.25rem;margin:0 0 2.25rem;box-shadow:var(--bl-shadow-sm);overflow:hidden}
.bl-tldr::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#3b82f6,#1d4ed8)}
.bl-tldr__h{font-family:Montserrat,sans-serif;font-weight:800;font-size:1.05rem;line-height:1;margin:0 0 .9rem;color:var(--bl-ink);display:flex;align-items:center;gap:.6rem}
.bl-tldr__h span{display:inline-flex;height:1.8rem;width:1.8rem;border-radius:.55rem;background:var(--bl-blue-50);color:var(--bl-blue);align-items:center;justify-content:center;font-size:.8rem}
.bl-tldr ul{list-style:none;margin:0;padding:0}
.bl-tldr li{position:relative;padding-left:1.7rem;margin:.55rem 0;color:var(--bl-txt);font-size:.96rem;line-height:1.6}
.bl-tldr li::before{content:"\f058";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:.05rem;color:var(--bl-blue-l);font-size:.95rem}

/* ── prose ── */
.prose{color:var(--bl-txt);font-size:1.0625rem;line-height:1.8;min-width:0;overflow-wrap:break-word}
.prose>:first-child{margin-top:0}
.prose h2{font-family:Montserrat,sans-serif;color:var(--bl-ink);font-weight:800;font-size:clamp(1.35rem,2.4vw,1.65rem);line-height:1.25;letter-spacing:-.01em;margin:2.8rem 0 .9rem;scroll-margin-top:7rem}
.prose h2::after{content:"";display:block;width:48px;height:3px;background:var(--bl-blue-l);border-radius:2px;margin-top:.7rem}
.prose h3{font-family:Montserrat,sans-serif;color:var(--bl-ink);font-weight:700;font-size:1.18rem;line-height:1.35;margin:2rem 0 .5rem;scroll-margin-top:7rem}
.prose h4{color:var(--bl-ink);font-weight:700;font-size:1.02rem;margin:1.5rem 0 .4rem;scroll-margin-top:7rem}
.prose p{margin:0 0 1.15rem}
.prose strong{color:var(--bl-ink);font-weight:700}
.prose a{color:var(--bl-blue);text-decoration:underline;text-decoration-color:rgba(37,99,235,.35);text-underline-offset:3px;text-decoration-thickness:1.5px;transition:all .2s}
.prose a:hover{color:var(--bl-blue-d);text-decoration-color:currentColor}
.prose .bl-ext{font-size:.6em;margin-left:.3em;vertical-align:.25em;opacity:.6;text-decoration:none}
.prose ul,.prose ol{margin:0 0 1.3rem;padding-left:0;list-style:none}
.prose li{position:relative;margin:.5rem 0;padding-left:1.7rem}
.prose ul>li::before{content:"";position:absolute;left:.35rem;top:.72em;width:.45rem;height:.45rem;border-radius:2px;background:var(--bl-blue-l);transform:rotate(45deg)}
.prose ol{counter-reset:bl}
.prose ol>li{counter-increment:bl;padding-left:2.2rem}
.prose ol>li::before{content:counter(bl);position:absolute;left:0;top:.2em;height:1.55rem;width:1.55rem;border-radius:.5rem;background:var(--bl-blue-50);color:var(--bl-blue);font-family:Montserrat,sans-serif;font-weight:800;font-size:.78rem;display:flex;align-items:center;justify-content:center;line-height:1}
.prose code{background:#f1f5f9;border:1px solid var(--bl-line-2);padding:.08rem .38rem;border-radius:.35rem;font-size:.86em;color:#0f172a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.prose pre{background:#0f172a;color:#e2e8f0;border-radius:.85rem;padding:1.1rem 1.25rem;overflow-x:auto;font-size:.85rem;line-height:1.65;margin:0 0 1.4rem;box-shadow:var(--bl-shadow-sm)}
.prose pre code{background:none;border:0;padding:0;color:inherit;font-size:inherit}
.prose blockquote{margin:1.6rem 0;padding:1rem 1.3rem;border-left:4px solid var(--bl-blue-l);background:var(--bl-bg);border-radius:0 .75rem .75rem 0;color:var(--bl-mid);font-style:italic}
.prose blockquote p:last-child{margin:0}
.prose hr{border:0;height:1px;background:var(--bl-line-2);margin:2.5rem 0}
.prose img{max-width:100%;height:auto;border-radius:1rem}
.bl-note{display:flex;gap:.85rem;align-items:flex-start;background:var(--bl-blue-50);border:1px solid var(--bl-blue-100);border-radius:.9rem;padding:1rem 1.15rem;margin:1.6rem 0;font-size:.97rem;line-height:1.65}
.bl-note>i{color:var(--bl-blue);margin-top:.28rem}
.bl-note b{color:var(--bl-ink)}
.bl-table{overflow-x:auto;margin:1.6rem 0;border:1px solid var(--bl-line-2);border-radius:.9rem;box-shadow:var(--bl-shadow-sm);-webkit-overflow-scrolling:touch}
.bl-table table{width:100%;border-collapse:collapse;font-size:.92rem;line-height:1.5;min-width:30rem}
.bl-table th{background:var(--bl-bg);color:var(--bl-ink);font-family:Montserrat,sans-serif;font-weight:700;font-size:.8rem;text-align:left;padding:.75rem 1rem;border-bottom:2px solid var(--bl-line-2);white-space:nowrap}
.bl-table td{padding:.7rem 1rem;border-bottom:1px solid var(--bl-line);vertical-align:top}
.bl-table tr:last-child td{border-bottom:0}
.bl-table tbody tr:nth-child(even) td{background:#fcfdfe}

/* ── service cards (inline + sidebar) — service-card idiom ── */
.bl-card{background:#fff;border:1px solid var(--bl-line);border-radius:1rem;padding:1.4rem;margin:2.25rem 0;box-shadow:var(--bl-shadow)}
.bl-card--svc{display:flex;gap:1.1rem;align-items:flex-start;border-color:var(--bl-blue-100);background:linear-gradient(135deg,#fff 60%,#f5f9ff)}
.bl-card--side{margin:0}
.bl-card__chip{flex-shrink:0;height:3rem;width:3rem;background:var(--bl-blue-50);border-radius:.75rem;display:flex;align-items:center;justify-content:center;color:var(--bl-blue);font-size:1.2rem}
.bl-card--side .bl-card__chip{height:2.5rem;width:2.5rem;font-size:1rem;margin-bottom:.8rem}
.bl-card__k{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bl-blue);font-weight:700;margin:0}
.bl-card__t{font-family:Montserrat,sans-serif;font-weight:700;font-size:1.15rem;line-height:1.2;margin:.2rem 0 .45rem;color:var(--bl-ink)}
.bl-card p{color:var(--bl-mid);font-size:.9rem;line-height:1.55;margin:0 0 .85rem;padding:0}
.bl-card .bl-card__btn{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);color:#fff;font-weight:600;font-size:.85rem;padding:.6rem 1.15rem;border-radius:.5rem;text-decoration:none;transition:all .3s ease;box-shadow:0 4px 6px -1px rgba(37,99,235,.3)}
.bl-card .bl-card__btn:hover{background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);transform:translateY(-1px);box-shadow:0 8px 14px -4px rgba(37,99,235,.4)}
.bl-card .bl-card__btn i{font-size:.72rem}
.bl-card .bl-card__tel{display:block;margin-top:.7rem;font-size:.8rem;color:var(--bl-dim);text-decoration:none}
.bl-card .bl-card__tel:hover{color:var(--bl-blue)}
.bl-card .bl-card__tel i{font-size:.7rem;margin-right:.25rem;color:var(--bl-blue)}

/* ── FAQ ── */
.bl-faq{margin-top:.5rem}
.bl-faq details{background:#fff;border:1px solid var(--bl-line-2);border-radius:.9rem;margin-bottom:.7rem;box-shadow:var(--bl-shadow-sm);transition:border-color .2s,box-shadow .2s}
.bl-faq details:hover{border-color:var(--bl-blue-100)}
.bl-faq details[open]{border-color:var(--bl-blue-100);box-shadow:var(--bl-shadow)}
.bl-faq summary{cursor:pointer;font-weight:600;font-size:1rem;line-height:1.45;color:var(--bl-ink);list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.2rem}
.bl-faq summary::-webkit-details-marker{display:none}
.bl-faq summary::after{content:"+";flex-shrink:0;display:flex;align-items:center;justify-content:center;height:1.6rem;width:1.6rem;border-radius:.5rem;background:var(--bl-blue-50);color:var(--bl-blue);font-size:1.15rem;font-weight:600;line-height:1;transition:transform .2s}
.bl-faq details[open] summary::after{content:"−"}
.bl-faq details p{margin:0;padding:0 1.2rem 1.1rem;color:var(--bl-mid);font-size:.97rem;line-height:1.7}

/* ── share + author ── */
.bl-share{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:2.75rem;padding-top:1.5rem;border-top:1px solid var(--bl-line-2)}
.bl-share__l{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--bl-faint);margin-right:.4rem}
.bl-share a,.bl-share button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;height:2.4rem;min-width:2.4rem;padding:0 .7rem;border-radius:.6rem;border:1px solid var(--bl-line-2);background:#fff;color:var(--bl-mid);text-decoration:none;font-size:.85rem;font-weight:600;transition:all .2s}
.bl-share a:hover,.bl-share button:hover{border-color:var(--bl-blue);color:var(--bl-blue);background:var(--bl-blue-50)}
.bl-share .done{border-color:#16a34a;color:#16a34a;background:#f0fdf4}
.bl-author{display:flex;gap:1rem;align-items:flex-start;margin-top:1.75rem;background:var(--bl-bg);border:1px solid var(--bl-line);border-radius:1rem;padding:1.25rem 1.4rem}
.bl-author__av{height:3.2rem;width:3.2rem;font-size:1rem}
.bl-author p{margin:0}
.bl-author__k{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--bl-faint)}
.bl-author__n{font-family:Montserrat,sans-serif;font-weight:700;color:var(--bl-ink);font-size:1.05rem;margin:.1rem 0 .3rem!important}
.bl-author__n span{font-family:'Open Sans',sans-serif;font-weight:500;font-size:.85rem;color:var(--bl-dim)}
.bl-author__b{font-size:.9rem;color:var(--bl-mid);line-height:1.6}

/* ── section headers — after-line idiom ── */
.bl-more{padding:4rem 0 4.5rem}
.bl-sec-head{text-align:center;margin-bottom:2.5rem}
.bl-sec-h{font-family:Montserrat,sans-serif;font-weight:800;font-size:clamp(1.6rem,3vw,2.1rem);color:var(--bl-ink);margin:.6rem 0 0}
.bl-sec-h.after-line::after{margin:1.1rem auto 0}

/* ── cards ── */
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:1.5rem}
@media(min-width:768px){.blog-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:768px){.blog-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1024px){.blog-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}}
.blog-card{position:relative;background:#fff;border:1px solid var(--bl-line);border-radius:1rem;padding:1.5rem 1.5rem 1.25rem;text-decoration:none;display:flex;flex-direction:column;gap:.6rem;box-shadow:var(--bl-shadow);transition:box-shadow .3s ease,transform .3s ease,border-color .3s ease;overflow:hidden}
.blog-card::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--a-fg,#3b82f6);opacity:0;transition:opacity .3s}
.blog-card:hover{box-shadow:var(--bl-shadow-hover);transform:translateY(-3px);border-color:var(--bl-line-2)}
.blog-card:hover::before{opacity:1}
.blog-card__top{display:flex;align-items:center;gap:.65rem}
.blog-card__k{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--a-st,#1d4ed8)}
.blog-card h3,.blog-card h2{color:var(--bl-ink);font-family:Montserrat,sans-serif;font-size:1.1rem;font-weight:700;margin:.15rem 0 0;line-height:1.32;transition:color .2s}
.blog-card:hover h3,.blog-card:hover h2{color:var(--bl-blue)}
.blog-card p{color:var(--bl-mid);font-size:.9rem;margin:0;line-height:1.6;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.blog-card__foot{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--bl-line);display:flex;align-items:center;gap:1rem;font-size:.76rem;color:var(--bl-faint)}
.blog-card__foot i{margin-right:.25rem}
.blog-card__go{margin-left:auto;color:var(--bl-blue);font-weight:700;font-size:.8rem;white-space:nowrap}
.blog-card__go i{font-size:.7rem;margin-left:.2rem;transition:transform .2s}
.blog-card:hover .blog-card__go i{transform:translateX(3px)}

/* featured (index) */
.bl-feat{display:grid;grid-template-columns:1fr;background:#fff;border:1px solid var(--bl-line);border-radius:1.25rem;overflow:hidden;text-decoration:none;box-shadow:var(--bl-shadow);margin-bottom:1.5rem;transition:box-shadow .3s,transform .3s}
@media(min-width:768px){.bl-feat{grid-template-columns:minmax(0,15rem) minmax(0,1fr)}}
.bl-feat:hover{box-shadow:var(--bl-shadow-hover);transform:translateY(-3px)}
.bl-feat__art{position:relative;min-height:9rem;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);overflow:hidden}
.bl-feat__art::before{content:"";position:absolute;inset:0;background:radial-gradient(14rem 10rem at 70% 20%,rgba(59,130,246,.35),transparent 70%);}
.bl-feat__art .bl-chip{position:relative;height:4.5rem;width:4.5rem;font-size:1.9rem;border-radius:1.1rem;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.15)}
.bl-feat__new{position:absolute;top:1rem;left:1rem;background:#3b82f6;color:#fff;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;font-weight:800;padding:.25rem .6rem;border-radius:999px}
.bl-feat__b{padding:1.75rem 1.9rem 1.5rem;display:flex;flex-direction:column;gap:.6rem}
.bl-feat h2{font-family:Montserrat,sans-serif;font-weight:800;color:var(--bl-ink);font-size:clamp(1.3rem,2.4vw,1.65rem);line-height:1.22;margin:0;transition:color .2s}
.bl-feat:hover h2{color:var(--bl-blue)}
.bl-feat p{color:var(--bl-mid);font-size:.97rem;line-height:1.65;margin:0}

/* topics */
.blog-topics{display:flex;gap:.5rem;flex-wrap:wrap;margin:0 0 2rem}
.blog-topic{background:#fff;border:1px solid var(--bl-line-2);color:var(--bl-mid);font-size:.84rem;font-weight:600;padding:.45rem .95rem;border-radius:999px;text-decoration:none;transition:all .25s ease;box-shadow:var(--bl-shadow-sm)}
.blog-topic:hover{border-color:var(--bl-blue);color:var(--bl-blue)}
.blog-topic.on{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-color:transparent}
.blog-topic span{opacity:.6;font-weight:500;margin-left:.25rem}

/* index sidebar */
.bl-about__row{display:flex;gap:.55rem;align-items:flex-start;color:var(--bl-mid);font-size:.84rem!important;margin:0 0 .5rem!important}
.bl-about__row i{color:var(--bl-blue);margin-top:.22rem;width:.9rem;text-align:center;flex-shrink:0}
.bl-svcs{display:flex;flex-direction:column;gap:.15rem;margin-top:.6rem}
.bl-svc{display:flex;align-items:center;gap:.7rem;padding:.55rem .6rem;border-radius:.6rem;text-decoration:none;color:var(--bl-txt);font-size:.88rem;font-weight:500;transition:all .2s ease}
.bl-svc:hover{background:var(--bl-blue-50);color:var(--bl-blue-d)}
.bl-svc i:first-child{color:var(--bl-blue);width:1.1rem;text-align:center}
.bl-svc span{flex:1}
.bl-svc__go{font-size:.55rem;color:#cbd5e1;transition:all .2s ease}
.bl-svc:hover .bl-svc__go{color:var(--bl-blue);transform:translateX(2px)}
.bl-call{background:linear-gradient(160deg,#0f172a,#1e293b);border-color:#1e293b}
.bl-call .bl-card__k{color:var(--bl-blue-300)}
.bl-call .bl-card__t{color:#fff}
.bl-call p{color:rgba(255,255,255,.7)}
.bl-call .bl-card__chip{background:rgba(59,130,246,.18);color:var(--bl-blue-300);height:2.5rem;width:2.5rem;font-size:1rem;margin-bottom:.8rem}
.bl-call .bl-card__btn{margin:.35rem .3rem .2rem 0}
.bl-card .bl-card__btn--ghost{background:transparent!important;color:#fff!important;border:1px solid rgba(255,255,255,.35);box-shadow:none!important}
.bl-card .bl-card__btn--ghost:hover{background:rgba(255,255,255,.1)!important}

/* ── prev/next ── */
.bl-pn{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:2rem}
@media(max-width:640px){.bl-pn{grid-template-columns:1fr}}
.bl-pn a{border:1px solid var(--bl-line);background:#fff;border-radius:1rem;padding:1rem 1.2rem;text-decoration:none;display:block;box-shadow:var(--bl-shadow-sm);transition:all .25s}
.bl-pn a:hover{border-color:var(--bl-blue-100);box-shadow:var(--bl-shadow)}
.bl-pn a span{display:block;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;color:var(--bl-blue);margin-bottom:.3rem}
.bl-pn a span i{font-size:.65rem}
.bl-pn a b{color:var(--bl-ink);font-size:.93rem;line-height:1.35;font-family:Montserrat,sans-serif}
.bl-pn__n{text-align:right}

/* ── closing CTA band ── */
.bl-cta{background-color:#1d4ed8;background-image:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);color:#fff;padding:3.5rem 0;position:relative;overflow:hidden}
.bl-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(40rem 20rem at 100% 0,rgba(255,255,255,.12),transparent 60%);pointer-events:none}
.bl-cta__in{position:relative;display:grid;gap:2rem;align-items:center}
@media(min-width:1024px){.bl-cta__in{grid-template-columns:minmax(0,1fr) auto;gap:3rem}}
.bl-cta h2{font-family:Montserrat,sans-serif;font-weight:800;font-size:clamp(1.6rem,3vw,2.2rem);line-height:1.2;margin:.5rem 0 .7rem;color:#fff}
.bl-cta p{color:rgba(255,255,255,.85);max-width:44rem;margin:0 0 1rem;line-height:1.65}
.bl-cta .bl-kicker--light{color:#bfdbfe}
.bl-cta__ticks{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-size:.9rem;color:#fff}
.bl-cta__ticks i{color:#93c5fd;margin-right:.35rem}
.bl-cta__acts{display:flex;flex-wrap:wrap;gap:.75rem}
.bl-btn-light{display:inline-flex;align-items:center;gap:.5rem;background:#fff;color:var(--bl-blue-d);font-weight:700;font-size:.95rem;padding:.85rem 1.6rem;border-radius:.5rem;text-decoration:none;box-shadow:0 4px 6px -1px rgba(0,0,0,.2);transition:all .3s ease}
.bl-btn-light:hover{background:var(--bl-blue-50);transform:translateY(-1px)}
.bl-btn-ghost{display:inline-flex;align-items:center;gap:.5rem;border:1px solid rgba(255,255,255,.5);color:#fff;font-weight:600;font-size:.95rem;padding:.85rem 1.6rem;border-radius:.5rem;text-decoration:none;transition:all .3s ease}
.bl-btn-ghost:hover{background:rgba(255,255,255,.1);color:#fff}

/* ── small screens ── */
@media(max-width:640px){
  .bl-hero{padding:7.5rem 0 2.75rem}
  .prose{font-size:1.02rem;line-height:1.75}
  .bl-tldr{padding:1.2rem 1.15rem 1rem}
  .bl-card--svc{flex-direction:column}
  .bl-feat__b{padding:1.4rem 1.3rem 1.2rem}
  .blog-card{padding:1.3rem 1.25rem 1.1rem}
  .bl-cta__acts a{flex:1;justify-content:center}
}
@media print{.bl-progress,.bl-side,.bl-share,.bl-more,.bl-cta,header,footer,.sticky-cta{display:none!important}.bl-grid{display:block}}
.bl-x{font-size:1rem;line-height:1}

.bl-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
button.bl-share__copy{font:inherit;cursor:pointer}
