/* ==========================================================================
   LEC Insights — post-content.css
   Typography and component styling for long-form publication bodies,
   including Ghost Koenig editor output rendered via {{content}}.
   Loaded on post.hbs and page.hbs only (see default.hbs).
   ========================================================================== */

/* ---------------------------------------------------------------------- */
/* Insight header (post.hbs / page.hbs)                                    */
/* ---------------------------------------------------------------------- */
.letterhead-kicker{ padding-top:36px; max-width:var(--layout-reading); margin:0 auto; }

.insight-header{ padding:14px 0 32px; max-width:var(--layout-reading); margin:0 auto; }
.insight-header .badge{ margin-bottom:18px; }
.insight-title{ font-size:40px; line-height:1.18; letter-spacing:-.01em; margin:0 0 14px; }
.insight-subtitle{ font-size:18px; color:var(--color-ink-soft); margin:0 0 22px; line-height:1.5; font-weight:400; font-family:var(--font-sans); }
.insight-meta{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; font-size:13.5px; color:var(--color-ink-faint); margin-bottom:18px; }
.insight-meta .dot{ width:3px; height:3px; border-radius:50%; background:var(--color-ink-faint); flex-shrink:0; }
.insight-tags{ margin-bottom:0; }
@media (max-width:767px){ .insight-title{ font-size:28px; } }
/* Mobile page-edge gutter for this header is centralized on the parent
   <article> element (screen.css's "main#main > article" rule) rather
   than duplicated here -- see that rule's comment for why. */

/* ---------------------------------------------------------------------- */
/* Utility bar (language / share / PDF)                                    */
/* ---------------------------------------------------------------------- */
.utility-bar{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px;
  padding:20px 0; border-top:1px solid var(--color-line); border-bottom:1px solid var(--color-line);
  max-width:var(--layout-reading); margin:0 auto;
}
.utility-left, .utility-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.utility-left .avail-label{ font-size:12px; color:var(--color-ink-faint); }
.lang-switch{ display:flex; border:1px solid var(--color-line); border-radius:var(--radius-pill); overflow:hidden; }
.lang-switch a, .lang-switch span{ font-size:12.5px; font-weight:600; padding:7px 14px; color:var(--color-ink-faint); }
.lang-switch a:hover{ background:var(--color-bg-alt); }
.lang-switch .is-current{ background:var(--color-accent); color:#fff; }
@media (max-width:767px){
  .utility-bar{ position:sticky; top:var(--layout-header-h); background:var(--color-bg); z-index:20; }
}

/* ---------------------------------------------------------------------- */
/* Body wrapper + Koenig content                                           */
/* ---------------------------------------------------------------------- */
.insight-body{ max-width:var(--layout-reading); margin:0 auto; padding:48px 0 8px; }
/* Mobile page-edge gutter is centralized on the parent <article> element
   (screen.css's "main#main > article" rule) rather than duplicated here
   -- see that rule's comment for why. */

.insight-body p{ font-size:16px; line-height:1.75; color:#333; margin:0 0 18px; overflow-wrap:break-word; word-break:break-word; }
.insight-body p b, .insight-body p strong, .insight-body li b, .insight-body li strong{ color:var(--color-ink); font-weight:600; }
.insight-body h2{ font-size:26px; letter-spacing:-.01em; color:var(--color-ink); margin:52px 0 18px; }
.insight-body h3{ font-size:22px; font-weight:600; letter-spacing:-.008em; color:var(--color-ink); margin:48px 0 16px; }
.insight-body h4{ font-size:18px; font-weight:600; color:var(--color-ink); margin:36px 0 14px; }
.insight-body h2:first-child, .insight-body h3:first-child, .insight-body h4:first-child{ margin-top:0; }
.insight-body ul, .insight-body ol{ margin:0 0 20px; padding-left:22px; }
.insight-body ul{ list-style:disc; }
.insight-body ol{ list-style:decimal; }
.insight-body li{ font-size:16px; line-height:1.7; color:#333; margin-bottom:8px; }
.insight-body li::marker{ color:var(--color-accent); }
.insight-body a{ color:var(--color-accent-deep); text-decoration:underline; text-decoration-color:var(--color-line); text-underline-offset:2px; }
.insight-body a:hover{ text-decoration-color:currentColor; }
.insight-body hr{ border:none; border-top:1px solid var(--color-line); margin:44px 0; }

.insight-body img{ margin:8px auto 32px; border:1px solid var(--color-line); }
.insight-body figure{ margin:0 0 32px; }
.insight-body figure img{ margin-bottom:10px; }
.insight-body figcaption{ font-size:13px; color:var(--color-ink-faint); text-align:center; line-height:1.5; }
.insight-body .kg-width-wide, .insight-body .kg-width-full{ max-width:none; margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); width:100vw; }
.insight-body .kg-width-wide img, .insight-body .kg-width-full img{ border:none; }
.insight-body .kg-gallery-container{ margin:8px 0 32px; }
.insight-body .kg-gallery-row{ display:flex; gap:6px; margin-bottom:6px; }
.insight-body .kg-gallery-image img{ border:none; margin:0; }

.insight-body blockquote{
  margin:0 0 24px; padding:4px 0 4px 22px; border-left:3px solid var(--color-accent);
  font-family:var(--font-serif); font-size:19px; font-style:italic; line-height:1.55; color:var(--color-ink);
}
.insight-body blockquote p{ font-size:inherit; line-height:inherit; color:inherit; margin:0; }
.insight-body .kg-blockquote-alt{ font-family:var(--font-sans); font-style:normal; }

.insight-body pre{
  background:var(--color-ink); color:#f4f1ea; padding:20px 22px; border-radius:var(--radius-sm);
  overflow-x:auto; font-size:13.5px; line-height:1.6; margin:0 0 28px;
}
.insight-body code{ font-family:'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace; font-size:.9em; }
.insight-body :not(pre) > code{ background:var(--color-bg-alt); border:1px solid var(--color-line); border-radius:var(--radius-sm); padding:2px 6px; }
.insight-body pre code{ background:none; border:none; padding:0; }

.insight-body .kg-callout-card{
  display:flex; gap:14px; align-items:flex-start; background:var(--color-accent-soft); border-left:4px solid var(--color-accent);
  border-radius:var(--radius-sm); padding:20px 24px; margin:0 0 28px;
}
.insight-body .kg-callout-emoji{ font-size:20px; line-height:1; flex-shrink:0; }
.insight-body .kg-callout-text{ font-size:15px; line-height:1.65; color:var(--color-ink); margin:0; }

.insight-body .kg-bookmark-card{ margin:0 0 28px; }
.insight-body .kg-bookmark-container{
  display:flex; border:1px solid var(--color-line); border-radius:var(--radius-sm); overflow:hidden; min-height:120px;
}
.insight-body .kg-bookmark-content{ padding:20px; flex:1 1 60%; min-width:0; }
.insight-body .kg-bookmark-title{ font-family:var(--font-serif); font-size:15.5px; font-weight:600; color:var(--color-ink); margin-bottom:6px; }
.insight-body .kg-bookmark-description{ font-size:13px; color:var(--color-ink-soft); line-height:1.5; margin-bottom:12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.insight-body .kg-bookmark-metadata{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--color-ink-faint); }
.insight-body .kg-bookmark-icon{ width:16px; height:16px; }
.insight-body .kg-bookmark-thumbnail{ flex:0 0 30%; min-width:100px; }
.insight-body .kg-bookmark-thumbnail img{ width:100%; height:100%; object-fit:cover; border:none; margin:0; }
@media (max-width:480px){ .insight-body .kg-bookmark-container{ flex-direction:column-reverse; } .insight-body .kg-bookmark-thumbnail{ width:100%; height:160px; } }

.insight-body .kg-embed-card{ margin:0 0 28px; }
.insight-body .kg-embed-card iframe{ width:100%; border:none; }
.insight-body .kg-video-card video{ width:100%; border:1px solid var(--color-line); }

/* -- tables (Koenig + legacy rate-table variant) -- */
.insight-body table{ width:100%; border-collapse:collapse; margin:8px 0 36px; font-size:14.5px; }
.insight-body table caption{ text-align:left; font-size:11.5px; color:var(--color-ink-faint); margin-bottom:12px; letter-spacing:.06em; text-transform:uppercase; }
.insight-body table th{ text-align:left; background:var(--color-ink); color:#fff; font-weight:600; font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:13px 16px; }
.insight-body table td{ padding:13px 16px; border-bottom:1px solid var(--color-line); color:var(--color-ink); }
.insight-body table tr:nth-child(even) td{ background:var(--color-bg-alt); }
.insight-body .table-scroll{ overflow-x:auto; margin:8px 0 36px; border-top:3px solid var(--color-accent); -webkit-overflow-scrolling:touch; }
.insight-body .table-scroll table{ margin:0; min-width:480px; }
@media (max-width:640px){
  .insight-body .table-scroll table thead{ display:none; }
  .insight-body .table-scroll table, .insight-body .table-scroll tbody, .insight-body .table-scroll tr, .insight-body .table-scroll td{ display:block; width:100%; min-width:0; }
  .insight-body .table-scroll table{ min-width:0; }
  .insight-body .table-scroll tr{ border:1px solid var(--color-line); border-radius:var(--radius-sm); margin-bottom:10px; padding:6px 0; }
  .insight-body .table-scroll td{ border-bottom:none; display:flex; justify-content:space-between; gap:12px; padding:8px 16px; text-align:right; }
  .insight-body .table-scroll td::before{ content:attr(data-label); font-size:11.5px; color:var(--color-ink-faint); font-weight:600; text-transform:uppercase; letter-spacing:.03em; text-align:left; }
}

/* ---------------------------------------------------------------------- */
/* Editorial modules: exec summary / key takeaways                         */
/* ---------------------------------------------------------------------- */
.exec-summary{ background:var(--color-accent-soft); border-left:4px solid var(--color-accent); padding:28px 32px; margin-bottom:44px; border-radius:var(--radius-sm); }
.exec-summary .label{ font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--color-accent-deep); margin-bottom:10px; }
.exec-summary p{ margin:0; font-size:15.5px; line-height:1.68; color:var(--color-ink); }

.key-takeaways{ background:var(--color-bg-alt); border-top:3px solid var(--color-accent); padding:32px 34px; margin-bottom:52px; }
.key-takeaways .label{ font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--color-ink); margin-bottom:16px; }
.key-takeaways li{ font-size:15px; line-height:1.62; margin-bottom:13px; color:var(--color-ink); padding-left:22px; position:relative; }
.key-takeaways li::before{ content:''; position:absolute; left:0; top:7px; width:8px; height:8px; background:var(--color-accent); }
.key-takeaways li:last-child{ margin-bottom:0; }

/* ---------------------------------------------------------------------- */
/* Contact / authors block                                                 */
/* ---------------------------------------------------------------------- */
.contact-block{ max-width:var(--layout-reading); margin:0 auto 64px; border:1px solid var(--color-line); border-top:3px solid var(--color-accent); background:var(--color-surface); }
.contact-block-inner{ padding:40px 36px 34px; }
@media (max-width:480px){ .contact-block-inner{ padding:28px 22px 24px; } }
.cb-label{ font-size:11px; letter-spacing:.13em; text-transform:uppercase; color:var(--color-accent); font-weight:700; margin-bottom:8px; }
.cb-address{ font-size:12.5px; color:var(--color-ink-faint); line-height:1.6; margin-bottom:28px; max-width:420px; }
.block-label{ font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--color-ink-faint); margin-bottom:18px; }
.author-cards-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-bottom:26px; }
@media (max-width:767px){ .author-cards-grid{ grid-template-columns:1fr; } }
.author-card{ display:flex; align-items:flex-start; gap:14px; margin-bottom:14px; }
.author-card .photo{ width:52px; height:52px; border-radius:50%; flex-shrink:0; object-fit:cover; border:1px solid var(--color-line); }
.author-card .photo-fallback{
  width:52px; height:52px; border-radius:50%; flex-shrink:0; background:var(--color-bg-alt); border:1px solid var(--color-line);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-serif); font-size:15px; font-weight:600; color:var(--color-ink-faint);
}
.author-card .role{ font-size:10.5px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:var(--color-accent); margin-bottom:5px; }
.author-card .name{ font-family:var(--font-serif); font-size:17px; font-weight:600; color:var(--color-ink); margin-bottom:4px; }
.author-card .name a:hover{ color:var(--color-accent); }
.author-card .title{ font-size:13px; color:var(--color-ink-soft); }
.author-card-actions{ display:flex; align-items:center; gap:8px; font-size:12.5px; margin-left:66px; margin-top:-6px; }
.author-card-actions a{ color:var(--color-ink-soft); font-weight:600; }
.author-card-actions a:hover{ color:var(--color-accent); }
.author-card-actions .pdot{ color:var(--color-ink-faint); }

.credits-row{ display:flex; gap:10px; margin-bottom:12px; align-items:baseline; flex-wrap:wrap; }
.credits-row .role{ font-size:11px; text-transform:uppercase; letter-spacing:.09em; color:var(--color-accent); font-weight:700; width:150px; flex-shrink:0; }
.credits-row .names{ font-size:14.5px; color:var(--color-ink); line-height:1.6; }
.credits-row .names a{ color:var(--color-ink-soft); text-decoration:underline; text-decoration-color:var(--color-line); }

.cb-cta-row{ border-top:1px solid var(--color-line-soft); padding-top:22px; margin-top:6px; display:flex; gap:12px; flex-wrap:wrap; }

/* ---------------------------------------------------------------------- */
/* Related topics / related insights                                       */
/* ---------------------------------------------------------------------- */
.related-topics{ max-width:var(--layout-reading); margin:0 auto 40px; }

.related-block{ border-top:1px solid var(--color-line); padding:52px 0 8px; margin-bottom:8px; }
.related-block .inner{ max-width:var(--layout-max); margin:0 auto; }

/* ---------------------------------------------------------------------- */
/* Deal / dossier metadata strip (Firm News style content)                 */
/* ---------------------------------------------------------------------- */
.deal-strip{ display:grid; grid-template-columns:repeat(3,1fr); gap:0; border:1px solid var(--color-line); border-top:3px solid var(--color-accent); margin:0 0 44px; max-width:var(--layout-reading); }
.deal-strip div{ padding:20px 24px; border-right:1px solid var(--color-line); }
.deal-strip div:last-child{ border-right:none; }
.deal-strip .dl{ font-size:10.5px; text-transform:uppercase; letter-spacing:.09em; color:var(--color-ink-faint); margin-bottom:7px; }
.deal-strip .dv{ font-size:14.5px; font-weight:600; color:var(--color-ink); font-family:var(--font-serif); }
@media (max-width:767px){ .deal-strip{ grid-template-columns:1fr; } .deal-strip div{ border-right:none; border-bottom:1px solid var(--color-line); } .deal-strip div:last-child{ border-bottom:none; } }
