/* Jettison site footer — shared partial styles.
   Extracted from the landing (index.html) 2026-07-19 so nested pages
   (jettison-blog/, solutions/, tools/) can mount the same footer. */

/* pills */
  .pill { display:inline-flex; align-items:center; gap:10px; border-radius:999px; padding:13px 26px; font-size:15px; cursor:pointer; white-space:nowrap; transition:var(--hover); }
  .pill.solid { background:var(--inverse-ground); color:var(--inverse-ink); }
  .pill.solid:hover { background:var(--pill-solid-hover); }
  .pill.ghost { border:1px solid var(--line); color:var(--ink-2); }
  .pill.ghost:hover { color:var(--ink); border-color:color-mix(in srgb, var(--ink) 30%, transparent); }
  .pill.dark { background:var(--inverse-ink); color:var(--inverse-ground); }
  .pill.dark:hover { background:var(--pill-dark-hover); }

/* wordmark base */
  footer .wordmark { max-width:1440px; margin:0 auto; padding:6vh 84px 3vh; }
  footer .wordmark svg { width:100%; height:auto; display:block; }

/* The footer carries its own reset: the old landing's inline page reset used to supply it, and the pages
   that mount the footer now (the Jettison page, Kontext) do not. */
  /* :where() keeps the reset at zero specificity, so the footer's own rules (.footer-legal's margin) still win. */
  :where(footer.site-footer) {font-family: var(--font-body); -webkit-font-smoothing: antialiased;}
  :where(footer.site-footer, footer.site-footer *) {box-sizing: border-box;}
  :where(footer.site-footer ul) {margin: 0; padding: 0;}
  :where(footer.site-footer a) {color: inherit; text-decoration: none;}
  :where(footer.site-footer p) {margin: 0;}

/* link-rich rocket footer */
  /* link-rich rocket footer */
  footer.site-footer { position:relative; margin:0; overflow:hidden; background:#10100E; color:var(--ink); }
  .footer-links { max-width:1440px; margin:0 auto; padding:120px 84px 90px; display:grid; grid-template-columns:max-content max-content max-content max-content; justify-content:space-between; column-gap:48px; row-gap:0; align-items:stretch; }
  .footer-column { min-width:0; display:flex; flex-direction:column; }
  .footer-group .lab { font-family:'PP Neue Montreal',system-ui,sans-serif; font-size:12.5px; font-weight:500; line-height:1.3; letter-spacing:0; text-transform:none; color:var(--ink-3); padding-bottom:16px; }
  .footer-group .lab.lab-sub { padding-top:36px; }
  .footer-group .col-body { border-left:1px solid var(--line-faint); padding-left:20px; }
  .footer-column .col-body:last-child { flex:1; }
  .footer-group ul { list-style:none; display:flex; flex-direction:column; gap:12px; }
  .footer-group li a { display:block; font-family:'PP Neue Montreal',sans-serif; font-size:18px; font-weight:400; color:var(--ink-2); white-space:nowrap; transition:var(--hover); }
  .footer-group li a:hover { color:var(--ink); }
  .footer-group .soon { font-family:'PP Neue Montreal',sans-serif; font-weight:400; font-size:18px; color:var(--ink-3); white-space:nowrap; display:inline-flex; align-items:center; gap:10px; cursor:default; }
  .footer-group .soon em { font-family:'PP Neue Montreal',system-ui,sans-serif; font-style:normal; font-weight:500; font-size:12.5px; letter-spacing:0; text-transform:none; color:var(--ink-3); border:1px solid var(--line-faint); border-radius:999px; padding:2.5px 8px 1.5px; }
  .footer-company { grid-column:4; grid-row:1 / 3; }
  .footer-company .col-body { display:flex; flex-direction:column; }
  .footer-links .wordmark { grid-column:1 / 4; grid-row:2; align-self:end; padding:56px 0 0; margin:0; max-width:none; }
  .footer-links .wordmark svg { width:100%; height:auto; display:block; }
  .footer-cta { margin-top:46px; display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
  .footer-cta .pill { padding:12px 22px; font-size:13.5px; }
  .footer-cta p { margin-top:10px; max-width:26ch; color:var(--ink-3); font-size:13px; line-height:1.55; }
  .footer-social { margin-top:34px; display:flex; gap:18px; }
  .footer-social a { color:var(--ink-2); transition:var(--hover); }
  .footer-social a:hover { color:var(--ink); }
  .footer-social svg { width:17px; height:17px; display:block; }
  .footer-legal { margin-top:36px; list-style:none; display:flex; flex-direction:column; gap:13px; }
  .footer-legal li a { font-family:'PP Neue Montreal',system-ui,sans-serif; font-size:12.5px; font-weight:400; letter-spacing:0; text-transform:none; color:var(--ink-3); transition:var(--hover); }
  .footer-legal li a:hover { color:var(--ink); }
  .footer-copyright { margin-top:auto; padding-top:44px; font-family:'PP Neue Montreal',system-ui,sans-serif; font-size:12.5px; letter-spacing:0; text-transform:none; color:var(--ink-3); }

  @media (max-width:1200px) {
    .truth-grid { grid-template-columns:1fr; }
    .truth-copy h2 { max-width:15ch; }
    .footer-links { grid-template-columns:max-content max-content; padding:104px 40px 82px; row-gap:72px; }
    .footer-services { grid-column:1; grid-row:1; }
    .footer-markets { grid-column:2; grid-row:1; }
    .footer-resources { grid-column:1; grid-row:2; }
    .footer-company { grid-column:2; grid-row:2; }
    .footer-links .wordmark { grid-column:1 / -1; grid-row:3; padding-top:90px; }
  }

  @media (max-width:1080px) {
    .chapter, .capabilities, .market-play, .criteria, .values, .thesis { padding-left:40px; padding-right:40px; }
    .chapter-head { gap:44px; }
    .examples-band, .truth-band { padding-left:40px; padding-right:40px; }
    .examples-layout { gap:42px; grid-template-columns:minmax(260px,.65fr) minmax(450px,1.35fr); }
    .moves { grid-template-columns:1fr; }
    .move { min-height:250px; border-right:0; border-bottom:1px solid var(--line); display:grid; grid-template-columns:54px 150px 1fr; gap:28px; align-items:center; }
    .move:last-child { border-bottom:0; }
    .move svg { margin:0; height:90px; }
    .cap-grid, .market-process, .niche-rail, .value-grid { grid-template-columns:repeat(2,1fr); }
    .cap-item { min-height:200px; }
    .market-step:nth-child(2), .niche:nth-child(2) { border-right:0; }
    .market-step:nth-child(-n+2) { border-bottom:1px solid var(--line-faint); }
    .niche:nth-child(-n+2) { border-bottom:1px solid var(--line); }
    .criteria-layout { grid-template-columns:.85fr 1.15fr; }
    .operator-cta { grid-template-columns:1fr; }
    .thesis-grid { grid-template-columns:1.2fr 1fr; grid-template-rows:auto; }
    .thesis-lead { grid-row:span 2; }
    .thesis-card:nth-child(n) { border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
    .thesis-card:nth-child(odd) { border-right:0; }
  }

  @media (max-width:860px) {
    .chapter-rule .eyebrow { min-width:0; white-space:normal; line-height:1.5; }
    .chapter-rule::after { min-width:16px; }
    .op-band { grid-template-columns:1fr; }
    .op-band .op-left  { padding:34px 22px 26px; }
    .op-band .op-right { padding:26px 22px 34px; border-left:0; border-top:1px solid var(--line); }
    .op-lead { max-width:none; }
    .chapter, .capabilities, .market-play, .criteria, .values, .thesis { padding:12vh 22px 4vh; }
    .chapter-rule { margin-bottom:34px; }
    .chapter-head, .move-intro, .cap-top { grid-template-columns:1fr; gap:28px; }
    .chapter-lede, .move-intro p { justify-self:start; }
    .metric-strip { grid-template-columns:1fr 1fr; }
    .metric:nth-child(2) { border-right:0; }
    .metric:nth-child(-n+2) { border-bottom:1px solid var(--line-faint); }
    .move { display:flex; min-height:290px; }
    .move svg { margin:28px 0; }
    .examples-band, .truth-band { margin-top:12vh; padding:12vh 22px; }
    .examples-layout { grid-template-columns:1fr; }
    .examples-copy { position:static; min-height:auto; }
    .example-nav { display:none; }
    .example-panel { min-height:auto; grid-template-rows:300px auto; }
    .example-visual { min-height:300px; }
    .cap-grid, .market-process, .niche-rail, .value-grid { grid-template-columns:1fr; }
    .cap-item { min-height:180px; }
    .market-step, .market-step + .market-step { padding:28px 0; border-right:0; border-bottom:1px solid var(--line-faint); }
    .niche { border-right:0; border-bottom:1px solid var(--line); }
    .impact-mosaic { grid-template-columns:1fr; grid-template-rows:auto; }
    .impact-cell { min-height:190px; border-right:0; }
    .impact-photo { grid-column:auto; grid-row:auto; min-height:430px; }
    .truth-deck { min-height:0; flex-direction:column; }
    .camp, .camp.active { flex:0 0 auto; min-height:70px; border-radius:14px; }
    .camp.active { min-height:390px; }
    .camp-tab span { writing-mode:horizontal-tb; transform:none; }
    .camp-body { width:100%; }
    .criteria-layout { grid-template-columns:1fr; }
    .fit-map { min-height:420px; }
    .criteria-list summary { grid-template-columns:40px 1fr auto; padding-left:10px; padding-right:10px; }
    .criteria-list details p { padding-left:50px; padding-right:28px; }
    .criteria-note { flex-direction:column; }
    .operator-form { grid-template-columns:1fr; padding:32px 24px; }
    .operator-form .field:last-of-type { grid-column:auto; }
    .values-side { width:auto; margin:34px 0 0; }
    .value-art { height:380px; }
    .thesis-grid { grid-template-columns:1fr; display:grid; }
    .thesis-lead { grid-row:auto; }
    .thesis-card:nth-child(n) { border-right:0; }
    .thesis-art, .thesis-lead .thesis-art { min-height:300px; }
    footer.site-footer { margin-top:0; }
    .footer-links { grid-template-columns:max-content max-content; padding:88px 28px 72px; row-gap:64px; column-gap:32px; }
    .footer-services { grid-column:1; grid-row:1; }
    .footer-markets { grid-column:2; grid-row:1; }
    .footer-resources { grid-column:1; grid-row:2; }
    .footer-company { grid-column:2; grid-row:2; }
    .footer-links .wordmark { grid-column:1 / -1; grid-row:3; padding-top:72px; }
    .footer-group li a, .footer-group .soon { font-size:17px; }
  }

  @media (max-width:560px) {
    .footer-links { grid-template-columns:minmax(0,1fr); padding:72px 22px 64px; row-gap:54px; }
    .footer-services, .footer-markets, .footer-resources, .footer-company { grid-column:1; grid-row:auto; }
    .footer-links .wordmark { grid-column:1; grid-row:auto; padding-top:56px; }
  }

  [data-rv] { opacity:0; transform:translateY(26px); }
  .no-js [data-rv], .reduced [data-rv] { opacity:1; transform:none; }

  @media (max-width: 1080px) {
    .sect { padding:12vh 40px 4vh; }
    .provband { padding:36px 40px; }
    .ops3, .ops2 { grid-template-columns:1fr; }
    .pick { grid-template-columns:1fr; gap:44px; }
    .pick .left { position:static; }
    .applywrap { grid-template-columns:1fr; }
    .step { grid-template-columns:80px 1fr; }
    .step p { grid-column:2; }
    footer .cols { grid-template-columns:repeat(2,1fr); }
  }
  @media (max-width: 860px) {
    .sect { padding:11vh 22px 4vh; }
    .hero { border-radius:0 0 28px 28px; }
    .hero-photo { left:0; right:0; bottom:0; height:60%; background:var(--hero-plate) var(--hero-plate-pos) / cover no-repeat; }
    .hero-motion, .hero-wisps { display:none !important; } /* mobile serves the still (bandwidth + decode) */
    .hero-stack { padding:150px 18px 0; }
    .console .prompt { min-height:calc(1.65em * 3); max-height:calc(1.65em * 3); }
    .provband { padding:36px 22px 32px; }
    .mosaic, .essays, .ops3, .ops2 { grid-template-columns:1fr; }
    .applyleft, .applyright { padding:36px 24px; }
    footer .cols, footer .wordmark, footer .baseline { padding-left:22px; padding-right:22px; }
  }
  @media (prefers-reduced-motion: reduce) {
    [data-rv] { opacity:1 !important; transform:none !important; }
    .console .prompt .caret { animation:none; }
    .camp, .camp-body { transition:none !important; }
  }

/* Journal release: keep the shared footer balanced when only Resources and Company are enabled. */
.footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)){grid-template-columns:minmax(0,1fr) minmax(260px,360px);align-items:start;gap:48px 80px}
.footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)) .footer-resources{grid-column:1;grid-row:1}
.footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)) .footer-company{grid-column:2;grid-row:1 / 3}
.footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)) .wordmark{grid-column:1;grid-row:2;padding-top:24px}
@media(max-width:700px){
 .footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)){grid-template-columns:minmax(0,1fr);gap:48px}
 .footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)) .footer-resources{grid-column:1;grid-row:1}
 .footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)) .footer-company{grid-column:1;grid-row:2}
 .footer-links:has(.footer-resources):not(:has(.footer-services,.footer-markets)) .wordmark{grid-column:1;grid-row:3}
}

/* A tool with a landing (28 October 2026): linked inside FEATURE:tools markers, so the row reads as a link and drops
   "soon" on the preview while production keeps the plain "soon" row. */
.footer-group li a .soon { color:inherit; cursor:pointer; }
.footer-group li a .soon em { display:none; }
