/* Homepage presentation built on the native Minimal Mistakes shell. */

.layout--home {
  --hub-content: 1240px;
  background: #f5f7f4;
}

.layout--home .initial-content {
  width: 100%;
}

#main.home-main {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  animation: none;
}

#main.home-main:focus {
  outline: 0;
}

.layout--home .page__footer {
  margin-top: 0;
}

.hub-readest-home {
  --home-paper: #f5f7f4;
  --home-paper-strong: #edf2ee;
  --home-ink: #071923;
  --home-muted: #50636c;
  --home-teal: #0b7f82;
  --home-teal-dark: #06666a;
  --home-teal-soft: #e1f1ef;
  --home-amber: #d88620;
  width: 100%;
  margin: 0;
  color: var(--home-ink);
  background: var(--home-paper);
}

.hub-readest-home *,
.hub-readest-home *::before,
.hub-readest-home *::after {
  box-sizing: border-box;
}

/* Native masthead: transparent at the top, surfaced after scroll. */
.layout--home .masthead {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  width: 100%;
  border-bottom-color: transparent;
  background: transparent;
  box-shadow: none;
  animation: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: background-color 180ms ease, border-color 180ms ease, box-shadow 180ms ease, -webkit-backdrop-filter 180ms ease, backdrop-filter 180ms ease;
}

.layout--home .masthead.is-scrolled {
  border-bottom-color: rgba(114, 139, 147, .28);
  background: rgba(250, 252, 249, .9);
  box-shadow: 0 8px 24px rgba(7, 25, 35, .07);
  -webkit-backdrop-filter: blur(16px) saturate(145%);
  backdrop-filter: blur(16px) saturate(145%);
}

.layout--home .masthead__inner-wrap {
  padding-top: .88rem;
  padding-bottom: .88rem;
  transition: padding 180ms ease;
}

.layout--home .masthead.is-scrolled .masthead__inner-wrap {
  padding-top: .64rem;
  padding-bottom: .64rem;
}

.layout--home .greedy-nav {
  min-height: 2.35rem;
  background: transparent;
}

.layout--home .site-logo {
  display: inline-flex;
  align-items: center;
}

.layout--home .site-logo img {
  width: 2.15rem;
  height: 2.15rem;
  max-height: none;
  border-radius: .58rem;
}

.layout--home .site-title {
  color: var(--home-ink) !important;
  font-size: 1.12rem;
  font-weight: 760;
  letter-spacing: -.025em;
}

.layout--home .greedy-nav a {
  color: #17323e;
  font-size: 1.02rem;
  font-weight: 680;
}

.layout--home .greedy-nav .visible-links a {
  margin-inline: .92rem;
}

.layout--home .greedy-nav .visible-links a::before {
  height: 2px;
  background: var(--home-teal);
}

.layout--home .greedy-nav .hidden-links {
  border-color: rgba(114, 139, 147, .28);
  background: rgba(255, 255, 255, .98);
  box-shadow: 0 16px 40px rgba(7, 25, 35, .14);
}

@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
  .layout--home .masthead.is-scrolled {
    background: rgba(250, 252, 249, .98);
  }
}

/* Hero */
.hub-r-hero {
  position: relative;
  min-height: 630px;
  overflow: clip;
  border-bottom: 1px solid rgba(7, 25, 35, .08);
  background:
    radial-gradient(circle at 15% 5%, rgba(11, 127, 130, .16), transparent 31rem),
    radial-gradient(circle at 88% 23%, rgba(216, 134, 32, .1), transparent 27rem),
    linear-gradient(180deg, #edf6f2 0%, #f8faf7 67%, #f5f7f4 100%);
}

.hub-r-hero::after {
  position: absolute;
  right: -16rem;
  bottom: -23rem;
  width: 56rem;
  height: 32rem;
  content: "";
  border: 1px solid rgba(11, 127, 130, .1);
  border-radius: 50%;
  box-shadow: 0 0 0 4.5rem rgba(11, 127, 130, .022), 0 0 0 9rem rgba(11, 127, 130, .014);
  pointer-events: none;
}

.hub-r-hero-inner {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 630px;
  place-items: center;
  padding-top: 6.25rem;
  padding-bottom: 2.7rem;
}

.hub-r-hero-copy {
  width: 100%;
  text-align: center;
}

.hub-r-eyebrow {
  margin: 0 0 .86rem;
  color: var(--home-teal-dark);
  font-family: var(--hub-mono);
  font-size: .8rem;
  font-weight: 720;
  letter-spacing: .115em;
  line-height: 1.35;
  text-transform: uppercase;
}

.hub-r-hero h1 {
  max-width: 1160px;
  margin: 0 auto;
  color: var(--home-ink);
  font-family: var(--hub-display);
  font-size: 5.8rem;
  font-weight: 770;
  letter-spacing: -.06em;
  line-height: .95;
  text-wrap: balance;
}

.hub-r-hero h1 span {
  display: block;
}

.hub-r-hero h1 span:last-child {
  color: var(--home-teal-dark);
}

.hub-r-hero-lede {
  width: min(100%, 72ch);
  margin: 1.18rem auto 0;
  color: var(--home-muted);
  font-size: 1.2rem;
  line-height: 1.58;
  text-align: center;
  text-wrap: pretty;
}

.hub-r-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  margin-top: 1.55rem;
}

.hub-r-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: .52rem;
  padding: .78rem 1.28rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 750;
  line-height: 1;
  text-decoration: none !important;
  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.hub-r-button--primary {
  color: #fff !important;
  background: var(--home-teal);
  box-shadow: 0 10px 24px rgba(11, 127, 130, .18);
}

.hub-r-button--primary:hover {
  color: #fff !important;
  background: var(--home-teal-dark);
}

.hub-r-button--secondary {
  color: var(--home-ink) !important;
  border-color: rgba(7, 25, 35, .18);
  background: rgba(255, 255, 255, .82);
}

.hub-r-button--secondary:hover {
  color: var(--home-ink) !important;
  border-color: rgba(11, 127, 130, .42);
  background: #fff;
  box-shadow: var(--hub-shadow-sm);
}

.hub-r-mini-stats {
  display: inline-grid;
  grid-template-columns: repeat(3, auto);
  margin: 1.3rem auto 0;
  padding: .34rem;
  border: 1px solid rgba(7, 25, 35, .11);
  border-radius: 999px;
  background: rgba(255, 255, 255, .76);
  box-shadow: 0 8px 24px rgba(7, 25, 35, .04);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.hub-r-mini-stats > div {
  display: flex;
  align-items: baseline;
  gap: .42rem;
  padding: .4rem .82rem;
}

.hub-r-mini-stats > div + div {
  border-left: 1px solid rgba(7, 25, 35, .1);
}

.hub-r-mini-stats dt,
.hub-r-mini-stats dd {
  margin: 0;
}

.hub-r-mini-stats dt {
  color: var(--home-ink);
  font-family: var(--hub-display);
  font-size: 1.2rem;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.03em;
}

.hub-r-mini-stats dd {
  color: var(--home-muted);
  font-size: .78rem;
  white-space: nowrap;
}

/* Sections */
.hub-r-section {
  padding-block: 3.9rem;
}

.hub-r-section--white {
  border-block: 1px solid rgba(7, 25, 35, .07);
  background: #fff;
}

.hub-r-section-heading {
  max-width: 850px;
  margin-bottom: 2rem;
}

.hub-r-section-heading .hub-r-eyebrow {
  margin-bottom: .66rem;
}

.hub-r-section-heading h2 {
  max-width: 19ch;
  margin: 0;
  color: var(--home-ink);
  font-family: var(--hub-display);
  font-size: 3.15rem;
  letter-spacing: -.048em;
  line-height: 1.02;
  text-wrap: balance;
}

.hub-r-section-heading > p:last-child {
  max-width: 730px;
  margin: .86rem 0 0;
  color: var(--home-muted);
  font-size: 1.08rem;
  line-height: 1.6;
  text-wrap: pretty;
}

/* Direct routes */
.hub-r-workflow-list {
  border-top: 1px solid rgba(7, 25, 35, .14);
}

.hub-r-workflow {
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.45rem;
  padding: 1.3rem .75rem;
  border-bottom: 1px solid rgba(7, 25, 35, .14);
  border-radius: 10px;
  color: inherit !important;
  text-decoration: none !important;
  transition: background-color 160ms ease;
}

.hub-r-workflow-index {
  color: var(--home-amber);
  font-family: var(--hub-mono);
  font-size: .78rem;
  font-weight: 720;
}

.hub-r-workflow h3 {
  margin: 0;
  color: var(--home-ink);
  font-family: var(--hub-display);
  font-size: 1.82rem;
  letter-spacing: -.032em;
  line-height: 1.1;
}

.hub-r-workflow p {
  max-width: 820px;
  margin: .45rem 0 0;
  color: var(--home-muted);
  font-size: 1.02rem;
  line-height: 1.56;
}

.hub-r-workflow-link {
  color: var(--home-teal-dark);
  font-size: .96rem;
  font-weight: 750;
  white-space: nowrap;
  transition: transform 160ms ease;
}

/* Editorial and case cards */
.hub-r-editorial-grid,
.hub-r-case-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
}

.hub-r-editorial-card,
.hub-r-case-card {
  display: flex;
  min-width: 0;
  min-height: 220px;
  flex-direction: column;
  padding: 1.5rem;
  border: 1px solid rgba(7, 25, 35, .11);
  border-radius: 17px;
  color: inherit !important;
  background: #fff;
  box-shadow: 0 7px 22px rgba(7, 25, 35, .045);
  text-decoration: none !important;
  transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease;
}

.hub-r-editorial-card.is-featured {
  border-top: 3px solid var(--home-teal);
}

.hub-r-editorial-card time,
.hub-r-card-meta {
  color: var(--home-teal-dark);
  font-family: var(--hub-mono);
  font-size: .74rem;
  font-weight: 720;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.hub-r-editorial-card h3,
.hub-r-case-card h3 {
  margin: .84rem 0 .58rem;
  color: var(--home-ink);
  font-family: var(--hub-display);
  font-size: 1.5rem;
  letter-spacing: -.027em;
  line-height: 1.18;
  text-wrap: balance;
}

.hub-r-editorial-card p,
.hub-r-case-card p {
  margin: 0;
  color: var(--home-muted);
  font-size: 1.02rem;
  line-height: 1.56;
}

.hub-r-card-link {
  margin-top: auto;
  padding-top: 1.1rem;
  color: var(--home-teal-dark);
  font-size: .92rem;
  font-weight: 750;
}

/* Decision chain */
.hub-r-chain {
  color: #fff;
  background: var(--home-ink);
}

.hub-r-chain .hub-r-eyebrow {
  color: #7ee4df;
}

.hub-r-chain .hub-r-section-heading h2 {
  color: #fff;
}

.hub-r-chain .hub-r-section-heading > p:last-child {
  color: #bed0d5;
}

.hub-r-chain-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-block: 1px solid rgba(255, 255, 255, .15);
}

.hub-r-chain-step {
  min-width: 0;
  padding: 1.4rem 1.15rem;
}

.hub-r-chain-step + .hub-r-chain-step {
  border-left: 1px solid rgba(255, 255, 255, .15);
}

.hub-r-chain-step span {
  color: #f2a33a;
  font-family: var(--hub-mono);
  font-size: .76rem;
  font-weight: 720;
}

.hub-r-chain-step h3 {
  margin: .9rem 0 .52rem;
  color: #fff;
  font-size: 1.25rem;
  line-height: 1.2;
}

.hub-r-chain-step p {
  margin: 0;
  color: #bed0d5;
  font-size: .98rem;
  line-height: 1.54;
}

/* Final call to action */
.hub-r-cta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2.2rem;
  padding: 2.2rem;
  border: 1px solid rgba(7, 25, 35, .11);
  border-radius: 21px;
  background: #fff;
  box-shadow: var(--hub-shadow-sm);
}

.hub-r-cta h2 {
  max-width: 18ch;
  margin: 0;
  color: var(--home-ink);
  font-family: var(--hub-display);
  font-size: 2.85rem;
  letter-spacing: -.044em;
  line-height: 1.04;
  text-wrap: balance;
}

.hub-r-cta p:not(.hub-r-eyebrow) {
  max-width: 680px;
  margin: .74rem 0 0;
  color: var(--home-muted);
  font-size: 1.04rem;
  line-height: 1.58;
}

.hub-r-cta .hub-r-actions {
  flex: 0 0 auto;
  justify-content: flex-end;
  margin-top: 0;
}

/* Progressive disclosure; the hero remains stable on first paint. */
.has-home-motion .hub-readest-home [data-reveal] {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 420ms ease, transform 420ms ease;
}

.has-home-motion .hub-readest-home [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

@media (hover: hover) and (pointer: fine) {
  .hub-r-button:hover {
    transform: translateY(-2px);
  }

  .hub-r-workflow:hover {
    background: var(--home-teal-soft);
  }

  .hub-r-workflow:hover .hub-r-workflow-link {
    transform: translateX(3px);
  }

  .hub-r-editorial-card:hover,
  .hub-r-case-card:hover {
    transform: translateY(-3px);
    border-color: rgba(11, 127, 130, .38);
    box-shadow: 0 14px 34px rgba(7, 25, 35, .09);
  }
}

@media (min-width: 1600px) and (min-height: 900px) {
  .hub-r-hero,
  .hub-r-hero-inner {
    min-height: 650px;
  }

  .hub-r-hero h1 {
    font-size: 6.1rem;
  }
}

@media (max-width: 1180px) {
  .hub-r-hero h1 {
    font-size: 4.8rem;
  }
}

@media (max-width: 980px) {
  .hub-r-hero h1 {
    font-size: 4.1rem;
  }

  .hub-r-section-heading h2 {
    font-size: 2.7rem;
  }

  .hub-r-editorial-grid,
  .hub-r-case-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hub-r-chain-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hub-r-chain-step:nth-child(3) {
    border-top: 1px solid rgba(255, 255, 255, .15);
    border-left: 0;
  }

  .hub-r-chain-step:nth-child(4) {
    border-top: 1px solid rgba(255, 255, 255, .15);
  }

  .hub-r-cta {
    align-items: flex-start;
    flex-direction: column;
  }

  .hub-r-cta .hub-r-actions {
    justify-content: flex-start;
  }
}

@media (min-width: 981px) and (max-height: 820px) {
  .hub-r-hero,
  .hub-r-hero-inner {
    min-height: 570px;
  }

  .hub-r-hero-inner {
    padding-top: 5.55rem;
    padding-bottom: 2.25rem;
  }

  .hub-r-hero h1 {
    font-size: 5.05rem;
  }

  .hub-r-section {
    padding-block: 3.55rem;
  }
}

@media (max-width: 700px) {
  .layout--home {
    --hub-content: 1180px;
  }

  .layout--home .masthead__inner-wrap {
    padding-top: .7rem;
    padding-bottom: .7rem;
  }

  .layout--home .site-logo img {
    width: 1.9rem;
    height: 1.9rem;
  }

  .layout--home .site-title {
    font-size: 1.02rem;
  }

  .layout--home .greedy-nav a {
    font-size: .92rem;
  }

  .hub-r-hero,
  .hub-r-hero-inner {
    min-height: auto;
  }

  .hub-r-hero-inner {
    padding-top: 6.8rem;
    padding-bottom: 3.15rem;
  }

  .hub-r-hero h1 {
    max-width: 12ch;
    font-size: 3.05rem;
    line-height: .98;
  }

  .hub-r-hero-lede {
    width: min(100%, 36ch);
    font-size: 1.04rem;
    line-height: 1.55;
  }

  .hub-r-button {
    min-height: 48px;
    font-size: .96rem;
  }

  .hub-r-mini-stats {
    display: grid;
    width: min(100%, 420px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border-radius: 15px;
  }

  .hub-r-mini-stats > div {
    min-width: 0;
    justify-content: center;
    gap: .25rem;
    padding-inline: .3rem;
  }

  .hub-r-mini-stats dd {
    font-size: .66rem;
    white-space: normal;
  }

  .hub-r-section {
    padding-block: 3.15rem;
  }

  .hub-r-section-heading h2 {
    font-size: 2.35rem;
  }

  .hub-r-section-heading > p:last-child {
    font-size: 1.04rem;
  }

  .hub-r-workflow {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: .8rem;
    padding: 1.15rem .35rem;
  }

  .hub-r-workflow h3 {
    font-size: 1.55rem;
  }

  .hub-r-workflow-link {
    grid-column: 2;
    margin-top: .1rem;
  }

  .hub-r-editorial-grid,
  .hub-r-case-grid,
  .hub-r-chain-grid {
    grid-template-columns: 1fr;
  }

  .hub-r-editorial-card,
  .hub-r-case-card {
    min-height: 0;
  }

  .hub-r-chain-step + .hub-r-chain-step,
  .hub-r-chain-step:nth-child(3),
  .hub-r-chain-step:nth-child(4) {
    border-top: 1px solid rgba(255, 255, 255, .15);
    border-left: 0;
  }

  .hub-r-cta {
    padding: 1.6rem;
  }

  .hub-r-cta h2 {
    font-size: 2.2rem;
  }
}

@media (max-width: 420px) {
  .hub-r-actions {
    width: 100%;
  }

  .hub-r-button {
    flex: 1 1 auto;
  }

  .hub-r-mini-stats dt {
    font-size: 1.04rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hub-readest-home *,
  .hub-readest-home *::before,
  .hub-readest-home *::after,
  .layout--home .masthead {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }

  .has-home-motion .hub-readest-home [data-reveal] {
    opacity: 1;
    transform: none;
  }
}
