/* Approved 9.23 refinements. Keep these after page and fullscreen styles. */
html { scroll-padding-top: 84px; }
.platform-brand-logo { display:block; flex-shrink:0; object-fit:contain; }
.ui-page-system .channel-grid-top { display:flex; align-items:center; gap:12px; }
.ui-page-system .channel-grid-top .platform-brand-logo { order:1; margin-left:auto; }
.ui-page-resources .logo-item { gap:10px; }
body { --footer-gap: 0px; }
body .footer { margin-top: 0; }
body .footer-col { text-align:center; }
body .footer-col li a { display:inline-block; white-space:nowrap; text-align:center; letter-spacing:normal; }
/* Friend links reuse footer-col headings and lists, immediately after cooperation. */
@media (min-width:1025px) {
  body .footer-top { grid-template-columns:minmax(0,1fr) repeat(4,110px) minmax(0,1fr); gap:12px; }
  body .footer-top > * { min-width:0; }
  body .footer-brand { width:230px; max-width:100%; justify-self:start; text-align:left; }
  body .footer-contact { width:230px; max-width:100%; justify-self:end; text-align:right; }
  body .footer-brand p, body .footer-contact p { width:100%; max-width:100%; overflow-wrap:anywhere; }
}
@media (min-width:769px) and (max-width:1024px) {
  body .footer-top { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
body:not(.ui-page-index) .section { padding-top:64px; padding-bottom:64px; }
body:not(.ui-page-index) .section-header { margin-bottom:36px; }
body .cta-section, body .subscribe-section { margin-bottom:0; background:linear-gradient(110deg,#2054c6 0%,#126eb7 55%,#079bb6 100%); }
body:not(.ui-page-index) .cta-section, body .subscribe-section { padding:42px 0 !important; }
body .cta-section > .container { margin-left:auto !important; margin-right:auto !important; }
.cta-actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.cta-actions a, .cta-section .btn { transition:background .2s,color .2s,box-shadow .2s,transform .2s; }
.cta-actions a:hover, .cta-section .btn:hover { transform:translateY(-2px); box-shadow:0 6px 20px #07234d40; }
.cta-actions .cta-btn-primary:hover { background:#e4f3ff; color:#1458c2; }
.cta-actions .cta-btn-outline:hover { background:#ffffff24; color:#fff; }
.cta-actions a:focus-visible, .cta-section .btn:focus-visible { outline:3px solid #fff; outline-offset:4px; }
.ui-page-index .link-timeline-section { padding:32px 0 24px; }
.ui-page-index .link-timeline { margin:24px 0 8px; }
.ui-page-index .pain-section-dark { padding:32px 0; }
.ui-page-index .pain-section-dark .section-header { margin-bottom:28px !important; }
.ui-page-index .pain-card { padding:24px; }
.ui-page-index .business-section { padding:36px 0; }
.ui-page-index .business-section .section-header { margin-bottom:28px; }
.ui-page-index .business-feature-card, .ui-page-index .business-card-body { background:#fff; }
.ui-page-index .business-card-body { padding:24px; }
.business-card-image { position:relative; }
.business-phase { position:absolute; z-index:1; top:16px; left:16px; padding:6px 16px; border-radius:7px; background:#fff; color:#1666c5; box-shadow:0 3px 14px #0d365226; font-size:15px; font-weight:700; }
.ui-page-index .home-snap-module-closing .metrics-section { flex:1 0 auto; display:flex; align-items:center; padding:36px 0; background:#fff; }
.ui-page-index .home-snap-module-closing .footer { flex-grow:0; }
.ui-page-index .home-snap-module-closing .cta-section { padding:18px 0; }
.ui-page-index .home-snap-module-closing .cta-content { padding:0; }
.ui-page-value .timeline-section { height:auto; min-height:380px; }
.ui-page-value .timeline-section .container { width:100%; max-width:1280px; margin:0 auto; padding:0 32px; }
.ui-page-value .timeline-step-desc { opacity:1; max-height:none; margin-top:10px; }
.ui-page-value .section:has(.summary-card) { padding:36px 0; background:#f1f5f9; }
.ui-page-value .summary-card { margin:0; padding:40px; }
/* Do not inherit the captured adjacent-section negative margin. Compensate
   inner padding at anchor targets so the header, not the empty section edge,
   sits 16px below the fixed 68px navigation. */
.ui-page-system .section.stage-section { margin-top:0; scroll-margin-top:-64px; }
body.ui-page-system .section.journey-overview { padding-bottom:0; }
.ui-page-system .journey-overview .journey-bar { margin-bottom:0; }
.ui-page-system .stage-header { padding:0; margin-bottom:36px; }
.ui-page-departments .section-header { max-width:none; }
.ui-page-departments .section-subtitle { max-width:none; }
/* Department service modes: a restrained blue/cyan technology treatment. */
.ui-page-departments .model-card { display:flex; flex-direction:column; transition:transform .24s ease,box-shadow .24s ease; }
.ui-page-departments .model-card > .btn { margin-top:auto; flex-shrink:0; }
.ui-page-departments .model-card.featured {
  border:1px solid transparent;
  background:linear-gradient(150deg,#f2faff,#fff 48%) padding-box,linear-gradient(135deg,#2575ed,#20c8e8) border-box;
  box-shadow:0 12px 36px #2575ed14,0 0 0 4px #2575ed06;
  transform:none;
}
.ui-page-departments .model-card.featured::before {
  top:20px; right:20px; padding:6px 14px; transform:none;
  border:1px solid #ffffffa6; border-radius:7px;
  background:linear-gradient(110deg,#195dcc,#07899f); color:#fff;
  font-size:12px; line-height:1.4; letter-spacing:2px;
  box-shadow:0 4px 14px #148cbd29,inset 0 1px 0 #ffffff5c;
}
.ui-page-departments .model-card.featured:hover {
  transform:translateY(-4px);
  box-shadow:0 18px 42px #2575ed24,0 0 0 4px #20c8e80c;
}
.ui-page-departments .model-card.featured .btn-primary {
  background:linear-gradient(110deg,#2265dc,#087eac); color:#fff;
  box-shadow:0 5px 16px #2575ed26;
}
.ui-page-departments .model-card.featured .btn-primary:hover { filter:brightness(1.08); }
/* Override the captured page's section-dark button colors and margin. */
body.ui-page-departments .cta-section.section-dark { margin-bottom:0 !important; }
.ui-page-departments .cta-section.section-dark .btn { min-height:48px; border:1px solid #ffffff80; text-decoration:none; }
.ui-page-departments .cta-section.section-dark .btn-white { background:#fff; color:#1558b6; box-shadow:0 4px 14px #07234d20; }
.ui-page-departments .cta-section.section-dark .btn-white:hover { background:#dff7ff; color:#104b9e; border-color:#a7eeff; }
.ui-page-departments .cta-section.section-dark .btn-outline-white { background:#ffffff0d; color:#fff; }
.ui-page-departments .cta-section.section-dark .btn-outline-white:hover { background:#ffffff26; color:#fff; border-color:#fff; }
.ui-page-departments .cta-section.section-dark .btn:active { transform:translateY(0); box-shadow:0 2px 6px #07234d20; }
.ui-page-departments .model-card .btn:focus-visible { outline:3px solid #2575ed; outline-offset:4px; }
.ui-page-about .story-visual-year .unit { font-size:.3em; margin-left:8px; }
.ui-page-about .timeline { max-width:960px; padding:12px 0; }
.ui-page-about .timeline-item { display:grid; grid-template-columns:1fr 80px 1fr; align-items:center; margin-bottom:44px; }
.ui-page-about .timeline-item .timeline-content { width:auto; grid-row:1; padding:28px; border:0; }
.ui-page-about .timeline-item:nth-child(odd) .timeline-content { grid-column:1; text-align:right; }
.ui-page-about .timeline-item:nth-child(even) .timeline-content { grid-column:3; text-align:left; }
.ui-page-about .timeline-item .timeline-year { grid-row:1; margin:0; font-size:30px; line-height:1.4; background:none; color:#2575ED; -webkit-text-fill-color:#2575ED; }
/* Start the transition at the number/Years boundary, not across the grid's empty space. */
.ui-page-about .timeline-year small { display:inline-block; font-size:14px; font-weight:500; background:linear-gradient(90deg, #2575ED 0%, #20C8E8 100%); background-clip:text; -webkit-background-clip:text; color:transparent; -webkit-text-fill-color:transparent; }
.ui-page-about .timeline-item:nth-child(odd) .timeline-year { grid-column:3; text-align:left; }
.ui-page-about .timeline-item:nth-child(even) .timeline-year { grid-column:1; text-align:right; }
.ui-page-about .timeline-item .timeline-dot { top:50%; left:50%; right:auto; transform:translate(-50%,-50%); width:12px; height:12px; border:3px solid #fff; border-image:none; background:#14b9e6; box-shadow:0 0 0 2px #9ddff6; }
.ui-page-about .timeline-content::before { display:none; }
.ui-page-about .timeline-content::after { content:''; position:absolute; top:calc(50% - 9px); width:18px; height:18px; background:#fff; transform:rotate(45deg); }
.ui-page-about .timeline-item:nth-child(odd) .timeline-content::after { right:-9px; }
.ui-page-about .timeline-item:nth-child(even) .timeline-content::after { left:-9px; }
.ui-page-about .network-visual { padding:0; height:auto; min-height:0; aspect-ratio:24/7; background:none; }
.ui-page-about .network-visual::before, .ui-page-about .network-visual::after { display:none; }
.ui-page-about .ui-network-image { display:block; width:100%; height:auto; }
.cms-news-detail-content { overflow-wrap:anywhere; }
.cms-news-detail-content img, .cms-news-detail-content video { max-width:100%; height:auto; }
.cms-news-detail-content table { display:block; max-width:100%; overflow-x:auto; }
.cms-article-navigation { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:28px 0 0; margin-top:36px; border-top:1px solid #dce7f3; }
.cms-article-navigation a { padding:20px; background:#f0f6ff; color:#1356ac; border-radius:12px; text-decoration:none; overflow-wrap:anywhere; }
.cms-article-navigation a:last-child { text-align:right; }
.cms-article-navigation a:hover { background:#e1efff; }
.cms-article-navigation a:focus-visible { outline:3px solid #1c72d8; outline-offset:3px; }
.back-to-top { position:fixed; z-index:90; right:77px; bottom:92px; width:55px; height:55px; padding:0; border:0; border-radius:50%; background:transparent url('../image/back-to-top-20260924.png') center / contain no-repeat; font-size:0; cursor:pointer; }
.back-to-top:hover { filter:brightness(1.08); }
.back-to-top:focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
.subscribe-section .subscribe-text { flex:1; }
.ui-page-news .subscribe-text { max-width:none; min-width:0; }
@media(min-width:1025px) {
  .ui-page-news .subscribe-text h3 { white-space:nowrap; }
  .ui-page-news .subscribe-section .cta-actions { flex-shrink:0; }
}
.subscribe-section .cta-btn-primary, .subscribe-section .cta-btn-outline { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:12px 20px; border-radius:8px; text-decoration:none; font-size:14px; font-weight:700; border:1px solid #ffffff80; white-space:nowrap; }
.subscribe-section .cta-btn-primary { background:#fff; color:#155fc4; }
.subscribe-section .cta-btn-outline { background:transparent; color:#fff; }
.subscribe-section .subscribe-content { gap:32px; }
.subscribe-section .subscribe-text h3 { font-size:clamp(22px,2.2vw,30px); line-height:1.5; }
@media(min-width:1024px) {
  .ui-page-index .home-snap-module-closing .metrics-section { min-height:max(340px, 42%); }
}
@media(max-width:768px) {
  body:not(.ui-page-index) .section { padding-top:40px; padding-bottom:40px; }
  .ui-page-system .section.stage-section { scroll-margin-top:-40px; }
  body:not(.ui-page-index) .section-header { margin-bottom:26px; }
  .ui-page-index .business-card-body { padding:20px; }
  .ui-page-index .home-snap-module-closing .metrics-section { padding:32px 0; }
  .ui-page-value .timeline-section .container { padding:0 20px; }
  .ui-page-value .summary-card { padding:28px 20px; }
  .ui-page-about .timeline::before { left:8px; transform:none; }
  .ui-page-about .timeline-item { display:flex; flex-direction:column; align-items:stretch; gap:14px; padding-left:36px; margin-bottom:32px; }
  .ui-page-about .timeline-item .timeline-year { order:0; text-align:left !important; font-size:26px; }
  .ui-page-about .timeline-item .timeline-content { order:1; text-align:left !important; padding:24px; }
  .ui-page-about .timeline-item .timeline-dot { left:9px; top:18px; }
  .ui-page-about .timeline-content::after { display:none; }
  .cms-article-navigation { grid-template-columns:1fr; gap:12px; }
  .cms-article-navigation a:last-child { text-align:left; }
  .back-to-top { bottom:82px; }
  .subscribe-section .cta-actions { justify-content:center; }
}
@media(prefers-reduced-motion:reduce) {
  .cta-actions a, .cta-section .btn { transition:none; }
  .ui-page-departments .model-card { transition:none; }
  .ui-page-departments .model-card:hover, .ui-page-departments .cta-section .btn:hover { transform:none; }
}
