/* =========================================================================
   CaseClear blog — shared stylesheet.
   Same design tokens as the main site (index.html): white ground, soft blue
   glows, dotted grid, Space Grotesk display / IBM Plex Sans body / IBM Plex
   Mono labels. One accent (#2f5fe0). Reused here so the blog reads as the
   same product, not a bolted-on CMS.
   ========================================================================= */

:root{
  --ink:#0b1220;
  --ink-2:#1a2536;
  --body:#3a4658;
  --muted:#4a5568;
  --meta:#5a6a85;
  --faint:#8a97ac;

  --accent:#2f5fe0;
  --accent-d:#1b47c0;
  --accent-t:rgba(47,95,224,0.14);
  --accent-t2:rgba(47,95,224,0.06);

  --approved:#17a673;
  --approved-t:rgba(23,166,115,0.12);

  --paper:#ffffff;
  --panel:#f6f8fc;
  --panel-2:#f1f4fa;
  --line:rgba(11,18,32,0.10);
  --line-soft:rgba(11,18,32,0.06);
  --hair:rgba(11,18,32,0.08);

  --sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --display:'Space Grotesk',var(--sans);
  --mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;

  --maxw:1320px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;color:var(--ink);font-family:var(--sans);line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden;
  background:
    radial-gradient(1100px 620px at 78% 6%, var(--accent-t2), transparent 60%),
    radial-gradient(900px 600px at 12% 96%, rgba(11,18,32,0.035), transparent 60%),
    var(--paper);
}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-d)}
::selection{background:var(--accent-t)}

.dots{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:radial-gradient(rgba(11,18,32,0.05) 1px, transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse 85% 75% at 50% 30%, #000 45%, transparent 100%);
  mask-image:radial-gradient(ellipse 85% 75% at 50% 30%, #000 45%, transparent 100%);
}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,5vw,68px);position:relative;z-index:1}

.eyebrow{
  display:inline-flex;align-items:center;gap:9px;font-family:var(--mono);font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--meta);
  padding:7px 12px;border:1px solid var(--line);border-radius:100px;background:rgba(255,255,255,0.6);
}
.eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--approved)}

/* =========================================================================
   NAV (static, no scroll-solidify JS needed on inner pages)
   ========================================================================= */
header.nav{position:sticky;top:0;left:0;right:0;z-index:100;background:rgba(255,255,255,.82);
  backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--line-soft)}
.nav-in{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;
  height:72px;max-width:var(--maxw);margin:0 auto;padding:0 clamp(24px,5vw,68px)}
.brand{display:flex;align-items:center;gap:10px}
.brand .sq{width:11px;height:11px;border-radius:3px;background:var(--accent);box-shadow:0 0 0 4px var(--accent-t)}
.brand .nm{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.02em;color:var(--ink)}
.nav-links{display:flex;align-items:center;gap:22px}
.nav-links a.lnk{font-family:var(--mono);font-size:12.5px;letter-spacing:.02em;color:var(--muted);transition:color .18s}
.nav-links a.lnk:hover{color:var(--ink)}
.nav-links a.lnk.on{color:var(--accent)}
.nav-cta{font-family:var(--mono);font-size:13px;color:#fff!important;background:var(--ink);padding:9px 16px;border-radius:10px;
  transition:background .2s,transform .2s;white-space:nowrap}
.nav-cta:hover{background:var(--ink-2);transform:translateY(-1px)}
@media(max-width:820px){.nav-links a.lnk{display:none}.nav-links{gap:10px}}
@media(max-width:420px){.nav-cta{padding:9px 12px;font-size:12px}.brand .nm{font-size:16px}}

footer.foot{border-top:1px solid var(--line-soft);padding:32px 0;position:relative;z-index:1}
.foot-in{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;font-family:var(--mono);font-size:12px;color:var(--faint)}
.foot .brand .nm{font-size:15px}

:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

/* =========================================================================
   BLOG INDEX
   ========================================================================= */
.blog-hero{padding-top:clamp(48px,8vw,80px);padding-bottom:clamp(28px,4vw,40px);position:relative;z-index:1;
  border-bottom:1px solid var(--line-soft)}
.blog-hero h1{margin:16px 0 0;font-family:var(--display);font-weight:700;letter-spacing:-.035em;line-height:1.05;
  font-size:clamp(2.1rem,4.6vw,3.1rem);color:var(--ink);max-width:20ch;text-wrap:balance}
.blog-hero p{margin:16px 0 0;max-width:56ch;font-size:16.5px;color:var(--muted);line-height:1.6}

/* tag filter bar */
.blog-filters{position:sticky;top:72px;z-index:40;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line-soft);padding:16px 0}
.blog-filters-in{display:flex;align-items:center;gap:9px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.blog-filters-in::-webkit-scrollbar{display:none}
.filter-btn{flex:none;font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--muted);
  background:var(--paper);border:1px solid var(--line);border-radius:100px;padding:8px 15px;
  cursor:pointer;white-space:nowrap;transition:all .15s ease}
.filter-btn:hover{border-color:var(--accent);color:var(--ink)}
.filter-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}

.blog-list{padding-top:clamp(40px,6vw,64px);padding-bottom:clamp(70px,8vw,110px);position:relative;z-index:1}

/* featured post: image + content side by side */
.post-featured{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,52px);align-items:center;
  color:inherit;transition:opacity .2s;
  padding-bottom:clamp(40px,6vw,56px);margin-bottom:clamp(40px,6vw,56px);border-bottom:1px solid var(--line-soft)}
.post-featured:hover{opacity:.82}
.post-featured-media{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line-soft);
  aspect-ratio:16/11;box-shadow:0 24px 56px -40px rgba(11,18,32,.45)}
.post-featured-media img{width:100%;height:100%;object-fit:cover;display:block}
.post-featured .pmeta{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.post-featured h2{margin:14px 0 0;font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.22;
  font-size:clamp(1.4rem,2.6vw,1.9rem);color:var(--ink)}
.post-featured p.excerpt{margin:14px 0 0;font-size:15.5px;color:var(--muted);line-height:1.65;max-width:52ch}
.post-featured .pfoot{margin-top:20px;font-family:var(--mono);font-size:12px;color:var(--faint)}
@media(max-width:820px){.post-featured{grid-template-columns:1fr;gap:22px}}

/* 3-column grid of remaining posts */
.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,3vw,36px)}
@media(max-width:920px){.post-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.post-grid{grid-template-columns:1fr}}

.post-card{display:flex;flex-direction:column;color:inherit;transition:opacity .2s}
.post-card:hover{opacity:.82}
.post-card-media{border-radius:14px;overflow:hidden;border:1px solid var(--line-soft);
  aspect-ratio:16/11;margin-bottom:16px}
.post-card-media img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s var(--ease)}
.post-card:hover .post-card-media img{transform:scale(1.04)}
.post-card .pmeta{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent)}
.post-card h3{margin:8px 0 0;font-family:var(--display);font-size:1.08rem;font-weight:600;letter-spacing:-.01em;
  color:var(--ink);line-height:1.35}
.post-card p.excerpt{margin:10px 0 0;font-size:13.5px;color:var(--muted);line-height:1.6;flex:1}
.post-card .pfoot{margin-top:14px;font-family:var(--mono);font-size:11px;color:var(--faint)}

.more-soon{margin:clamp(48px,6vw,68px) 0 0;font-family:var(--mono);font-size:12px;letter-spacing:.03em;
  color:var(--faint);text-align:center}

/* =========================================================================
   ARTICLE PAGE
   ========================================================================= */
.article-hero{padding-top:clamp(40px,6vw,64px);position:relative;z-index:1}
.article-hero .back{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12.5px;
  color:var(--muted);margin-bottom:22px}
.article-hero .back:hover{color:var(--ink)}
.article-hero-head{max-width:760px}
.article-hero h1{margin:18px 0 0;font-family:var(--display);font-weight:700;letter-spacing:-.035em;line-height:1.1;
  font-size:clamp(1.9rem,4.2vw,2.7rem);color:var(--ink);text-wrap:balance}
.article-hero .dek{margin:18px 0 0;max-width:60ch;font-size:17px;color:var(--muted);line-height:1.6}
.article-meta{margin-top:24px;display:flex;gap:16px;align-items:center;flex-wrap:wrap;
  font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.article-meta .sep{opacity:.5}
.article-hero-media{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line-soft);
  max-width:960px;aspect-ratio:16/7;margin:clamp(28px,4vw,40px) auto 0;box-shadow:0 24px 56px -40px rgba(11,18,32,.4)}
.article-hero-media img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:640px){.article-hero-media{aspect-ratio:4/3;border-radius:14px}}

article.post-body{max-width:720px;margin:52px auto 0;padding-bottom:100px;position:relative;z-index:1}
article.post-body h2{font-family:var(--display);font-weight:600;letter-spacing:-.02em;
  font-size:clamp(1.3rem,2.4vw,1.65rem);color:var(--ink);margin:44px 0 16px}
article.post-body p{margin:0 0 20px;font-size:16.5px;line-height:1.75;color:var(--body)}
article.post-body p strong{color:var(--ink);font-weight:600}
article.post-body ul{margin:0 0 24px;padding-left:0;list-style:none}
article.post-body ul li{position:relative;padding:14px 0 14px 26px;border-top:1px solid var(--line-soft);
  font-size:16px;line-height:1.65;color:var(--body)}
article.post-body ul li:last-child{border-bottom:1px solid var(--line-soft)}
article.post-body ul li::before{content:"";position:absolute;left:0;top:22px;width:7px;height:7px;
  border-radius:2px;background:var(--accent)}
article.post-body ul li strong{color:var(--ink)}
.pull{margin:36px 0;padding:28px 30px;border-left:3px solid var(--accent);background:var(--panel);
  border-radius:0 14px 14px 0}
.pull p{margin:0;font-family:var(--display);font-size:clamp(1.05rem,1.8vw,1.28rem);font-weight:500;
  letter-spacing:-.01em;color:var(--ink);line-height:1.5}
.source-note{margin:36px 0;padding:20px 24px;border:1px solid var(--line);border-radius:14px;
  background:rgba(255,255,255,.6)}
.source-note p{margin:0;font-size:13.5px;color:var(--meta);line-height:1.6}
.source-note p+p{margin-top:8px}

.article-nav{max-width:720px;margin:0 auto;padding-bottom:80px;position:relative;z-index:1}
.article-nav-inner{border-top:1px solid var(--line-soft);padding-top:32px;display:flex;
  justify-content:space-between;gap:20px;flex-wrap:wrap}
.article-nav a{font-family:var(--mono);font-size:12.5px;color:var(--muted);max-width:38ch;line-height:1.5}
.article-nav a:hover{color:var(--ink)}
.article-nav a .lbl{display:block;color:var(--faint);font-size:11px;letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px}
.article-nav a.next{text-align:right;margin-left:auto}
@media(max-width:560px){.article-nav a.next{text-align:left;margin-left:0}.article-nav a{max-width:none}}

.cta-strip{border-top:1px solid var(--line-soft);padding:clamp(60px,8vw,90px) 0;text-align:center;position:relative;z-index:1}
.cta-strip h2{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:clamp(1.6rem,3.4vw,2.3rem);
  color:var(--ink);margin:0 auto;max-width:20ch}
.cta-strip p{margin:16px auto 0;max-width:48ch;font-size:15.5px;color:var(--muted)}
.btn-dark{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff!important;
  font-family:var(--sans);font-weight:500;font-size:15px;padding:15px 24px;border-radius:12px;
  box-shadow:0 12px 30px -12px rgba(11,18,32,.5);transition:background .2s,transform .2s var(--ease);margin-top:30px}
.btn-dark:hover{background:var(--ink-2)}
.btn-dark .ar{font-family:var(--mono);opacity:.65;transition:transform .2s var(--ease)}
.btn-dark:hover .ar{transform:translateX(3px)}

/* =========================================================================
   FLOATING WHATSAPP BUTTON
   ========================================================================= */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:200;width:56px;height:56px;border-radius:50%;
  background:#25D366;display:flex;align-items:center;justify-content:center;
  box-shadow:0 14px 32px -10px rgba(37,211,102,.55),0 2px 8px rgba(11,18,32,.15);
  transition:transform .2s var(--ease),box-shadow .2s var(--ease)}
.wa-float:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 18px 38px -8px rgba(37,211,102,.65),0 2px 8px rgba(11,18,32,.18)}
.wa-float svg{width:29px;height:29px;fill:#fff}
@media(max-width:480px){.wa-float{right:16px;bottom:16px;width:50px;height:50px}.wa-float svg{width:26px;height:26px}}
