/* Overrides and small helpers on top of style-liberty.css */

/* Prefer system fonts to avoid remote font downloads */
:root {
  --lkd-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif,
    "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
  /* Bootstrap compatibility */
  --bs-font-sans-serif: var(--lkd-font-sans);
}
html, body { font-family: var(--lkd-font-sans) !important; }
/* Global typography weights */
body { font-weight: 300 !important; }
h1, h2, h3, h4, h5, h6 { font-weight: 700 !important; }
.card-title, .title-w3l, .title-big { font-weight: 700 !important; }
/* Ensure all common UI uses the same family */
h1, h2, h3, h4, h5, h6,
.navbar, .btn, .dropdown-menu,
.card, .breadcrumb, .lead, .post-content,
form, input, button, textarea, select { font-family: inherit !important; }
h1, h2, h3, h4, h5, h6,
.navbar, .btn, .dropdown-menu,
.card, .breadcrumb, .lead, .post-content,
form, input, button, textarea, select { font-family: inherit !important; }

/* Header logo sizing and spacing */
.navbar-brand img { height: 44px; width: auto; display: block; }
.navbar .navbar-brand { margin-right: 1.75rem; }
.navbar-nav .nav-link { padding: 0.75rem 1rem; }
.navbar .dropdown .btn.dropdown-toggle { padding: 0.5rem 0.875rem; }
.navbar .dropdown .btn.dropdown-toggle:focus { box-shadow: none; }

/* Increase space between brand and collapsed nav on wide screens */
@media (min-width: 992px) {
  #navbarScroll { margin-left: 2.25rem; }
}

/* Language dropdown button alignment + caret */
.navbar .dropdown .btn.dropdown-toggle { display: inline-flex; align-items: center; gap: .5rem; line-height: 1.25; }
.navbar .dropdown .btn.dropdown-toggle::after { border-top-color: #fff; margin-left: .35rem; vertical-align: middle; }
.navbar .dropdown-menu.dropdown-menu-end { right: 0; left: auto; margin-top: .375rem; }

/* Footer columns: 40% / 20% / 40% on large screens */
@media (min-width: 992px) {
  .w3l-footer-29-main .footer-col-40 { flex: 0 0 40%; max-width: 40%; }
  .w3l-footer-29-main .footer-col-20 { flex: 0 0 20%; max-width: 20%; }
}

/* Make footer row span full container width without extra side gaps */
.w3l-footer-29-main .footer-top-29 { width: 100%; }

/* Footer logo sizing */
.w3l-footer-29-main .footer-logo-img { max-height: 64px; width: auto; height: auto; }

/* Hero breadcrumbs overlay (global: match news style for clarity) */
.news-hero { position: relative; }
.news-hero .news-breadcrumb .breadcrumb { 
  background: rgba(255,255,255,0.16);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  backdrop-filter: saturate(180%) blur(14px);
  border: 1px solid rgba(255,255,255,0.28);
  color: #fff;
  padding: .5rem 1rem;
  border-radius: 2rem;
}
.news-hero .news-breadcrumb .breadcrumb a { color: #fff; }
.news-hero .news-breadcrumb .breadcrumb-item+.breadcrumb-item::before { color: rgba(255,255,255,0.6); }
.news-hero .news-breadcrumb .breadcrumb .active { color: #fff; }

/* Hero background image support when fed from content */
.slider-info.banner-view { background-size: cover; background-position: center; }

/* Footer social icons: brand color, no solid background */
.w3l-footer-29-main .main-social-footer-29 a { 
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px;
  color: var(--bs-primary) !important;
  background: transparent !important;
  border: 1px solid rgba(13,110,253,.25);
  border-radius: 50%;
  transition: .2s ease;
}
.w3l-footer-29-main .main-social-footer-29 a:hover {
  color: #fff !important; background: var(--bs-primary) !important; border-color: var(--bs-primary);
}

/* Solutions cards equal height */
.w3l-solutions .card { height: 100%; }

/* Advantages spacing tweaks */
.home-page-gds { padding-top: 2rem !important; padding-bottom: 2.5rem !important; }
.home-page-gds .header-sec { padding-top: 0 !important; margin-top: 0 !important; }
.w3l-project-main { margin-top: 2rem; }

/* News cards equal height */
.w3l-courses .row > [class^='col'],
.w3l-courses .row > [class*=' col'] { display: flex; }
.w3l-courses .card { display: flex; flex-direction: column; }
.w3l-courses .card-body { display: flex; flex-direction: column; flex: 1 1 auto; }
.w3l-courses .blog-bottom-info { margin-top: auto; }

/* Ensure badge (type) is left-aligned and not full width */
.w3l-courses .card-body > .badge { display: inline-block; width: auto; text-align: left; }
#classes .card-body.p-4 > a.badge {
  display: inline-flex !important;
  max-width: 100%;
  text-align: left;
  width: -moz-fit-content;
  width: fit-content;
  align-items: center;
}

/* News list page badges match homepage sizing */
#news-list .card-body.p-4 > a.badge {
  display: inline-flex !important;
  max-width: 100%;
  text-align: left;
  width: -moz-fit-content;
  width: fit-content;
  align-items: center;
}

/* Disable any image zoom/enlarge effect on card hover */
.card .card-img-top { transition: none !important; transform: none !important; }
.card:hover .card-img-top { transform: none !important; }

/* Disable avatar hover zoom for all card footers (global) */
.card-footer img { transition: none !important; transform: none !important; }
.card-footer img:hover { transform: none !important; }

/* Apply consistent shadow and border removal to all cards (match reference) */
.card { box-shadow: 0 .5rem 1rem rgba(0,0,0,.15) !important; border: 0 !important; }

/* Remove previous global shadow and date badge (use Bootstrap .shadow on specific cards) */

/* --- Post content typography (single pages) --- */
.post-content { font-size: .98rem; line-height: 1.75; }
.post-content p { margin-bottom: 1.3rem; }
.post-content img { margin: 1rem 0; border-radius: .25rem; }
.post-content ul, .post-content ol { margin: .75rem 0 1.1rem 1.25rem;}
.post-content li { margin-bottom: .35rem;}
.post-content blockquote {
  border-left: 4px solid rgba(13,110,253,.35);
  padding: .5rem 1rem; margin: 1rem 0 1.25rem;
  color: #444; background: rgba(13,110,253,.04);
}
.post-content h1, .post-content h2, .post-content h3,
.post-content h4, .post-content h5, .post-content h6 {
  margin-top: 1.25rem; margin-bottom: .75rem; font-weight: 600;
}
.post-content h1 { font-size: 1.35rem; }
.post-content h2 { font-size: 1.15rem; }
.post-content h3 { font-size: 1.22rem; }
.post-content h4 { font-size: 1.15rem; }
.post-content h5 { font-size: 1.1rem; }
.post-content h6 { font-size: 1rem; }

/* Related tags alignment and spacing */
.related-tags { display: block; }
.related-tags .badge { font-weight: 500; }

/* Increase top spacing for remapped headings (## -> h4, ### -> h5) */
.post-content h4, .post-content h5 { margin-top: 1.0rem; }

/* Ensure unordered lists in posts show small dot bullets */
.post-content ul li { list-style-type: disc; list-style-position: outside; margin-left: 1rem; }
.post-content ul ul { list-style-type: circle; }

/* Post navigation (prev/next) lines with ellipsis */
.post-nav a { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.2; margin: 0; }
.post-nav a .dir { font-size: 1rem; }
.post-nav a .title { font-size: 1rem; }

/* Highlight rows that differ across products (from Scanning Mode onward) */
.compare-table td.row-diff,
.compare-table td.row-diff-label {
  background-color: rgba(13,110,253,.12);
  transition: background-color .2s ease;
}
/* Ensure first sticky column also reflects diff background */
.compare-table tr td:first-child.row-diff-label {
  background-color: rgba(13,110,253,.12);
}
.compare-table tr:hover td { background-color: rgba(0,0,0,.02); }
/* Keep diff rows more prominent on hover */
.compare-table tr:hover td.row-diff,
.compare-table tr:hover td.row-diff-label {
  background-color: rgba(13,110,253,.16);
}

/* Product single page tweaks */
#product-detail .product-head h3 { font-weight: 700; }
#product-detail .post-content h2 { border-left: 4px solid rgba(13,110,253,.4); padding-left: .5rem; }
.product-content table thead th { background: rgba(0,0,0,.035); font-weight: 600; }
.product-content table tbody tr:nth-child(odd) { background: rgba(0,0,0,.02); }
.product-content table tbody tr:nth-child(even) { background: transparent; }

/* Solution single page tweaks */
#solution-detail .solution-head h3 { font-weight: 700; }
#solution-detail .post-content h2 { border-left: 4px solid rgba(13,110,253,.4); padding-left: .5rem; }
.solution-content table thead th { background: rgba(0,0,0,.035); font-weight: 600; }
.solution-content table tbody tr:nth-child(odd) { background: rgba(0,0,0,.02); }
.solution-content table tbody tr:nth-child(even) { background: transparent; }
/* Application list tweaks */
#applications-list .card-body { padding: .9rem 1rem; }
#applications-list .card-title { font-size: 1.15rem; }
#applications-list img { min-height: 160px; }
/* Application single page tweaks */
#application-detail .application-head h3 { font-weight: 700; }
#application-detail .post-content h2 { border-left: 4px solid rgba(13,110,253,.4); padding-left: .5rem; }
/* Product detail spec tables: two columns 50%/50% within #product-detail */
#product-detail .product-content table {
  width: 100%;
  table-layout: fixed;
}
#product-detail .product-content table th,
#product-detail .product-content table td {
  vertical-align: top;
  word-break: break-word;
}
#product-detail .product-content table tr > th:first-child,
#product-detail .product-content table tr > td:first-child {
  width: 50%;
}
#product-detail .product-content table tr > th:last-child,
#product-detail .product-content table tr > td:last-child {
  width: 50%;
}

/* Remove all borders in compare table */
.compare-table,
.compare-table th,
.compare-table td,
.compare-table > :not(caption) > * > * {
  border: 0 !important;
}

/* About us: leadership photo sizing and layout */
.leader-card { overflow: hidden; }
.leader-photo {
  width: 250px;
  height: 400px;
  object-fit: cover;
  display: block;
}
@media (max-width: 575.98px) {
  .leader-photo { width: 100%; height: auto; aspect-ratio: 4 / 7; }
}

/* About us: bottom gallery (PPT-like) */
.pg-gallery { display: grid; gap: 0.9rem; }
.pg-main { position: relative; border-radius: .75rem; overflow: hidden; background: #fff; border: 1px solid rgba(0,0,0,.06); box-shadow: 0 .6rem 1.5rem rgba(0,0,0,.08); }
.pg-main .pg-slide { display: none; width: 100%; height: auto; max-height: 62vh; object-fit: contain; background: #fff; }
.pg-main .pg-slide.active { display: block; }
.pg-arrow { position: absolute; top: 50%; transform: translateY(-50%); border: 0; width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,.92); color: #000; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 .35rem .9rem rgba(0,0,0,.12); backdrop-filter: saturate(180%) blur(4px); }
.pg-arrow:hover { background: #fff; box-shadow: 0 .5rem 1.2rem rgba(0,0,0,.16); }
.pg-prev { left: .5rem; }
.pg-next { right: .5rem; }
.pg-caption { position: absolute; left: 0; right: 0; bottom: 0; padding: .75rem 1rem 1rem; color: #fff; font-size: 1.06rem; line-height: 1.4; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.55) 45%, rgba(0,0,0,.72) 100%); }

.pg-thumbs-wrapper { position: relative; padding: 0 2rem; }
.pg-thumbs { display: flex; gap: .6rem; overflow-x: auto; scrollbar-width: thin; padding-bottom: .35rem; }
.pg-thumb { height: 70px; width: 110px; object-fit: cover; border-radius: .35rem; opacity: .7; cursor: pointer; flex: 0 0 auto; border: 2px solid transparent; }
.pg-thumb.active { opacity: 1; border-color: var(--bs-primary, #0d6efd); box-shadow: 0 .25rem .75rem rgba(13,110,253,.18); }
.pg-thumbs-arrow { position: absolute; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; border-radius: 50%; border: 0; background: rgba(255,255,255,.85); color: #333; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 .25rem .75rem rgba(0,0,0,.12); }
.pg-thumbs-arrow.left { left: .25rem; }
.pg-thumbs-arrow.right { right: .25rem; }
.pg-thumbs-arrow:hover { background: #fff; box-shadow: 0 .4rem 1rem rgba(0,0,0,.16); }

@media (max-width: 767.98px) {
  .pg-thumb { height: 56px; width: 90px; }
}


/* Override template banner background in project section */
.w3l-project { background: none !important; }
.w3l-project::before { background: none !important; background-image: none !important; }
/* Wanted (home) section enhancements: card-like container + readable text panel */
body > section.w3l-project-main.pb-md-0 .container {
  border-radius: .75rem;
  overflow: hidden;
  box-shadow: 0 .75rem 1.5rem rgba(0,0,0,.15);
}
/* Dark panel behind text for contrast */
.w3l-project .w3l-project-right .header-section {
  background: rgba(0,0,0,.55);
  color: #fff;
  padding: 1rem 1.25rem;
  border-radius: .5rem;
  display: inline-block;
  max-width: 800px;
}
.w3l-project .w3l-project-right .header-section .title-w3l,
.w3l-project .w3l-project-right .header-section p { color: #fff; }
/* Contact page: department cards */
#contact-us .dept-card .dept-icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(13,110,253,.12); color: var(--bs-primary);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.25rem;
}
#contact-us .dept-card a { text-decoration: none; }
/* Visually hide the "Why Us" title on homepage but keep it for SEO */
section.w3l-grids-3.home-page-gds .header-sec .title-w3l {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ==========================
   News Hero Overlay (simple)
   ========================== */
.news-hero--news { position: relative; overflow: hidden; background: linear-gradient(45deg, #0b3d91 0%, #ffd24d 100%); }
.news-hero--news > .container { position: relative; z-index: 1; }
.news-hero--news::after { content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0; background: rgba(255,255,255,0.08); -webkit-backdrop-filter: saturate(180%) blur(12px); backdrop-filter: saturate(180%) blur(12px); box-shadow: inset 0 40px 80px rgba(2,30,73,.35); }
/* News card image sizing (list + home): keep proportion, consistent crop */
#news-list .card-img-top.news-card-img,
#blog .card-img-top.news-card-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
#news-list .card { border-radius: 10px; overflow: hidden; }
#news-list .card .card-title { line-height: 1.3; }/* Anchor offset for fixed header when jumping to the contact form */
#contact-form { scroll-margin-top: 96px; }
#contact-form:target::before { content: ""; display: block; height: 96px; margin-top: -96px; }

/* Utility: visually hide but keep in DOM for SEO and screen readers */
.seo-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* Variant: hidden but becomes visible when focused (keyboard accessibility) */
.seo-visually-hidden-focusable:not(:focus):not(:active) {
  position: absolute !important;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
/* Leadership social icons */
.leader-social { display: flex; gap: .5rem; margin-top: .5rem; }
.leader-social-icon { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(0,0,0,.12); color: #adb5bd; transition: .2s ease; }
.leader-social-icon.no-link { color: #adb5bd; border-color: #dee2e6; cursor: default; pointer-events: none; }
.leader-social-icon.has-link { color: var(--bs-primary); border-color: rgba(13,110,253,.35); }
.leader-social-icon.has-link:hover { background: currentColor; color: #fff; border-color: currentColor; }
.leader-social-icon.is-linkedin.has-link { color: #0a66c2; border-color: rgba(10,102,194,.35); }
.leader-social-icon.is-twitter.has-link  { color: #1da1f2; border-color: rgba(29,161,242,.35); }
.leader-social-icon.is-facebook.has-link { color: #1877f2; border-color: rgba(24,119,242,.35); }
.leader-social-icon.is-instagram.has-link { color: #E1306C; border-color: rgba(225,48,108,.35); }
.leader-social-icon.is-wechat.has-link    { color: #07C160; border-color: rgba(7,193,96,.35); }
.leader-social-icon.is-email.has-link    { color: var(--bs-primary); border-color: rgba(13,110,253,.35); }

/* News hero: subtle radar waves emanating near the logo */
.news-hero--news { --radar-x: 12%; --radar-y: 32%; }
.news-hero--news .radar-waves { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.news-hero--news .radar-waves span {
  position: absolute; left: var(--radar-x); top: var(--radar-y);
  width: 1vmin; height: 1vmin; border: 1px solid rgba(255,255,255,.32);
  border-radius: 50%; transform: translate(-50%, -50%) scale(0.02);
  opacity: 0; filter: drop-shadow(0 0 3px rgba(255,255,255,.12));
  animation: radarWave 5s linear infinite;
}
.news-hero--news .radar-waves span:nth-child(2) { animation-delay: 1.2s; }
.news-hero--news .radar-waves span:nth-child(3) { animation-delay: 2.4s; }
@keyframes radarWave {
  0%   { transform: translate(-50%, -50%) scale(0.02); opacity: .55; }
  70%  { opacity: .14; }
  100% { transform: translate(-50%, -50%) scale(200); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .news-hero--news .radar-waves { display: none; }
}

/* Solutions list grid: smaller, consistent image ratio */
#solutions-list .card-img-top.sol-card-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
#solutions-list .card { border-radius: 10px; overflow: hidden; }

/* Application detail: flowchart */
#application-detail .wf-flow { list-style: none; padding: 0; margin: 0; display: flex; gap: 1rem; align-items: stretch; flex-wrap: wrap; }
#application-detail .wf-node { position: relative; display: flex; gap: .75rem; align-items: flex-start; flex: 1 1 260px; min-width: 240px; background: #fff; border: 1px solid rgba(0,0,0,.06); border-radius: 12px; padding: .9rem 1rem; box-shadow: 0 .35rem 1rem rgba(0,0,0,.06); }
#application-detail .wf-icon { flex: 0 0 44px; width: 44px; height: 44px; border-radius: 50%; background: var(--bs-primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; box-shadow: 0 .25rem .75rem rgba(13,110,253,.25); }
#application-detail .wf-title { font-weight: 600; margin-bottom: .25rem; }
#application-detail .wf-desc { color: #6c757d; font-size: .95rem; }
#application-detail .wf-node::after { content: ""; position: absolute; top: 50%; right: -0.75rem; width: 1.5rem; height: 2px; background: rgba(13,110,253,.65); }
#application-detail .wf-node:nth-child(2n)::after { background: rgba(13,110,253,.45); }
#application-detail .wf-node:last-child::after { display: none; }

@media (max-width: 767.98px) {
  #application-detail .wf-flow { flex-direction: column; gap: .75rem; }
  #application-detail .wf-node { min-width: auto; }
  #application-detail .wf-node::after { display: none; }
  #application-detail .wf-node::before { content: ""; position: absolute; left: 22px; top: 100%; width: 2px; height: 1.1rem; background: rgba(13,110,253,.35); }
  #application-detail .wf-node:last-child::before { display: none; }
}

  /* 柔和字体颜色 */
  .footer-title-29 {
    color: #6c757d; /* Bootstrap 的 text-muted 灰色 */
    font-weight: 600;
  }

  /* 悬挂缩进对齐：图标固定，文字换行对齐 */
  .contact-list li {
    display: flex;
    align-items: flex-start;
  }
  .contact-list li i {
    width: 20px; /* 固定图标宽度 */
    flex-shrink: 0;
    margin-top: 3px;
  }
  .contact-list li span {
    flex: 1;
  }

  /* Logo 居中 */
  .footer-logo-img {
    max-width: 200px;
  }