/* ===== Blog page ===== */
.blog-hero{
  position:relative;
  overflow:hidden;
  padding:clamp(7rem,12vw,11rem) clamp(1.25rem,5vw,4.5rem) clamp(2.5rem,5vw,4rem);
}
.blog-hero-bg{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
}
.blog-hero-bg canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:.9;
}
.blog-hero-glow{
  position:absolute;
  top:-20%;
  right:-14%;
  width:58vw;
  height:58vw;
  max-width:880px;
  max-height:880px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%,
    rgba(31,67,255,.22) 0%,
    rgba(91,120,255,.12) 38%,
    rgba(91,120,255,0) 70%);
  filter:blur(20px);
  animation:glowDrift 16s ease-in-out infinite alternate;
}
.blog-hero-inner{
  position:relative;
  z-index:1;
  max-width:1480px;
  margin:0 auto;
}
.blog-hero h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.8rem,8vw,6rem);
  line-height:.98;
  letter-spacing:-.02em;
  max-width:16ch;
}
.blog-hero h1 em{font-style:italic;color:var(--accent)}

/* KOTA-style: logo column + stacked eyebrow & headline */
.page-blog .site-nav{
  justify-content:flex-end;
}
.page-blog .site-header .logo-link{
  visibility:hidden;
  pointer-events:none;
}
.page-blog .blog-hero{
  padding:clamp(1.25rem,3vw,2rem) clamp(1rem,3vw,2rem) clamp(4rem,8vw,6rem);
}
.page-blog .blog-hero-inner{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(1.5rem,4vw,2.75rem);
  align-items:start;
  padding-right:clamp(5rem,14vw,10rem);
}
.page-blog .blog-hero-logo{
  padding-top:.1em;
}
.page-blog .blog-hero-logo .logo-img{
  height:clamp(36px,4.5vw,48px);
  width:auto;
}
.page-blog .blog-hero-stack{
  display:flex;
  flex-direction:column;
  gap:clamp(2rem,5vw,3.5rem);
  min-width:0;
}
.page-blog .blog-hero-eyebrow{
  margin:0;
  font-family:var(--mono);
  font-size:clamp(.68rem,.9vw,.75rem);
  font-weight:500;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  line-height:1;
}
.page-blog .blog-hero h1{
  margin:0;
  max-width:14ch;
  font-size:clamp(3rem,9vw,7.25rem);
  line-height:.94;
  letter-spacing:-.03em;
}
.page-blog .blog-hero-gutter{
  display:none;
}
@media(max-width:720px){
  .page-blog .site-header .logo-link{
    visibility:visible;
    pointer-events:auto;
  }
  .page-blog .site-nav{
    justify-content:space-between;
  }
  .page-blog .blog-hero{
    padding-top:6.5rem;
  }
  .page-blog .blog-hero-inner{
    grid-template-columns:1fr;
    gap:0;
    padding-right:0;
  }
  .page-blog .blog-hero-logo{display:none}
  .page-blog .blog-hero-stack{gap:1.25rem}
  .page-blog .blog-hero h1{
    max-width:16ch;
    font-size:clamp(2.5rem,11vw,3.5rem);
  }
}

/* Featured (constellation) */
.page-blog .blog-featured{
  max-width:1480px;
  margin:clamp(2.5rem,6vw,4.5rem) auto 0;
  padding:0 clamp(1rem,3vw,2rem);
}
.blog-featured{
  max-width:1480px;
  margin:clamp(1rem,2vw,1.5rem) auto 0;
  padding:0 clamp(1.25rem,5vw,4.5rem);
}
.feat-card{
  position:relative;
  overflow:hidden;
  border-radius:26px;
  background:var(--invert-bg);
  color:var(--invert-text);
  min-height:clamp(16rem,28vw,20rem);
  display:flex;
  align-items:flex-end;
  transition:background-color .3s ease,color .3s ease;
}
.feat-bg{position:absolute;inset:0;z-index:0;overflow:hidden}
.feat-bg canvas{width:100%;height:100%;display:block}
.feat-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(to top,rgba(6,8,24,.85),rgba(6,8,24,.3) 45%,transparent 75%);
  pointer-events:none;
}
.feat-inner{
  position:relative;
  z-index:2;
  padding:clamp(1.75rem,4vw,3.5rem);
  max-width:48rem;
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  color:#fff;
}
.page-blog .feat-card{
  width:100%;
}
.page-blog .feat-inner{
  width:100%;
  max-width:none;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:clamp(1.5rem,4vw,2.75rem);
  align-items:end;
  padding:clamp(1.75rem,4vw,3.5rem);
}
.page-blog .feat-inner .blog-hero-gutter{
  display:block;
  width:clamp(36px,4.5vw,48px);
}
.page-blog .feat-body{
  grid-column:2;
  display:flex;
  flex-direction:column;
  gap:1.1rem;
  max-width:48rem;
}
.feat-meta{
  font-family:var(--mono);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.75rem;
  color:rgba(255,255,255,.75);
  display:inline-flex;
  align-items:center;
  gap:.6rem;
}
.feat-pill{
  background:var(--accent);
  color:#fff;
  padding:.25rem .7rem;
  border-radius:999px;
  letter-spacing:.08em;
}
.feat-title{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.9rem,4.2vw,3.4rem);
  line-height:1.02;
  letter-spacing:-.01em;
}
.feat-excerpt{
  max-width:52ch;
  font-size:clamp(1rem,1.3vw,1.15rem);
  line-height:1.6;
  color:rgba(255,255,255,.82);
}
.feat-read{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-weight:600;
  font-size:.95rem;
  color:#fff;
  margin-top:.3rem;
}
.feat-read svg{width:16px;height:16px;transition:transform .2s ease}
.feat-card:hover .feat-read svg{transform:translateX(3px)}

/* Filter bar */
.blog-filter{
  max-width:1480px;
  margin:clamp(2.5rem,5vw,4rem) auto clamp(1.5rem,3vw,2.25rem);
  padding:0 clamp(1.25rem,5vw,4.5rem);
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.filter-btn{
  padding:.6rem 1.15rem;
  border-radius:999px;
  border:1px solid var(--border);
  background:transparent;
  color:var(--muted);
  font-family:var(--sans);
  font-size:.85rem;
  font-weight:500;
  cursor:pointer;
  transition:color .2s ease,border-color .2s ease,background-color .2s ease;
}
.filter-btn:hover{color:var(--text);border-color:var(--text)}
.filter-btn.active{background:var(--text);color:var(--bg);border-color:var(--text)}

/* Grid */
.blog-grid{
  max-width:1480px;
  margin:0 auto clamp(4.5rem,8vw,7rem);
  padding:0 clamp(1.25rem,5vw,4.5rem);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:clamp(1.75rem,3vw,2.75rem);
}
.post-card{
  display:flex;
  flex-direction:column;
  gap:1rem;
  color:var(--text);
}
.post-card.hidden{display:none}
.post-media{
  position:relative;
  aspect-ratio:16/11;
  border-radius:16px;
  overflow:hidden;
  background:linear-gradient(150deg,var(--accent) 0%,#2a2f7a 58%,#0c1030 100%);
  transition:transform .4s cubic-bezier(.22,1,.36,1);
}
.post-media.m-ecom{background:linear-gradient(150deg,#6a3fb5 0%,#2a1d5a 58%,#0c1030 100%)}
.post-media.m-case{background:linear-gradient(150deg,#1f9d8f 0%,#0c3b48 58%,#05161c 100%)}
.post-media.m-basics{background:linear-gradient(150deg,#3f6ad8 0%,#23306e 58%,#0a1030 100%)}
.post-media.m-geo{background:linear-gradient(150deg,#5b78ff 0%,#1a2b7a 58%,#070a24 100%)}
.post-card:hover .post-media{transform:translateY(-5px)}
.post-media::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:36px 36px;
  mask-image:radial-gradient(circle at 65% 35%,#000,transparent 78%);
  -webkit-mask-image:radial-gradient(circle at 65% 35%,#000,transparent 78%);
}
.post-media.has-img{background:#0a0c24}
.post-media.has-img::after{display:none}
.post-media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.post-card:hover .post-media img{transform:scale(1.05)}
.post-meta{
  font-family:var(--mono);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
  color:var(--muted);
}
.post-title{
  font-size:clamp(1.15rem,1.5vw,1.35rem);
  font-weight:600;
  line-height:1.28;
  letter-spacing:-.01em;
  transition:color .2s ease;
}
.post-card:hover .post-title{color:var(--accent)}
.post-excerpt{
  font-size:.95rem;
  line-height:1.55;
  color:var(--muted);
  max-width:44ch;
}
.post-read{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-size:.85rem;
  font-weight:600;
  color:var(--accent);
}
.post-read svg{width:15px;height:15px;transition:transform .2s ease}
.post-card:hover .post-read svg{transform:translateX(3px)}

@media(max-width:900px){
  .blog-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .blog-grid{grid-template-columns:1fr}
}
