/* ============ INSIGHTS ============
   Listing page (insights.html) and article pages (insights-*.html).
   Uses the site's existing tokens from styles.css. */

.ins-meta{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  margin:0 0 16px; font-size:14px; font-weight:600; color:#6b7280;
}
.ins-meta__dot{ width:4px; height:4px; border-radius:50%; background:#c4c7cf; }

/* ---- Featured card ---- */
.ins-feature{ padding:8px 0 96px; background:#fff; }
.ins-card{
  display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  border:1px solid var(--line); border-radius:var(--radius-lg);
  overflow:hidden; background:#fff; box-shadow:var(--shadow-sm);
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.ins-card + .ins-card{ margin-top:32px; }
.ins-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-2px); border-color:#d5d8de; }
.ins-card:focus-visible{ outline:3px solid var(--blue); outline-offset:3px; }
.ins-card__media{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
  min-height:340px; padding:48px 32px; background:var(--bg-2);
}
.ins-card__logo{ width:min(240px, 70%); height:auto; mix-blend-mode:multiply; }
.ins-card__badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 14px; border-radius:999px; background:#fff;
  border:1px solid #cfe9d9; color:#14803c; font-size:13px; font-weight:700;
  box-shadow:var(--shadow-sm);
}
.ins-card__body{ padding:48px 52px; display:flex; flex-direction:column; justify-content:center; }
.ins-card__title{
  font-family:var(--font-heading); font-weight:800; color:#222;
  font-size:clamp(24px, 2.4vw, 32px); line-height:1.2; letter-spacing:-0.015em; margin:0 0 16px;
}
.ins-card__excerpt{ font-size:17px; line-height:1.65; color:#3F4147; margin:0 0 28px; max-width:60ch; }
.ins-card__link{
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  font-weight:700; font-size:15px; color:var(--blue);
}
.ins-card__link svg{ transition:transform .2s ease; }
.ins-card:hover .ins-card__link svg{ transform:translateX(4px); }

/* ---- Media contact strip ---- */
.ins-media{ padding:0 0 120px; background:#fff; }
.ins-media__inner{
  display:flex; align-items:center; justify-content:space-between; gap:32px;
  padding-top:40px; border-top:1px solid var(--line);
}
.ins-media__h{ font-family:var(--font-heading); font-size:22px; font-weight:800; color:#222; margin:0 0 8px; }
.ins-media__p{ margin:0; font-size:16px; line-height:1.6; color:#3F4147; max-width:62ch; }
.ins-media__p a{ color:var(--blue); font-weight:600; }

/* ---- Article ---- */
.ins-article{ background:#fff; }
.ins-article__container{ max-width:820px; }
.ins-article__head{ padding:112px 0 40px; }
.ins-back{
  display:inline-flex; align-items:center; gap:8px; margin-bottom:36px;
  font-size:14px; font-weight:600; color:#6b7280; transition:color .15s ease;
}
.ins-back:hover{ color:var(--blue); }
.ins-article__h1{
  font-family:var(--font-heading); font-weight:900; color:#222;
  font-size:clamp(30px, 4.2vw, 48px); line-height:1.12; letter-spacing:-0.02em; margin:0;
}

.ins-prose{
  padding:36px 0 80px; border-top:1px solid var(--line);
  font-size:18px; line-height:1.75; color:#3F4147;
}
.ins-prose p{ margin:0 0 24px; }
.ins-prose strong{ color:#222; }
.ins-prose a{ color:var(--blue); font-weight:600; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.ins-prose h2{
  font-family:var(--font-heading); font-weight:800; color:#222;
  font-size:22px; line-height:1.3; margin:40px 0 16px;
}

.ins-checks{ list-style:none; margin:0 0 40px; padding:0; display:grid; gap:12px; }
.ins-checks li{
  position:relative; padding:16px 20px 16px 52px;
  background:var(--bg-2); border-radius:var(--radius); line-height:1.55; color:#222;
}
.ins-checks li::before{
  content:""; position:absolute; left:18px; top:50%; width:20px; height:20px; margin-top:-10px;
  border-radius:50%; background:var(--blue)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")
    center/12px no-repeat;
}

.ins-quote{ margin:48px 0; padding:0 0 0 28px; border-left:3px solid var(--blue); }
.ins-quote blockquote{
  margin:0 0 20px; font-family:var(--font-body); font-weight:500; color:#222;
  font-size:clamp(20px, 2.2vw, 25px); line-height:1.5; letter-spacing:-0.005em;
}
.ins-quote figcaption{ display:flex; align-items:center; gap:14px; font-size:15px; line-height:1.4; color:#6b7280; }
.ins-quote figcaption strong{ color:#222; }
.ins-quote__photo{ width:48px; height:48px; border-radius:50%; object-fit:cover; object-position:center 20%; }

.ins-about{ margin-top:48px; padding-top:8px; border-top:1px solid var(--line); font-size:16px; line-height:1.7; }
.ins-about h2{ font-size:18px; margin:32px 0 10px; }
.ins-about p{ margin:0 0 8px; }

.ins-source{ margin:40px 0 0 !important; font-size:14px; color:#6b7280; }

.ins-cta{ background:var(--bg-2); padding:96px 0; }

/* ---- Responsive ---- */
@media (max-width:900px){
  .ins-card{ grid-template-columns:1fr; }
  .ins-card__media{ min-height:220px; padding:36px 24px; }
  .ins-card__body{ padding:32px 28px 36px; }
  .ins-media__inner{ flex-direction:column; align-items:flex-start; }
}
@media (max-width:640px){
  .ins-feature{ padding-bottom:64px; }
  .ins-media{ padding-bottom:80px; }
  .ins-article__head{ padding:88px 0 28px; }
  .ins-back{ margin-bottom:24px; }
  .ins-prose{ font-size:17px; padding-bottom:56px; }
  .ins-quote{ padding-left:20px; margin:36px 0; }
  .ins-checks li{ padding:14px 16px 14px 46px; }
  .ins-checks li::before{ left:14px; }
  .ins-cta{ padding:72px 0; }
}
