/* Shared type scale, based on the supplied Home design. Loaded on every route. */
:root {
  --type-display-size: clamp(40px, 5.2vw, 72px);
  --type-display-leading: 1.02;
  --type-section-size: clamp(34px, 4.6vw, 58px);
  --type-heading-leading: 1.06;
  --type-heading-tracking: -.025em;
  --type-card-size: clamp(21px, 2.3vw, 28px);
  --type-lead-size: clamp(16px, 1.35vw, 18.5px);
  --type-body-leading: 1.55;
  --type-label-size: 12.5px;
}

body,
.reference-home {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 400;
  line-height: var(--type-body-leading);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4,
.reference-home :is(h1, h2, h3, h4) {
  font-family: var(--font-heading);
  font-weight: 700;
  line-height: var(--type-heading-leading);
  letter-spacing: var(--type-heading-tracking);
  text-transform: none;
}

h1,
.page-hero h1,
.article .page-hero h1,
.reference-home .lh-hero h1 {
  font-size: var(--type-display-size);
  line-height: var(--type-display-leading);
  letter-spacing: var(--type-heading-tracking);
}

h2,
.reference-home .lh-h2 {
  font-size: var(--type-section-size);
}

.panel h3,
.tech-node h3,
.insight-card h2,
.reference-home .lh-step h3 {
  font-size: var(--type-card-size);
  line-height: var(--type-heading-leading);
  letter-spacing: var(--type-heading-tracking);
}

.agent-card h3,
.reference-home .lh-agent h3 {
  font-size: 21px;
  line-height: var(--type-heading-leading);
}

.lede,
.reference-home .lh-lead {
  font-family: var(--font-body);
  font-size: var(--type-lead-size);
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: normal;
  color: #6c6d66;
}

.panel, .tech-node, .agent-card, .form {
  line-height: var(--type-body-leading);
}

.story {
  font-family: var(--font-heading);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: var(--type-heading-tracking);
}

.page-hero h1 { margin: 26px 0 20px; }
.page-hero .lede { margin: 0; max-width: 62ch; }

/* Long-form reading uses the same family and tracking with more line spacing. */
.article-body, .policy { font-size: 18px; line-height: 1.72; }
.article-body h2, .policy h2 { font-size: 32px; line-height: 1.18; }
.article-body h3, .policy h3 { font-size: 24px; line-height: 1.18; }
.article-meta, .updated { font-family: var(--font-body); font-size: 14px; line-height: 1.55; }

.btn,
.reference-home .lh-btn {
  font-family: var(--font-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: normal;
}
.btn { min-height: 48px; padding: 12px 24px; }
.reference-home .lh-btn-sm { font-size: 13.5px; }
.field label { font-weight: 600; }

/* In-page labels follow Home's small, quiet section labels. */
.kicker:not(.page-label),
.reference-home .lh-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: #6c6d66;
  margin-bottom: 22px;
}
.kicker:not(.page-label)::before,
.reference-home .lh-eyebrow::before {
  content: "";
  width: 7px;
  height: 7px;
  flex: 0 0 7px;
  border-radius: 50%;
  background: #a8d318;
  box-shadow: none;
}
.tech-node small, .agent-card small, .fact small, .insight-card small, .status {
  font-family: var(--font-body);
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: .1em;
  text-transform: uppercase;
}

/* One page-label component for Home, corporate pages, and Insights articles.
   The icon is CSS-only, so translation cannot remove it or introduce a flash. */
.page-label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  max-width: 100%;
  padding: 6px 13px 6px 8px;
  margin: 0;
  border: 1px solid #e3e2d6;
  border-radius: 999px;
  background: #fff;
  color: #0b0b0c;
  box-shadow: 0 1px 2px rgba(11,11,12,.04), 0 12px 32px -12px rgba(11,11,12,.12);
  font-family: var(--font-body);
  font-size: var(--type-label-size);
  font-weight: 500;
  line-height: 1.55;
  letter-spacing: normal;
  text-transform: none;
}
.page-label::before {
  content: "";
  display: block;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  border-radius: 50%;
  background: #cdf547 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%230b0b0c' d='M8 1.5 10 6l4.5 2-4.5 2-2 4.5L6 10 1.5 8 6 6Z'/%3E%3C/svg%3E") center / 10px 10px no-repeat;
  box-shadow: none;
}

@media (max-width: 560px) {
  :root { --type-label-size: 11px; }
  .article-body, .policy { font-size: 17px; }
  .article-body h2, .policy h2 { font-size: 28px; }
}

/* Corporate identity and current/planned integration use the shared Home palette. */
.reference-home .company-intro { background:#eef0e5; border-block:1px solid #dde1d0; }
.company-intro-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr); gap:clamp(32px,6vw,88px); align-items:center; }
.company-intro .lh-h2 { max-width:20ch; }
.company-intro .company-description { max-width:65ch; }
.company-links { display:flex; flex-wrap:wrap; gap:16px 28px; margin-top:28px; font-weight:600; }
.company-links a,.integration-card a { text-decoration:underline; text-underline-offset:5px; }
.company-facts { background:#fafbf6; border:1px solid #dbe0ce; border-radius:24px; padding:28px; }
.company-facts>div { display:grid; gap:5px; padding:16px 0; border-bottom:1px solid #dbe0ce; }
.company-facts span { font-size:13px; color:#676b5d; }
.company-facts strong { font-size:19px; font-weight:600; }
.company-facts p { margin:22px 0 0; font-size:14px; color:#676b5d; }
.integration-card { border:1px dashed #aab197; background:#eef0e5; border-radius:24px; padding:clamp(24px,4vw,44px); }
.integration-card h2 { font-size:clamp(25px,3vw,36px); margin:14px 0; overflow-wrap:anywhere; }
.integration-card p { max-width:85ch; color:#626759; }
.integration-label { font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.agent-io { margin:24px 0 0; padding-top:16px; border-top:1px solid #e1e3da; font-size:14px; }
.agent-io div+div { margin-top:12px; }
.agent-io dt { font-size:12px; color:#69705b; }
.agent-io dd { margin:3px 0 0; }
.fallback-languages { display:flex; gap:20px; flex-wrap:wrap; padding-top:24px; }
@media(max-width:850px) { .company-intro-grid { grid-template-columns:1fr; } }

/* Company announcements share the product's quiet palette and type system. */
.company-news { padding:48px 0 72px; background:#eef0e5; }
.news-feature { padding:clamp(26px,4vw,48px); border:1px solid #dbe0ce; border-radius:24px; background:#fafbf6; }
.news-meta { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; color:#626759; font-size:13px; }
.news-category { font-weight:600; color:#3b4b1a; }
.news-feature h2 { max-width:28ch; margin:22px 0 16px; font-size:clamp(28px,3.2vw,42px); line-height:1.12; text-wrap:balance; }
.news-feature p { max-width:75ch; margin:0 0 24px; color:#626759; line-height:1.65; }
.news-link,.news-back { display:inline-block; font-weight:600; text-decoration:underline; text-underline-offset:5px; }
.news-link { color:#263414; }
.news-listing { margin-bottom:32px; }
.company-milestone { padding-top:0; }
.about-direction { min-height:0; margin-top:18px; }
.leadership-card { scroll-margin-top:96px; }
.leadership-link { display:inline-block; margin-top:16px; color:#cdf547; font-weight:600; text-decoration:underline; text-underline-offset:5px; }
.news-page { background:#fcfcf9; }
.news-article { max-width:856px; padding:0 28px 80px; }
.news-article .page-hero { padding:48px 0 30px; border-bottom:1px solid #dce0d5; }
.news-context { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 24px; }
.news-back { display:inline-flex; align-items:center; min-height:44px; margin:0; color:#535b4c; font-size:14px; font-weight:500; }
.news-hero .page-label { box-shadow:none; background:#f4f7eb; border-color:#dfe5d3; }
.news-article .page-hero h1 { margin:28px 0 22px; font-size:clamp(32px,4.2vw,48px); line-height:1.14; letter-spacing:-.025em; max-width:none; text-wrap:balance; hyphens:none; }
.news-nowrap { white-space:nowrap; }
.news-article .news-summary { max-width:none; font-size:20px; line-height:1.55; color:#535b4c; }
.news-hero .news-meta { margin-top:26px; gap:10px 18px; font-size:14px; color:#535b4c; }
.news-hero .news-meta>span { padding-right:18px; border-right:1px solid #cbd2c2; }
.news-date { font-variant-numeric:tabular-nums; }
.news-article .article-body { max-width:none; margin:32px 0 0; font-size:18px; line-height:1.75; color:#242923; }
.news-article .article-body>p { margin:0 0 24px; }
.news-dateline { font-size:.94em; font-weight:700; letter-spacing:.025em; }
.news-quote { margin:32px 0; padding:4px 0 4px 26px; border-left:2px solid #859b4c; border-radius:0; background:transparent; }
.news-quote blockquote { margin:0; font-size:21px; line-height:1.65; letter-spacing:-.01em; }
.news-quote figcaption { margin-top:16px; color:#535b4c; font-size:14px; line-height:1.55; font-weight:600; }
.news-boilerplate { margin-top:36px; padding-top:28px; border-top:1px solid #dce0d5; }
.news-article .news-boilerplate h2,.news-article .news-contact h2 { margin:0 0 12px; font-size:22px; line-height:1.25; letter-spacing:-.015em; }
.news-boilerplate p { margin:0; font-size:17px; line-height:1.7; color:#424a3c; }
.news-contact { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:20px 32px; margin-top:28px; padding-top:28px; border-top:1px solid #dce0d5; }
.news-contact a { display:inline-flex; align-items:center; min-height:44px; font-size:16px; text-decoration:underline; text-underline-offset:4px; }
.news-contact-details h2 { margin-bottom:4px; }
.news-contact-details a { overflow-wrap:anywhere; }
.news-contact .news-product { color:#354a17; font-size:15px; font-weight:600; }
.news-page a:focus-visible { outline:2px solid #52672c; outline-offset:5px; border-radius:2px; }
.news-page a:hover { text-decoration-thickness:2px; }
.agent-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.agent-modes { padding-top:0; }
.agent-modes-grid .agent-card[data-agent-state="mode"] { background:#eef0e5; }
.brand { white-space:nowrap; flex-shrink:0; }
@media(min-width:851px) and (max-width:1050px) {
  .navlinks a { padding-inline:8px; font-size:12px; }
}
@media(max-width:850px) {
  .agent-grid { grid-template-columns:1fr; }
  .company-news { padding:28px 0 48px; }
}
@media(max-width:560px) {
  .news-article { padding:0 22px 56px; }
  .news-article .page-hero { padding:24px 0 24px; }
  .news-context { gap:8px 14px; }
  .news-back { font-size:13px; }
  .news-article .page-hero h1 { margin:22px 0 18px; font-size:32px; line-height:1.16; }
  .news-article .news-summary { font-size:18px; line-height:1.6; }
  .news-article .article-body { margin-top:26px; font-size:17px; line-height:1.75; }
  .news-quote { margin:28px 0; padding:2px 0 2px 18px; }
  .news-quote blockquote { font-size:19px; line-height:1.65; }
  .news-boilerplate { margin-top:30px; padding-top:24px; }
  .news-contact { margin-top:24px; padding-top:24px; }
  .news-meta { gap:8px 18px; }
}

/* A clean article when journalists use the browser's Print / Save as PDF. */
@media print {
  body:has(.news-page) { background:#fff; color:#000; }
  body:has(.news-page)>header,body:has(.news-page)>footer,.news-page .news-back { display:none!important; }
  .news-page { background:#fff; }
  .news-article { max-width:none; padding:0; }
  .news-article .page-hero { padding:0 0 16pt; }
  .news-hero .page-label { padding:0; background:none; border:0; box-shadow:none; color:#000; }
  .news-hero .page-label::before { display:none; }
  .news-article .page-hero h1 { margin:14pt 0 12pt; font-size:25pt; line-height:1.14; }
  .news-article .news-summary { font-size:12pt; line-height:1.5; color:#333; }
  .news-hero .news-meta { margin-top:12pt; font-size:10pt; }
  .news-article .article-body { margin-top:18pt; font-size:11pt; line-height:1.55; }
  .news-article .article-body>p { margin-bottom:12pt; orphans:3; widows:3; }
  .news-quote { margin:18pt 0; padding-left:14pt; border-color:#666; break-inside:avoid; }
  .news-quote blockquote { font-size:12pt; line-height:1.55; }
  .news-quote figcaption { margin-top:8pt; font-size:10pt; }
  .news-boilerplate { margin-top:18pt; padding-top:14pt; }
  .news-boilerplate p { font-size:10.5pt; line-height:1.55; }
  .news-article .news-boilerplate h2,.news-article .news-contact h2 { font-size:13pt; break-after:avoid; }
  .news-contact { margin-top:14pt; padding-top:12pt; break-inside:avoid; }
  .news-contact a,.news-contact .news-product { min-height:0; font-size:10.5pt; color:#000; }
  .news-context,.news-hero .news-meta { break-inside:avoid; }
}

/* Company-led homepage. Product previews retain their own Luminpath identity. */
.reference-home .company-hero { background:#111510; color:#f5f4eb; padding:64px 0 30px; }
.company-hero-top { display:flex; justify-content:space-between; gap:24px; margin-bottom:48px; }
.company-eyebrow,.company-origin { font-size:12px; letter-spacing:.12em; line-height:1.6; text-transform:uppercase; }
.company-eyebrow { color:#cdf547; }
.company-origin { color:#b6beaf; }
.reference-home .company-hero h1 { max-width:1120px; font-size:clamp(48px,7.5vw,104px); line-height:1.03; letter-spacing:-.045em; text-wrap:balance; }
.reference-home .company-hero-lead { max-width:770px; margin:32px 0 0; color:#bfc7b8; font-size:clamp(17px,1.6vw,21px); line-height:1.65; }
.company-hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px 32px; margin-top:32px; }
.company-text-link { font-weight:600; text-decoration:underline!important; text-underline-offset:6px; }
.company-hero-bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-top:64px; padding-top:22px; border-top:1px solid #3b4435; }
.company-hero-bottom>span { color:#cdf547; font-family:var(--font-heading); font-size:42px; font-weight:700; line-height:1; letter-spacing:-.04em; }
.company-hero-bottom>p { color:#bfc7b8; font-size:13px; text-align:right; }
.company-vision-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,7vw,100px); }
.reference-home .company-intro { padding:90px 0 64px; }
.company-vision-grid .lh-h2 { max-width:18ch; }
.company-vision-grid p+p { margin-top:24px; }
.reference-home .company-product { padding-top:88px; scroll-margin-top:70px; border-bottom:1px solid #e3e2d6; }
.reference-home .company-product-title { margin:24px 0; font-size:clamp(48px,5.2vw,72px); letter-spacing:-.04em; }
.company-product .lh-mockwrap { align-self:center; }
.company-home #lh-match,.company-home #lh-autopilot { padding-block:80px; }
.reference-home .company-contact { padding:72px 0; }
.company-contact .lh-h2 { max-width:850px; margin-inline:auto; text-wrap:balance; }
.company-contact .lh-lead { margin:24px auto 30px; max-width:620px; }
.company-home #ats-score { border-top:1px solid #d7dccf; }
.team-background h2 { max-width:850px; margin:20px 0; }
.brand { font-family:var(--font-heading); font-weight:700; letter-spacing:-.04em; }
.company-home a:focus-visible { outline:3px solid #80a61d; outline-offset:6px; }
@media(max-width:850px) {
 .company-vision-grid { grid-template-columns:1fr; }
 .reference-home .company-intro { padding:64px 0 48px; }
 .reference-home .company-product { padding-top:64px; }
 .company-home #lh-match,.company-home #lh-autopilot { padding-block:56px; }
}
@media(max-width:560px) {
 .reference-home .company-hero { padding-top:40px; }
 .company-hero-top { margin-bottom:32px; }
 .company-origin { max-width:86px; text-align:right; font-size:10px; }
 .company-eyebrow { font-size:11px; }
 .reference-home .company-hero h1 { font-size:46px; }
 .company-hero-actions { gap:24px; }
 .company-hero-bottom { margin-top:48px; align-items:center; }
 .company-hero-bottom>p { max-width:190px; font-size:12px; }
 .reference-home .company-contact { padding:56px 0; }
}
@media(max-width:560px) {
 .company-product .lh-hero-cta { display:grid; grid-template-columns:1fr; }
 .company-product .lh-hero-cta .lh-btn { width:100%; justify-content:center; white-space:nowrap; }
 .company-product .lh-m-side { display:none; }
 .company-product .lh-mock { grid-template-columns:minmax(0,1fr); }
}
