/* ACMOBOOK Blog — editorial publication UI (page-specific; keep off homepage CRP) */
:root{
  --acm-blog-ink:#0f172a;
  --acm-blog-muted:#64748b;
  --acm-blog-line:#e7e8f2;
  --acm-blog-surface:#fff;
  --acm-blog-soft:#f6f7fb;
  --acm-blog-accent:var(--acm-primary,#635BFF);
  --acm-blog-max:1180px;
  --acm-blog-prose:46rem;
  --acm-blog-toc:18.5rem;
}

.acm-blog{max-width:var(--acm-blog-max);margin:0 auto;padding:20px 20px 56px}
.acm-blog--home{padding-bottom:40px}
.acm-blog--article{padding-top:12px;padding-bottom:48px}

/* Reading progress */
.acm-blog-progress{
  position:fixed;top:0;left:0;right:0;height:3px;z-index:1200;
  background:transparent;pointer-events:none
}
.acm-blog-progress__bar{
  display:block;height:100%;width:0;
  background:linear-gradient(90deg,var(--acm-blog-accent),#4f46e5);
  transform-origin:left center
}

/* Homepage / listing heroes */
.acm-blog-hero{margin:4px 0 18px;max-width:46rem}
.acm-blog-hero--home{max-width:52rem}
.acm-blog-hero__eyebrow{
  margin:0 0 8px;font-size:.75rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--acm-blog-accent)
}
.acm-blog-hero h1{
  margin:0 0 10px;font-size:clamp(1.85rem,3.4vw,2.65rem);
  letter-spacing:-.03em;line-height:1.12;color:var(--acm-blog-ink)
}
.acm-blog-hero__lead{margin:0;color:var(--acm-blog-muted);line-height:1.65;font-size:1.02rem}
.acm-blog-section{margin:36px 0}
.acm-blog-section--compact{margin:28px 0}
.acm-blog-section h2,.acm-blog-related h2,.acm-blog-more h2{
  margin:0 0 16px;font-size:1.2rem;letter-spacing:-.02em;color:var(--acm-blog-ink)
}

.acm-blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.acm-blog-grid--featured{grid-template-columns:1fr}
.acm-blog-grid--related{grid-template-columns:repeat(3,minmax(0,1fr))}
.acm-blog-grid--trending{grid-template-columns:repeat(4,minmax(0,1fr))}

.acm-blog-cats{display:flex;flex-wrap:wrap;gap:8px}
.acm-blog-cats a{
  display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;
  border:1px solid var(--acm-blog-line);background:var(--acm-blog-surface);
  color:var(--acm-blog-ink);text-decoration:none;font-size:.88rem;font-weight:600
}
.acm-blog-cats a:hover{border-color:var(--acm-blog-accent);color:var(--acm-blog-accent)}
.acm-blog-cats--discover{margin-bottom:18px}

/* Cards */
.acm-blog-card{
  display:flex;flex-direction:column;background:var(--acm-blog-surface);
  border:1px solid var(--acm-blog-line);border-radius:16px;overflow:hidden;
  transition:border-color .15s ease, box-shadow .15s ease
}
.acm-blog-card:hover{border-color:#d4d7ea;box-shadow:0 10px 28px rgba(15,23,42,.06)}
.acm-blog-card--featured{
  display:grid;grid-template-columns:1.25fr 1fr;gap:0;min-height:320px
}
.acm-blog-card__media{
  display:block;background:var(--acm-blog-soft);aspect-ratio:16/9;overflow:hidden;position:relative
}
.acm-blog-card--featured .acm-blog-card__media{aspect-ratio:auto;min-height:100%}
.acm-blog-card__img,.acm-blog-card__media picture,.acm-blog-card__media img{
  width:100%;height:100%;object-fit:cover;display:block
}
.acm-blog-card__body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px;flex:1}
.acm-blog-card--featured .acm-blog-card__body{padding:28px 28px 30px;justify-content:center}
.acm-blog-card--compact .acm-blog-card__body{padding:12px 14px 14px}
.acm-blog-card__cat{
  font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--acm-blog-accent);text-decoration:none
}
.acm-blog-card__title{margin:0;font-size:1.02rem;line-height:1.35;letter-spacing:-.015em}
.acm-blog-card--featured .acm-blog-card__title{font-size:clamp(1.35rem,2.4vw,1.9rem);line-height:1.2}
.acm-blog-card--compact .acm-blog-card__title{font-size:.98rem}
.acm-blog-card__title a{color:var(--acm-blog-ink);text-decoration:none}
.acm-blog-card__title a:hover{color:var(--acm-blog-accent)}
.acm-blog-card__excerpt{margin:0;color:var(--acm-blog-muted);font-size:.93rem;line-height:1.55}
.acm-blog-card__meta{display:flex;flex-wrap:wrap;gap:6px 12px;color:#94a3b8;font-size:.8rem;margin-top:auto}

/* Branded placeholders */
.acm-blog-placeholder{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  width:100%;height:100%;min-height:100%;
  background:
    radial-gradient(120% 90% at 12% 10%, rgba(99,91,255,.18), transparent 55%),
    radial-gradient(90% 80% at 88% 88%, rgba(14,165,233,.12), transparent 50%),
    linear-gradient(145deg,#eef0ff 0%,#f8fafc 48%,#ecfeff 100%);
  color:var(--acm-blog-ink);text-align:center;padding:16px
}
.acm-blog-placeholder__brand{
  font-weight:800;letter-spacing:.08em;font-size:.78rem;text-transform:uppercase;color:var(--acm-blog-accent)
}
.acm-blog-placeholder__label{font-size:.92rem;font-weight:600;color:#475569}
.acm-blog-placeholder--hero{min-height:280px;aspect-ratio:16/9;border-radius:18px}
.acm-blog-placeholder--author{
  width:72px;height:72px;min-height:72px;border-radius:50%;padding:0;
  aspect-ratio:1
}
.acm-blog-placeholder--author .acm-blog-placeholder__brand{font-size:.55rem;letter-spacing:.06em}
.acm-blog-placeholder--author .acm-blog-placeholder__label{display:none}

/* Pagination / search / empty */
.acm-blog-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:28px}
.acm-blog-pagination__link{color:var(--acm-blog-accent);font-weight:600;text-decoration:none}
.acm-blog-pagination__status{color:var(--acm-blog-muted);font-size:.92rem}
.acm-blog-empty{padding:20px 12px;text-align:center;color:var(--acm-blog-muted)}
.acm-blog-empty-panel{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;
  margin:8px 0 28px;border:1px solid var(--acm-blog-line);border-radius:18px;overflow:hidden;
  background:var(--acm-blog-surface)
}
.acm-blog-empty-panel__visual{min-height:220px;background:var(--acm-blog-soft)}
.acm-blog-empty-panel__visual .acm-blog-placeholder{
  min-height:220px;aspect-ratio:auto;border-radius:0
}
.acm-blog-empty-panel__copy{padding:28px 26px;display:flex;flex-direction:column;justify-content:center}
.acm-blog-empty-panel__eyebrow{
  margin:0 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:var(--acm-blog-accent)
}
.acm-blog-empty-panel__title,.acm-blog-empty-panel h2{
  margin:0 0 10px;font-size:clamp(1.25rem,2.2vw,1.55rem);letter-spacing:-.02em;color:var(--acm-blog-ink)
}
.acm-blog-empty-panel__text{margin:0;color:var(--acm-blog-muted);line-height:1.6;font-size:.98rem;max-width:36rem}
.acm-blog-search{display:flex;gap:8px;margin:8px 0 20px;max-width:560px}
.acm-blog-search input{
  flex:1;border:1px solid var(--acm-blog-line);border-radius:12px;padding:12px 14px;font:inherit
}
.acm-blog-search button{
  border:0;border-radius:12px;padding:12px 18px;background:var(--acm-blog-accent);color:#fff;font-weight:600;cursor:pointer
}
.acm-blog-search-meta{margin:0 0 18px;color:var(--acm-blog-muted)}

/* Article page */
.acm-blog-article{max-width:none;margin:0}
.acm-blog-article__header{max-width:52rem;margin:0 0 18px}
.acm-blog-article__cat{
  display:inline-block;margin-bottom:12px;font-size:.75rem;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;color:var(--acm-blog-accent);text-decoration:none
}
.acm-blog-article h1{
  margin:0 0 14px;
  font-size:clamp(2rem,4.2vw,3.5rem);
  letter-spacing:-.035em;line-height:1.08;color:var(--acm-blog-ink);max-width:900px
}
.acm-blog-article__excerpt{
  margin:0 0 16px;color:#475569;font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.55;max-width:46rem
}
.acm-blog-article__meta{
  display:flex;flex-wrap:wrap;gap:8px 14px;color:var(--acm-blog-muted);font-size:.9rem
}
.acm-blog-article__meta a{color:inherit;font-weight:600;text-decoration:none}
.acm-blog-article__meta a:hover{color:var(--acm-blog-accent)}
.acm-blog-article__hero{
  margin:0 0 28px;border-radius:18px;overflow:hidden;background:var(--acm-blog-soft);
  aspect-ratio:16/9;max-height:520px
}
.acm-blog-article__hero img,
.acm-blog-article__hero picture,
.acm-blog-article__hero .acm-blog-article__hero-img{
  width:100%;height:100%;object-fit:cover;display:block
}
.acm-blog-article__hero .acm-blog-placeholder{min-height:100%;aspect-ratio:auto;border-radius:0}

.acm-blog-article__layout{display:block}
.acm-blog-article__layout--toc{
  display:grid;grid-template-columns:minmax(0,1fr) var(--acm-blog-toc);gap:36px;align-items:start
}
.acm-blog-article__main{min-width:0;max-width:var(--acm-blog-prose);order:1}
.acm-blog-article__layout--toc .acm-blog-toc{order:2}

/* Prose */
.acm-blog-prose-notice{
  margin:0 0 1em;padding:16px 18px;border-radius:14px;
  background:var(--acm-blog-soft,#f6f7fb);border:1px solid var(--acm-blog-line,#e7e8f2)
}
.acm-blog-prose-notice p{margin:0 0 .55em;color:#475569}
.acm-blog-prose-notice p:last-child{margin-bottom:0}
.acm-blog-prose-notice strong{color:var(--acm-blog-ink,#0f172a)}
.acm-blog-prose :is(h2,h3,h4){margin:1.35em 0 .55em;letter-spacing:-.02em;line-height:1.25;scroll-margin-top:88px}
.acm-blog-prose h2{font-size:clamp(1.35rem,2vw,1.6rem)}
.acm-blog-prose h3{font-size:clamp(1.15rem,1.6vw,1.3rem)}
.acm-blog-prose h4{font-size:1.05rem}
.acm-blog-prose p{margin:0 0 .95em}
.acm-blog-prose :is(ul,ol){margin:0 0 1em;padding-left:1.25em}
.acm-blog-prose li{margin:.35em 0}
.acm-blog-prose img{max-width:100%;height:auto;border-radius:12px;margin:.4em 0}
.acm-blog-prose a{color:var(--acm-blog-accent);text-underline-offset:2px}
.acm-blog-prose blockquote{
  margin:1.1em 0;padding:.15em 0 .15em 1em;border-left:3px solid var(--acm-blog-accent);color:#475569
}
.acm-blog-prose table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.95em}
.acm-blog-prose th,.acm-blog-prose td{border:1px solid var(--acm-blog-line);padding:8px 10px;text-align:left}
.acm-blog-prose figcaption{margin-top:.4em;font-size:.88rem;color:var(--acm-blog-muted)}

/* TOC */
.acm-blog-toc{
  position:sticky;top:88px;align-self:start;padding:14px 16px;border:1px solid var(--acm-blog-line);
  border-radius:14px;background:var(--acm-blog-surface)
}
.acm-blog-toc__summary{
  list-style:none;cursor:pointer;font-size:.78rem;font-weight:700;letter-spacing:.05em;
  text-transform:uppercase;color:var(--acm-blog-muted)
}
.acm-blog-toc__summary::-webkit-details-marker{display:none}
.acm-blog-toc__nav ol{margin:12px 0 0;padding:0;list-style:none}
.acm-blog-toc__item{margin:0}
.acm-blog-toc__item a{
  display:block;padding:6px 0;color:#334155;text-decoration:none;font-size:.88rem;line-height:1.4;
  border-left:2px solid transparent;padding-left:10px
}
.acm-blog-toc__item a:hover,.acm-blog-toc__item a.is-active{
  color:var(--acm-blog-accent);border-left-color:var(--acm-blog-accent)
}
.acm-blog-toc__item--h3 a{padding-left:18px;font-size:.84rem;color:#64748b}

/* Tax / share / sources / author / CTA */
.acm-blog-tax{margin:28px 0 8px;display:flex;flex-direction:column;gap:10px;padding-top:18px;border-top:1px solid var(--acm-blog-line)}
.acm-blog-tax__row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.88rem;color:var(--acm-blog-muted)}
.acm-blog-tax__row a{color:var(--acm-blog-accent);text-decoration:none;font-weight:600}
.acm-blog-tax__row--tags span{background:var(--acm-blog-soft);border-radius:999px;padding:4px 10px;color:#475569}
.acm-blog-structured-links{margin:24px 0}
.acm-blog-structured-links h2{font-size:1.1rem;margin:0 0 10px}
.acm-blog-structured-links ul{margin:0;padding-left:1.1rem}
.acm-blog-structured-links a{color:var(--acm-blog-accent)}

.acm-blog-share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:28px 0}
.acm-blog-share__label{font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--acm-blog-muted);margin-right:4px}
.acm-blog-share a,.acm-blog-share button{
  border:1px solid var(--acm-blog-line);background:#fff;border-radius:999px;padding:7px 12px;font-size:.82rem;
  color:var(--acm-blog-ink);text-decoration:none;cursor:pointer;font:inherit
}
.acm-blog-share a:hover,.acm-blog-share button:hover{border-color:var(--acm-blog-accent);color:var(--acm-blog-accent)}

.acm-blog-faq,.acm-blog-sources,.acm-blog-author,.acm-blog-related,.acm-blog-cta,.acm-blog-more{margin:32px 0}
.acm-blog-faq h2,.acm-blog-sources h2{font-size:1.15rem;margin:0 0 12px}
.acm-blog-faq details{border-top:1px solid var(--acm-blog-line);padding:12px 0}
.acm-blog-faq summary{cursor:pointer;font-weight:600}
.acm-blog-sources__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:12px}
.acm-blog-sources__list li{
  padding:12px 14px;border:1px solid var(--acm-blog-line);border-radius:12px;background:var(--acm-blog-soft)
}
.acm-blog-sources__list a{color:var(--acm-blog-accent);font-weight:600;text-decoration:none}
.acm-blog-sources__note{display:block;margin-top:4px;color:var(--acm-blog-muted);font-size:.88rem}

.acm-blog-author{
  display:grid;grid-template-columns:72px 1fr;gap:16px;align-items:start;
  padding:18px;border:1px solid var(--acm-blog-line);border-radius:16px;background:var(--acm-blog-surface)
}
.acm-blog-author__media{width:72px;height:72px;border-radius:50%;overflow:hidden;background:var(--acm-blog-soft)}
.acm-blog-author__photo,.acm-blog-author__media img,.acm-blog-author__media picture{
  width:100%;height:100%;object-fit:cover;display:block
}
.acm-blog-author__eyebrow{margin:0 0 4px;font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--acm-blog-muted)}
.acm-blog-author__name{margin:0 0 8px;font-size:1.15rem}
.acm-blog-author__name a{color:var(--acm-blog-ink);text-decoration:none}
.acm-blog-author__bio{margin:0 0 10px;color:#475569;line-height:1.55;font-size:.95rem}
.acm-blog-author__all{color:var(--acm-blog-accent);font-weight:600;text-decoration:none;font-size:.92rem}

.acm-blog-cta{
  padding:24px 22px;border-radius:18px;
  background:
    radial-gradient(120% 100% at 0% 0%, rgba(99,91,255,.12), transparent 55%),
    linear-gradient(135deg,#f8f9ff,#f1f5f9);
  border:1px solid var(--acm-blog-line)
}
.acm-blog-cta__eyebrow{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--acm-blog-accent)}
.acm-blog-cta__title{margin:0 0 8px;font-size:1.25rem;letter-spacing:-.02em}
.acm-blog-cta__text,.acm-blog-cta p{margin:0 0 14px;color:#334155;line-height:1.55}
.acm-blog-cta__actions{display:flex;flex-wrap:wrap;gap:10px}
.acm-blog-cta__actions a{
  display:inline-flex;align-items:center;padding:10px 14px;border-radius:10px;font-weight:600;text-decoration:none
}
.acm-blog-cta__actions a.primary{background:var(--acm-blog-accent);color:#fff}
.acm-blog-cta__actions a.ghost{background:#fff;color:var(--acm-blog-ink);border:1px solid var(--acm-blog-line)}

.acm-blog-related,.acm-blog-more{max-width:none;padding-top:8px;border-top:1px solid var(--acm-blog-line)}

.acm-blog-author-hero,.acm-blog-entity-hero{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:start}
.acm-blog-author-hero__photo,.acm-blog-entity-hero__photo{border-radius:14px;overflow:hidden;background:var(--acm-blog-soft)}
.acm-blog-author-hero__photo img,.acm-blog-entity-hero__photo img{width:100%;height:auto;display:block;aspect-ratio:1;object-fit:cover}
.acm-blog-entity-hero{grid-template-columns:minmax(120px,220px) 1fr}

@media (max-width:1100px){
  .acm-blog-article__layout--toc{grid-template-columns:minmax(0,1fr) 15.5rem;gap:24px}
  .acm-blog-grid--trending{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:991.98px){
  .acm-blog-grid,.acm-blog-grid--related{grid-template-columns:repeat(2,minmax(0,1fr))}
  .acm-blog-grid--trending{grid-template-columns:repeat(2,minmax(0,1fr))}
  .acm-blog-card--featured{grid-template-columns:1fr}
  .acm-blog-empty-panel{grid-template-columns:1fr}
  .acm-blog-empty-panel__visual{min-height:160px}
  .acm-blog-empty-panel__visual .acm-blog-placeholder{min-height:160px}
  .acm-blog-article__layout--toc{grid-template-columns:1fr}
  .acm-blog-article__main{order:2;max-width:none}
  .acm-blog-article__layout--toc .acm-blog-toc{order:1;position:relative;top:auto;margin:0 0 20px}
  .acm-blog-toc__details:not([open]) .acm-blog-toc__nav{display:none}
  .acm-blog-article__hero{max-height:none}
}
@media (max-width:575.98px){
  .acm-blog{padding:14px 14px 44px}
  .acm-blog-grid,.acm-blog-grid--related,.acm-blog-grid--trending{grid-template-columns:1fr}
  .acm-blog-article h1{font-size:clamp(1.85rem,8vw,2.2rem)}
  .acm-blog-author{grid-template-columns:64px 1fr;gap:12px;padding:14px}
  .acm-blog-author__media,.acm-blog-placeholder--author{width:64px;height:64px;min-height:64px}
  .acm-blog-author-hero,.acm-blog-entity-hero{grid-template-columns:1fr}
  .acm-blog-cta__actions a{flex:1 1 auto;justify-content:center}
  .acm-blog-article__hero{border-radius:14px}
}
