/* /technologies/<slug>/ pages — hero, services, industries, related services */
html body.system-page main .tp-hero { margin-top: calc(-1 * var(--header-h, 73px)); position: relative; isolation: isolate; overflow: hidden; display: flex; align-items: center; min-height: 640px; background: #000; padding: calc(var(--header-h, 73px) + 56px) 0 120px !important; }
.tp-hero-bg { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.tp-hero::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.88) 0%, rgba(0,0,0,.55) 60%, rgba(0,0,0,.25) 100%); }
.tp-wrap { width: min(1250px, 100% - 48px); margin-inline: auto; }
.tp-hero-copy { max-width: 760px; text-align: left; }
html body.system-page main .tp-hero h1 { margin: 0 0 16px; color: #fff !important; font-size: 80px !important; line-height: 88px !important; letter-spacing: -2px !important; font-weight: 400 !important; }
html body.system-page main .tp-hero h2 { margin: 0 0 20px; color: #fff !important; font-size: 32px !important; line-height: 40px !important; font-weight: 400 !important; letter-spacing: -.5px !important; }
html body.system-page main .tp-hero .tp-hero-copy p { margin: 0; max-width: 640px; color: #d4d4d4 !important; font-size: 18px !important; line-height: 28px !important; font-weight: 500; }
.tp-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 40px; }
.tp-btn { border: 1px solid transparent; border-radius: 0; }
.tp-btn-solid { background: #06b22d; color: #fff; border-color: #06b22d; }
.tp-btn-solid:hover { background: #059a27; border-color: #059a27; }
.tp-btn-line { border-color: currentColor; background: transparent; }
.tp-hero .tp-btn-line { color: #fff; }
.tp-hero .tp-btn-line:hover { background: #fff; color: #000; }
.tp-sec .tp-btn-line, .wd-more .tp-btn-line { color: #000; }
.tp-sec .tp-btn-line:hover, .wd-more .tp-btn-line:hover { background: #000; color: #fff; }

.tp-sec--grey { background: #f5f5f5; }
.tp-head { margin-bottom: 56px; max-width: 760px; }
.tp-head--row { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.tp-head h2 { margin: 0 0 14px; font-weight: 400 !important; }
.tp-head--row h2 { margin: 0; }
.tp-head p { margin: 0; color: #4b4b4b; font-size: 18px; line-height: 28px; }

.tp-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; }
.tp-card { background: #fff; padding: 32px; display: flex; flex-direction: column; gap: 14px; }
.tp-icon { display: block; color: #06b22d; }
.tp-card h3 { margin: 8px 0 0; font-size: 22px; line-height: 28px; font-weight: 500; }
.tp-card p { margin: 0; color: #4b4b4b; font-size: 16px; line-height: 24px; }

.tp-ind { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px 24px; margin: 0; padding: 0; list-style: none; }
.tp-ind-card, .tp-rel-card { display: flex; flex-direction: column; gap: 12px; height: 100%; color: inherit; text-decoration: none; }
.tp-ind-img { display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #f5f5f5; }
.tp-ind-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.tp-ind-card:hover .tp-ind-img img { transform: scale(1.04); }
.tp-ind-card h3, .tp-rel-card h3 { margin: 6px 0 0; font-size: 22px; line-height: 28px; font-weight: 500; }
.tp-ind-card p, .tp-rel-card p { margin: 0; color: #4b4b4b; font-size: 15px; line-height: 22px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.tp-more { margin-top: auto; padding-top: 4px; display: inline-flex; align-items: center; gap: 8px; color: #06b22d; font-size: 14px; font-weight: 600; text-transform: uppercase; }
.tp-more svg { transition: transform .2s ease; }
a:hover > .tp-more svg { transform: translateX(3px); }

.wd-more .tp-after { margin-top: 48px; }
.tp-rel { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin: 0; padding: 0; list-style: none; }
.tp-rel-img { display: block; aspect-ratio: 3 / 2; background: #f5f5f5 center / cover no-repeat; }

@media (max-width: 1024px) { .tp-ind { grid-template-columns: repeat(2, 1fr); } .tp-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) {
  html body.system-page main .tp-hero { min-height: 520px; padding-bottom: 96px !important; }
  html body.system-page main .tp-hero h1 { font-size: 56px !important; line-height: 62px !important; letter-spacing: -1px !important; }
  html body.system-page main .tp-hero h2 { font-size: 26px !important; line-height: 34px !important; }
  .tp-head { margin-bottom: 40px; }
}
@media (max-width: 700px) {
  html body.system-page main .tp-hero { min-height: 0; padding-bottom: 80px !important; }
  html body.system-page main .tp-hero h1 { font-size: 44px !important; line-height: 50px !important; }
  html body.system-page main .tp-hero h2 { font-size: 22px !important; line-height: 30px !important; }
  .tp-hero::after { background: rgba(0,0,0,.7); }
  .tp-actions { flex-direction: column; align-items: stretch; } .tp-actions .tp-btn { width: 100%; }
  .tp-cards, .tp-ind, .tp-rel { grid-template-columns: 1fr; }
  .tp-head--row { flex-direction: column; align-items: flex-start; }
  .tp-card { padding: 24px; }
}

/* cards: heading and description limited to two lines */
.tp-ind-card h3, .tp-rel-card h3 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
