/* INNX.biz static — Connecting the dots
   PPT black-and-white: white paper, black titles, gray body.
   Logo blue sparingly (links). No build step. */

:root {
  --ink: #0a0a0a;
  --ink-muted: #4a4a4a;
  --ink-soft: #6b6b6b;
  --paper: #ffffff;
  --paper-alt: #f7f7f7;
  --line: #e8e8e8;
  --blue: #005080;
  --blue-mid: #3080c0;
  --blue-light: #70a0d0;
  --max: 72rem;
  --pad: 1.5rem;
  --font: "Raleway", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font);
  font-size: 1.05rem;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; height: auto; display: block; }

a {
  color: var(--blue);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
a:hover { color: var(--blue-mid); }
a:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--ink);
  color: var(--paper);
  padding: 0.5rem 1rem;
  z-index: 100;
}
.skip-link:focus { left: var(--pad); }

/* Disclosure strip */
.disclosure {
  background: var(--paper-alt);
  border-bottom: 1px solid var(--line);
  font-size: 0.8rem;
  color: var(--ink-soft);
  padding: 0.55rem var(--pad);
  text-align: center;
  line-height: 1.45;
}
.disclosure strong { color: var(--ink-muted); font-weight: 600; }

/* Header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(255,255,255,0.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(8px);
}
.site-header.is-hero {
  position: absolute;
  left: 0; right: 0;
  background: transparent;
  border-bottom: none;
}
.site-header.is-hero .nav-link,
.site-header.is-hero .nav-toggle { color: var(--paper); }
.site-header.is-hero .brand-logo { filter: none; }

.header-inner {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0.85rem var(--pad);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  text-decoration: none;
  color: inherit;
}
.brand-logo { height: 2rem; width: auto; }
.brand-mark { font-weight: 800; letter-spacing: 0.08em; font-size: 0.95rem; text-transform: uppercase; }

.nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem 1.25rem;
  align-items: center;
}
.nav-link {
  color: var(--ink);
  text-decoration: none;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.nav-link:hover,
.nav-link[aria-current="page"] { color: var(--ink); text-decoration: underline; text-underline-offset: 0.35em; }
.site-header.is-hero .nav-link:hover,
.site-header.is-hero .nav-link[aria-current="page"] { color: var(--paper); }

.nav-toggle {
  display: none;
  background: none;
  border: 1px solid currentColor;
  padding: 0.35rem 0.6rem;
  font: inherit;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  color: var(--ink);
}

@media (max-width: 860px) {
  .nav-toggle { display: inline-block; }
  .nav {
    display: none;
    width: 100%;
    flex-direction: column;
    align-items: flex-start;
    padding: 0.5rem 0 0.75rem;
    gap: 0.75rem;
  }
  .nav.is-open { display: flex; }
  .header-inner { flex-wrap: wrap; }
  .site-header.is-hero {
    background: rgba(10,10,10,0.92);
  }
}

/* Layout */
.wrap {
  max-width: var(--max);
  margin: 0 auto;
  padding: 0 var(--pad);
}

.section {
  padding: 5rem 0;
}
.section--tight { padding: 2.5rem 0; }
.section--alt { background: var(--paper-alt); }
.section--dark {
  /* Closing CTA bar only — avoid mid-page dark panels */
  background: var(--ink);
  color: var(--paper);
  padding: 4.5rem 0;
}
.section--dark a { color: var(--paper); text-decoration: underline; }
.section--dark .muted { color: rgba(255,255,255,0.7); }

.eyebrow {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-muted);
  margin: 0 0 0.75rem;
}
.section--dark .eyebrow { color: rgba(255,255,255,0.7); }

h1, h2, h3 {
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin: 0 0 1rem;
  color: var(--ink);
}
.section--dark h1,
.section--dark h2,
.section--dark h3 { color: var(--paper); }
h1 { font-size: clamp(2rem, 5vw, 3.25rem); }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.15rem); }
h3 { font-size: 1.15rem; letter-spacing: 0; }

.lead {
  font-size: clamp(1.1rem, 2.2vw, 1.35rem);
  line-height: 1.55;
  color: var(--ink-muted);
  max-width: none;
  width: 100%;
}
.section--dark .lead { color: rgba(255,255,255,0.85); }

.muted { color: var(--ink-soft); }
.prose { max-width: none; width: 100%; }
.prose p { margin: 0 0 1.15rem; }
.prose p:last-child { margin-bottom: 0; }

/* Hero */
.hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: flex-end;
  color: var(--paper);
  background: var(--ink) center/cover no-repeat;
}
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0.72) 100%);
}
/* Minimal homepage hero: soft wash for title only — less blackish copy conflict */
.hero--minimal {
  min-height: 72vh;
  align-items: flex-end;
}
.hero--minimal::before {
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0.18) 0%,
    rgba(0,0,0,0.22) 45%,
    rgba(0,0,0,0.55) 100%
  );
}
.hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: var(--max);
  margin: 0 auto;
  padding: 7rem var(--pad) 4rem;
}
.hero--minimal .hero-inner {
  padding: 6.5rem var(--pad) 3.25rem;
  max-width: var(--max);
}
.hero h1 { margin-bottom: 1rem; }
.hero--minimal h1 {
  margin-bottom: 0;
  text-shadow: 0 1px 18px rgba(0,0,0,0.35);
}
.hero .lead { color: rgba(255,255,255,0.9); }
.eyebrow--on-hero {
  color: rgba(255,255,255,0.78);
  letter-spacing: 0.18em;
  font-size: 0.68rem;
  margin-bottom: 0.55rem;
}

/* Homepage intro band — lead + CTAs off the dark image (PPT white paper) */
.section--intro {
  background: var(--paper);
  padding: 4rem 0 3.5rem;
  border-bottom: 1px solid var(--line);
}
.section--intro .lead {
  margin: 0;
  color: var(--ink-muted);
  max-width: none;
  width: 100%;
}
.section--intro .btn-row { margin-top: 1.35rem; }

/* Site-wide PPT B&W: light paper bands; one strong black closing bar max */
.section--dark .btn-primary {
  background: var(--paper);
  color: var(--ink);
}
.section--dark .btn-primary:hover {
  background: var(--paper-alt);
  color: var(--ink);
}
.section--dark .btn-ghost {
  color: var(--paper);
  border-color: rgba(255,255,255,0.7);
}

/* Cards / doors */
.doors {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
.doors--5 {
  grid-template-columns: repeat(auto-fit, minmax(14.5rem, 1fr));
}
@media (max-width: 760px) {
  .doors { grid-template-columns: 1fr; }
  .doors--5 { grid-template-columns: 1fr; }
}

.door {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 1.5rem 1.35rem;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.15s, box-shadow 0.15s;
  display: block;
}
.door:hover {
  border-color: var(--ink);
  box-shadow: 0 0 0 1px var(--ink);
  color: inherit;
}
.door .num {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--ink-soft);
  margin-bottom: 0.6rem;
}
.door h3 { margin-bottom: 0.5rem; }
.door p { margin: 0; color: var(--ink-soft); font-size: 0.95rem; }

.pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 760px) {
  .pillars { grid-template-columns: 1fr; }
}
.pillar {
  border-top: 2px solid var(--ink);
  padding-top: 1rem;
}
.pillar .num {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--ink-soft);
}

.steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.65rem;
}
.steps li {
  display: grid;
  grid-template-columns: 2.5rem 1fr;
  gap: 0.75rem;
  align-items: baseline;
  padding: 0.65rem 0;
  border-bottom: 1px solid var(--line);
}
.steps .step-n {
  font-weight: 800;
  color: var(--ink);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
}

.grid-2 {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 800px) {
  .grid-2 { grid-template-columns: 1fr; }
}

.portrait {
  width: 100%;
  max-width: 22rem;
  filter: grayscale(1);
  border: 1px solid var(--line);
}
.portrait-caption {
  margin-top: 0.75rem;
  font-size: 0.9rem;
  color: var(--ink-soft);
}

/* Profile template: name above; photo+QR tops flush with first bio sentence */
.profile {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.profile__eyebrow {
  margin: 0 0 0.75rem;
}
.profile__name {
  margin: 0 0 1rem;
}
.profile__body {
  display: grid;
  grid-template-columns: 1.25fr auto;
  gap: 2.25rem;
  align-items: start; /* media top = first prose line */
}
.profile__copy .prose > p:first-child {
  margin-top: 0;
}
.profile__media {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.profile__shot,
.profile__qr {
  width: 10.5rem;
  flex: 0 0 10.5rem;
}
.profile__shot .portrait {
  width: 10.5rem;
  height: 10.5rem;
  max-width: none;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.profile__shot .portrait-caption {
  margin-top: 0.55rem;
  font-size: 0.78rem;
  line-height: 1.35;
}
.profile__qr {
  text-align: center;
}
.profile__qr a {
  display: block;
  text-decoration: none;
}
.profile__qr img {
  width: 10.5rem;
  height: 10.5rem;
  display: block;
  margin: 0 auto;
  border: 1px solid var(--line);
  background: #fff;
  padding: 0.45rem;
  box-sizing: border-box;
}
.profile__qr-label {
  margin: 0.55rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--ink-muted);
}
@media (max-width: 800px) {
  .profile__body {
    grid-template-columns: 1fr;
  }
  .profile__media {
    justify-content: flex-start;
  }
}

/* Buttons */
.btn {
  display: inline-block;
  padding: 0.85rem 1.4rem;
  font-family: inherit;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
  border-radius: 0;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.btn-primary {
  background: var(--ink);
  color: var(--paper);
}
.btn-primary:hover {
  background: #222;
  color: var(--paper);
}
.btn-ghost {
  background: transparent;
  color: inherit;
  border-color: currentColor;
}
.btn-ghost:hover {
  background: var(--ink);
  color: var(--paper);
  border-color: var(--ink);
}
.section--dark .btn-ghost:hover {
  background: var(--paper);
  color: var(--ink);
  border-color: var(--paper);
}
.btn-row { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }

/* Contact form note */
.form-note {
  border: 1px solid var(--line);
  padding: 1.5rem;
  background: var(--paper-alt);
}
.form-note label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin: 0 0 0.35rem;
}
.form-note input,
.form-note textarea {
  width: 100%;
  margin-bottom: 1rem;
  padding: 0.7rem 0.8rem;
  border: 1px solid var(--line);
  font: inherit;
  background: var(--paper);
}
.form-note textarea { min-height: 8rem; resize: vertical; }
.address-block {
  font-style: normal;
  line-height: 1.7;
}
.address-block a { font-weight: 600; }

/* Redirect notice */
.redirect-note {
  max-width: 36rem;
  margin: 4rem auto;
  padding: 2rem;
  border: 1px solid var(--line);
  text-align: center;
}

/* Footer */
.site-footer {
  border-top: 1px solid var(--line);
  padding: 3rem 0 2rem;
  font-size: 0.9rem;
  color: var(--ink-soft);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: 2rem;
  margin-bottom: 2rem;
}
@media (max-width: 700px) {
  .footer-grid { grid-template-columns: 1fr; }
}
.footer-logo { height: 1.75rem; width: auto; margin-bottom: 0.75rem; }
.footer-tag {
  font-weight: 700;
  color: var(--ink);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.8rem;
  margin-bottom: 0.5rem;
}
.footer-nav {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.4rem;
}
.footer-nav a {
  color: var(--ink-muted);
  text-decoration: none;
  font-size: 0.85rem;
}
.footer-nav a:hover { color: var(--blue); }
.footer-legal {
  border-top: 1px solid var(--line);
  padding-top: 1.25rem;
  font-size: 0.8rem;
  line-height: 1.6;
}
.footer-legal a { color: var(--blue); }

/* 404 */
.page-404 {
  min-height: 60vh;
  display: flex;
  align-items: center;
  text-align: center;
  padding: 4rem var(--pad);
}
.page-404 .wrap { max-width: 32rem; }

/* Solid white header (homepage — black logo + dark nav, no gradient wash) */
.site-header--solid {
  position: sticky;
  top: 0;
  background: #fff;
  border-bottom: 1px solid var(--line);
  backdrop-filter: none;
}
.site-header--solid .nav-toggle { color: var(--ink); }
.site-header--solid .nav--centered .nav-link { color: var(--blue); }
.site-header--solid .nav--centered .nav-link:hover,
.site-header--solid .nav--centered .nav-link[aria-current="page"] { color: var(--blue-mid); }

/* Homepage hero: full-bleed image + one locked headline */
.hero--home {
  min-height: calc(100vh - 4.5rem);
  min-height: calc(100dvh - 4.5rem);
  align-items: flex-end;
}
.hero--home::before {
  background: linear-gradient(
    180deg,
    rgba(0,0,0,0.12) 0%,
    rgba(0,0,0,0.20) 40%,
    rgba(0,0,0,0.62) 100%
  );
}
.hero--home .hero-inner {
  padding: 4rem var(--pad) 3.5rem;
  max-width: 52rem;
  margin-left: auto;
  margin-right: auto;
}
.hero--home h1 {
  color: var(--paper);
  font-size: clamp(1.35rem, 3.2vw, 2.15rem);
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: -0.015em;
  margin: 0;
  max-width: 38rem;
  text-shadow: 0 1px 18px rgba(0,0,0,0.4);
}
body.home .disclosure { display: none; }

/* Minimal homepage footer — no address, no link farm */
.site-footer--minimal {
  padding: 1rem 0 2rem; /* Joe 2026-10-25 spacingTight1: was 1.75rem top */
}
.footer-minimal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
}
.site-footer--minimal .footer-logo {
  margin-bottom: 0;
  height: 1.5rem;
}
.site-footer--minimal .footer-logo--full {
  height: 3.6rem;
}
.footer-minimal-meta {
  margin: 0;
  font-size: 0.85rem;
  color: var(--ink-soft);
  line-height: 1.5;
}
.footer-minimal-meta a {
  color: var(--ink-muted);
  text-decoration: none;
}
.footer-minimal-meta a:hover { color: var(--blue); }
.footer-dot {
  margin: 0 0.45rem;
  color: var(--line);
}


/* Hero two-line lock */
.hero-title {
  font-size: clamp(1.75rem, 4vw, 2.75rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 0.75rem;
  max-width: 18ch;
}
.hero-sub {
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 400;
  line-height: 1.45;
  margin: 0;
  max-width: 32rem;
  color: rgba(255,255,255,0.92);
}

/* Joe: typically likes things centralized */
.hero--home .hero-inner {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.hero--home .hero-title,
.hero--home .hero-sub,
.hero--home h1,
.hero--home p {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
.site-footer--minimal .footer-minimal {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}


/* Header: centered menu, full logo far right */
.header-inner--logo-right {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 1rem;
  min-height: 5.5rem;
  padding: 0.75rem 1.5rem;
}
.header-inner--logo-right .nav--centered {
  grid-column: 2;
  justify-content: center;
  display: flex;
  flex-wrap: wrap;
  gap: 0.15rem 1.25rem;
}
.header-inner--logo-right .brand--right {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
}
.brand-logo--full {
  width: auto;
  height: 6rem;
  max-width: none;
  object-fit: contain;
}
@media (max-width: 820px) {
  .header-inner--logo-right {
    grid-template-columns: auto 1fr auto;
  }
  .header-inner--logo-right .nav-toggle { grid-column: 1; justify-self: start; }
  .header-inner--logo-right .brand--right { grid-column: 3; }
  .header-inner--logo-right .nav--centered {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

/* Hero copy: title + spaced one-line sub */
.hero--home .hero-inner {
  text-align: center;
  align-items: center;
}
.hero--home .hero-title {
  text-align: center;
  margin: 0 0 1.25rem;
  max-width: none;
  white-space: nowrap;
}
.hero--home .hero-sub--oneline {
  text-align: center;
  margin: 0;
  max-width: min(92vw, 56rem);
  white-space: normal;
  font-size: clamp(0.85rem, 1.55vw, 1.15rem);
  letter-spacing: 0.01em;
  line-height: 1.35;
}
@media (max-width: 720px) {
  .hero--home .hero-title { white-space: normal; }
  .hero--home .hero-sub--oneline {
    white-space: normal;
    max-width: 22rem;
  }
}

.footer-logo--full{width:auto;height:3.6rem;object-fit:contain;}
.site-footer--minimal .footer-logo--full{height:3.6rem;margin-bottom:0;}


/* Top menu: INNX button blue, centered (link count TBD) */
.site-header--solid .nav--centered .nav-link,
.header-inner--logo-right .nav--centered .nav-link {
  color: var(--blue);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
}
.site-header--solid .nav--centered .nav-link:hover,
.site-header--solid .nav--centered .nav-link[aria-current="page"],
.header-inner--logo-right .nav--centered .nav-link:hover,
.header-inner--logo-right .nav--centered .nav-link[aria-current="page"] {
  color: var(--blue-mid);
  text-decoration: underline;
  text-underline-offset: 0.35em;
}

.doors--2 { grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); }
.doors--3 { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.text-link { color: var(--blue); font-weight: 600; text-decoration: none; margin-right: 0.35rem; }
.text-link:hover { color: var(--blue-mid); text-decoration: underline; }

.door--wide { grid-column: 1 / -1; max-width: 48rem; }
.door-points { margin: 0.85rem 0 0.5rem; padding-left: 1.1rem; color: var(--ink-muted); }
.door-points li { margin: 0.35rem 0; }
.door .small { font-size: 0.85rem; margin-top: 0.75rem; }

.portal-lead { margin: 0.35rem 0 1.5rem; max-width: none; width: 100%; }
.door--portal {
  min-height: 8.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.door--portal p { margin: 0.4rem 0 0; color: var(--ink-muted, #666); font-size: 0.95rem; }
.doors--2.portals { gap: 1.25rem; }

.invite-line {
  white-space: nowrap;
  overflow-x: auto;
  max-width: 100%;
  margin-bottom: 1rem;
}

/* Clean Life — siteStretch1: full wrap under logo (same measure rule) */
.page-clean-life main .wrap {
  text-align: left;
  margin-left: 0;
  margin-right: 0;
}
.page-clean-life main .section {
  padding-left: 0;
  padding-right: 0;
}
.page-clean-life main .lead,
.page-clean-life main .prose,
.page-clean-life main .clean-life-sub {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
  text-justify: auto;
  text-align-last: left; /* Joe: last line left — no word gaps */
  max-width: none;
  width: 100%;
}
.page-clean-life main .grid-2 {
  text-align: left;
  justify-items: stretch;
}
.page-clean-life main .grid-2 .prose {
  max-width: none;
  width: 100%;
}
.page-clean-life main .btn-row {
  justify-content: flex-start;
}
.page-clean-life main .invite-line {
  white-space: normal;
  overflow-x: visible;
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
  text-align-last: left; /* Joe: last line left — no word gaps */
}

/* Footer logo → home */
.site-footer--minimal a:has(.footer-logo),
.footer-minimal > a {
  display: inline-flex;
  line-height: 0;
  text-decoration: none;
}
.site-footer--minimal a:has(.footer-logo):hover .footer-logo,
.footer-minimal > a:hover .footer-logo {
  opacity: 0.85;
}


/* Joe 2026-10-25: Purpose — one full wrap column; statement + DNA + body share edges */
.page-purpose main .wrap > .prose,
.page-purpose main .wrap.prose {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.page-purpose main .prose h1 {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto;
}
.page-purpose main .prose h2,
.page-purpose main .section--dna h2 {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto;
}
.page-purpose main .prose p:not(.eyebrow) {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto;
}
.page-purpose main .doors--dna {
  width: 100% !important;
  max-width: none !important;
}


/* Joe 2026-10-25: Model — ONLY stretch to wrap under logo; look/feel unchanged */
.page-model main .wrap > .prose {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.page-model main .prose h1 {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto;
}
.page-model main .prose .model-monetize,
.page-model main .prose .model-line {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-justify: auto;
  text-align-last: left;
}

/* Joe 2026-10-25: Projects — opener + Own projects lead stretch under logo (look/feel unchanged) */
.page-projects main .section .lead {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-justify: auto;
  text-align-last: left; /* Joe: last line left — no word gaps */
}


/* IBMA page: left-aligned reading column (same pattern as Purpose) */
.page-ibma main .wrap > .prose {
  margin-left: 0;
  margin-right: auto;
  text-align: left;
}
.page-ibma main .wrap.prose {
  margin-left: 0;
  margin-right: auto;
  text-align: left;
}
.page-ibma main .wrap > h1,
.page-ibma main .wrap > .lead,
.page-ibma main .wrap > .eyebrow {
  text-align: left;
}

/* navMobileFit1 — Joe 2026-10-28 ~07:53 PDT: mobile MENU drawer; all 8 nav items reachable.
   Supersedes 8 Oct 2026 horizontal-strip-no-MENU (clipped Purpose / mid-word Ambition).
   Desktop ≥901px stays horizontal. */
@media (max-width: 900px) {
  .site-header--solid {
    overflow-x: clip;
    overflow-x: hidden;
  }
  .site-header--solid .header-inner--logo-right {
    display: grid !important;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.6rem;
    height: auto !important;
    min-height: 4.75rem;
    padding: 0.65rem 0.85rem;
    flex-wrap: unset;
    overflow: visible;
  }
  .header-inner--logo-right .nav-toggle {
    display: inline-block !important;
    grid-column: 1;
    grid-row: 1;
    justify-self: start;
    order: 0 !important;
    color: var(--ink);
    z-index: 2;
  }
  .header-inner--logo-right .brand--right {
    grid-column: 3;
    grid-row: 1;
    order: 0 !important;
    justify-self: end;
    flex: 0 0 auto;
  }
  .header-inner--logo-right .brand-logo--full {
    height: 3.6rem;
    width: auto;
  }
  .header-inner--logo-right .nav--centered {
    display: none !important;
    grid-column: 1 / -1;
    grid-row: 2;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    flex: none !important;
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
    padding: 0.45rem 0 0.75rem;
    margin: 0;
    gap: 0.75rem;
    border: 0;
    overflow: visible;
  }
  .header-inner--logo-right .nav--centered.is-open {
    display: flex !important;
  }
  .header-inner--logo-right .nav--centered .nav-link {
    display: block !important;
    font-size: 0.78rem !important;
    font-weight: 700;
    letter-spacing: 0.12em !important;
    text-transform: uppercase;
    white-space: nowrap;
    padding: 0.2rem 0;
    min-height: 0;
    border: 0;
  }
  .hero--home {
    min-height: calc(100vh - 4.75rem);
    min-height: calc(100svh - 4.75rem);
  }
  html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
  .site-footer--minimal .footer-logo--full { height: 5.2rem; width: auto; }
}
@media (max-width: 900px) and (orientation: landscape) and (max-height: 500px) {
  .site-header--solid .header-inner--logo-right { min-height: 4rem; }
  .header-inner--logo-right .brand-logo--full { height: 3.2rem; }
  .hero--home { min-height: calc(100vh - 4rem); min-height: calc(100svh - 4rem); }
  .hero--home .hero-inner { padding: 1.5rem var(--pad) 1.5rem; }
}

/* Footer copyright (Joe, 8 Oct 2026): ~80% size, same black as the INNX logo, all sizes */
.site-footer--minimal .footer-minimal-meta { font-size: 0.68rem; color: #000; }

/* Second tagline (Joe, 11 Oct 2026): "Connecting the Dots" = what we do; "Human + AI = a better I" = how we do it. */
.hero--home .hero-title { margin-bottom: 0.6rem; }
.hero--home .hero-tagline {
  color: var(--paper);
  font-size: clamp(1.15rem, 2.6vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.25;
  margin: 0 auto 1.25rem;
  white-space: nowrap;
  text-shadow: 0 1px 18px rgba(0,0,0,0.4);
}
@media (max-width: 720px) {
  .hero--home .hero-title { margin-bottom: 0.45rem; }
  .hero--home .hero-tagline { margin-bottom: 0.9rem; }
}

/* 20261011 purpose link in hero */
.hero-sub-link{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.45)}
.hero-sub-link:hover{border-bottom-color:#fff}

/* ID 2026-10-23: light hero type scale */
.hero--home .hero-title{font-size:clamp(26px,4vw,38px);font-weight:300}
.hero--home .hero-tagline{font-size:clamp(20px,3.2vw,30px);font-weight:300;letter-spacing:0}
.hero--home .hero-sub,.hero--home .hero-sub-link{font-size:clamp(17px,2.4vw,22px);font-weight:300}
@media (max-width:640px){.hero--home{background-position:78% center}}

/* 20261023c home doors */
.home-doors{padding:3.5rem 0 4rem}
.home-doors .doors--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:760px){.home-doors .doors--2{grid-template-columns:1fr}}

/* ID 2026-10-23: purpose line on one line (Joe). Append at end of css/site.css */
@media (min-width:760px){
.hero--home .hero-sub--oneline{max-width:none!important;white-space:nowrap}
.hero--home .hero-sub--oneline .hero-sub-link{font-size:clamp(15px,1.75vw,22px)}
}
.hd-line a{white-space:nowrap}
.home-doors .door p{text-wrap:pretty}
.home-doors .door p:has(a[href="/purpose/"]){text-wrap:wrap}

/* justify-20261023 (Joe 2026-10-23): all text blocks justified on both margins */
main p, main li, main blockquote, main dd,
.prose, .prose p, .prose li, .lead, .door p, .steps p, .steps li,
.site-footer p {
  text-align: left;
  text-justify: auto;
  -webkit-hyphens: none;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
}
/* keep hero, buttons and one-line labels as designed */
.hero p, .hero-tagline, .hero-sub, .hero-sub-link, .btn-row, .btn, .eyebrow, .step-n,
.footer-minimal-meta, .footer-minimal-meta p, .nav, .small {
  text-align: inherit;
  hyphens: manual;
}

/* Joe 2026-10-25: running text justified both margins — Ambition walk + rule book */
.prose p:not(.eyebrow),
.prose li,
.lead,
.door p,
.steps p,
.steps li {
  text-align: left;
  text-justify: auto;
}
.page-purpose main .wrap > .prose p:not(.eyebrow),
.page-purpose main .wrap.prose p:not(.eyebrow),
.page-ambition main .prose p:not(.eyebrow),
.page-model main .prose p:not(.eyebrow),
.page-stub main .prose p:not(.eyebrow) {
  text-align: left !important;
  text-align-last: auto;
}
.page-purpose main .prose h1,
.page-ambition main .prose h1,
.page-model main .prose h1 {
  text-align: left !important;
  text-align-last: auto;
}

/* Joe 2026-10-25 noStretch1 — 100% WIDTH under NX logo; text LEFT (natural word spacing). NO justify stretch / no word gaps. */
main .wrap > h1,
main .wrap > h2,
main .prose h1,
main .prose h2,
main .wrap > .lead,
main .wrap > .muted,
main .wrap > .portal-lead,
main .wrap > .never,
main .wrap > .prose,
main .wrap.prose,
main .prose p:not(.eyebrow),
main .prose .model-monetize,
main .prose .model-line,
main .prose li {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto;
  text-justify: auto;
}
main .wrap > .eyebrow,
main .prose > .eyebrow,
main .block-h,
main .cycle-caption {
  text-align: left !important;
  text-align-last: auto;
  max-width: none;
}

/* Joe 2026-10-25 footerv3 — short pages: blank white; footer glued to viewport bottom */
body.page-stub,
body.page-ambition,
body.page-model {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  background: #fff;
  padding-bottom: 9.5rem; /* room for fixed footer */
  box-sizing: border-box;
}
body.page-stub > main,
body.page-ambition > main,
body.page-model > main {
  flex: 1 1 auto;
  min-height: calc(100dvh - 9.5rem - 4.5rem); /* viewport − footer − header */
}
body.page-stub > .site-footer.site-footer--minimal,
body.page-ambition > .site-footer.site-footer--minimal,
body.page-model > .site-footer.site-footer--minimal {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  margin-top: 0;
  width: 100%;
  max-width: none;
  background: #fff;
  z-index: 40;
  /* Joe 2026-10-25: one clean light line full width (not wrap/half). */
  border-top: 1px solid var(--line, #e8e8e8);
  box-sizing: border-box;
}

/* Joe 2026-10-25 noStretch1 FINAL — full WIDTH under logo; LEFT natural spacing; kill word-gap justify */
main .wrap > h1,
main .wrap > h2,
main .wrap > h3,
main .prose h1,
main .prose h2,
main .prose h3,
main .wrap > .lead,
main .wrap > .muted,
main .wrap > .portal-lead,
main .wrap > .never,
main .wrap > .prose,
main .wrap.prose,
main .prose p:not(.eyebrow),
main .prose li,
main .prose .model-monetize,
main .prose .model-line,
main .section .lead,
main .section h1,
main .section h2,
.page-purpose main .prose h1,
.page-purpose main .prose h2,
.page-purpose main .prose p:not(.eyebrow),
.page-ambition main .prose h1,
.page-model main .prose h1,
.page-model main .prose .model-monetize,
.page-model main .prose .model-line,
.page-projects main .section .lead,
.page-projects main .section .muted {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
}

/* Joe 2026-10-25 noStretch1 FINAL+ — kill leftover page-local justify (Clean Life / doors) */
.page-clean-life main .lead,
.page-clean-life main .prose,
.page-clean-life main .prose p,
.page-clean-life main .clean-life-sub,
.page-clean-life main .invite-line,
main .door p,
main .steps p,
main .steps li {
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
}

main h1, main h2, main .prose h1, main .prose h2 {
  hyphens: none !important;
  -webkit-hyphens: none !important;
}


/* Joe 2026-10-25 zeroHyphen1 — Eve/Joe: zero mid-word cuts sitewide */
main, .prose, main p, main li, main h1, main h2, main h3,
.prose p, .prose li, .lead, .door p, .steps p, .steps li {
  -webkit-hyphens: none !important;
  hyphens: none !important;
  overflow-wrap: normal;
  word-break: normal;
}

/* Joe 2026-10-25 purposeAll1 — ONE pattern ALL pages incl Ambition: Purpose left natural; ambitionJust2 superseded */
body.page-ambition main .prose h1,
body.page-ambition main .section.section--tight h1 {
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
}

/* Joe 2026-10-25 wordLook1 — Joe Word look: JUSTIFY ALL texts sitewide (last line left, inter-word, zero hyphen). Supersedes purposeAll1 + noStretch1 LEFT. Zero copy. */
main .wrap > h1,
main .wrap > h2,
main .wrap > h3,
main .prose h1,
main .prose h2,
main .prose h3,
main .wrap > .lead,
main .wrap > .muted,
main .wrap > .portal-lead,
main .wrap > .never,
main .wrap > .prose,
main .wrap.prose,
main .prose p:not(.eyebrow),
main .prose li,
main .prose .model-monetize,
main .prose .model-line,
main .section .lead,
main .section .muted,
main .section h1,
main .section h2,
body.page-ambition main .prose h1,
body.page-ambition main .section.section--tight h1,
.page-purpose main .prose h1,
.page-purpose main .prose h2,
.page-purpose main .prose p:not(.eyebrow),
.page-model main .prose h1,
.page-model main .section .model-monetize,
.page-model main .section .model-line,
.page-projects main .section .lead,
.page-projects main .section .muted,
.page-how main .never,
.page-clean-life main .lead,
.page-clean-life main .prose,
.page-clean-life main .prose p,
.page-clean-life main .clean-life-sub,
.page-clean-life main .invite-line,
main .door p,
main .steps p,
main .steps li {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: left !important;
  text-justify: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
}

/* Joe 2026-10-25 ambitionWord1 — force Word look on Ambition Create-value (jc=both). Live shot was left/ragged. */
body.page-ambition main .prose h1,
body.page-ambition main .section.section--tight h1,
body.page-ambition main .section h1 {
  text-align: left !important;
  text-align-last: left !important;
  text-justify: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
}

/* Joe 2026-10-25 purposeMatch1 — Purpose look = ALL pages. Kill Word/ambitionWord1 zigzag. LEFT natural, full wrap, zero hyphen. Zero copy. */
main .wrap > h1,
main .wrap > h2,
main .wrap > h3,
main .prose h1,
main .prose h2,
main .prose h3,
main .wrap > .lead,
main .wrap > .muted,
main .wrap > .portal-lead,
main .wrap > .never,
main .wrap > .prose,
main .wrap.prose,
main .prose p:not(.eyebrow),
main .prose li,
main .prose .model-monetize,
main .prose .model-line,
main .section .lead,
main .section .muted,
main .section h1,
main .section h2,
body.page-ambition main .prose h1,
body.page-ambition main .section.section--tight h1,
body.page-ambition main .section h1,
.page-purpose main .prose h1,
.page-purpose main .prose h2,
.page-purpose main .prose p:not(.eyebrow),
.page-model main .prose h1,
.page-model main .section .model-monetize,
.page-model main .section .model-line,
.page-projects main .section .lead,
.page-projects main .section .muted,
.page-how main .never,
.page-clean-life main .lead,
.page-clean-life main .prose,
.page-clean-life main .prose p,
.page-clean-life main .clean-life-sub,
.page-clean-life main .invite-line,
main .door p,
main .steps p,
main .steps li {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
}

/* Joe 2026-10-25 purposeStd1 — Purpose content width/margins = ALL pages.
   Root cause: class="wrap prose" on ONE node + max-width:none blew past --max/--pad (Disclaimer FAIL).
   Keep .wrap column (var(--max) + pad); only inner .prose fills the wrap. Zero copy. */
main .wrap,
main .wrap.prose,
.wrap.prose {
  max-width: var(--max) !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: var(--pad) !important;
  padding-right: var(--pad) !important;
  box-sizing: border-box !important;
}
main .wrap > .prose {
  max-width: none !important;
  width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Joe 2026-10-25 purposeAudit1 — kill leftover inline Word-justify on Model/How/Projects. Purpose LEFT sitewide. Zero copy. */
body.page-model main .prose h1,
body.page-model main .prose p,
body.page-model main .section h1,
body.page-model main .section .model-monetize,
body.page-model main .section .model-line,
body.page-how main .prose,
body.page-how main .prose p,
body.page-how main .never,
body.page-how main .section h1,
body.page-how main .section p,
.page-projects main .section .lead,
.page-projects main .section .muted,
.page-projects main .section h1,
.page-projects main .section p,
main .prose h1,
main .prose h2,
main .prose p:not(.eyebrow) {
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
}

/* Joe 2026-10-25 purposeAudit1b — kill cascade Word-justify leftovers (wordLook1/ambitionWord1). Purpose LEFT. Zero copy. */
main h1, main h2, main h3,
main .prose h1, main .prose h2, main .prose h3,
main .prose p, main .prose li,
main .section h1, main .section h2,
main .section .lead, main .section .muted,
main .section .model-monetize, main .section .model-line,
main .never, main .door p, main .steps p, main .steps li,
body.page-ambition main .prose h1,
body.page-ambition main .section.section--tight h1 {
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
}

/* Joe 2026-10-25 purposeSoft1 — Eve soft flags: scrub mid-CSS dead justify; Contact full Purpose wrap (no 36rem). Projects/Contact prose nested. Zero copy. */

/* Joe 2026-10-25 mirrorPurpose2 — Ambition+Model h1 = Purpose mother (font-weight 800 / line-height 1.15). LEFT full wrap. Drop 900. Zero copy. How/Purpose untouched. Sem Word-justify. */
body.page-ambition main .prose h1,
body.page-ambition main .section.section--tight h1,
body.page-ambition main .section h1,
body.page-model main .prose h1,
body.page-model main .section.section--tight h1,
body.page-model main .section h1 {
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -0.02em;
  color: #000 !important;
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  -webkit-hyphens: none !important;
  hyphens: none !important;
  max-width: none !important;
  width: 100% !important;
}
body.page-model main .prose .model-monetize,
body.page-model main .prose .model-line,
body.page-model main .section .model-monetize,
body.page-model main .section .model-line {
  max-width: none !important;
  width: 100% !important;
  text-align: left !important;
  text-align-last: auto !important;
  text-justify: auto !important;
  font-size: 1.05rem !important;
  font-weight: 400 !important;
  line-height: 1.65 !important;
}
