/* Vertex multi-page rebuild
   Loaded last. The old page copy remains, but the legacy site shell and
   presentation are replaced by a category-aware editorial system. */

:root {
  --v3-cream: #f3efe6;
  --v3-paper: #e8e1d5;
  --v3-ink: #141414;
  --v3-muted: #68625a;
  --v3-lavender: #c8b7e8;
  --v3-lavender-deep: #6c548d;
  --v3-rule: rgba(20, 20, 20, 0.2);
  --v3-page: clamp(20px, 3.4vw, 54px);
  --v3-max: 1500px;
  --v3-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

body[data-page] {
  background: var(--v3-cream) !important;
}

body[data-page]::before {
  background-size: 64px 64px !important;
  opacity: 0.58 !important;
}

/* New shell */
.topnav.site-shell {
  min-height: 74px !important;
  grid-template-columns: 1fr auto 1fr !important;
  padding: 0 var(--v3-page) !important;
  border-bottom: 1px solid var(--v3-rule) !important;
  background: rgba(243, 239, 230, 0.92) !important;
  color: var(--v3-ink) !important;
}

.site-shell .topnav-mark {
  line-height: 1 !important;
}

.site-shell .nav-links-row {
  display: flex;
  gap: clamp(20px, 2.6vw, 42px) !important;
}

.site-shell .nav-link {
  min-width: 0 !important;
  padding: 27px 0 24px !important;
  color: var(--v3-ink) !important;
  font-family: var(--sans) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.site-shell .nav-link::after {
  bottom: 19px !important;
}

.site-shell .nav-right {
  justify-self: end;
}

.site-contact {
  position: relative;
  padding: 9px 0;
  color: var(--v3-ink) !important;
  font-size: 13px;
  font-weight: 500;
}

.site-contact::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 5px;
  left: 0;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 440ms var(--v3-ease);
}

.site-contact:hover::after,
.site-contact:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left;
}

.site-shell .menu-toggle {
  flex: none;
}

.mobile-nav.site-drawer {
  display: block;
  padding-top: 98px !important;
}

.mobile-nav-primary {
  border-top: 1px solid rgba(20, 20, 20, 0.24);
}

.mobile-nav-primary a {
  min-height: 0 !important;
  padding: 14px 0 !important;
  border-bottom: 1px solid rgba(20, 20, 20, 0.24) !important;
  font-family: var(--serif) !important;
  font-size: clamp(32px, 9vw, 52px) !important;
  line-height: 0.98 !important;
}

.mobile-nav-index {
  color: rgba(20, 20, 20, 0.48);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.1em;
}

.site-drawer .mobile-nav-foot {
  margin-top: 38px !important;
}

/* Hero architecture */
body[data-page] .page-hero,
body[data-page] .paper-hero,
body[data-page] .fs-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr) !important;
  grid-template-rows: auto 1fr auto !important;
  column-gap: clamp(44px, 8vw, 140px) !important;
  align-content: end !important;
  min-height: min(820px, 84svh) !important;
  padding: clamp(142px, 18vh, 210px) var(--v3-page) clamp(76px, 8vw, 126px) !important;
  border-bottom: 1px solid var(--v3-rule) !important;
}

body[data-page] .page-hero::before,
body[data-page] .paper-hero::before,
body[data-page] .fs-head::before {
  top: 74px !important;
  right: 0 !important;
  bottom: 0 !important;
  width: min(39vw, 590px) !important;
  height: auto !important;
  aspect-ratio: auto !important;
  border: 0 !important;
  border-left: 1px solid var(--v3-rule) !important;
  border-radius: 0 !important;
  background-color: var(--v3-lavender) !important;
  background-image:
    linear-gradient(rgba(20, 20, 20, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 20, 20, 0.09) 1px, transparent 1px) !important;
  background-size: 52px 52px !important;
  opacity: 1 !important;
  transform: none !important;
}

body[data-page] .page-hero::after,
body[data-page] .paper-hero::after,
body[data-page] .fs-head::after {
  content: "V/";
  position: absolute;
  right: clamp(24px, 5vw, 80px);
  bottom: clamp(38px, 6vw, 92px);
  z-index: 1;
  color: rgba(20, 20, 20, 0.75);
  font-family: "Monoton", var(--sans);
  font-size: clamp(74px, 10vw, 160px);
  font-weight: 400;
  letter-spacing: -0.08em;
  line-height: 0.8;
}

body[data-page] .page-eyebrow,
body[data-page] .paper-eyebrow {
  grid-column: 1;
  align-self: start;
  margin: 0 0 clamp(70px, 11vh, 150px) !important;
}

body[data-page] .page-title,
body[data-page] .paper-hero > .paper-title,
body[data-page] .fs-title {
  grid-column: 1;
  align-self: end;
  max-width: 1050px !important;
  margin: 0 !important;
  font-size: clamp(62px, 8.6vw, 136px) !important;
  line-height: 0.86 !important;
}

body[data-page] .page-lead,
body[data-page] .paper-authors,
body[data-page] .fs-meta {
  grid-column: 1;
  max-width: 720px !important;
  margin: clamp(28px, 4vw, 52px) 0 0 !important;
}

body[data-page] .paper-back,
body[data-page] .paper-links {
  grid-column: 1;
  position: relative;
  z-index: 2;
}

/* Research — instrument-panel clarity without the old demo chrome */
body[data-category="research"] .page-hero::before,
body[data-category="research"] .paper-hero::before {
  background-color: var(--v3-ink) !important;
  background-image:
    linear-gradient(rgba(243, 239, 230, 0.09) 1px, transparent 1px),
    linear-gradient(90deg, rgba(243, 239, 230, 0.09) 1px, transparent 1px) !important;
}

body[data-category="research"] .page-hero::after,
body[data-category="research"] .paper-hero::after {
  color: var(--v3-lavender);
}

body[data-category="research"] :is(
  .b-wrap,
  .d-wrap,
  .ar-wrap,
  .ag-wrap,
  .os-wrap,
  .papers,
  .paper-body
) {
  width: min(100%, var(--v3-max)) !important;
  max-width: none !important;
  margin: 0 auto !important;
  padding-right: var(--v3-page) !important;
  padding-left: var(--v3-page) !important;
}

body[data-category="research"] :is(
  .d-map-panel,
  .ar-config,
  .ar-panel,
  .cmd-sandbox,
  .log-wrap
) {
  border: 1px solid rgba(20, 20, 20, 0.28) !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

body[data-category="research"] :is(
  .agp,
  .repo-card,
  .paper-row,
  .scn-card,
  .d-rule
) {
  border-radius: 0 !important;
  box-shadow: none !important;
  transform: none !important;
}

body[data-category="research"] :is(
  .agp,
  .repo-card,
  .paper-row,
  .scn-card,
  .d-rule
):hover {
  background: var(--v3-lavender) !important;
  transform: none !important;
}

body[data-page="benchmark"] .explainer-hero {
  min-height: 92svh !important;
  padding: 150px var(--v3-page) 86px !important;
  background: var(--v3-ink) !important;
  color: var(--v3-cream) !important;
  border-bottom: 1px solid rgba(243, 239, 230, 0.2) !important;
}

body[data-page="benchmark"] .explainer-hero :is(h1, h2, h3, p, span) {
  color: inherit;
}

body[data-page="benchmark"] .explainer-hero::before {
  background-color: var(--v3-lavender) !important;
}

body[data-page="mission"] .m-shell {
  width: min(100%, var(--v3-max));
  margin: 0 auto;
  padding: 140px var(--v3-page) 70px !important;
  background: var(--v3-cream) !important;
}

body[data-page="mission"] .m-panel {
  border: 1px solid var(--v3-rule) !important;
  border-radius: 0 !important;
  background: var(--v3-paper) !important;
  box-shadow: none !important;
}

body[data-page="mission"] .m-title,
body[data-page="mission"] .m-lead {
  color: var(--v3-ink) !important;
}

/* Operator pages — visual, field-first layouts */
body[data-category="operators"] .page-hero::before {
  background-color: var(--v3-lavender) !important;
}

body[data-category="operators"] .op-plate-wrap {
  width: min(calc(100% - (2 * var(--v3-page))), var(--v3-max)) !important;
  margin: clamp(50px, 7vw, 100px) auto 0 !important;
  border: 0 !important;
  background: var(--v3-ink) !important;
  aspect-ratio: 16 / 7 !important;
  overflow: hidden;
}

body[data-category="operators"] .op-plate {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  filter: saturate(0.72) contrast(1.08) !important;
}

body[data-category="operators"] .v-wrap,
body[data-page="verticals"] .vh-wrap {
  width: min(100%, var(--v3-max)) !important;
  max-width: none !important;
  margin: 0 auto !important;
}

body[data-category="operators"] .v-stat-row {
  margin: 0 var(--v3-page) !important;
  border-color: var(--v3-rule) !important;
}

body[data-category="operators"] .v-section {
  margin: 0 !important;
  padding: clamp(76px, 8vw, 124px) var(--v3-page) !important;
}

body[data-category="operators"] .v-section:nth-of-type(even) {
  background: var(--v3-paper) !important;
}

body[data-category="operators"] .v-cap-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

body[data-page="verticals"] .vh-wrap {
  padding: clamp(70px, 8vw, 118px) var(--v3-page) !important;
}

body[data-page="verticals"] .vh-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 0 !important;
  border-top: 1px solid var(--v3-rule) !important;
  border-left: 1px solid var(--v3-rule) !important;
}

body[data-page="verticals"] .vh-card {
  min-height: 420px;
  padding: clamp(28px, 4vw, 54px) !important;
  border: 0 !important;
  border-right: 1px solid var(--v3-rule) !important;
  border-bottom: 1px solid var(--v3-rule) !important;
  border-radius: 0 !important;
}

body[data-page="verticals"] .vh-card:hover {
  background: var(--v3-lavender) !important;
}

/* Company/editorial — magazine rhythm */
body[data-category="company"] .page-hero::before {
  background-color: var(--v3-paper) !important;
}

body[data-category="company"] :is(
  .content-section,
  .m-section,
  .mc-section,
  .principles,
  .assets-section,
  .br-wrap,
  .press-body
) {
  width: min(100%, var(--v3-max)) !important;
  max-width: none !important;
  margin: 0 auto !important;
}

body[data-category="company"] :is(
  .content-section,
  .m-section,
  .mc-section
):nth-of-type(even) {
  background: var(--v3-paper) !important;
}

body[data-category="company"] .m-wrap {
  max-width: var(--v3-max) !important;
}

body[data-category="company"] .m-pullquote {
  margin: 0 !important;
  border-left: 0 !important;
  background: var(--v3-lavender) !important;
}

body[data-page="brand"] .br-wrap {
  padding: clamp(76px, 8vw, 120px) var(--v3-page) !important;
}

body[data-page="brand"] :is(.sw-grid, .assets-grid) {
  gap: 0 !important;
  border-top: 1px solid var(--v3-rule) !important;
  border-left: 1px solid var(--v3-rule) !important;
}

/* Careers — warmer, more human, but still technical */
body[data-category="careers"] .page-hero,
body[data-category="careers"] .fs-head {
  background: var(--v3-lavender) !important;
}

body[data-category="careers"] .page-hero::before {
  background-color: var(--v3-cream) !important;
}

body[data-category="careers"] :is(
  .careers-body,
  .culture-wrap,
  .timeline-section,
  .form-wrap,
  .philosophy
) {
  width: min(100%, var(--v3-max)) !important;
  max-width: none !important;
  margin: 0 auto !important;
}

body[data-category="careers"] :is(
  .careers-body,
  .form-wrap,
  .philosophy
) {
  padding: clamp(74px, 8vw, 122px) var(--v3-page) !important;
}

body[data-category="careers"] .role-row {
  min-height: 112px !important;
  padding: 28px 0 !important;
  border-color: var(--v3-rule) !important;
}

body[data-category="careers"] .role-row:hover {
  padding-right: 0 !important;
  padding-left: 0 !important;
  background: var(--v3-ink) !important;
  color: var(--v3-cream) !important;
}

body[data-category="careers"] .value-item,
body[data-category="careers"] .timeline-stage {
  border-radius: 0 !important;
  box-shadow: none !important;
}

body[data-page="apply"] .form-wrap {
  max-width: 1040px !important;
}

body[data-page="apply"] :is(input, textarea, select) {
  min-height: 56px;
  padding: 14px 10px !important;
  font-size: 17px !important;
}

/* Reference — dense information that is still easy to scan */
body[data-category="reference"] .page-hero::before,
body[data-category="reference"] .fs-head::before {
  background-color: var(--v3-ink) !important;
  background-image:
    linear-gradient(rgba(243, 239, 230, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(243, 239, 230, 0.08) 1px, transparent 1px) !important;
}

body[data-category="reference"] .page-hero::after,
body[data-category="reference"] .fs-head::after {
  color: var(--v3-lavender);
}

body[data-category="reference"] :is(
  .g-wrap,
  .fn-wrap,
  .sm-wrap,
  .prose-wrap,
  .fs-wrap
) {
  width: min(100%, var(--v3-max)) !important;
  max-width: none !important;
  margin: 0 auto !important;
}

body[data-category="reference"] :is(
  .g-wrap,
  .fn-wrap,
  .sm-wrap,
  .prose-wrap
) {
  padding: clamp(70px, 8vw, 118px) var(--v3-page) !important;
}

body[data-category="reference"] :is(.g-row, .fn, .sm-item, .fs-row) {
  border-color: var(--v3-rule) !important;
}

body[data-category="reference"] :is(.g-row, .fn, .sm-item, .fs-row):hover {
  background: var(--v3-lavender) !important;
}

body[data-page="fact-sheet"] .fs-wrap {
  padding: 0 !important;
}

/* Canonical, always-visible footer inventory */
.footer.site-footer-v3 {
  padding: clamp(78px, 8vw, 120px) var(--v3-page) 28px !important;
}

.site-footer-v3 .footer-top {
  grid-template-columns: minmax(180px, 0.5fr) minmax(0, 1.5fr) !important;
}

.site-footer-v3 .footer-cols {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(110px, 1fr)) !important;
  gap: clamp(22px, 3vw, 52px) !important;
}

.site-footer-v3 .footer-col {
  align-content: start;
}

.site-footer-v3 .footer-col a {
  width: fit-content;
}

.footer-col-count {
  margin-left: 5px;
  color: var(--v3-lavender);
}

@media (max-width: 1000px) {
  .site-shell .nav-links-row,
  .site-shell .site-contact {
    display: none !important;
  }

  .topnav.site-shell {
    min-height: 66px !important;
    grid-template-columns: 1fr auto !important;
  }

  .site-shell .menu-toggle {
    display: block !important;
  }

  body[data-page] .page-hero,
  body[data-page] .paper-hero,
  body[data-page] .fs-head {
    grid-template-columns: 1fr !important;
    min-height: 720px !important;
    padding-top: 132px !important;
  }

  body[data-page] .page-hero::before,
  body[data-page] .paper-hero::before,
  body[data-page] .fs-head::before {
    top: 66px !important;
    width: 36vw !important;
    opacity: 0.72 !important;
  }

  body[data-page] .page-title,
  body[data-page] .paper-hero > .paper-title,
  body[data-page] .fs-title {
    max-width: 82vw !important;
  }

  .site-footer-v3 .footer-top {
    grid-template-columns: 1fr !important;
  }

  .site-footer-v3 .footer-cols {
    grid-template-columns: repeat(3, 1fr) !important;
    row-gap: 42px !important;
  }
}

@media (max-width: 660px) {
  .topnav.site-shell {
    padding: 0 18px !important;
  }

  body[data-page] .page-hero,
  body[data-page] .paper-hero,
  body[data-page] .fs-head {
    min-height: 620px !important;
    padding: 118px 20px 66px !important;
  }

  body[data-page] .page-hero::before,
  body[data-page] .paper-hero::before,
  body[data-page] .fs-head::before {
    width: 42vw !important;
    opacity: 0.46 !important;
  }

  body[data-page] .page-hero::after,
  body[data-page] .paper-hero::after,
  body[data-page] .fs-head::after {
    right: 18px;
    bottom: 32px;
    font-size: 62px;
    opacity: 0.45;
  }

  body[data-page] .page-eyebrow,
  body[data-page] .paper-eyebrow {
    margin-bottom: 76px !important;
  }

  body[data-page] .page-title,
  body[data-page] .paper-hero > .paper-title,
  body[data-page] .fs-title {
    max-width: 100% !important;
    font-size: clamp(48px, 15vw, 76px) !important;
  }

  body[data-category="operators"] .op-plate-wrap {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
  }

  body[data-category="operators"] .v-cap-grid,
  body[data-page="verticals"] .vh-grid {
    grid-template-columns: 1fr !important;
  }

  body[data-page="verticals"] .vh-card {
    min-height: 340px;
  }

  .site-footer-v3 .footer-cols {
    grid-template-columns: 1fr 1fr !important;
    gap: 38px 24px !important;
  }
}
