/* Final editorial system shared by News, Methodology and Ruty releases.
   This file intentionally loads last so legacy page themes cannot repaint it. */
:is(.news-page,.methodology-reference-page,.ruty-release-page) main {
  --eu-shell: var(--cnw-page-max);



  color: #0c0e0d;
}

:is(.news-page,.methodology-reference-page,.ruty-release-page) main :is(h1,h2,h3) {
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
  text-transform: none !important;
  text-wrap: balance;
}

/* News: compact editorial introduction followed immediately by photography. */
.news-page .news-shell { width: min(calc(100% - 48px), var(--eu-shell)) !important; }
.news-page .news-hero {
  min-height: 0 !important;
  padding: clamp(92px, 9vw, 128px) 0 58px !important;
  border: 0 !important;
}
.news-page .news-deck {
  max-width: 620px !important;
  margin-top: 24px !important;
}
.news-page .news-controls { margin-top: 42px !important; }
.news-page .news-featured { padding: 0 0 96px !important; border: 0 !important; }
.news-page .news-bento { gap: 12px !important; }
.news-page .news-tile { border: 0 !important; border-radius: 18px !important; }
.news-page .news-archive,
.news-page .news-list,
.news-page .news-list a { border: 0 !important; }

/* Methodology: homepage split hierarchy plus real photographic fields. */
.methodology-reference-page .hero {
  padding-top: 0 !important;
  background: #fff !important;
  border: 0 !important;
}
.methodology-reference-page .hero-top {
  width: min(calc(100% - 48px), var(--eu-shell)) !important;
  min-height: 0 !important;
  padding: clamp(64px, 8vw, 128px) 0 64px !important;
  align-items: end !important;
}
.methodology-reference-page .hero-title {
  grid-column: 1 / 8 !important;
  max-width: 760px !important;
}
.methodology-reference-page .hero-title span { display: inline !important; }
.methodology-reference-page .hero-title span:not(:last-child)::after { content: " "; }
.methodology-reference-page .hero-lead,
.methodology-reference-page .hero-actions {
  grid-column: 9 / 13 !important;
}
.methodology-reference-page .hero-lead {
  margin: 0 !important;
  max-width: 520px !important;
  color: #48504c !important;
}
.methodology-reference-page .hero-art {
  width: min(calc(100% - 48px), var(--eu-shell)) !important;
  height: clamp(420px, 47vw, 650px) !important;
  min-height: 0 !important;
  border: 0 !important;
  border-radius: 18px !important;
  background: linear-gradient(180deg,rgba(4,12,10,.02),rgba(4,12,10,.18)),url('../../images/photography/strategy-review.webp') center / cover no-repeat !important;
}
.methodology-reference-page .hero-art > * { display: none !important; }
.methodology-reference-page :is(.section,.statement-section,.process-section,.dark-section,.cta-section,.process-tabs,.process-item,.controls-grid,.metrics,.research-record,.record-head,.record-row) {
  border: 0 !important;
}
.methodology-reference-page .method-vortex {
  background: linear-gradient(90deg,rgba(4,12,10,.66),rgba(4,12,10,.08)),url('../../images/photography/software-research.webp') center / cover no-repeat !important;
  border: 0 !important;
  border-radius: 18px !important;
}

/* Ruty releases: one stable split layout and no disabled legacy hero art. */
html body.ruty-release-page .page-hero.product-hero::before {
  content: none !important;
  display: none !important;
}
html body.ruty-release-page .ruty-spec-page::before {
  content: none !important;
  display: none !important;
}
html body.ruty-release-page main { padding-top: 58px !important; }
html body.ruty-release-page .page-hero.product-hero {
  width: min(calc(100% - 48px), var(--eu-shell)) !important;
  min-height: 630px !important;
  margin: 0 auto !important;
  padding: 84px 0 70px !important;
  display: grid !important;
  grid-template-columns: minmax(0,.86fr) minmax(430px,1.14fr) !important;
  gap: clamp(48px,7vw,100px) !important;
  align-items: center !important;
  overflow: visible !important;
  background: #fff !important;
  border: 0 !important;
}
html body.ruty-release-page .page-hero.product-hero > .cnw-fluid-field { display: none !important; }
html body.ruty-release-page .page-hero.product-hero::after,
html body.ruty-release-page .page-hero.product-hero.cnw-fluid-hero::after {
  content: "" !important;
  display: block !important;
  width: 100% !important;
  height: 490px !important;
  opacity: 1 !important;
  visibility: visible !important;
  border: 0 !important;
  border-radius: 18px !important;
  background-position: center !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  position: static !important;
  transform: none !important;
  inset: auto !important;
  z-index: auto !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
}
html body.ruty-release-page .page-hero.product-hero .page-hero-inner {
  position: relative !important;
  width: auto !important;
  margin: 0 !important;
  z-index: auto !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  text-align: left !important;
}
html body.ruty-release-page.ruty-r01-release .page-hero.product-hero::after {
  background-image: linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.16)),url('../../images/photography/market-analysis.webp') !important;
}
html body.ruty-release-page.ruty-r02-release .page-hero.product-hero::after {
  background-image: linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.12)),url('../../images/photography/software-research.webp') !important;
}
html body.ruty-release-page .page-title {
  text-align: left !important;
}
html body.ruty-release-page .product-hero-copy {
  max-width: 560px !important;
  margin: 26px 0 0 !important;
  color: #48504c !important;
  text-align: left !important;
}
html body.ruty-release-page .ruty-spec-page {
  width: min(calc(100% - 48px), var(--eu-shell)) !important;
  margin-inline: auto !important;
  padding: clamp(64px, 5vw, 80px) 0 clamp(80px, 6vw, 96px) !important;
}
html body.ruty-release-page :is(.ruty-spec-intro,.ruty-r02-stage,.product-metrics,.ruty-validation-block,.ruty-model-table-block,.ruty-r02-split,.product-faq-accordion) {
  border: 0 !important;
}

/* R0.1 and R0.2 share one page frame and one vertical rhythm. Legacy rules
   added an inner 1180px gutter and opposing margins between adjacent blocks,
   which made the release pages much narrower and airier than the homepage. */
html body.ruty-release-page .ruty-spec-page > :not(.ruty-spec-back) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

html body.ruty-release-page .ruty-spec-page > :not(.ruty-spec-back) + :not(.ruty-spec-back) {
  margin-top: clamp(48px, 4vw, 64px) !important;
}

/* Use the exact homepage type roles throughout both release pages. */
html body.ruty-release-page main :is(
  .page-title,
  .ruty-spec-intro h2,
  .ruty-validation-head h2,
  .ruty-r02-split h2,
  .product-faq-accordion > h2
) {
  font-size: var(--cnw-display-size) !important;
  font-weight: var(--cnw-display-weight) !important;
  line-height: var(--cnw-display-leading) !important;
  letter-spacing: var(--cnw-display-tracking) !important;
}

html body.ruty-release-page main :is(
  .ruty-spec-row h3,
  .ruty-r02-inputs h3,
  .ruty-r02-goals h3,
  .ruty-r02-stage strong
) {
  font-size: var(--cnw-heading-size) !important;
  font-weight: var(--cnw-heading-weight) !important;
  line-height: var(--cnw-heading-leading) !important;
  letter-spacing: var(--cnw-heading-tracking) !important;
}

html body.ruty-release-page main .product-metrics strong {
  margin-bottom: 12px !important;
  font-size: var(--cnw-display-size) !important;
  font-weight: 500 !important;
  line-height: var(--cnw-display-leading) !important;
  letter-spacing: var(--cnw-display-tracking) !important;
}

html body.ruty-release-page main :is(.product-metrics span, .ruty-r02-stage > span) {
  font-size: var(--cnw-eyebrow-size) !important;
  font-weight: var(--cnw-eyebrow-weight) !important;
  line-height: var(--cnw-eyebrow-leading) !important;
  letter-spacing: var(--cnw-eyebrow-tracking) !important;
}

html body.ruty-release-page :is(.ruty-spec-intro, .ruty-validation-head, .ruty-r02-split) {
  gap: clamp(36px, 4vw, 64px) !important;
}

html body.ruty-release-page .ruty-spec-intro > p,
html body.ruty-release-page .ruty-validation-head > p {
  max-width: 52ch !important;
}

@media (max-width: 760px) {
  .news-page .news-shell { width: calc(100% - 32px) !important; }
  .news-page .news-hero { padding: 78px 0 46px !important; }
  .news-page .news-controls { margin-top: 34px !important; }
  .news-page .news-featured { padding-bottom: 72px !important; }
  .methodology-reference-page .hero-top {
    width: calc(100% - 32px) !important;
    min-height: 0 !important;
    padding: 62px 0 44px !important;
  }
  .methodology-reference-page .hero-title,
  .methodology-reference-page .hero-lead,
  .methodology-reference-page .hero-actions { grid-column: 1 / 13 !important; }
  .methodology-reference-page .hero-title {
    max-width: 20.5ch !important;
  }
  .methodology-reference-page .hero-lead { margin-top: 28px !important; }
  .methodology-reference-page .hero-art {
    width: calc(100% - 32px) !important;
    height: 74vw !important;
    min-height: 280px !important;
    border-radius: 14px !important;
  }
  html body.ruty-release-page .page-hero.product-hero,
  html body.ruty-release-page.ruty-r01-release .page-hero.product-hero {
    width: calc(100% - 32px) !important;
    min-height: 0 !important;
    padding: 66px 0 70px !important;
    grid-template-columns: 1fr !important;
    gap: 38px !important;
  }
  html body.ruty-release-page .page-hero.product-hero::after,
  html body.ruty-release-page .page-hero.product-hero.cnw-fluid-hero::after {
    height: 72vw !important;
    min-height: 280px !important;
    border-radius: 14px !important;
    grid-column: 1 !important;
    grid-row: 2 !important;
  }
  html body.ruty-release-page .page-hero.product-hero .page-hero-inner {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }
  html body.ruty-release-page .ruty-spec-page {
    width: calc(100% - 32px) !important;
    margin-inline: auto !important;
    padding: 48px 0 72px !important;
  }
  html body.ruty-release-page .ruty-spec-page > :not(.ruty-spec-back) + :not(.ruty-spec-back) {
    margin-top: 48px !important;
  }
}

/* Typography is shared with home, including mobile. Legacy page rules use
   !important; these explicit scopes bridge them without changing navigation. */
body:is(.news-page, .methodology-reference-page, .ruty-release-page) main {
  font-family: var(--cnw-font-family);
}
body:is(.news-page, .methodology-reference-page, .ruty-release-page) main :is(h1, h2, h3, h4, p, li, a, button, input, strong, span, small, label, time, blockquote, th, td) {
  font-family: var(--cnw-font-family) !important;
}
html body:is(.news-page, .methodology-reference-page, .ruty-release-page) main :is(h1, h2, .quote) {
  font-size: var(--cnw-display-size) !important;
  font-weight: var(--cnw-display-weight) !important;
  line-height: var(--cnw-display-leading) !important;
  letter-spacing: var(--cnw-display-tracking) !important;
  text-transform: none !important;
}
html body:is(.news-page, .methodology-reference-page, .ruty-release-page) main :is(h3, .news-tile-copy strong, .news-list strong) {
  font-size: var(--cnw-heading-size) !important;
  font-weight: var(--cnw-heading-weight) !important;
  line-height: var(--cnw-heading-leading) !important;
  letter-spacing: var(--cnw-heading-tracking) !important;
  text-transform: none !important;
}
html body:is(.news-page, .methodology-reference-page, .ruty-release-page) main :is(p, li) {
  font-size: var(--cnw-body-size) !important;
  line-height: var(--cnw-body-leading) !important;
}
html body:is(.news-page, .methodology-reference-page, .ruty-release-page) main :is(.hero-lead, .news-deck, .product-hero-copy) {
  font-size: var(--cnw-lead-size) !important;
  line-height: var(--cnw-lead-leading) !important;
  letter-spacing: var(--cnw-lead-tracking) !important;
  font-weight: var(--cnw-lead-weight) !important;
}
html body.news-page main :is(.news-kicker, .news-section-label, .news-tile-copy small) {
  font-size: var(--cnw-eyebrow-size) !important;
  line-height: 1.3 !important;
  letter-spacing: var(--cnw-eyebrow-tracking) !important;
  font-weight: var(--cnw-eyebrow-weight) !important;
}
body.methodology-reference-page .shell {
  width: min(calc(100% - 48px), var(--cnw-page-max));
  max-width: none;
}
body.methodology-reference-page .section { padding: var(--cnw-section-space) 0; }
body.methodology-reference-page #methodologyVortex { display: none; }
body.methodology-reference-page .method-vortex { min-height: 440px; }
body.methodology-reference-page .statement-vortex { min-height: inherit; }
body.methodology-reference-page .hero-title { align-self: center; }
body.ruty-release-page .ruty-spec-intro {
  display: grid;
  grid-template-columns: 1.05fr .75fr;
  gap: 48px;
  margin-bottom: 64px;
}
body.ruty-release-page .ruty-spec-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
body.ruty-release-page .ruty-spec-row {
  padding: 30px;
  border-radius: 16px;
  background: #f4f5f3;
}

/* Ruty generation covers: align copy and photography on the same top axis.
   The former vertical centering pushed the title far below the image. */
html body.ruty-release-page .page-hero.product-hero {
  width: min(calc(100% - 64px), 1440px) !important;
  min-height: 0 !important;
  padding: clamp(72px,6vw,94px) 0 clamp(58px,5vw,78px) !important;
  grid-template-columns: minmax(360px,.84fr) minmax(0,1.16fr) !important;
  gap: clamp(54px,6vw,92px) !important;
  align-items: start !important;
}

html body.ruty-release-page .page-hero.product-hero .page-hero-inner {
  align-self: start !important;
  padding-top: 0 !important;
}

html body.ruty-release-page .page-hero.product-hero::after,
html body.ruty-release-page .page-hero.product-hero.cnw-fluid-hero::after {
  height: clamp(440px,36vw,540px) !important;
}

html body.ruty-release-page .page-title {
  max-width: 620px !important;
  font-size: clamp(52px,4.4vw,72px) !important;
  line-height: .96 !important;
}

html body.ruty-release-page .product-hero-copy {
  max-width: 590px !important;
}

html body.ruty-release-page .ruty-spec-page {
  width: min(calc(100% - 64px), 1440px) !important;
}

@media (max-width: 760px) {
  body.methodology-reference-page .shell { width: calc(100% - 32px); }
  body.ruty-release-page :is(.ruty-spec-intro, .ruty-spec-list) { grid-template-columns: 1fr; }

  html body.ruty-release-page .page-hero.product-hero {
    width: calc(100% - 32px) !important;
    padding: 54px 0 58px !important;
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }

  html body.ruty-release-page .page-hero.product-hero .page-hero-inner {
    width: 100% !important;
    max-width: 100% !important;
    max-inline-size: calc(100vw - 32px) !important;
    min-width: 0 !important;
    padding-top: 0 !important;
  }

  html body.ruty-release-page .page-title {
    width: 100% !important;
    max-width: 100% !important;
    font-size: clamp(42px,12vw,54px) !important;
  }

  html body.ruty-release-page .product-hero-copy,
  html body.ruty-release-page .product-hero-copy > span {
    width: 100% !important;
    max-width: 100% !important;
    max-inline-size: calc(100vw - 32px) !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }

  html body.ruty-release-page .page-hero.product-hero::after,
  html body.ruty-release-page .page-hero.product-hero.cnw-fluid-hero::after {
    height: 68vw !important;
    min-height: 260px !important;
  }

  html body.ruty-release-page .ruty-spec-page {
    width: calc(100% - 32px) !important;
  }

  html body.ruty-release-page .ruty-spec-page > *,
  html body.ruty-release-page :is(.ruty-spec-intro,.ruty-validation-head,.ruty-r02-split,.ruty-model-table-block,.product-faq-accordion) {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
}
