.tm-page { --tm-max: 1240px; overflow-x: hidden; color: var(--ink); background: #fff; }
.tm-page .primary-nav .is-current { position: relative; color: var(--orange); }
.tm-page .primary-nav .is-current::after { content: ""; display: block; width: 100%; height: 2px; margin-top: 8px; background: var(--orange); }
.tm-page .eyebrow { color: var(--orange); }
.tm-page :is(a,button):focus-visible { outline: 3px solid #124a88; outline-offset: 4px; }
.tm-page :is(.tm-discipline,.tm-closing,.site-footer) :is(a,button):focus-visible { outline-color: #fff; }
.tm-page main :is(h1,h2,h3) { text-wrap: balance; }
.tm-narrow { width: min(calc(100% - 64px),var(--tm-max)); }
.tm-page main h2 { margin: 11px 0 0; color: var(--ink); font-size: var(--ps-section-heading-size); font-weight: 720; line-height: 1.025; letter-spacing: -.024em; }

.tm-hero { position: relative; min-height: 500px; overflow: hidden; background: #fff; border-bottom: 1px solid rgba(219,226,235,.78); }
.tm-hero::after { content: ""; position: absolute; z-index: 2; inset: auto 0 0; height: 74px; background: linear-gradient(180deg,transparent,rgba(255,255,255,.96)); pointer-events: none; }
.tm-hero-media { position: absolute; z-index: 0; inset: 0 0 0 auto; width: 62%; overflow: hidden; }
.tm-hero-media::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(90deg,#fff 0%,rgba(255,255,255,.98) 13%,rgba(255,255,255,.76) 31%,rgba(255,255,255,.2) 50%,transparent 67%); }
.tm-hero-media::after { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg,rgba(255,255,255,.03),transparent 55%,rgba(255,255,255,.7)); }
.tm-hero-media img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 68% 52%; }
.tm-hero-inner { position: relative; z-index: 3; min-height: 500px; display: flex; align-items: center; }
.tm-hero-copy { width: 57%; max-width: 700px; padding: 38px 0 55px; }
.tm-hero h1 { max-width: 690px; margin: 12px 0 0; color: var(--ink); font-size: var(--ps-opening-heading-size); font-weight: 735; line-height: .97; letter-spacing: -.032em; }
.tm-hero h1 em { color: var(--orange); font-style: normal; }
.tm-hero-copy > p:not(.eyebrow) { max-width: 630px; margin: 20px 0 0; color: var(--body); font-size: 17px; line-height: 1.5; }
.tm-actions { margin-top: 26px; display: flex; align-items: center; gap: 30px; }
.tm-cross { position: absolute; z-index: 2; width: 24px; height: 24px; opacity: .7; }
.tm-cross::before,.tm-cross::after { content: ""; position: absolute; background: var(--orange); }
.tm-cross::before { left: 11px; top: 0; width: 1px; height: 24px; }
.tm-cross::after { top: 11px; left: 0; width: 24px; height: 1px; }
.tm-cross-one { left: 20%; top: 23%; }
.tm-cross-two { right: 5%; top: 25%; }

.tm-markets { background: #fff; }
.tm-markets .section-lede { max-width: 800px; }
.tm-markets .home-market-feature-image { border-radius: 3px; }

.tm-discipline { position: relative; overflow: hidden; padding: 74px 0 80px; color: #fff; background: #071820 url('./graphics/system-dark-texture-v13.png?v=13') center / cover no-repeat; }
.tm-discipline::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 85% 47%,rgba(243,75,23,.15),transparent 28%),linear-gradient(90deg,rgba(4,14,20,.04),rgba(4,14,20,.28)); }
.tm-discipline .container { position: relative; z-index: 1; }
.tm-discipline .eyebrow { color: var(--orange-bright); }
.tm-page .tm-discipline h2 { max-width: 830px; color: #fff; }
.tm-discipline-grid { position: relative; margin: 38px 0 0; padding: 0; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); list-style: none; }
.tm-discipline-grid::before { content: ""; position: absolute; top: 40px; left: 9%; right: 9%; height: 1px; background: linear-gradient(90deg,rgba(243,75,23,.75),rgba(255,255,255,.28),rgba(243,75,23,.75)); }
.tm-discipline-grid li { position: relative; min-height: 232px; padding: 0 26px 24px; text-align: center; border-right: 1px solid rgba(255,255,255,.16); }
.tm-discipline-grid li:last-child { border-right: 0; }
.tm-discipline-icon { position: relative; z-index: 1; width: 82px; height: 82px; margin: 0 auto 18px; display: grid; place-items: center; color: #fff; background: #0b2029; border: 1px solid var(--orange); border-radius: 50%; box-shadow: 0 0 30px rgba(243,75,23,.18); }
.tm-discipline-icon svg { width: 48px; height: 48px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tm-discipline-grid small { display: block; color: var(--orange-bright); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.tm-discipline-grid h3 { margin: 11px 0 8px; color: #fff; font-size: 20px; font-weight: 700; line-height: 1.12; }
.tm-discipline-grid p { max-width: 240px; margin: 0 auto; color: #d3dce2; font-size: 13.5px; line-height: 1.45; }

.tm-solutions { padding: 74px 0 80px; background-color: #f3f6f9; background-image: linear-gradient(rgba(46,100,145,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(46,100,145,.045) 1px,transparent 1px); background-size: 28px 28px; }
.tm-solutions-intro { max-width: 900px; }
.tm-solutions-intro > p:last-child { max-width: 760px; margin: 18px 0 0; color: var(--body); font-size: 16px; line-height: 1.5; }
.tm-solution-list { position: relative; margin: 35px 0 26px; padding: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; }
.tm-solution-list::before { content: ""; position: absolute; top: 53px; left: 15%; right: 15%; height: 2px; background: linear-gradient(90deg,var(--orange),#f5ad94,var(--orange)); }
.tm-solution-list li { position: relative; min-height: 245px; padding: 24px 26px 26px; display: grid; grid-template-columns: 76px 1fr; gap: 18px; align-items: start; background: rgba(255,255,255,.96); border: 1px solid #d8e0e8; box-shadow: 0 14px 34px rgba(10,29,52,.055); }
.tm-solution-list li + li { border-left: 0; }
.tm-solution-icon { position: relative; z-index: 1; width: 70px; height: 70px; display: grid; place-items: center; color: var(--orange); background: #fff; border: 1px solid #f3b49f; border-radius: 50%; }
.tm-solution-icon svg { width: 44px; height: 44px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tm-solution-list small { color: var(--orange); font-size: 10px; font-weight: 800; letter-spacing: .1em; }
.tm-solution-list h3 { margin: 9px 0 9px; color: var(--ink); font-size: 19px; font-weight: 710; line-height: 1.16; letter-spacing: -.014em; }
.tm-solution-list p { margin: 0; color: var(--body); font-size: 13.5px; line-height: 1.45; }

.tm-closing .cta-growth-layout > div { max-width: 720px; }
.tm-page .tm-closing h2 { max-width: 700px; margin: 0; color: #fff; font-size: var(--ps-closing-heading-size); line-height: 1; letter-spacing: -.03em; }
.tm-closing .eyebrow { color: #fff; }
.tm-page .back-to-top { visibility: hidden; }
.tm-page .back-to-top.is-visible { visibility: visible; }
.tm-page .back-to-top.is-visible:is(.is-over-footer,.is-over-closing) { visibility: hidden; opacity: 0; pointer-events: none; }

@media (max-width:1120px) {
  .tm-page .primary-nav .is-current::after { display: none; }
  .tm-solution-list li { grid-template-columns: 62px 1fr; gap: 14px; padding-inline: 20px; }
  .tm-solution-icon { width: 58px; height: 58px; }
  .tm-solution-icon svg { width: 36px; height: 36px; }
}
@media (max-width:980px) {
  .tm-narrow { width: min(calc(100% - 40px),900px); }
  .tm-hero { min-height: 710px; }
  .tm-hero-media { inset: auto 0 0; width: 100%; height: 40%; }
  .tm-hero-media::before { background: linear-gradient(180deg,#fff 0%,rgba(255,255,255,.82) 28%,rgba(255,255,255,.06) 80%); }
  .tm-hero-media img { object-position: center 53%; }
  .tm-hero-inner { min-height: 710px; align-items: flex-start; }
  .tm-hero-copy { width: 100%; max-width: 690px; padding-top: 44px; }
  .tm-discipline-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tm-discipline-grid::before { display: none; }
  .tm-discipline-grid li { min-height: 230px; padding-top: 20px; border-bottom: 1px solid rgba(255,255,255,.16); }
  .tm-discipline-grid li:nth-child(2) { border-right: 0; }
  .tm-discipline-grid li:nth-child(n+3) { border-bottom: 0; }
  .tm-solution-list { grid-template-columns: 1fr; gap: 0; }
  .tm-solution-list::before { top: 46px; bottom: 46px; left: 55px; right: auto; width: 2px; height: auto; }
  .tm-solution-list li { min-height: 0; grid-template-columns: 70px 1fr; gap: 18px; padding: 20px 24px; }
  .tm-solution-list li + li { border-top: 0; border-left: 1px solid #d8e0e8; }
}
@media (max-width:680px) {
  .tm-narrow { width: min(calc(100% - 32px),620px); }
  .tm-hero { min-height: 790px; }
  .tm-hero-inner { min-height: 790px; }
  .tm-hero-copy { padding-top: 34px; }
  .tm-hero h1 { font-size: clamp(39px,11vw,50px); }
  .tm-hero-copy > p:not(.eyebrow) { margin-top: 17px; font-size: 15px; }
  .tm-actions { align-items: flex-start; flex-direction: column; gap: 16px; }
  .tm-hero-media { height: 31%; }
  .tm-discipline,.tm-solutions { padding-top: 60px; padding-bottom: 64px; }
  .tm-discipline-grid { grid-template-columns: 1fr; margin-top: 28px; }
  .tm-discipline-grid li { min-height: 0; padding: 18px 16px 20px 84px; text-align: left; border-right: 0; border-bottom: 1px solid rgba(255,255,255,.16) !important; }
  .tm-discipline-grid li:last-child { border-bottom: 0 !important; }
  .tm-discipline-icon { position: absolute; top: 18px; left: 10px; width: 56px; height: 56px; margin: 0; }
  .tm-discipline-icon svg { width: 34px; height: 34px; }
  .tm-discipline-grid h3 { margin: 8px 0 5px; font-size: 18px; }
  .tm-discipline-grid p { max-width: none; margin: 0; font-size: 15px; }
  .tm-solution-list li { grid-template-columns: 58px 1fr; gap: 14px; padding: 18px; }
  .tm-solution-list::before { left: 46px; }
  .tm-solution-icon { width: 54px; height: 54px; }
  .tm-solution-icon svg { width: 33px; height: 33px; }
  .tm-solution-list h3 { margin-top: 6px; font-size: 18px; }
  .tm-solution-list p { font-size: 15px; }
}
@media (max-width:420px) {
  .tm-hero { min-height: 830px; }
  .tm-hero-inner { min-height: 830px; }
  .tm-actions .button { width: 100%; justify-content: center; }
}
@media (max-width:330px) {
  .tm-hero { min-height: 860px; }
  .tm-hero-inner { min-height: 860px; }
  .tm-hero h1 { font-size: 37px; }
}
@media (prefers-reduced-motion:reduce) { .tm-solution-list li { transition: none; } }
