/* ==========================================================================
   INSIGHTS PAGE — styles specific to insights/index.html only.
   Reused as-is: .page-intro/.hero-floaters, .eyebrow, .section-head*,
   .services-bridge*, .faq*, .cta-section*, .btn*. Nothing below duplicates
   those.
   ========================================================================== */

/* ==========================================================================
   1. FEATURED INSIGHT — large editorial card
   ========================================================================== */
.insight-feature-section {
  padding-block: var(--section-py);
}

.insight-feature-section .eyebrow {
  display: block;
  text-align: center;
  margin-bottom: 1.25rem
}

.insight-feature {
  display: flex;
  max-width: 1080px;
  margin-inline: auto;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-md);
  overflow: hidden;
}

.insight-feature__media {
  position: relative;
  flex: 1 1 46%;
  min-height: 280px;
  background: var(--gradient-brand);
  overflow: hidden;
}

.insight-feature__media img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.insight-feature__media.is-broken img {
  display: none
}

.insight-feature__media.is-broken::after {
  content: attr(data-fallback);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  text-align: center;
  color: var(--color-white);
  font-weight: 700;
  font-size: var(--fs-body-sm);
}

.insight-feature__body {
  flex: 1 1 54%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(2rem, 4vw, 3.25rem);
}

.insight-feature__category {
  display: inline-block;
  font-size: var(--fs-caption);
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--color-green-600);
  margin-bottom: .6rem;
}

.insight-feature__title {
  font-size: var(--fs-h3);
  margin-bottom: .9rem
}

.insight-feature__excerpt {
  max-width: 56ch;
  font-size: clamp(.85rem, 1.3vw, 1.2rem);
  margin-bottom: 1.1rem;
  color: var(--color-ink-soft)
}

.insight-feature__meta {
  font-size: var(--fs-body-sm);
  color: var(--color-ink-muted);
  margin-bottom: 1.5rem;
}

@media (max-width:860px) {
  .insight-feature {
    flex-direction: column
  }

  .insight-feature__media {
    min-height: 220px
  }
}

/* ==========================================================================
   2. CATEGORY FILTER
   ========================================================================== */
.insights-filter-section {
  padding-block: clamp(1.5rem, 3vw, 2rem)
}

.insights-filter {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .6rem;
  max-width: 920px;
  margin-inline: auto;
}

.insights-filter__btn {
  padding: .55rem 1.15rem;
  border-radius: var(--radius-full);
  border: 1.5px solid var(--color-border-strong);
  background: transparent;
  color: var(--color-navy-900);
  font-size: var(--fs-body-sm);
  font-weight: 600;
  transition: background-color var(--duration-fast) ease, color var(--duration-fast) ease, border-color var(--duration-fast) ease;
}

.insights-filter__btn:hover {
  border-color: var(--color-green-500)
}

.insights-filter__btn.active {
  background: var(--color-navy-900);
  border-color: var(--color-navy-900);
  color: var(--color-white);
}

/* ==========================================================================
   3. LATEST INSIGHTS — filterable grid
   ========================================================================== */
.insights-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.5rem, 3vw, 2rem);
  max-width: 1200px;
  margin-inline: auto;
}

.insight-card {
  display: flex;
  flex-direction: column;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: transform var(--duration-fast) var(--ease-out-soft), box-shadow var(--duration-fast) ease, border-color var(--duration-fast) ease;
}

.insight-card:hover {
  box-shadow: var(--shadow-md);
  border-color: var(--color-green-200);
}

.insight-card.is-filtered-out {
  display: none
}

.insight-card__media {
  aspect-ratio: 16/10;
  background: var(--gradient-brand);
  overflow: hidden;
  position: relative;
}

.insight-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s var(--ease-default)
}

.insight-card:hover .insight-card__media img {
  transform: scale(1.06)
}

.insight-card__media.is-broken img {
  display: none
}

.insight-card__media.is-broken::after {
  content: attr(data-fallback);
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: .75rem;
  text-align: center;
  color: var(--color-white);
  font-weight: 700;
  font-size: var(--fs-caption);
}

.insight-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5rem
}

.insight-card__category {
  font-size: var(--fs-caption);
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--color-green-600);
  margin-bottom: .5rem;
}

.insight-card__title {
  font-size: var(--fs-h5);
  margin-bottom: .6rem
}

.insight-card__excerpt {
  color: var(--color-ink-soft);
  font-size: var(--fs-body-sm);
  margin-bottom: 1rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.insight-card__meta {
  font-size: var(--fs-caption);
  color: var(--color-ink-muted);
  margin-top: auto;
  padding-top: .75rem;
  border-top: 1px solid var(--color-border);
}

/* shared "Read Insight" arrow link, used by featured card, grid cards
   and the leader-picks cards */
.insight-link {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: var(--fs-body-sm);
  font-weight: 700;
  color: var(--color-navy-900);
  margin-bottom: .85rem;
}

.insight-link svg {
  width: 1.05rem;
  height: 1.05rem;
  transition: transform var(--duration-fast) var(--ease-out-soft)
}

.insight-card:hover .insight-link,
.leader-pick:hover .insight-link,
.insight-feature:hover .insight-link {
  color: var(--color-green-600)
}

.insight-card:hover .insight-link svg,
.leader-pick:hover .insight-link svg,
.insight-feature:hover .insight-link svg {
  transform: translateX(3px)
}

.insights-grid__empty {
  text-align: center;
  color: var(--color-ink-muted);
  margin-top: 2rem;
}

@media (max-width:980px) {
  .insights-grid {
    grid-template-columns: 1fr 1fr
  }
}

@media (max-width:620px) {
  .insights-grid {
    grid-template-columns: 1fr
  }
}

/* ==========================================================================
   4. EXPLORE BY TOPIC — large clickable blocks
   ========================================================================== */
.topic-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
  max-width: 1120px;
  margin-inline: auto;
}

.topic-block {
  position: relative;
  display: block;
  padding: clamp(1.75rem, 3vw, 2.25rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  transition: transform var(--duration-fast) var(--ease-out-soft), border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

.topic-block:hover {
  transform: translateY(-4px);
  border-color: var(--color-green-200);
  box-shadow: var(--shadow-sm);
}

.topic-block__icon {
  width: 3rem;
  height: 3rem;
  display: grid;
  place-items: center;
  border-radius: var(--radius-md);
  background: var(--color-mint-100);
  color: var(--color-green-600);
  margin-bottom: 1.1rem;
}

.topic-block__icon svg {
  width: 1.4rem;
  height: 1.4rem
}

.topic-block h4 {
  margin-bottom: .4rem
}

.topic-block p {
  font-size: var(--fs-body-sm);
  margin-bottom: 1.5rem
}

.topic-block__arrow {
  position: absolute;
  bottom: 1.5rem;
  right: 1.5rem;
  color: var(--color-ink-muted);
  transition: transform var(--duration-fast) var(--ease-out-soft), color var(--duration-fast) ease;
}

.topic-block__arrow svg {
  width: 1.2rem;
  height: 1.2rem
}

.topic-block:hover .topic-block__arrow {
  transform: translateX(3px);
  color: var(--color-green-600)
}

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

@media (max-width:560px) {
  .topic-grid {
    grid-template-columns: 1fr
  }
}

/* ==========================================================================
   5. FOR BUSINESS LEADERS — 3 curated picks
   ========================================================================== */
.for-leaders__lead {
  max-width: 70ch;
  margin-inline: auto;
  margin-bottom: clamp(2rem, 3.5vw, 2.5rem);
  text-align: center;
  font-size: var(--fs-body-lg);
}

.faq-section {
  padding-block: var(--section-py);
}

.leader-picks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
  max-width: 1000px;
  margin-inline: auto;
}

.leader-pick {
  display: flex;
  flex-direction: column;
  padding: clamp(1.5rem, 2.5vw, 1.85rem);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-surface);
  transition: transform var(--duration-fast) var(--ease-out-soft), border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}

.leader-pick:hover {
  transform: translateY(-4px);
  border-color: var(--color-green-200);
  box-shadow: var(--shadow-sm);
}

.leader-pick__category {
  font-size: var(--fs-caption);
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  color: var(--color-green-600);
  margin-bottom: .6rem;
}

.leader-pick h4 {
  margin-bottom: 1.1rem;
  font-size: var(--fs-h6);
  font-family: var(--font-display);
  text-transform: none;
  letter-spacing: normal;
  font-weight: 600
}

.leader-pick .insight-link {
  margin-bottom: 0;
  margin-top: auto
}

@media (max-width:820px) {
  .leader-picks {
    grid-template-columns: 1fr
  }
}

.topic-grid>.reveal,
.leader-picks>.reveal,
.insight-card-wrapper {
  min-width: 0;
  height: 100%;
}

.topic-grid>.reveal>.topic-block,
.leader-picks>.reveal>.leader-pick,
.insight-card-wrapper>.insight-card {
  height: 100%;
}

.insight-card-wrapper.is-filtered-out {
  display: none;
}


/* ==========================================================================
   6. BLOG DETAIL PAGES — styles for /insights/[slug]/index.html
   ========================================================================== */

/* ---- Blog Hero / Header ---- */
.blog-hero {
  position: relative;
  padding-top: calc(var(--header-h) + clamp(2rem, 3vw, 3.5rem));
  padding-bottom: clamp(2rem, 3vw, 3.5rem);
  background: var(--color-mint-100);
  border-bottom: 1px solid var(--color-border);
}

.blog-hero__inner {
  max-width: 820px;
  margin: 0 auto;
}

/* Breadcrumb */
.blog-breadcrumb {
  margin-bottom: var(--space-md);
}

.blog-breadcrumb ol {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.3rem;
  list-style: none;
  padding: 0;
  margin: 0;
}

.blog-breadcrumb li {
  font-size: var(--fs-caption);
  color: var(--color-ink-muted);
}

.blog-breadcrumb a {
  color: var(--color-green-600);
  text-decoration: none;
  transition: color var(--duration-fast) var(--ease-out-soft);
}

.blog-breadcrumb a:hover {
  color: var(--color-green-700);
}

.blog-breadcrumb__separator {
  margin: 0 0.2rem;
  color: var(--color-ink-muted);
}

/* Category Tag */
.blog-hero__category {
  display: inline-block;
  font-size: var(--fs-caption);
  font-weight: 700;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--color-green-600);
  margin-bottom: var(--space-sm);
}

/* Title */
.blog-hero__title {
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  line-height: var(--lh-heading);
  color: var(--color-navy-900);
  margin-bottom: var(--space-md);
}

/* Author */
.blog-hero__author {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
  margin-bottom: var(--space-lg);
}

.blog-hero__author-avatar {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.blog-hero__author-info {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.blog-hero__author-info strong {
  font-size: var(--fs-body-sm);
  color: var(--color-navy-900);
}

.blog-hero__author-info span {
  font-size: var(--fs-caption);
  color: var(--color-ink-muted);
}

.blog-hero__author-meta {
  color: var(--color-ink-muted);
}

/* Featured Image */
.blog-hero__image {
  margin-top: var(--space-lg);
  border-radius: var(--radius-sm);
  overflow: hidden;
  background: var(--color-mint-100);
}

.blog-hero__image img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 1200 / 630;
  object-fit: cover;
}

/* ---- Blog Content ---- */
.blog-content {
  padding-block: clamp(3rem, 5vw, 5rem);
}

.blog-content__body {
  max-width: 820px;
  margin: 0 auto;
}

.blog-content__lead {
  font-size: var(--fs-body-lg);
  color: var(--color-ink-soft);
  line-height: var(--lh-body);
  margin-bottom: var(--space-xl);
  padding-bottom: var(--space-md);
  border-bottom: 1px solid var(--color-border);
}

.blog-content__body h2 {
  font-size: var(--fs-h3);
  color: var(--color-navy-900);
  margin-top: var(--space-2xl);
  margin-bottom: var(--space-md);
}

.blog-content__body h3 {
  font-size: var(--fs-h4);
  color: var(--color-navy-900);
  margin-top: var(--space-xl);
  margin-bottom: var(--space-sm);
}

.blog-content__body p {
  font-size: var(--fs-body);
  color: var(--color-ink-soft);
  line-height: var(--lh-body);
  margin-bottom: var(--space-md);
}

.blog-content__body p:last-child {
  margin-bottom: 0;
}

.blog-content__body ul,
.blog-content__body ol {
  margin: var(--space-md) 0 var(--space-lg);
  padding-left: var(--space-lg);
}

.blog-content__body li {
  font-size: var(--fs-body);
  color: var(--color-ink-soft);
  line-height: var(--lh-body);
  margin-bottom: var(--space-2xs);
}

.blog-content__body li:last-child {
  margin-bottom: 0;
}

/* ---- Author Bio ---- */
.blog-author-bio {
  display: flex;
  align-items: flex-start;
  gap: var(--space-md);
  margin-top: var(--space-2xl);
  padding: var(--space-lg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-mint-50);
}

.blog-author-bio__avatar {
  width: 5rem;
  height: 5rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
}

.blog-author-bio__info {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.blog-author-bio__info strong {
  font-size: var(--fs-body);
  color: var(--color-navy-900);
}

.blog-author-bio__info span {
  font-size: var(--fs-caption);
  color: var(--color-green-600);
  font-weight: 600;
}

.blog-author-bio__info p {
  font-size: var(--fs-body-sm);
  color: var(--color-ink-soft);
  line-height: var(--lh-body);
  margin-top: var(--space-2xs);
}

/* ---- Related Insights (on blog detail pages) ---- */
.related-insights {
  background: var(--color-mint-50);
}

.related-insights__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-md);
  max-width: 1100px;
  margin: 0 auto;
}

.related-card {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  transition:
    border-color var(--duration-fast) var(--ease-out-soft),
    box-shadow var(--duration-fast) var(--ease-out-soft);
  text-decoration: none;
  color: inherit;
}

.related-card:hover {
  border-color: var(--color-green-200);
  box-shadow: var(--shadow-md);
}

.related-card__media {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--color-mint-100);
}

.related-card__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--duration-medium) var(--ease-in-out);
}

.related-card:hover .related-card__img {
  transform: scale(1.05);
}

.related-card__body {
  padding: var(--space-md);
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

.related-card__tag {
  font-size: var(--fs-caption);
  font-weight: 700;
  letter-spacing: var(--ls-eyebrow);
  text-transform: uppercase;
  color: var(--color-green-600);
}

.related-card__title {
  font-size: var(--fs-h5);
  font-weight: 600;
  color: var(--color-navy-900);
  line-height: var(--lh-tight);
  margin: 0;
}

.related-card__read-time {
  font-size: var(--fs-caption);
  color: var(--color-ink-muted);
  margin-top: auto;
}

/* ---- Responsive for Blog Detail Pages ---- */
@media (max-width: 992px) {
  .related-insights__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 768px) {
  .blog-hero__title {
    font-size: clamp(1.6rem, 4vw, 2.4rem);
  }

  .blog-hero__author {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2xs);
  }

  .blog-hero__author-avatar {
    width: 3rem;
    height: 3rem;
  }

  .blog-author-bio {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .blog-author-bio__avatar {
    width: 4rem;
    height: 4rem;
  }

  .related-insights__grid {
    grid-template-columns: 1fr;
    max-width: 500px;
  }

  .blog-content__body {
    padding: 0 var(--space-sm);
  }

  .blog-content__body h2 {
    font-size: var(--fs-h4);
  }

  .blog-content__body h3 {
    font-size: var(--fs-h5);
  }
}

@media (max-width: 480px) {
  .blog-hero {
    padding-top: calc(var(--header-h) + 1.5rem);
  }

  .blog-hero__title {
    font-size: clamp(1.4rem, 3.5vw, 1.8rem);
  }

  .blog-hero__image {
    border-radius: var(--radius-md);
  }

  .blog-author-bio {
    padding: var(--space-md);
  }

  .blog-content__body ul,
  .blog-content__body ol {
    padding-left: var(--space-md);
  }
}

@media (prefers-reduced-motion: reduce) {

  .related-card,
  .related-card__img {
    transition: none;
  }

  .related-card:hover {
    transform: none;
  }

  .related-card:hover .related-card__img {
    transform: none;
  }
}



/* ===============empty state ==================== */
/* ---- Empty State for Related Insights ---- */
.empty-related {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: var(--space-2xl) var(--space-md);
  grid-column: 1 / -1;
}

.empty-related__icon {
  width: 4.5rem;
  height: 4.5rem;
  color: var(--color-ink-muted);
  margin-bottom: var(--space-md);
}


.empty-related__title {
  font-family: var(--font-display);
  font-size: var(--fs-h4);
  color: var(--color-navy-900);
  margin-bottom: var(--space-xs);
}

.empty-related__desc {
  max-width: 44ch;
  color: var(--color-ink-soft);
  font-size: var(--fs-body-sm);
  line-height: var(--lh-body);
  margin-bottom: var(--space-lg);
}

.empty-related__cta {
  margin-top: var(--space-2xs);
}

@media (max-width: 768px) {
  .empty-related {
    padding: var(--space-xl) var(--space-md);
  }

  .empty-related__icon {
    width: 3.5rem;
    height: 3.5rem;
  }

  .empty-related__title {
    font-size: var(--fs-h5);
  }
}