/* 히어로 롤링 배너 */
.hero { position: relative; height: 100vh; height: 100dvh; overflow: hidden; color: var(--tf-white); background: var(--tf-navy-5); }
.hero__slides, .hero__slide { height: 100%; }
.hero__slide { position: absolute; inset: 0; overflow: hidden; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .6s ease, visibility .6s ease; }
.hero__slide.is-active { opacity: 1; visibility: visible; pointer-events: auto; }
.hero__image, .hero__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero__image { object-fit: cover; }
.hero__overlay { background: var(--opacity-black-70); }
.hero__content { position: relative; z-index: 1; height: 100%; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 3rem; }
.hero__copy { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: start; gap: 1.5rem; max-width: 100%; }
.hero__copy--detailed { gap: 1.5rem; }
.hero__eyebrow { margin: 0; font-size: 1.5rem; font-weight: 500; line-height: 1.5; }
.hero__title { margin: 0; font-size: 4rem; font-weight: 700; line-height: 1.2; letter-spacing: -.04rem; }
.hero__description { margin: 0; font-size: 1.5rem; font-weight: 500; line-height: 1.5; }
.hero__description--large { font-size: 2rem; font-weight: 400; line-height: 1.3; }
.hero-control { display: flex; width: 23.5rem; height: 2.5rem; align-items: center; gap: 2.5rem; font-size: 1.25rem; font-weight: 600; }
.hero-control__count { display: flex; width: 4.75rem; height: 1.875rem; flex: 0 0 4.75rem; align-items: center; gap: .75rem; }
.hero-control__divider, .hero-control__total { opacity: .6; }
.hero-control__progress { width: 7.5rem; height: 2px; flex: 0 0 7.5rem; overflow: hidden; background: var(--opacity-white-50); }
.hero-control__progress i { display: block; width: 0; height: 100%; background: var(--tf-white); }
.hero__slide.is-active .hero-control__progress i { animation: hero-progress 5s linear forwards; }
.hero-control__buttons { display: flex; width: 6.25rem; height: 2.5rem; flex: 0 0 6.25rem; align-items: center; gap: 1.25rem; }
.hero-control__buttons .tf-icon-button { display: grid; place-items: center; padding: 0; color: var(--tf-white); line-height: 0; }
.hero-control__buttons .tf-icon { display: block; margin: 0; }
@keyframes hero-progress { to { width: 100%; } }
@media (prefers-reduced-motion: reduce) {
  .hero__slide.is-active .hero-control__progress i { width: 100%; animation: none; }
}
.hero-quick { position: absolute; z-index: 2; left: 50%; bottom: 3.75rem; display: flex; gap: .5rem; padding: .5rem .75rem; border-radius: 1rem; background: var(--opacity-white-20); transform: translateX(-50%); backdrop-filter: blur(10px); }
.hero-quick a { width: 10rem; padding: .75rem 1rem; border-radius: .5rem; background: transparent; text-align: center; font-size: 1.125rem; font-weight: 600; transition: color .24s ease, background-color .24s ease; }
.hero-quick a.is-active, .hero-quick a:hover { color: var(--tf-white); background: var(--tf-primary-50); }
.hero-quick:hover a.is-active:not(:hover) { background: transparent; }

/* 재단 및 전공정 인프라 소개 */
.about-section { position: relative; overflow: hidden; padding: 10rem 0; color: var(--tf-white); background: var(--tf-navy-5); }
.about-section__background { position: absolute; top: -20.1%; left: -.02%; width: 113.04%; height: 92.33%; max-width: none; }
.about-section__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(4,11,24,0) 0%, rgba(4,11,24,.95) 50%, var(--tf-navy-10) 75%, var(--tf-navy-5) 100%); }
.about-section__inner { position: relative; z-index: 1; }
.stats { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); margin: 5rem 0 10rem; padding: 2.5rem 0; color: var(--tf-white); }
.stats__item { grid-column: span 3; display: flex; flex-direction: column; align-items: center; gap: .5rem; }
.stats__item dt { display: flex; align-items: baseline; gap: .25rem; }
.stats__item strong { font-size: 4rem; line-height: 1.2; }
.stats__item dt span { color: var(--tf-primary-50); font-size: 2.25rem; }
.stats__item dd { margin: 0; font-size: 1.5rem; font-weight: 500; }
.process-intro { position: relative; display: flex; flex-direction: column; align-items: center; gap: 5rem; }
.process-intro > .tf-button { position: absolute; z-index: 3; bottom: 0; left: 50%; transform: translateX(-50%); }
.process-intro > .tf-button:hover { transform: translate(-50%, -2px); }
.process-stage { --process-content-width: min(calc(100vw - (var(--tf-page-space) * 2)), var(--tf-container)); --process-card-width: calc((var(--process-content-width) - (var(--tf-gutter) * 2)) / 3); --process-card-height: calc(var(--process-card-width) * 431 / 521); --process-near-offset: calc((var(--process-card-width) * 1.03415) + 1.25rem); --process-far-offset: calc((var(--process-card-width) * 2.13253) + 2.5rem); --process-near-top: calc(((var(--process-card-width) * .911263) - var(--process-card-height)) / 2); --process-far-top: calc(5rem + ((var(--process-card-width) * .98834) - var(--process-card-height)) / 2); --process-near-angle: 5deg; --process-far-angle: 10deg; --process-out-angle: 12deg; --process-drag-x: 0px; position: relative; isolation: isolate; width: calc((var(--process-card-width) * 5.3935) + 5rem); height: calc((var(--process-card-width) * .98834) + 5rem); cursor: grab; touch-action: pan-y; user-select: none; }
.process-stage.is-dragging { cursor: grabbing; }
.process-stage.is-dragging .process-card { transition: none; }
.process-card { position: absolute; z-index: 0; top: var(--process-far-top); left: 50%; width: var(--process-card-width); height: var(--process-card-height); overflow: hidden; visibility: hidden; border-radius: 2.5rem; padding: 2.5rem; color: var(--tf-white); background: var(--opacity-white-5); opacity: 0; pointer-events: none; transform: translateX(calc((var(--process-far-offset) + var(--process-card-width)) - 50% + var(--process-drag-x))) rotate(var(--process-out-angle)); transform-origin: center; transition: top .9s cubic-bezier(.4,0,.2,1), transform .9s cubic-bezier(.4,0,.2,1), opacity .45s ease, visibility 0s linear .9s; will-change: top, transform, opacity; }
.process-card.is-exiting-left { z-index: 0; top: var(--process-far-top); visibility: visible; opacity: 0; transform: translateX(calc(((var(--process-far-offset) + var(--process-card-width)) * -1) - 50% + var(--process-drag-x))) rotate(calc(var(--process-out-angle) * -1)); transition-delay: 0s; }
.process-card.is-prev-far { z-index: 1; top: var(--process-far-top); visibility: visible; opacity: 1; pointer-events: auto; cursor: pointer; transform: translateX(calc((var(--process-far-offset) * -1) - 50% + var(--process-drag-x))) rotate(calc(var(--process-far-angle) * -1)); transition-delay: 0s; }
.process-card.is-prev { z-index: 2; top: var(--process-near-top); visibility: visible; opacity: 1; pointer-events: auto; cursor: pointer; transform: translateX(calc((var(--process-near-offset) * -1) - 50% + var(--process-drag-x))) rotate(calc(var(--process-near-angle) * -1)); transition-delay: 0s; }
.process-card.is-active { z-index: 3; top: 0; visibility: visible; opacity: 1; pointer-events: auto; transform: translateX(calc(-50% + var(--process-drag-x))) rotate(0); transition-delay: 0s; }
.process-card.is-next { z-index: 2; top: var(--process-near-top); visibility: visible; opacity: 1; pointer-events: auto; cursor: pointer; transform: translateX(calc(var(--process-near-offset) - 50% + var(--process-drag-x))) rotate(var(--process-near-angle)); transition-delay: 0s; }
.process-card.is-next-far { z-index: 1; top: var(--process-far-top); visibility: visible; opacity: 1; pointer-events: auto; cursor: pointer; transform: translateX(calc(var(--process-far-offset) - 50% + var(--process-drag-x))) rotate(var(--process-far-angle)); transition-delay: 0s; }
.process-card.is-preparing-left { visibility: hidden; opacity: 0; transform: translateX(calc(((var(--process-far-offset) + var(--process-card-width)) * -1) - 50% + var(--process-drag-x))) rotate(calc(var(--process-out-angle) * -1)); transition: none; }
.process-card img { -webkit-user-drag: none; }
.process-card__icon { position: absolute; z-index: 2; top: 2.5rem; left: 2.5rem; width: 5rem; height: 5rem; object-fit: contain; }
.process-card__image, .process-card__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.process-card__image { object-fit: cover; opacity: 0; transition: opacity .45s ease; }
.process-card__shade { opacity: 0; background: linear-gradient(to top, var(--opacity-black-60), transparent 50%); transition: opacity .45s ease; }
.process-card.is-active .process-card__image, .process-card.is-active .process-card__shade { opacity: 1; }
.process-card__arrow { position: absolute; z-index: 2; top: 2.5rem; right: 2.5rem; width: 2.5rem; height: 2.5rem; }
.process-card__arrow img, .process-card__arrow .tf-icon { width: 100%; height: 100%; object-fit: contain; }
.process-card:not(.is-active) .process-card__arrow { opacity: 0; }
.process-card__content { position: absolute; inset: auto 2.5rem 2.5rem; display: flex; flex-direction: column; align-items: flex-start; gap: .75rem; }
.process-card__content strong { font-size: 2rem; line-height: 1.3; letter-spacing: -.01em; }
.process-card__content small { font-size: 1.25rem; font-weight: 400; line-height: 1.5; letter-spacing: -.01em; }

@media (prefers-reduced-motion: reduce) {
  .process-card, .process-card__image, .process-card__shade { transition: none; }
}

/* 주요 서비스 */
.service-section { position: relative; height: 61.25rem; overflow: hidden; background: var(--tf-navy-5); }
.service-section__heading { position: absolute; z-index: 3; top: 10rem; left: 50%; width: 100%; color: var(--tf-white); transform: translateX(-50%); pointer-events: none; }
.service-section__heading h2 { margin: 0; font-size: 4rem; font-weight: 700; line-height: 1.2; }
.service-section__heading p { margin: 1.5rem 0 0; font-size: 1.5rem; line-height: 1.5; }
.service-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); height: 100%; }
/* 노출 중인 서비스 카드의 균등 배치 */
.service-card { position: relative; grid-column: span 3; display: flex; align-items: flex-end; overflow: hidden; padding: 5rem 2.5rem; color: var(--tf-white); box-shadow: 0 .25rem .9375rem rgba(23,23,23,.07); }
.service-card::after { position: absolute; z-index: 1; inset: 0; content: ""; background: linear-gradient(179deg, rgba(4,11,24,.05) .43%, rgba(4,11,24,.8) 74.8%, var(--tf-navy-5) 99.6%); opacity: 0; transition: opacity .3s ease-out; }
.service-card__background, .service-card__overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.service-card__background { object-fit: cover; transition: transform .3s ease-out; }
.service-card__overlay { z-index: 1; background: linear-gradient(0deg, rgba(4,11,24,.05), rgba(4,11,24,.8) 75%, var(--tf-navy-5)), var(--opacity-black-60); transition: opacity .3s ease-out; }
.service-card__content { position: relative; z-index: 2; display: flex; width: 100%; flex-direction: column; align-items: flex-start; gap: 2.5rem; }
.service-card__icon { width: auto; height: 4.375rem; max-width: 5.75rem; transition: filter .3s ease-out; }
.service-card__text { display: flex; width: 100%; flex-direction: column; align-items: flex-start; gap: 0; }
.service-card__text strong { font-size: 2.5rem; line-height: 1.3; }
.service-card__text > span { overflow: hidden; max-height: 0; opacity: 0; font-size: 1.5rem; font-weight: 700; line-height: 1.5; transform: translateY(.5rem); transition: max-height .3s ease-out, opacity .2s ease-out, transform .3s ease-out; }
.service-card__link { display: inline-flex; height: 0; align-items: center; gap: .25rem; overflow: hidden; margin-top: -2.5rem; opacity: 0; font-size: 1.125rem; font-weight: 600; line-height: 1.5; transform: translateY(.5rem); transition: height .3s ease-out, margin-top .3s ease-out, opacity .2s ease-out, transform .3s ease-out; }
.service-card__link img, .service-card__link .tf-icon { width: 1.5rem; height: 1.5rem; }
.service-card__link .tf-icon { flex: 0 0 auto; }
@media (min-width: 1200px) {
  .service-card:is(:hover, :focus-within)::after { opacity: 1; }
  .service-card:is(:hover, :focus-within) .service-card__background { transform: scale(1.025); }
  .service-card:is(:hover, :focus-within) .service-card__overlay { opacity: 0; }
  .service-card:is(:hover, :focus-within) .service-card__icon { filter: brightness(0) saturate(100%) invert(38%) sepia(98%) saturate(3559%) hue-rotate(214deg) brightness(99%) contrast(94%); }
  .service-card:is(:hover, :focus-within) .service-card__text { gap: .5rem; }
  .service-card:is(:hover, :focus-within) .service-card__text > span { max-height: 5rem; line-height: 1.3; opacity: 1; transform: translateY(0); }
  .service-card:is(:hover, :focus-within) .service-card__link { height: 1.6875rem; margin-top: 0; opacity: 1; transform: translateY(0); }
}

/* 뉴스 및 공지 */
.news-section { position: relative; height: 55rem; overflow: hidden; padding: 10rem 0; background: var(--tf-neutral-95); }
.news-section::before { content: ""; position: absolute; inset: 0; background: url('../images/index/news-background.png') center/cover; opacity: .1; }
.news-section > .tf-container { position: relative; z-index: 1; }
.news-layout { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--tf-gutter); }
.news-heading { grid-column: span 4; }
.news-list { grid-column: span 8; }
.news-heading { display: flex; min-width: 0; height: 35rem; flex-direction: column; align-items: flex-start; }
.news-heading > span { color: var(--tf-primary-50); font-size: 1.5rem; font-weight: 700; line-height: 1.3; }
.news-heading h2 { margin: .5rem 0 3rem; font-size: 4rem; font-weight: 700; line-height: 1.2; letter-spacing: -.04rem; }
.news-list { display: flex; min-width: 0; height: 35rem; flex-direction: column; justify-content: center; margin: 0; padding: 0; list-style: none; }
.news-list li { border-top: 1px solid var(--tf-neutral-90); }
.news-list li:last-child { border-bottom: 1px solid var(--tf-neutral-90); }
.news-list a { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem; height: 7rem; padding: 2.5rem; transition: color .3s ease-out, background-color .3s ease-out, padding-right .3s ease-out; }
.news-list em { border: 1px solid var(--color-primary-normal); border-radius: 999px; padding: .375rem .75rem; color: var(--tf-primary-50); text-align: center; font-size: .75rem; font-style: normal; font-weight: 600; line-height: 1.5; white-space: nowrap; transition: background-color .3s ease-out; }
.news-list strong { overflow: hidden; font-size: 1.5rem; line-height: 1.3; letter-spacing: -.015rem; text-overflow: ellipsis; white-space: nowrap; }
.news-list time { color: var(--color-text-muted); font-size: 1rem; font-weight: 600; line-height: 1.5; letter-spacing: -.015rem; transition: color .3s ease-out; }
.news-list a > .tf-icon { position: absolute; top: 50%; right: 2.5rem; width: 1.5rem; height: 1.5rem; opacity: 0; transform: translate(1rem, -50%); transition: opacity .2s ease-out, transform .3s ease-out; }
.news-list a:hover { padding-right: 5rem; color: var(--tf-white); background: var(--tf-primary-50); }
.news-list a:hover em { border-color: var(--tf-white); background: var(--tf-white); }
.news-list a:hover time { color: var(--tf-white); }
.news-list a:hover > .tf-icon { opacity: 1; transform: translate(0, -50%); }

/* 채용 안내 */
.recruit-section { position: relative; min-height: 35.375rem; overflow: hidden; padding: 10rem 0; color: var(--tf-white); background: var(--tf-navy-10); }
.recruit-section__background, .recruit-section__shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.recruit-section__background { object-fit: cover; }
.recruit-section__shade { background: var(--opacity-black-80); }
.recruit-section__inner { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; gap: 3.5rem; }
.recruit-section__eyebrow { color: var(--tf-white); font-size: 1.25rem; font-weight: 600; line-height: 1.5; letter-spacing: -.0125rem; }
.recruit-section h2 { margin: .5rem 0 0; font-size: 2.5rem; font-weight: 700; line-height: 1.3; letter-spacing: -.025rem; }
.recruit-section__actions { display: flex; gap: 1.25rem; }

/* 화면별 줄바꿈 */
.home-break, .news-heading__space { display: none; }

/* 소형 데스크톱: 1200–1919px */
@media (max-width: 1919.98px) {
  .home-break--compact { display: block; }
  .hero { height: 58.125rem; }
  .hero__description--large { font-size: 1.5rem; font-weight: 500; line-height: 1.5; }
  .hero-quick { gap: 0; }
  .about-section { padding-block: 10rem; }
  .about-section__inner { width: calc(100% - 3rem); }
  .about-section .section-heading h1,
  .about-section .section-heading h2 { font-size: 3.5rem; }
  .about-section .section-heading p { font-size: 1.25rem; font-weight: 400; letter-spacing: -.01em; }
  .stats__item strong { font-size: 3.5rem; letter-spacing: -.01em; }
  .stats__item dt { align-items: center; }
  .stats__item dt span { font-size: 2rem; font-weight: 700; line-height: 1.3; }
  .stats__item dd { font-size: 1.25rem; font-weight: 400; }
  .process-stage { --process-card-width: 22.5rem; --process-card-height: 22.5rem; --process-near-offset: 27.8125rem; --process-far-offset: 55.625rem; --process-near-top: 1.782rem; --process-far-top: 5rem; --process-near-angle: 10deg; --process-far-angle: 15deg; --process-out-angle: 20deg; height: 26.096rem; }
  .process-card__icon { width: 2.5rem; height: 2.5rem; }
  .process-card__content { gap: .625rem; }
  .process-card__content strong { font-size: 1.5rem; }
  .process-card__content small { margin-top: .125rem; font-size: 1rem; letter-spacing: -.015em; }
  .process-intro > .tf-button { bottom: -1.529rem; }
  .service-section__heading h2 { font-size: 3.5rem; }
  .service-section__heading p { font-size: 1.25rem; }
  .news-section { height: auto; padding-block: 5rem; }
  .news-heading { height: auto; }
  .news-heading > span { font-size: 1.25rem; font-weight: 600; line-height: 1.5; }
  .news-heading h2 { font-size: 3.5rem; letter-spacing: -.01em; }
  .news-list { height: auto; }
  .news-list li, .news-list li:last-child { border: 0; }
  .news-list a { height: 6.875rem; border-top: 1px solid var(--color-border-normal); }
  .news-list li:last-child a { border-bottom: 1px solid var(--color-border-normal); }
  .news-list strong { font-size: 1.25rem; font-weight: 600; line-height: 1.5; letter-spacing: -.01em; }
  .recruit-section { display: none; }
}

/* 태블릿: 768–1199px */
@media (max-width: 1199.98px) {
  .home-break--tablet { display: block; }
  .hero { height: 50rem; }
  .hero__title { font-size: 3.5rem; letter-spacing: -.01em; }
  .hero__eyebrow, .hero__description { font-size: 1.25rem; font-weight: 600; letter-spacing: -.01em; }
  .hero__description--large { font-size: 1.25rem; font-weight: 400; line-height: 1.5; }
  .hero__content > .tf-button { height: 2.5rem; padding-inline: 1rem; font-size: 1rem; }
  .hero__content > .tf-button .tf-icon { width: 1.25rem; height: 1.25rem; flex-basis: 1.25rem; }
  .hero-control { width: auto; font-size: 1.125rem; }
  .hero-control__count { width: auto; height: auto; flex-basis: auto; }
  .hero-control__divider { font-size: .75rem; font-weight: 400; }
  .hero-quick { left: var(--tf-page-space); transform: none; }
  .hero-quick a { font-size: 1rem; }
  .about-section { padding-block: 5rem; }
  .about-section__inner { width: calc(100% - 5rem); }
  .about-section__background { top: -14.07%; left: -62.68%; width: 210.71%; }
  .about-section .section-heading h1,
  .about-section .section-heading h2 { font-size: 2.5rem; line-height: 1.3; }
  .about-section .section-heading p { font-size: 1.125rem; letter-spacing: -.015em; }
  .about-heading__budget { display: none; }
  .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 2.5rem; padding: 0; }
  .stats__item { grid-column: auto; padding-block: 1.5rem; }
  .stats__item dd { font-size: 1rem; }
  .process-intro { gap: 3.5rem; }
  .process-stage { --process-near-offset: 27.756rem; --process-far-offset: 55.512rem; --process-near-top: 3.739rem; --process-far-top: 7.5rem; --process-near-angle: 15deg; --process-far-angle: 20deg; --process-out-angle: 25deg; height: 28.778rem; }
  .process-intro > .tf-button { bottom: 0; }
  .service-section { height: auto; }
  .service-section__heading { position: relative; inset: auto; padding: 5rem 2.5rem; transform: none; background: var(--tf-navy-5); }
  .service-section__heading p { font-size: 1.25rem; }
  .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); height: auto; }
  .service-card { grid-column: auto; min-width: 0; height: 28.125rem; align-items: center; }
  .service-card__content { align-items: center; gap: 1.5rem; text-align: center; }
  .service-card__text { align-items: center; }
  .service-card__text strong { font-size: 2rem; }
  .service-card__text > span { display: none; }
  .service-card__link { height: auto; margin-top: 0; opacity: 1; transform: none; font-size: 1rem; }
  .service-card__link .tf-icon { width: 1.25rem; height: 1.25rem; --tf-icon-image: url('../images/common/icons/arrow-right.svg'); }
  .news-layout { grid-template-columns: minmax(0, 1fr); gap: 2.5rem; }
  .news-heading, .news-list { grid-column: auto; }
  .news-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 1.25rem; }
  .news-heading > span { grid-column: 1; grid-row: 1; }
  .news-heading h2 { grid-column: 1; grid-row: 2; margin: .5rem 0 0; font-size: 2.5rem; line-height: 1.3; }
  .news-heading > .tf-button { grid-column: 2; grid-row: 1 / 3; align-self: center; }
  .news-heading__break { display: none; }
  .news-heading__space { display: inline; }
}

/* 모바일: 360–767px */
@media (max-width: 767.98px) {
  .home-break--mobile { display: block; }
  .hero { height: 48.75rem; touch-action: pan-y; }
  .hero__content { padding-block: 2.5rem 10.125rem; }
  .hero__copy { gap: .25rem; }
  .hero__copy--detailed { gap: 1rem; }
  .hero__title { font-size: 2rem; line-height: 1.3; }
  .hero__description { font-size: 1.125rem; font-weight: 400; line-height: 1.5; letter-spacing: -.015em; }
  .hero__eyebrow { font-size: 1rem; }
  .hero__description--large { font-size: 1.125rem; }
  .hero-control { width: 14.6875rem; height: 1.6875rem; gap: 1.25rem; }
  .hero-control__count { width: 4.0625rem; flex-basis: 4.0625rem; justify-content: space-between; gap: 0; }
  .hero-control__progress { width: auto; min-width: 0; flex: 1; }
  .hero-control__buttons { display: none; }
  .hero-quick { right: 1.25rem; bottom: 2.5rem; min-height: 4.625rem; }
  .hero-quick a { display: flex; width: auto; min-width: 0; flex: 1; align-items: center; justify-content: center; flex-direction: column; padding: .5rem .25rem; font-size: .875rem; line-height: 1.5; }
  .about-section__inner { width: calc(100% - 2.5rem); }
  .about-section .section-heading h1,
  .about-section .section-heading h2 { font-size: 2rem; line-height: 1.3; }
  .about-section .section-heading p { font-size: 1rem; }
  .stats { margin-bottom: 5rem; }
  .stats__item strong { font-size: 2.5rem; line-height: 1.3; }
  .stats__item dt span { font-size: 1.5rem; }
  .stats__item dd { font-size: .75rem; }
  .process-intro { gap: 2.5rem; }
  .process-stage { --process-card-width: 16.25rem; --process-card-height: 12.5rem; --process-near-offset: 17.5rem; --process-far-offset: 35rem; --process-near-top: 0px; --process-far-top: 0px; --process-near-angle: 0deg; --process-far-angle: 0deg; --process-out-angle: 0deg; height: 12.5rem; }
  .process-card { border-radius: .823rem; padding: 1.25rem; }
  .process-card__icon { top: 1.25rem; left: 1.25rem; width: 1.5rem; height: 1.5rem; }
  .process-card__arrow { top: 1.25rem; right: 1.25rem; width: 1rem; height: 1rem; }
  .process-card:not(.is-active) .process-card__arrow { opacity: 1; }
  .process-card__content { inset: auto 1.25rem 1.25rem; gap: 0; }
  .process-card__content strong { font-size: 1rem; font-weight: 600; line-height: 1.5; letter-spacing: -.015em; }
  .process-card__content .tf-badge, .process-card__content small { display: none; }
  .process-intro > .tf-button,
  .process-intro > .tf-button:hover { position: static; transform: none; }
  .process-intro > .tf-button { height: 2.5rem; padding-inline: 1rem; font-size: 1rem; }
  .process-intro > .tf-button .tf-icon { width: 1.25rem; height: 1.25rem; flex-basis: 1.25rem; }
  .service-section__heading { padding: 5rem 1.25rem 2.5rem; }
  .service-section__heading h2 { font-size: 2rem; line-height: 1.3; letter-spacing: -.01em; }
  .service-section__heading p { font-size: 1rem; letter-spacing: -.015em; }
  .service-card { height: 15.625rem; padding: 2.5rem 1.25rem; }
  .service-card__content { gap: .75rem; }
  .service-card__icon { height: 2.5rem; max-width: 3.3125rem; }
  .service-card__text strong { font-size: 1.25rem; font-weight: 600; line-height: 1.5; }
  .service-card__link { font-size: .875rem; }
  .service-card__link .tf-icon { width: 1rem; height: 1rem; }
  .news-section::before { background-image: url('../images/index/service-testbed.png'); }
  .news-heading { display: flex; gap: 0; }
  .news-heading > span { font-size: 1rem; }
  .news-heading h2 { margin: .5rem 0 1.25rem; font-size: 2rem; }
  .news-heading > .tf-button { align-self: flex-start; height: 2.5rem; padding-inline: 1rem; font-size: 1rem; }
  .news-heading > .tf-button .tf-icon { width: 1.25rem; height: 1.25rem; flex-basis: 1.25rem; }
  .news-list a { grid-template-columns: minmax(0, 1fr) auto; gap: .25rem; height: 5.5rem; min-height: 5.5rem; padding: calc(1.25rem - 1px) 1.25rem; }
  .news-list em { display: none; }
  .news-list strong { grid-column: 1 / -1; font-size: 1rem; letter-spacing: -.015em; }
  .news-list time { grid-column: 1; font-size: .75rem; }
  .news-list a > .tf-icon { position: static; grid-column: 2; grid-row: 2; width: 1.25rem; height: 1.25rem; opacity: 1; transform: none; }
  .news-list a:hover { padding-right: 1.25rem; }
  .news-list a:hover > .tf-icon { transform: none; }
}
