@charset "UTF-8";
:root{--tf-blue:#0b5ce8;--tf-cyan:#0aa6ee;--tf-blue-deep:#063e9a;--tf-ink:#0a1b33;--tf-text:#4e5f80;--tf-muted:#8b9ab6;--tf-bg:#f4f7fc;--tf-soft:#edf3fb;--tf-line:#e3ebf6;--tf-line-strong:#c5d6ee;--tf-radius:14px;--tf-shell:1240px;--tf-shadow:0 4px 18px rgba(11,36,80,.09)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden}
body{margin:0;overflow-x:hidden;background:var(--tf-bg);color:var(--tf-ink);font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;font-size:15px;line-height:1.78;-webkit-font-smoothing:antialiased}
body.xd-home::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(11,92,232,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(11,92,232,.045) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at 50% 0%,#000,transparent 78%)}
body.xd-home>main,body.xd-home>.xd-footer{position:relative;z-index:1}
a{color:inherit;text-decoration:none}
img,video{display:block;max-width:100%}
button{font:inherit}
.tf-shell{width:min(var(--tf-shell),calc(100% - 52px));margin-inline:auto}
.tf-section{position:relative;padding:100px 0}
.tf-section-soft{background:linear-gradient(180deg,var(--tf-bg),var(--tf-soft) 16%,var(--tf-soft) 84%,var(--tf-bg))}
.tf-eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--tf-blue);font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase}
.tf-eyebrow::before{content:"";width:26px;height:1px;background:linear-gradient(90deg,var(--tf-blue),var(--tf-cyan))}
.tf-section-head{max-width:820px;margin-bottom:48px}
.tf-section-head h2,.tf-split-copy h2{margin:16px 0 12px;color:var(--tf-ink);font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.23;letter-spacing:-.02em}
.tf-section-head h2 em,.tf-split-copy h2 em{font-style:normal;color:var(--tf-blue)}
.tf-section-head p,.tf-split-copy p{max-width:750px;margin:0;color:var(--tf-text);font-size:15.5px;line-height:1.9}
.tf-heading-rule{display:block;width:42px;height:3px;margin-top:21px;border-radius:3px;background:linear-gradient(90deg,var(--tf-blue),var(--tf-cyan))}
.tf-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:50px;padding:0 25px;border:1px solid transparent;border-radius:999px;font-size:14px;font-weight:700;white-space:nowrap;transition:transform .25s,box-shadow .25s,border-color .25s,color .25s}
.tf-button:hover{transform:translateY(-3px)}
.tf-button-primary{color:#fff;background:linear-gradient(100deg,var(--tf-blue),var(--tf-cyan));box-shadow:0 12px 30px -12px rgba(11,92,232,.65)}
.tf-button-primary:hover{box-shadow:0 16px 35px -10px rgba(11,92,232,.55)}
.tf-button-outline{color:var(--tf-blue-deep);border-color:var(--tf-line-strong);background:#fff}
.tf-button-outline:hover{border-color:var(--tf-blue);box-shadow:var(--tf-shadow)}
.tf-button-white{color:var(--tf-blue-deep);background:#fff}
.tf-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.tf-hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:radial-gradient(900px 540px at 88% 32%,rgba(10,166,238,.18),transparent 64%),linear-gradient(180deg,#eaf4ff 0%,var(--tf-bg) 100%)}
.tf-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(244,247,252,.98) 0%,rgba(244,247,252,.94) 38%,rgba(244,247,252,.12) 77%),linear-gradient(0deg,var(--tf-bg),transparent 30%)}
.tf-hero-media{position:absolute;inset:0 0 0 auto;width:65%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 34%)}
.tf-hero-particles{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none;opacity:.52}
.tf-hero-slide{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transition:opacity .75s ease}
.tf-hero-slide.is-active{opacity:1}
.tf-hero-slide img,.tf-hero-slide video{width:100%;height:100%;object-fit:cover;object-position:center}
.tf-hero-inner{position:relative;z-index:2;width:min(1400px,calc(100% - 78px));padding:172px 0 120px}
.tf-hero-copy{max-width:830px}
.tf-hero h1{margin:23px 0 0;color:var(--tf-ink);font-size:clamp(35px,3.65vw,54px);font-weight:800;line-height:1.14;letter-spacing:-.025em;white-space:nowrap}
.tf-hero h1 span{display:block;margin-top:15px;color:var(--tf-blue);font-size:clamp(18px,1.9vw,26px);font-weight:700;letter-spacing:.01em}
.tf-hero-copy>p{max-width:660px;margin:25px 0 0;color:var(--tf-text);font-size:clamp(15px,1.2vw,17px);line-height:1.95}
.tf-hero-tags,.tf-service-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:27px}
.tf-hero-tags span,.tf-service-cloud span{padding:7px 14px;border:1px solid var(--tf-line-strong);border-radius:999px;background:#fff;color:var(--tf-blue-deep);font-size:12.5px;box-shadow:var(--tf-shadow)}
.tf-hero-motto{display:inline-block!important;max-width:max-content!important;margin-top:34px!important;padding:10px 20px;border:1px solid var(--tf-line-strong);border-radius:999px;background:#fff;box-shadow:var(--tf-shadow);color:var(--tf-text);font-size:13px!important}
.tf-hero-motto span{color:#0ba36f}.tf-hero-motto b{color:var(--tf-blue);font-weight:700}
.tf-hero-arrow{position:absolute;top:50%;z-index:5;display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--tf-line-strong);border-radius:50%;background:rgba(255,255,255,.86);color:var(--tf-blue);font-size:36px;line-height:1;cursor:pointer;transform:translateY(-50%)}
.tf-hero-prev{left:18px}.tf-hero-next{right:18px}
.tf-hero-dots{position:absolute;z-index:5;bottom:42px;left:0;right:0;display:flex;justify-content:center;gap:9px}
.tf-hero-dots button,.tf-carousel-controls [data-product-dots] button{width:9px;height:9px;padding:0;border:1px solid var(--tf-blue);border-radius:50%;background:#fff;cursor:pointer}
.tf-hero-dots button.is-active,.tf-carousel-controls [data-product-dots] button.is-active{background:var(--tf-blue)}
.tf-scroll-hint{position:absolute;z-index:4;bottom:25px;left:50%;display:flex;align-items:center;flex-direction:column;gap:7px;color:var(--tf-muted);font-size:10px;letter-spacing:.2em;transform:translateX(-50%)}
.tf-scroll-hint span{width:1px;height:24px;background:linear-gradient(var(--tf-blue),transparent)}
.tf-stats-section{padding:66px 0 0}
.tf-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(1980px,calc(100% - 52px));overflow:hidden;border:1px solid var(--tf-line);border-radius:22px;background:#fff;box-shadow:var(--tf-shadow)}
.tf-stat{padding:clamp(35px,3.4vw,70px) 18px;text-align:center;border-right:1px solid var(--tf-line)}
.tf-stat:last-child{border-right:0}
.tf-stat strong{display:flex;align-items:baseline;justify-content:center;gap:5px;color:var(--tf-blue);font-size:clamp(46px,3.8vw,76px);line-height:1.2;font-weight:800;font-variant-numeric:tabular-nums}
.tf-stat strong small{font-size:.43em;font-weight:800;white-space:nowrap}
.tf-stat > span{display:block;margin-top:clamp(14px,1.4vw,28px);color:var(--tf-text);font-size:clamp(13px,1.2vw,24px)}
.tf-business-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}
.tf-business-card{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:214px;padding:27px 22px;overflow:hidden;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);transition:transform .3s,border-color .3s,box-shadow .3s}
.tf-business-card-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.25;pointer-events:none;transition:transform .4s,opacity .3s}
.tf-business-card:hover .tf-business-card-bg{transform:scale(1.04);opacity:.32}
.tf-business-card::before,.tf-business-card::after{content:"";position:absolute;z-index:2;width:13px;height:13px;border-color:var(--tf-cyan);opacity:0;transition:opacity .3s}
.tf-business-card::before{top:10px;left:10px;border-top:1px solid;border-left:1px solid}
.tf-business-card::after{right:10px;bottom:10px;border-right:1px solid;border-bottom:1px solid}
.tf-business-card:hover,.tf-case-card:hover,.tf-product-card:hover,.tf-news-card:hover{transform:translateY(-6px);border-color:var(--tf-line-strong);box-shadow:0 20px 36px rgba(11,60,150,.16)}
.tf-business-card:hover::before,.tf-business-card:hover::after{opacity:1}
.tf-business-card h3{position:relative;z-index:1;margin:0 0 8px;color:var(--tf-ink);font-size:16px;line-height:1.45}
.tf-business-card p,.tf-business-card .tf-card-richtext{position:relative;z-index:1}
.tf-business-card p,.tf-card-richtext{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:0;color:var(--tf-text);font-size:13px;line-height:1.75}
.tf-card-richtext :is(p,h1,h2,h3,ul,ol,li){display:inline;margin:0;font:inherit;color:inherit}
.tf-text-link{display:inline-flex;gap:8px;align-items:center;margin-top:28px;color:var(--tf-blue);font-weight:700}
.tf-text-link:hover{color:var(--tf-blue-deep)}
.tf-split{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:60px}
.tf-split-reverse{grid-template-columns:.95fr 1.05fr}
.tf-split-copy>p{margin-top:22px}
.tf-check-list{display:grid;gap:12px;margin:24px 0 30px;padding:0;list-style:none}
.tf-check-list li{display:flex;gap:10px;align-items:baseline;color:var(--tf-text);font-size:14px}
.tf-check-list span{color:var(--tf-blue);font-weight:800}
.tf-feature-image{position:relative;overflow:hidden;margin:0;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#dce9f8;box-shadow:0 20px 42px rgba(11,60,150,.17)}
.tf-feature-image img{width:100%;max-height:510px;aspect-ratio:4/3;object-fit:contain;transition:transform .55s}
.xd-home .tf-split-reverse .tf-feature-image img{object-fit:cover}
.tf-feature-image:hover img{transform:scale(1.025)}
.tf-feature-image figcaption{position:absolute;right:0;bottom:0;left:0;padding:28px 20px 16px;background:linear-gradient(transparent,rgba(6,30,74,.75));color:#fff;font-size:14px}
.tf-feature-image figcaption small{display:block;color:#a8ddff;font-size:11px;letter-spacing:.15em}
.tf-case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.tf-case-card,.tf-news-card,.tf-product-card{display:block;overflow:hidden;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);transition:transform .3s,border-color .3s,box-shadow .3s}
.tf-case-card figure{position:relative;display:grid;place-items:center;aspect-ratio:2/1;margin:0;background:#e7effb}
.tf-case-card figure img{width:100%;height:100%;object-fit:contain}
.tf-case-card figure span{position:absolute;top:14px;left:14px;padding:5px 11px;border-radius:999px;background:rgba(11,92,232,.92);color:#fff;font-size:11px}
.tf-case-card>div{padding:22px}
.tf-case-card small{color:var(--tf-blue);font-size:11px;font-weight:700;letter-spacing:.1em}
.tf-case-card h3{margin:8px 0;color:var(--tf-ink);font-size:17px;line-height:1.45}
.tf-case-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:0;color:var(--tf-text);font-size:13px}
.tf-case-card b{display:block;margin-top:15px;color:var(--tf-blue);font-size:12px}
.tf-service-cloud{margin-bottom:30px}
.tf-category-tabs{display:flex;gap:10px;overflow-x:auto;margin:0 0 22px;padding:2px 0 8px;scrollbar-width:thin}
.tf-category-tabs button{flex:0 0 auto;padding:9px 20px;border:1px solid var(--tf-line);border-radius:999px;background:#fff;color:var(--tf-text);white-space:nowrap;cursor:pointer}
.tf-category-tabs button.is-active,.tf-category-tabs button:hover{border-color:var(--tf-blue);background:var(--tf-blue);color:#fff}
.tf-product-panel{display:none;overflow:hidden}.tf-product-panel.is-active{display:block}
.tf-product-track{display:flex;transition:transform .45s ease}
.tf-product-card{flex:0 0 calc(25% - 14px);margin-right:18.666px;padding-bottom:20px}
.tf-product-card figure{display:grid;place-items:center;height:190px;margin:0;background:#eaf3fb}
.tf-product-card img{max-width:100%;max-height:100%;object-fit:contain}
.tf-product-card h3{min-height:54px;margin:18px 17px 7px;color:var(--tf-ink);font-size:15px;line-height:1.5}
.tf-product-card span{margin-left:17px;color:var(--tf-blue);font-size:12px;font-weight:700}
.tf-carousel-controls{display:flex;align-items:center;justify-content:center;gap:18px;margin-top:22px}
.tf-carousel-controls>button{width:40px;height:40px;border:1px solid var(--tf-line-strong);border-radius:50%;background:#fff;color:var(--tf-blue);font-size:26px;cursor:pointer}
.tf-carousel-controls [data-product-dots]{display:flex;gap:8px}
.tf-news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tf-news-card{padding:26px}
.tf-news-card time{color:var(--tf-blue);font-size:12px;font-weight:700}
.tf-news-card h3{margin:12px 0;color:var(--tf-ink);font-size:17px;line-height:1.5}
.tf-news-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;color:var(--tf-text);font-size:13px}
.tf-news-card span{color:var(--tf-blue);font-size:12px;font-weight:700}
.tf-section-head-center{margin-inline:auto;text-align:center}
.tf-section-head-center .tf-eyebrow{justify-content:center}
.tf-section-head-center .tf-eyebrow::before{display:none}
.tf-section-head-center .tf-heading-rule{margin-inline:auto}
.tf-process-grid{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}
.tf-process-grid::before{content:"";position:absolute;top:26px;left:7%;right:7%;height:1px;background:var(--tf-line-strong)}
.tf-process-grid li{position:relative;text-align:center}
.tf-process-grid li>span{position:relative;z-index:1;display:grid;place-items:center;width:52px;height:52px;margin:0 auto 20px;border-radius:50%;background:linear-gradient(110deg,var(--tf-blue),var(--tf-cyan));color:#fff;font-size:16px;font-weight:800;box-shadow:0 8px 20px rgba(11,92,232,.25)}
.tf-process-grid h3{margin:0 0 7px;color:var(--tf-ink);font-size:15px}
.tf-process-grid p{margin:0;color:var(--tf-text);font-size:12px;line-height:1.7}
.tf-honors-section{padding-top:70px}
.tf-honors-section .tf-section-head{max-width:none;margin-bottom:60px}
.tf-honors-section .tf-eyebrow{font-size:clamp(12px,1vw,20px)}
.tf-honors-section .tf-section-head h2{margin:25px 0 15px;font-size:clamp(34px,2.85vw,58px)}
.tf-honors-section .tf-section-head p{max-width:none;font-size:clamp(15px,1.3vw,26px)}
.tf-honors-section .tf-heading-rule{margin-top:37px}
.tf-honors-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(16px,1.4vw,28px)}
.tf-honor-attachment-source{display:contents}
.tf-honor-card,.tf-honor-text-card{height:clamp(122px,8.3vw,170px);padding:20px;border:1px solid var(--tf-line);border-radius:22px;background:#fff}
.tf-honor-card{display:flex;align-items:center;justify-content:center;box-shadow:var(--tf-shadow);transition:transform .25s,border-color .25s,box-shadow .25s}
.tf-honor-card:hover,.tf-honor-text-card:hover{transform:translateY(-4px);border-color:var(--tf-blue);box-shadow:0 18px 30px rgba(11,92,232,.2)}
.tf-honor-card:active,.tf-honor-text-card:active{border-color:var(--tf-blue-deep);box-shadow:0 8px 20px rgba(11,92,232,.2)}
.tf-honor-card img{width:auto;height:auto;max-width:85%;max-height:70px;object-fit:contain}
.tf-honor-card span{color:var(--tf-blue-deep);font-size:13px;text-align:center}
.tf-honor-text-card{display:grid;place-items:center;align-content:center;gap:7px;border-style:dashed;border-color:#c4d8f3;background:rgba(255,255,255,.28);text-align:center;transition:transform .25s,border-color .25s,box-shadow .25s}
.tf-honor-text-card strong{font-size:clamp(17px,1.25vw,26px);line-height:1.35;white-space:nowrap}
.tf-honor-text-card span{color:var(--tf-muted);font-size:clamp(11px,1vw,19px);letter-spacing:.08em}
.tf-cta-section{padding:55px 0 100px}
.tf-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:55px 58px;border-radius:20px;background:linear-gradient(110deg,var(--tf-blue),var(--tf-cyan));color:#fff;box-shadow:0 25px 50px -22px rgba(11,60,150,.55)}
.tf-cta .tf-eyebrow,.tf-cta .tf-eyebrow::before{color:#dceeff;background:#dceeff}
.tf-cta h2{margin:10px 0 6px;color:#fff;font-size:clamp(25px,2.8vw,36px)}
.tf-cta p{margin:0;color:#e3f3ff}
.tf-motion-ready .tf-scroll-reveal:not(.is-visible){opacity:0;translate:0 28px;scale:.985}
.tf-motion-ready .tf-scroll-reveal.is-visible{animation:tf-scroll-pop .7s cubic-bezier(.2,.75,.25,1) both}
@keyframes tf-scroll-pop{from{opacity:0;translate:0 28px;scale:.985}to{opacity:1;translate:0 0;scale:1}}
/* Shared site treatment for the existing column templates. */
.tf-list-enhanced .xd-header{position:fixed;border-bottom-color:transparent;background:rgba(255,255,255,.12);backdrop-filter:none}
.tf-list-hero{position:relative!important;display:block!important;width:100%!important;height:402px!important;min-height:402px!important;max-height:402px!important;padding:0!important;overflow:hidden!important;border:0!important;background-color:#eaf4ff!important;background-size:cover!important;background-position:center!important}
.tf-list-hero-background :is(.hero-media,.xmdsite-hero-media,swiper-container){visibility:hidden!important}
.tf-list-hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(244,247,252,.93),rgba(244,247,252,.62) 45%,rgba(244,247,252,.22)),linear-gradient(0deg,rgba(244,247,252,.94),transparent 60%)}
.tf-list-hero :is(.hero-media,.xmdsite-hero-media,swiper-container,.hero-image-list,.model-hero-list,.xmdsite-hero-image-list,swiper-slide,.hero-slide,.model-hero-slide,.xmdsite-hero-slide,.hero-image-item,.model-hero-item,.xmdsite-hero-image-item,.hero-image-link,.model-hero-link,.xmdsite-hero-image-link){width:100%!important;height:100%!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;border:0!important}
.tf-list-hero :is(.hero-media,.xmdsite-hero-media,swiper-container){position:absolute!important;inset:0!important}
body.tf-list-enhanced .tf-list-hero :is(img.hero-media-content,img.model-hero-media,img.xmdsite-hero-media-content,img.hero-media){display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;min-height:0!important;object-fit:cover!important;object-position:center!important;border:0!important}
.tf-list-hero .xmdsite-page-hero-content{display:none!important}
.tf-list-hero-copy{position:relative;z-index:2;width:min(1190px,calc(100% - 48px));margin:0 auto;padding-top:162px;color:var(--tf-ink)}
.tf-list-hero-copy nav[aria-label="面包屑导航"]{display:block!important;width:auto!important;margin:0 0 16px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;color:#8798b6!important;font-size:12px!important}
.tf-list-hero-copy :is(ol.breadcrumb,.xmdsite-breadcrumb-list){display:flex!important;align-items:center!important;gap:9px!important;margin:0!important;padding:0!important;list-style:none!important}
.tf-list-hero-copy :is(ol.breadcrumb li,.xmdsite-breadcrumb-item){color:#8798b6!important;font-size:12px!important}
.tf-list-hero-copy .xd-list-title-block{display:block!important;width:auto!important;max-width:800px!important;margin:0!important;padding:0!important;background:transparent!important;text-align:left!important}
.tf-list-hero-copy .xd-list-title-block>span{display:none!important}
.tf-list-hero-copy .xd-list-title-block h1{margin:0!important;color:var(--tf-ink)!important;font-size:clamp(32px,4vw,52px)!important;font-weight:800!important;line-height:1.16!important;letter-spacing:-.02em!important;text-shadow:none!important}
.tf-list-hero-copy .xd-list-title-block p{max-width:760px!important;margin:17px 0 0!important;color:var(--tf-text)!important;font-size:15px!important;line-height:1.8!important}
body.tf-list-enhanced :is(main.main,main.page-main,main.page-shell,main.xmdsite-main,.page-section){padding-top:78px!important}
.xd-list-template :is(.container,.page-shell,.page-main,.main,.xmdsite-container),.xmdsite-page :is(.xmdsite-container,.page-shell){max-width:var(--tf-shell)}
.xd-list-template :is(.main,.page-main,.page-section,.page-shell,.xmdsite-main){padding-top:34px!important;background:transparent!important}
.xd-list-template :is(.page-hero,.model-hero,.xmdsite-page-hero){background-color:#eaf4ff!important}
.xd-list-template :is(.hero-media-content,.model-hero-media,.xmdsite-hero-media-content){object-fit:contain!important;background:#eaf4ff!important}
.xd-list-template :is(.xd-list-title-block h1,.page-title),.xmdsite-page :is(.xmdsite-item-title,.article-title){color:var(--tf-ink)!important}
.xd-list-template :is(.xd-list-title-block span,.category-link.is-active,.page-current,.page-link:hover,.view-more),.xmdsite-page :is(.xmdsite-breadcrumb-current,.xmdsite-tab.is-active,.xmdsite-adjacent-card:hover){color:var(--tf-blue)!important}
.xd-list-template :is(.category-link.is-active,.page-current),.xmdsite-page .xmdsite-tab.is-active{border-color:var(--tf-blue)!important}
.xd-list-template :is(.news-item,.case-card,.service-card,.item-card,.list-card),.xmdsite-page :is(.xmdsite-facts,.xmdsite-article,.xmdsite-adjacent-card){border-radius:var(--tf-radius)!important;box-shadow:var(--tf-shadow)!important}
.xd-list-template :is(.item-media img,.case-media img,.service-media img),.xmdsite-page :is(.xmdsite-head-cover img,.xmdsite-gallery-image,.xmdsite-cover img){object-fit:contain!important}
.xd-list-template :is(.category-list,.side-list){overflow-x:auto;scrollbar-width:thin}
.xd-list-template :is(.category-link,.side-list a){white-space:nowrap}
@media(max-width:1180px){.tf-business-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tf-honors-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tf-split{gap:36px}}
@media(max-width:700px){.tf-list-hero{height:300px!important;min-height:300px!important;max-height:300px!important}.tf-list-hero-copy{width:calc(100% - 32px);padding-top:118px}.tf-list-hero-copy .xd-list-title-block h1{font-size:32px!important}.tf-list-hero-copy .xd-list-title-block p{font-size:13px!important}body.tf-list-enhanced :is(main.main,main.page-main,main.page-shell,main.xmdsite-main,.page-section){padding-top:45px!important}}
@media(max-width:980px){.tf-hero{min-height:670px}.tf-hero-inner{width:calc(100% - 48px)}.tf-hero h1{white-space:normal}.tf-hero-media{width:100%;opacity:.48;mask-image:none}.tf-hero::after{background:linear-gradient(90deg,rgba(244,247,252,.95),rgba(244,247,252,.6)),linear-gradient(0deg,var(--tf-bg),transparent 40%)}.tf-split,.tf-split-reverse{grid-template-columns:1fr}.tf-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-news-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-product-card{flex-basis:calc(50% - 9.333px)}.tf-process-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:35px}.tf-process-grid::before{display:none}}
@media(max-width:700px){.tf-shell{width:calc(100% - 32px)}.tf-section{padding:68px 0}.tf-hero{min-height:calc(100svh + 50px)}.tf-hero-inner{width:calc(100% - 32px);padding:117px 0 100px}.tf-hero h1{font-size:27px}.tf-hero h1 span{font-size:16px}.tf-hero-media{opacity:.27}.tf-hero-arrow{width:38px;height:38px;font-size:29px}.tf-hero-prev{left:9px}.tf-hero-next{right:9px}.tf-scroll-hint{display:none}.tf-stats-section{padding:26px 0 0}.tf-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-honors-section .tf-section-head{margin-bottom:35px}.tf-honor-card,.tf-honor-text-card{border-radius:15px}.tf-stat:nth-child(2){border-right:0}.tf-stat:nth-child(-n+2){border-bottom:1px solid var(--tf-line)}.tf-business-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-case-grid,.tf-news-grid{grid-template-columns:1fr}.tf-cta{padding:35px 25px;flex-wrap:wrap}.tf-product-card{flex-basis:100%;margin-right:0}.tf-product-card figure{height:230px}.tf-section-head{margin-bottom:33px}.tf-process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-honors-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:480px){.tf-hero h1{font-size:23px;letter-spacing:-.03em}.tf-hero h1 span{font-size:15px}.tf-hero-tags{gap:7px}.tf-hero-tags span{font-size:11px}.tf-business-grid{grid-template-columns:1fr}.tf-business-card{min-height:0}.tf-hero-copy>p{font-size:14px}.tf-stat{padding:20px 8px}.tf-stat strong{font-size:32px}.tf-honors-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.tf-reveal,.tf-reveal.is-visible,.tf-business-card,.tf-business-card-bg,.tf-case-card,.tf-product-card,.tf-news-card,.tf-feature-image img{animation:none!important;transition:none!important;transform:none!important}}
@media(prefers-reduced-motion:reduce){html.tf-motion-ready .tf-scroll-reveal{opacity:1!important;translate:none!important;scale:1!important;animation:none!important}.tf-honor-card:hover,.tf-honor-text-card:hover{transform:none!important}}

/* Shared inner-page composition. These styles are owned by the catalog and detail templates. */
.xd-rebuilt{background:var(--tf-bg)}
.xd-rebuilt .xd-header{position:fixed;left:0;right:0;top:0;border-color:transparent;background:transparent;backdrop-filter:none}
.xd-rebuilt .xd-header.is-scrolled{border-bottom-color:var(--tf-line);background:rgba(255,255,255,.93);backdrop-filter:blur(16px)}
.tf-page-hero{position:relative;min-height:385px;display:flex;align-items:flex-end;overflow:hidden;border-bottom:1px solid var(--tf-line);background:radial-gradient(80% 100% at 92% 0%,rgba(10,166,238,.14),transparent 60%),linear-gradient(180deg,#ebf4ff,var(--tf-bg))}
.tf-page-hero-media{position:absolute;inset:0;opacity:.28;mask-image:linear-gradient(180deg,#000,rgba(0,0,0,.45) 52%,transparent)}
.tf-page-hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.9) brightness(1.08)}
.tf-page-hero-inner{position:relative;z-index:1;padding-top:160px;padding-bottom:66px}
.tf-crumb{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--tf-muted);font-size:12.5px;letter-spacing:.07em}
.tf-crumb a:hover{color:var(--tf-blue)}
.tf-crumb span:last-child{color:var(--tf-text)}
.tf-page-hero h1{max-width:1000px;margin:18px 0 0;color:var(--tf-ink);font-size:clamp(28px,4vw,48px);font-weight:800;line-height:1.2}
.tf-page-hero p{max-width:760px;margin:16px 0 0;color:var(--tf-text);font-size:15.5px;line-height:1.85}
.tf-section-tight{padding:76px 0}
.tf-overview-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.tf-overview-card{display:flex;flex-direction:column;gap:14px;min-height:132px;padding:25px 20px;overflow:hidden;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);transition:transform .3s,border-color .3s,box-shadow .3s}
.tf-overview-card:hover{transform:translateY(-6px);border-color:var(--tf-cyan);box-shadow:0 18px 34px rgba(11,60,150,.15)}
.tf-overview-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--tf-line-strong);border-radius:11px;background:linear-gradient(140deg,#ebf3ff,#deeafb);color:var(--tf-blue);font-size:18px;font-weight:800}
.tf-overview-card h2{margin:0;color:var(--tf-ink);font-size:15.5px;line-height:1.5}
.tf-filter{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 30px}
.tf-filter a{padding:8px 17px;border:1px solid var(--tf-line);border-radius:999px;background:#fff;color:var(--tf-text);font-size:13px;white-space:nowrap}
.tf-filter a:hover,.tf-filter a.is-active{border-color:var(--tf-blue);background:var(--tf-blue);color:#fff}
.tf-catalog-split{scroll-margin-top:74px}
.tf-catalog-split .tf-split-copy{order:0}
.tf-catalog-split .tf-feature-image{order:1}
.tf-catalog-split .tf-split-reverse .tf-split-copy{order:2}
.tf-catalog-split .tf-split-reverse .tf-feature-image{order:1}
.tf-split-description{max-height:260px;overflow:hidden;mask-image:linear-gradient(#000 82%,transparent)}
.tf-service-detail-source{max-height:230px;margin-top:17px;color:var(--tf-text);font-size:14px}
.tf-service-detail-source img,.tf-service-detail-source figure{display:none}
.tf-service-detail-source h3,.tf-service-detail-source h4{margin:14px 0 6px;font-size:14px}
.tf-service-detail-source :is(ul,ol){margin:8px 0;padding-left:20px}
.tf-richtext{color:var(--tf-text);font-size:15px;line-height:1.9;overflow-wrap:anywhere}
.tf-richtext :is(h1,h2,h3,h4){color:var(--tf-ink);line-height:1.4}
.tf-richtext p{margin:0 0 15px}
.tf-richtext :is(ul,ol){padding-left:22px;margin:14px 0}
.tf-richtext ul{list-style:disc}.tf-richtext ol{list-style:decimal}
.tf-richtext img{max-width:100%;height:auto;border-radius:9px}
.tf-richtext table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse}
.tf-richtext td,.tf-richtext th{border:1px solid var(--tf-line);padding:8px 12px}
.tf-media-placeholder{display:grid;place-items:center;width:100%;min-height:100%;padding:24px;background:linear-gradient(135deg,#dce9f8,#f1f6ff);color:var(--tf-blue-deep);text-align:center;font-size:17px;font-weight:700}
.tf-feature-image .tf-media-placeholder{aspect-ratio:4/3}
.tf-case-grid{align-items:stretch}
.tf-case-card figure{overflow:hidden}
.tf-case-card figure img{object-fit:cover}
.tf-case-card h2{margin:8px 0;color:var(--tf-ink);font-size:17px;line-height:1.45}
.tf-case-card:hover h2{color:var(--tf-blue)}
.tf-case-card p{line-height:1.8}
.tf-project-table{overflow:hidden;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow)}
.tf-project-row{display:grid;grid-template-columns:48px minmax(0,1.1fr) minmax(0,1.6fr) 140px 40px;align-items:center;gap:22px;min-height:58px;padding:10px 24px;border-bottom:1px solid var(--tf-line);color:var(--tf-text);font-size:13px}
.tf-project-row:last-child{border-bottom:0}.tf-project-row:not(.tf-project-row-head):hover{background:#eef5ff;color:var(--tf-blue)}
.tf-project-row>strong,.tf-project-summary{min-width:0;overflow-wrap:anywhere}
.tf-project-summary{line-height:1.8}
.tf-project-row strong{color:var(--tf-ink);font-size:14px;font-weight:700}
.tf-project-row-head{background:#e9f2ff;color:var(--tf-blue-deep);font-weight:800}
.tf-about-block{padding:54px 0;border-bottom:1px solid var(--tf-line)}
.tf-about-block:first-of-type{padding-top:0}.tf-about-block:last-of-type{border-bottom:0;padding-bottom:0}
.tf-about-block-alt .tf-split-copy{order:2}.tf-about-block-alt .tf-feature-image{order:1}
.tf-about-block .tf-richtext{margin-top:24px}
.tf-about-block .tf-richtext>p:first-child{margin-top:0}
.tf-honor-intro{max-width:850px;margin-bottom:35px}.tf-honor-intro h2{margin:17px 0 11px;font-size:clamp(28px,3.4vw,40px)}.tf-honor-intro h2 em{font-style:normal;color:var(--tf-blue)}.tf-honor-intro p{color:var(--tf-text)}
.tf-honor-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.tf-honor-stats div{padding:28px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow)}.tf-honor-stats strong{display:block;color:var(--tf-blue);font-size:22px}.tf-honor-stats span{color:var(--tf-text);font-size:13px}
.tf-honor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.tf-certificate-card{display:block;overflow:hidden;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);transition:transform .3s,box-shadow .3s}.tf-certificate-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(11,60,150,.15)}.tf-certificate-card figure{display:grid;place-items:center;height:250px;margin:0;background:#eef4fc}.tf-certificate-card figure img{width:100%;height:100%;object-fit:contain}.tf-certificate-card>div{padding:17px}.tf-certificate-card h2{margin:0 0 6px;color:var(--tf-ink);font-size:14px;line-height:1.5}.tf-certificate-card small{color:var(--tf-blue);font-size:11px}
.tf-contact-grid{display:grid;grid-template-columns:1.06fr .94fr;align-items:start;gap:64px}.tf-contact-info{display:flex;align-items:flex-start;gap:20px;padding:20px 0;border-bottom:1px solid var(--tf-line)}.tf-contact-info h3{margin:0 0 8px;color:var(--tf-ink);font-size:16px}.tf-contact-info p{margin:0;color:var(--tf-text)}.tf-contact-icon{display:grid;place-items:center;flex:none;width:44px;height:44px;border:1px solid var(--tf-line-strong);border-radius:11px;background:#eaf3ff;color:var(--tf-blue);font-weight:800}.tf-contact-aside,.tf-contact-form{padding:32px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow)}.tf-contact-aside h2{margin:0 0 20px;font-size:22px}.tf-contact-aside ul{display:grid;gap:13px;margin:0;padding:0;list-style:none;color:var(--tf-text)}.tf-contact-aside li::before{content:'✓';margin-right:10px;color:var(--tf-blue)}
.xd-catalog-contact .tf-contact-info:first-of-type{display:block;padding-top:0}
.xd-catalog-contact .tf-contact-info:first-of-type>.tf-contact-icon,.xd-catalog-contact .tf-contact-info:first-of-type>div>h3{display:none}
.xd-catalog-contact .tf-contact-info:first-of-type .tf-richtext h3{position:relative;margin:0;padding:20px 0 0 64px;border-top:1px solid var(--tf-line);font-size:15px}
.xd-catalog-contact .tf-contact-info:first-of-type .tf-richtext h3:first-child{border-top:0}
.xd-catalog-contact .tf-contact-info:first-of-type .tf-richtext h3::before{content:none}
.xd-catalog-contact .tf-contact-info:first-of-type .tf-richtext h3+p,.xd-catalog-contact .tf-contact-info:first-of-type .tf-richtext h3+ul{padding-left:64px;margin:6px 0 20px}
.xd-catalog-contact .tf-contact-info:first-of-type .tf-richtext figure{width:190px;margin:14px 0 20px 64px;padding:15px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff}
.tf-form-note{margin:15px 0 0;color:var(--tf-muted);font-size:12px}
.tf-contact-form .tf-form-error:not([hidden]){margin:12px 0 0}
.tf-about-block:first-of-type .tf-richtext img{display:none}
.tf-about-block .tf-split-copy:only-child{grid-column:1/-1;max-width:880px}
.tf-about-office .tf-split{display:block}
.tf-about-office .tf-split-copy{max-width:900px}
.tf-office-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}
.tf-office-gallery figure{overflow:hidden;margin:0;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#eaf3fb;box-shadow:var(--tf-shadow)}
.tf-office-gallery img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.tf-qualification-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.tf-qualification-card{display:flex;flex-direction:column;min-height:210px;padding:24px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);transition:transform .25s,border-color .25s}
.tf-qualification-card:hover{transform:translateY(-5px);border-color:var(--tf-blue)}
.tf-qualification-index{color:var(--tf-blue);font-size:12px;font-weight:800;letter-spacing:.13em}
.tf-qualification-card h3{margin:20px 0 9px;color:var(--tf-ink);font-size:17px;line-height:1.45}
.tf-qualification-card p{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;margin:0;color:var(--tf-text);font-size:13px;line-height:1.7}
.tf-qualification-card small{margin-top:auto;padding-top:16px;color:var(--tf-blue);font-weight:700}
.xd-catalog-case .tf-split-reverse .tf-split-copy{order:2}.xd-catalog-case .tf-split-reverse .tf-feature-image{order:1}
.xd-catalog-contact .tf-contact-detail{position:relative;min-height:100px;margin-bottom:11px;padding:20px 18px 18px 76px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow)}
.xd-catalog-contact .tf-contact-detail:last-child{margin-bottom:0}
.xd-catalog-contact .tf-contact-detail h3{position:static!important;margin:0 0 7px!important;padding:0!important;border:0!important;font-size:15px!important}
.xd-catalog-contact .tf-contact-detail>.tf-contact-icon{position:absolute;top:18px;left:18px}
.xd-catalog-contact .tf-contact-detail>.tf-contact-icon svg{display:block;width:22px;height:22px}
.xd-catalog-contact .tf-contact-detail p{margin:0!important;padding:0!important;font-size:14px}
.xd-catalog-contact .tf-contact-aside h3{margin:0 0 18px;color:var(--tf-ink);font-size:20px}
.xd-catalog-contact .tf-contact-aside p{color:var(--tf-text);font-size:13px}
.xd-catalog-contact .tf-contact-aside figure{width:160px;margin:18px auto 0}.xd-catalog-contact .tf-contact-aside figure img{width:100%;height:auto}
.xd-catalog-contact .tf-contact-attachments{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px;margin-top:24px}
.xd-catalog-contact .tf-contact-attachments[hidden]{display:none}
.xd-catalog-contact .tf-contact-attachments a{display:block;width:100%;max-width:160px;min-width:0;justify-self:center}
.xd-catalog-contact .tf-contact-attachments img{display:block;width:100%;height:auto;object-fit:contain}
.xd-catalog-contact .tf-contact-form .tf-button{width:100%}
.tf-qr-card{display:grid;justify-items:center;gap:12px;margin-bottom:22px;padding:26px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#eaf3ff;color:var(--tf-text);text-align:center;box-shadow:var(--tf-shadow)}
.tf-contact-side{display:grid;align-content:start;gap:22px}.tf-contact-side .tf-qr-card{margin:0}
.tf-qr-card figure{order:0;width:160px;margin:0}.tf-qr-card figure img{width:100%;height:auto}.tf-qr-card p{order:1;margin:0;font-size:13px}
.tf-contact-points{display:grid;gap:14px;margin:26px 0 0;padding:0;list-style:none;color:var(--tf-text);font-size:14px}
.tf-contact-points li::before{content:'✓';display:inline-grid;place-items:center;width:20px;height:20px;margin-right:9px;border:1px solid var(--tf-line-strong);border-radius:50%;color:var(--tf-blue);font-size:12px}
.tf-network-panel h3{margin:0 0 24px;color:var(--tf-ink);font-size:24px}
.tf-network-panel>h3{display:none}
.tf-network-panel .tf-richtext :is(figure,picture,img){display:none}
.tf-network-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.tf-network-card{padding:25px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow)}
.tf-network-card h3{margin:0 0 12px;font-size:17px}.tf-network-card p{margin:0;color:var(--tf-text);font-size:13px}
@media(max-width:1080px){.tf-qualification-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.tf-network-grid{grid-template-columns:1fr}.xd-catalog-case .tf-split-reverse .tf-split-copy{order:0}.xd-catalog-case .tf-split-reverse .tf-feature-image{order:1}}
@media(max-width:640px){.tf-qualification-grid{grid-template-columns:1fr}.tf-qualification-card{min-height:170px}.tf-network-card{min-height:0}}
@media(max-width:640px){.tf-office-gallery{grid-template-columns:1fr}}
.tf-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.tf-field{display:grid;align-content:start;gap:7px}.tf-field-wide{grid-column:1/-1}.tf-field label{color:var(--tf-ink);font-size:13px;font-weight:700}.tf-field em{color:#d44b5a;font-style:normal}.tf-field input:not([type=checkbox]),.tf-field textarea,.tf-field select{width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--tf-line-strong);border-radius:8px;background:#fff;color:var(--tf-ink);font:inherit;font-size:14px}.tf-field textarea{min-height:126px;resize:vertical}.tf-field :is(input,textarea,select):focus{outline:2px solid rgba(11,92,232,.2);border-color:var(--tf-blue)}.tf-contact-form .tf-button{margin-top:22px}.tf-honeypot{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.tf-form-error{color:#b23447;font-size:13px}.tf-form-success{color:#137c55}
.tf-pages{display:flex;align-items:center;justify-content:space-between;gap:20px;width:min(var(--tf-shell),calc(100% - 52px));margin:0 auto;padding:28px 0 75px;color:var(--tf-text);font-size:13px}.tf-pages div{display:flex;gap:10px}.tf-pages a{padding:8px 17px;border:1px solid var(--tf-line-strong);border-radius:999px;background:#fff;color:var(--tf-blue)}.tf-empty{padding:50px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;color:var(--tf-text);text-align:center}
.tf-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 278px;align-items:start;gap:40px}.tf-detail-article{min-width:0;padding:38px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow)}.tf-detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:24px;color:var(--tf-muted);font-size:12px}.tf-detail-meta span{padding:4px 10px;border-radius:999px;background:#eaf3ff;color:var(--tf-blue)}.tf-detail-cover{overflow:hidden;margin:0 0 30px;border-radius:10px;background:#edf3fb}.tf-detail-cover img{width:100%;max-height:570px;object-fit:contain}.tf-detail-cover figcaption{padding:9px 14px;color:var(--tf-muted);font-size:12px;text-align:center}.tf-detail-richtext{font-size:15.5px}.tf-detail-summary{color:var(--tf-text)}.tf-detail-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:35px 0 0}.tf-detail-facts div{padding:15px;border:1px solid var(--tf-line);border-radius:9px;background:var(--tf-bg)}.tf-detail-facts dt{color:var(--tf-muted);font-size:12px}.tf-detail-facts dd{margin:5px 0 0;color:var(--tf-ink);overflow-wrap:anywhere}.tf-detail-facts img{max-height:180px;object-fit:contain}.tf-detail-gallery,.tf-detail-map{margin-top:55px}.tf-detail-gallery .tf-section-head{margin-bottom:25px}.tf-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tf-gallery-grid a{display:block;overflow:hidden;border-radius:9px;background:#edf3fb}.tf-gallery-grid img{width:100%;height:150px;object-fit:cover}.tf-detail-map h2{font-size:23px}.tf-detail-adjacent{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:45px;padding-top:27px;border-top:1px solid var(--tf-line)}.tf-detail-adjacent a{display:grid;gap:8px;min-width:0;padding:18px;border:1px solid var(--tf-line);border-radius:10px}.tf-detail-adjacent a:hover{border-color:var(--tf-blue);color:var(--tf-blue)}.tf-detail-adjacent small{color:var(--tf-muted)}.tf-detail-adjacent strong{font-size:13px;line-height:1.5}.tf-detail-side{position:sticky;top:100px}.tf-detail-side-card{display:grid;gap:14px;padding:27px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow)}.tf-detail-side-card h2{margin:0;color:var(--tf-ink);font-size:19px}.tf-detail-side-card p{margin:0;color:var(--tf-text);font-size:13px}.tf-detail-side-card>a{padding-top:10px;border-top:1px solid var(--tf-line);color:var(--tf-blue);font-size:13px;font-weight:700}
@media(max-width:1080px){.tf-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tf-honor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tf-contact-grid{gap:36px}.tf-detail-layout{grid-template-columns:minmax(0,1fr) 235px;gap:22px}}
@media(max-width:800px){.tf-page-hero{min-height:330px}.tf-page-hero-inner{padding-top:132px;padding-bottom:45px}.tf-contact-grid,.tf-detail-layout{grid-template-columns:1fr}.tf-detail-side{position:static}.tf-honor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-honor-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-project-row{grid-template-columns:36px minmax(0,1fr) minmax(0,1.3fr) 90px 28px;gap:12px;padding-inline:14px}.tf-catalog-split .tf-split-reverse .tf-split-copy,.tf-about-block-alt .tf-split-copy{order:0}.tf-catalog-split .tf-split-reverse .tf-feature-image,.tf-about-block-alt .tf-feature-image{order:1}}
@media(max-width:640px){.tf-page-hero{min-height:300px}.tf-page-hero-inner{padding-top:118px;padding-bottom:42px}.tf-page-hero h1{font-size:32px}.tf-page-hero p{font-size:13px}.tf-section-tight{padding:54px 0}.tf-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tf-overview-card{min-height:110px;padding:17px}.tf-overview-card h2{font-size:13px}.tf-project-row{font-size:11px}.tf-project-row strong{font-size:12px}.tf-project-row .tf-project-category{display:none}.tf-project-row{grid-template-columns:24px minmax(0,1fr) minmax(0,1.3fr) 24px;gap:10px}.tf-contact-aside,.tf-contact-form,.tf-detail-article{padding:22px}.tf-form-grid,.tf-detail-facts{grid-template-columns:1fr}.tf-field-wide{grid-column:auto}.tf-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tf-gallery-grid img{height:125px}.tf-pages{width:calc(100% - 32px);align-items:flex-start;flex-direction:column}.tf-filter{flex-wrap:nowrap;overflow-x:auto;padding-bottom:7px}.tf-certificate-card figure{height:190px}}

/* Honors catalog: sections and content come from the Honors model. */
.xd-catalog-honors .tf-honors-metrics-section{padding-top:54px;padding-bottom:38px}
.xd-catalog-honors .tf-honors-metrics>ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none}
.xd-catalog-honors .tf-honors-metrics li{position:relative;min-width:0;padding:30px;overflow:hidden;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:linear-gradient(140deg,#f4f8fe,#e8f0fc);box-shadow:var(--tf-shadow)}
.xd-catalog-honors .tf-honors-metrics li::after{content:"";position:absolute;right:-28px;top:-36px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(10,166,238,.16),transparent 72%);pointer-events:none}
.xd-catalog-honors .tf-honors-metrics strong{color:var(--tf-blue-deep);font-size:44px;font-weight:800;line-height:1}
.xd-catalog-honors .tf-honors-metrics em{margin-left:5px;color:var(--tf-blue);font-size:20px;font-style:normal;font-weight:700}
.xd-catalog-honors .tf-honors-metrics span{display:block;margin-top:14px;color:var(--tf-text);font-size:13px}
.xd-catalog-honors .tf-honors-content-section{padding-top:86px;padding-bottom:86px}
.xd-catalog-honors .tf-honors-content-section .tf-section-head{margin-bottom:42px}
.xd-catalog-honors .tf-honors-content-section .tf-section-head p{max-width:770px}
.xd-catalog-honors .tf-honors-richcards.is-enhanced{display:grid;gap:20px}
.xd-catalog-honors .tf-honors-three.is-enhanced{grid-template-columns:repeat(3,minmax(0,1fr))}
.xd-catalog-honors .tf-honors-four.is-enhanced{grid-template-columns:repeat(4,minmax(0,1fr))}
.xd-catalog-honors .tf-honors-two.is-enhanced{grid-template-columns:repeat(2,minmax(0,1fr))}
.xd-catalog-honors .tf-honors-richcards:not(.is-enhanced)>p:first-child,.xd-catalog-honors .tf-honors-richcards:not(.is-enhanced)>figure{display:none}
.xd-catalog-honors .tf-honors-richcards:not(.is-enhanced)>h3{margin:20px 0 5px;color:var(--tf-ink);font-size:17px}
.xd-catalog-honors .tf-honors-richcards:not(.is-enhanced)>p{margin:0 0 14px;color:var(--tf-text)}
.xd-catalog-honors .tf-honors-info-card{display:flex;flex-direction:column;align-items:flex-start;min-height:154px;padding:24px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);transition:transform .25s,border-color .25s,box-shadow .25s}
.xd-catalog-honors .tf-honors-info-card:hover{transform:translateY(-4px);border-color:var(--tf-line-strong);box-shadow:0 18px 34px rgba(11,60,150,.15)}
.xd-catalog-honors .tf-honors-info-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;margin-bottom:14px;border:1px solid var(--tf-line-strong);border-radius:11px;background:linear-gradient(140deg,#ebf3ff,#deeafb);color:var(--tf-blue);font-size:21px;line-height:1}
.xd-catalog-honors .tf-honors-info-card h3{margin:0 0 7px;color:var(--tf-ink);font-size:15.5px;line-height:1.5;font-weight:700}
.xd-catalog-honors .tf-honors-info-card p{margin:0;color:var(--tf-text);font-size:13.2px;line-height:1.76}
.xd-catalog-honors .tf-honors-card-image{display:grid;place-items:center;align-self:stretch;min-height:190px;margin-top:18px;overflow:hidden;border:1px solid var(--tf-line);border-radius:10px;background:#f4f7fc;cursor:zoom-in}
.xd-catalog-honors .tf-honors-card-image img{display:block;width:100%;height:190px;max-width:100%;object-fit:contain;border-radius:0;transition:transform .25s}
.xd-catalog-honors .tf-honors-card-image:hover img{transform:scale(1.035)}
.xd-catalog-honors .tf-honors-card-image:focus-visible{outline:3px solid var(--tf-blue);outline-offset:3px}
.xd-catalog-honors .tf-honors-skill-layout{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:56px}
.xd-catalog-honors .tf-honors-skill-layout h2{margin:18px 0 0;font-size:clamp(25px,2.8vw,36px);font-weight:800;line-height:1.3}
.xd-catalog-honors .tf-honors-skill-layout h2 em{color:var(--tf-blue);font-style:normal}
.xd-catalog-honors .tf-honors-skill-layout>div>p{max-width:680px;margin:23px 0;color:var(--tf-text);font-size:15px;line-height:1.85}
.xd-catalog-honors .tf-honors-skill-copy>p:first-child,.xd-catalog-honors .tf-honors-skill-copy figure{display:none}
.xd-catalog-honors .tf-honors-skill-copy ul{display:grid;gap:13px;margin:22px 0 0;padding:0;list-style:none}
.xd-catalog-honors .tf-honors-skill-copy li{position:relative;padding-left:30px;color:var(--tf-text);font-size:13.5px;line-height:1.8}
.xd-catalog-honors .tf-honors-skill-copy li::before{content:"✓";position:absolute;top:2px;left:0;display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--tf-line-strong);border-radius:50%;color:var(--tf-blue);font-size:12px}
.xd-catalog-honors .tf-honors-skill-copy strong{color:var(--tf-ink)}
.xd-catalog-honors .tf-honors-skill-photo{position:relative;overflow:hidden;margin:0;border:1px solid var(--tf-line);border-radius:var(--tf-radius);box-shadow:var(--tf-shadow)}
.xd-catalog-honors .tf-honors-skill-photo img{width:100%;aspect-ratio:4/3;object-fit:cover}
.xd-catalog-honors .tf-honors-skill-photo figcaption{position:absolute;right:0;bottom:0;left:0;padding:34px 20px 16px;background:linear-gradient(transparent,rgba(6,30,74,.75));color:#fff;font-size:13px}
.xd-catalog-honors .tf-honors-skill-photo figcaption small{display:block;color:#a8ddff;font-size:11px;letter-spacing:.15em}
.xd-catalog-honors .tf-honors-ip-cards .tf-honors-info-card{min-height:190px;padding:30px;background:linear-gradient(140deg,#f4f8fe,#e8f0fc)}
.xd-catalog-honors .tf-honors-ip-cards .tf-honors-info-card h3{font-size:24px;color:var(--tf-blue-deep)}
.xd-catalog-honors .tf-honors-brand-wall{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.xd-catalog-honors .tf-honors-brand-wall>p:first-child{display:none}
.xd-catalog-honors .tf-honors-brand-wall>p:nth-child(2){order:2;grid-column:1/-1;margin:7px 0 0;color:var(--tf-text);font-size:13.5px}
.xd-catalog-honors .tf-honors-brand-wall figure{order:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:108px;margin:0;padding:19px;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);text-align:center;transition:transform .25s,border-color .25s}
.xd-catalog-honors .tf-honors-brand-wall figure:hover{transform:translateY(-4px);border-color:var(--tf-blue)}
.xd-catalog-honors .tf-honors-brand-wall figure img{max-width:100%;max-height:50px;width:auto;height:auto;object-fit:contain}
.xd-catalog-honors .tf-honors-brand-wall figure strong{color:var(--tf-ink);font-size:15px}
.xd-catalog-honors .tf-honors-brand-wall figure figcaption{color:var(--tf-muted);font-size:11px}
.xd-catalog-honors .tf-honors-gallery-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}
.xd-catalog-honors .tf-honors-gallery-tabs a{display:inline-flex;align-items:center;min-height:38px;padding:7px 17px;border:1px solid var(--tf-line-strong);border-radius:999px;background:#fff;color:var(--tf-text);font-size:13px;line-height:1.2}
.xd-catalog-honors .tf-honors-gallery-tabs a:hover,.xd-catalog-honors .tf-honors-gallery-tabs a.is-active{border-color:var(--tf-blue);background:var(--tf-blue);color:#fff}
.xd-catalog-honors .tf-honors-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.xd-catalog-honors .tf-honors-certificate{display:block;overflow:hidden;border:1px solid var(--tf-line);border-radius:var(--tf-radius);background:#fff;box-shadow:var(--tf-shadow);cursor:zoom-in;transition:transform .25s,border-color .25s,box-shadow .25s}
.xd-catalog-honors .tf-honors-certificate[hidden]{display:none}
.xd-catalog-honors .tf-honors-certificate:hover{transform:translateY(-4px);border-color:var(--tf-blue);box-shadow:0 18px 34px rgba(11,60,150,.15)}
.xd-catalog-honors .tf-honors-certificate img{width:100%;height:240px;object-fit:contain;background:#f4f7fc}
.xd-catalog-honors .tf-honors-certificate-caption{display:block;padding:12px 14px;border-top:1px solid var(--tf-line);line-height:1.5}
.xd-catalog-honors .tf-honors-certificate-caption strong{display:block;color:var(--tf-ink);font-size:13px}
.xd-catalog-honors .tf-honors-certificate-caption small{display:block;margin-top:2px;color:var(--tf-muted);font-size:11px}
.xd-catalog-honors .tf-honors-lightbox[hidden]{display:none}
.xd-catalog-honors .tf-honors-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:54px 76px;background:rgba(8,18,38,.88);backdrop-filter:blur(8px)}
.xd-catalog-honors .tf-honors-lightbox figure{max-width:min(900px,100%);max-height:100%;margin:0;text-align:center}
.xd-catalog-honors .tf-honors-lightbox img{max-width:100%;max-height:calc(100svh - 125px);width:auto;height:auto;object-fit:contain;margin:auto;border-radius:6px;background:#fff}
.xd-catalog-honors .tf-honors-lightbox figcaption{margin-top:11px;color:#fff;font-size:14px}
.xd-catalog-honors .tf-honors-lightbox button{position:absolute;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(255,255,255,.13);color:#fff;font-size:30px;cursor:pointer}
.xd-catalog-honors .tf-honors-lightbox-close{top:22px;right:25px}
.xd-catalog-honors .tf-honors-lightbox-prev{left:23px;top:50%;transform:translateY(-50%)}
.xd-catalog-honors .tf-honors-lightbox-next{right:23px;top:50%;transform:translateY(-50%)}
@media(max-width:1080px){.xd-catalog-honors .tf-honors-metrics>ul{grid-template-columns:repeat(2,minmax(0,1fr))}.xd-catalog-honors .tf-honors-three.is-enhanced,.xd-catalog-honors .tf-honors-four.is-enhanced{grid-template-columns:repeat(2,minmax(0,1fr))}.xd-catalog-honors .tf-honors-brand-wall{grid-template-columns:repeat(4,minmax(0,1fr))}.xd-catalog-honors .tf-honors-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.xd-catalog-honors .tf-honors-skill-layout{grid-template-columns:1fr;gap:28px}.xd-catalog-honors .tf-honors-brand-wall{grid-template-columns:repeat(3,minmax(0,1fr))}.xd-catalog-honors .tf-honors-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.xd-catalog-honors .tf-honors-content-section{padding-top:60px;padding-bottom:60px}.xd-catalog-honors .tf-honors-metrics-section{padding-top:35px;padding-bottom:16px}.xd-catalog-honors .tf-honors-metrics li{padding:22px}.xd-catalog-honors .tf-honors-metrics strong{font-size:34px}.xd-catalog-honors .tf-honors-three.is-enhanced,.xd-catalog-honors .tf-honors-four.is-enhanced,.xd-catalog-honors .tf-honors-two.is-enhanced{grid-template-columns:1fr}.xd-catalog-honors .tf-honors-info-card{min-height:0}.xd-catalog-honors .tf-honors-brand-wall{grid-template-columns:repeat(2,minmax(0,1fr))}.xd-catalog-honors .tf-honors-gallery-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}.xd-catalog-honors .tf-honors-gallery-tabs a{flex:none}.xd-catalog-honors .tf-honors-certificate img{height:180px}.xd-catalog-honors .tf-honors-lightbox{padding:58px 12px}.xd-catalog-honors .tf-honors-lightbox-prev{left:8px}.xd-catalog-honors .tf-honors-lightbox-next{right:8px}}
@media(max-width:420px){.xd-catalog-honors .tf-honors-metrics>ul{gap:10px}.xd-catalog-honors .tf-honors-metrics li{padding:17px}.xd-catalog-honors .tf-honors-metrics span{font-size:11px}.xd-catalog-honors .tf-honors-gallery{grid-template-columns:1fr}.xd-catalog-honors .tf-honors-certificate img{height:240px}}
@media(prefers-reduced-motion:reduce){.xd-catalog-honors .tf-honors-info-card,.xd-catalog-honors .tf-honors-brand-wall figure,.xd-catalog-honors .tf-honors-certificate,.xd-catalog-honors .tf-honors-card-image img{transition:none}.xd-catalog-honors .tf-honors-card-image:hover img{transform:none}}
