/* InnoFlow Instruments — dynamic section styles (admin-managed images).
 * Keeps uploaded photos looking clean inside the original layout.
 */

/* Why Choose Us icons — premium navy gradient + white glyph */
.advantage-icon {
  background: linear-gradient(135deg, #1e3a8a 0%, #2f4580 55%, #1b2a4a 100%) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(27, 42, 74, .28);
}
.advantage-icon svg { color: #fff; }

/* Support page installation icons — same premium style as Why Choose Us */
.install-icon {
  background: linear-gradient(135deg, #1e3a8a 0%, #2f4580 55%, #1b2a4a 100%) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(27, 42, 74, .28);
}
.install-icon svg { color: #fff; }

/* Why Choose Us icon images (uploaded photo replaces the default SVG icon). */
.advantage-icon img {
  width: 50px;
  height: 50px;
  border-radius: 4px;
  object-fit: cover;
  display: block;
}

/* Home application tiles — photos should crop, not stretch. */
.app-tile img {
  object-fit: cover;
  border-radius: 4px;
}

/* Applications page row media — photos crop nicely in the round container. */
.app-row-media img {
  object-fit: cover;
  border-radius: 4px;
}

/* Contact map image fills the block. */
.contact-map img {
  min-height: 240px;
  object-fit: cover;
}

/* ── Applications: paginated list ─────────────────────────────────── */
.app-list-wrap { display: flex; flex-direction: column; gap: 0; }

/* ── Pagination controls (shared for Apps & News) ─────────────────── */
.sc-pager, .sc-news-pager {
  display: flex; align-items: center; justify-content: center;
  gap: 6px; margin: 36px 0 12px; flex-wrap: wrap;
}
.sc-page-btn {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 7px 14px; border: 1px solid var(--border, #d8dee6);
  border-radius: 4px; background: #fff; font-size: 14px;
  cursor: pointer; color: var(--ink, #1f2937);
  transition: background .15s, border-color .15s;
}
.sc-page-btn:hover:not(:disabled) { background: var(--bg-alt, #f3f5f8); border-color: var(--navy-700, #1b2a4a); }
.sc-page-btn:disabled { opacity: .4; cursor: default; }
.sc-page-btn.sc-page-active { background: var(--navy-700, #1b2a4a); color: #fff; border-color: var(--navy-700, #1b2a4a); }

/* ── Application detail page ──────────────────────────────────────── */
.app-detail { max-width: 860px; margin: 0 auto; }
/* Keep the sticky header/subnav from covering the section top when the
   detail page is opened (scroll lands on the start of the detail). */
.sc-app-wrap { scroll-margin-top: 150px; }
/* 深链接详情（直接打开 /applications/<slug>/）在 React 404 布局里渲染：
 * 底部加留白，避免底部 Back 按钮紧贴页脚 */
.sc-app-wrap[data-sc-deep="1"] { padding-bottom: 80px; }
.app-back-btn {
  display: inline-flex; align-items: center; gap: 8px;
  margin-bottom: 28px; font-size: 14px;
  border: 1px solid var(--border, #d8dee6); border-radius: 4px;
  padding: 7px 16px; background: #fff; cursor: pointer;
  color: var(--ink, #1f2937); transition: background .15s;
}
.app-back-btn:hover { background: var(--bg-alt, #f3f5f8); }

/* Back button at the BOTTOM of the application detail page */
.app-detail-footer {
  margin-top: 44px; padding-top: 30px;
  border-top: 1px solid var(--border-light, #e6eaf0);
  text-align: center;
}
.app-detail-footer .app-back-btn {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 15.5px; font-weight: 600; letter-spacing: .01em;
  color: var(--navy-700, #1b2a4a);
  background: linear-gradient(135deg, #eef3ff 0%, #e3ebfb 100%);
  border: 1px solid #c9d6f0; border-radius: 999px;
  padding: 13px 34px; margin: 0; cursor: pointer;
  box-shadow: 0 2px 10px rgba(27,42,74,.08);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.app-detail-footer .app-back-btn svg { transition: transform .2s ease; }
.app-detail-footer .app-back-btn:hover {
  background: linear-gradient(135deg, #e0e9fd 0%, #d4e1f9 100%);
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(27,42,74,.16);
}
.app-detail-footer .app-back-btn:hover svg { transform: translateX(-3px); }
.app-detail-footer .app-back-btn:active { transform: translateY(0); box-shadow: 0 2px 8px rgba(27,42,74,.1); }
.app-detail-hero { border-radius: 10px; overflow: hidden; background: var(--bg-alt, #f3f5f8); margin-bottom: 28px; }
.app-detail-main-img { width: 100%; max-height: 420px; object-fit: cover; display: block; }
.app-detail-title { font-size: clamp(1.6rem, 3vw, 2.2rem); color: var(--ink, #1b2a4a); margin: 0 0 16px; }
.app-detail-intro { font-size: 1.06rem; line-height: 1.75; color: var(--body, #374151); margin-bottom: 28px; }
/* News detail rendered inside the list grid: switch to a centred column */
.news-grid.sc-news-detail-mode { display: block; }
.news-grid.sc-news-detail-mode > .app-detail { max-width: 860px; margin: 0 auto; }

/* Homepage applications heading: subtitle stays on a single line */
.sc-lead-nowrap { white-space: nowrap; }

/* News detail meta (category + date), laid out on the app-detail skeleton */
.news-detail-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 18px;
  margin: -6px 0 14px;
}
.news-detail-meta .news-tag,
.news-detail-meta .news-date {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: .85rem;
  color: var(--muted, #6b7280);
}
.news-detail-meta .news-tag {
  color: var(--blue-700, #1d4ed8);
  background: rgba(29, 78, 216, .08);
  padding: 3px 10px;
  border-radius: 999px;
}
.app-detail-gallery { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 28px; }
.app-detail-extra-img { height: 180px; width: auto; border-radius: 8px; object-fit: cover; }
.app-detail-section {
  border-top: 1px solid var(--border-light, #e6eaf0);
  padding: 28px 0;
}
.app-detail-section h2 {
  display: flex; align-items: center; gap: 8px;
  font-size: 1.18rem; color: var(--navy-700, #1b2a4a); margin: 0 0 12px;
}
.app-detail-section h3 { font-size: 1rem; color: var(--ink, #1f2937); margin: 0 0 8px; }
.app-detail-section p { line-height: 1.75; color: var(--body, #374151); margin: 0; }
.app-detail-contact { background: var(--bg-alt, #f3f5f8); border-radius: 8px; padding: 28px 32px; border-top: none; margin-top: 12px; }
.app-detail-contact h2 { margin-bottom: 8px; }
.app-detail-contact p { margin-bottom: 20px; }
.app-detail-contact-btns { display: flex; gap: 14px; flex-wrap: wrap; }
.app-products { list-style: none; padding: 0; margin: 10px 0 0; display: flex; gap: 8px; flex-wrap: wrap; }
.app-products li { background: var(--bg-alt, #f3f5f8); border: 1px solid var(--border-light, #e6eaf0); border-radius: 4px; padding: 4px 12px; font-size: 13.5px; }
.app-products a { color: var(--navy-700, #1b2a4a); text-decoration: none; }
.app-products a:hover { text-decoration: underline; }

/* ── Contact: multiple entries per card ───────────────────────────── */
.contact-multi { display: flex; flex-direction: column; gap: 4px; }
.contact-multi a { color: var(--blue-700, #1d4ed8); font-size: 14px; }

/* ── Contact cards with contact-person names (Contact page) ──────────────
 * Mirrors the original bordered four-column card layout (Email / Phone /
 * WhatsApp / Working Hours); every email / phone / WhatsApp value line is
 * prefixed by the contact person's name. */
.sc-contact-cards {
  margin-bottom: 40px;
}
/* Contact person table: header row (red-boxed in the design) + one row per
 * person, the name in the first column only, values aligned in the row. */
.sc-contact-table {
  width: 100%;
  border: 1px solid var(--border-light, #e6eaf0);
  border-radius: 10px;
  overflow: hidden;
  background: var(--bg, #fff);
}
.sc-ct-head,
.sc-ct-row {
  display: grid;
  grid-template-columns: 1.1fr 1.5fr 1.2fr 1.2fr;
}
.sc-ct-head {
  background: #eef2f7;
  font-weight: 600;
  font-size: .9rem;
  color: var(--ink, #1b2a4a);
}
.sc-ct-head span,
.sc-ct-row span {
  padding: 18px 18px;
  font-size: .9rem;
}
.sc-ct-row {
  border-top: 1px solid var(--border-light, #e6eaf0);
  min-height: 130px;
  align-items: center;
}
/* WeChat QR code row inside the contact table (same height as person rows).
 * Switches from the 4-column grid to a centred flex row so the codes sit in
 * the middle and spread outwards symmetrically when more are added. */
.sc-ct-row.sc-ct-qr-row {
  display: flex;
  grid-column: 1 / -1;
  justify-content: center;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
  padding: 18px;
}
.sc-wechat-qr {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.sc-wechat-qr img {
  width: 140px;
  height: 140px;
  object-fit: contain;
  padding: 8px;
  background: #fff;
  border: 1px solid var(--border-light, #e6eaf0);
  border-radius: 10px;
}
.sc-wechat-qr-ph {
  width: 140px;
  height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f4f8;
  border-radius: 10px;
  color: #9aa5b1;
}
.sc-wechat-qr-caption {
  font-size: .88rem;
  color: var(--muted, #6b7280);
}
.sc-ct-row span {
  color: var(--body, #52607a);
  word-break: break-word;
  display: flex;
  align-items: center;
  gap: 6px;
}
.sc-ct-name {
  display: block;
  font-weight: 600;
  color: var(--ink, #1b2a4a);
}
.sc-ct-role {
  display: block;
  font-style: normal;
  font-weight: 400;
  font-size: .78rem;
  color: var(--muted, #6b7280);
  margin-top: 2px;
}
.sc-ct-row a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--blue-700, #1d4ed8);
}
.sc-ct-hours {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 14px;
  padding: 13px 18px;
  border: 1px solid var(--border-light, #e6eaf0);
  border-radius: 10px;
  background: var(--bg, #fff);
  font-size: .88rem;
  color: var(--muted, #6b7280);
}
@media (max-width: 640px) {
  .sc-ct-head { display: none; }
  .sc-ct-row {
    grid-template-columns: 1fr;
    gap: 3px;
    padding: 10px 12px;
  }
  .sc-ct-row span { padding: 3px 0; }
  .sc-ct-name { font-size: 1rem; }
}

/* ── About page: After-Sales & Delivery steps with images ─────────────── */
.sc-aftersales-grid { margin-top: 4px; }
.sc-step-img {
  width: 100%;
  height: 130px;
  object-fit: cover;
  border-radius: 8px;
  margin-bottom: 14px;
  display: block;
  background: var(--bg-alt, #f3f5f8);
}
.sc-step-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 130px;
  margin-bottom: 14px;
  border-radius: 8px;
  background: rgba(27, 42, 74, 0.06);
  color: var(--navy-700, #1b2a4a);
}

/* Product detail gallery — carousel dots + hover zoom */
.pd-media { position: relative; overflow: hidden; }
.pd-media > img { transition: transform .25s ease; will-change: transform; cursor: zoom-in; }
.pd-media.pd-zooming > img { transform: scale(1.8); }
.pd-dots { display: flex; justify-content: center; gap: 8px; padding: 14px 0 2px; }
.pd-dot {
  width: 10px; height: 10px; border-radius: 50%; border: none;
  background: #cbd5e1; cursor: pointer; padding: 0;
  transition: background .2s, transform .2s;
}
.pd-dot:hover { background: #94a3b8; }
.pd-dot.active { background: #1b2a4a; transform: scale(1.15); }
@media (max-width: 640px) {
  .pd-media.pd-zooming > img { transform: scale(1.45); }
}

/* ── Application detail: rich body (text + inline images) ─────────── */
.app-detail-body { border-top: 1px solid var(--border-light, #e6eaf0); padding: 28px 0; }
.app-detail-rich { margin-top: 8px; }
.app-body-block { margin: 0 0 20px; }
.app-body-block img,
.app-detail-rich img,
.app-detail-body img {
  max-width: 100%; height: auto; border-radius: 8px; display: block; margin: 0 auto 16px;
}
.app-body-para { line-height: 1.75; color: var(--body, #374151); margin: 0 0 16px; }
.app-detail-rich p { line-height: 1.75; color: var(--body, #374151); margin: 0 0 16px; }

/* ── News cards (data-driven) ─────────────────────────────────────── */
.news-card { background: #fff; border: 1px solid var(--border-light, #e6eaf0); border-radius: 10px; overflow: hidden; transition: box-shadow .2s; }
.news-card:hover { box-shadow: 0 4px 20px rgba(27,42,74,.10); }
.news-card-img { overflow: hidden; aspect-ratio: 16/9; background: var(--bg-alt, #f3f5f8); }
.news-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.news-card:hover .news-card-img img { transform: scale(1.04); }
.news-card-body { padding: 20px; }
.news-tag {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase;
  color: var(--navy-700, #1b2a4a); background: var(--bg-alt, #f0f4ff); border-radius: 4px;
  padding: 3px 8px; margin-bottom: 10px;
}
.news-date {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 13px; color: var(--muted, #6b7280); margin: 0 0 8px; margin-left: 8px;
}
.news-card-body h3 { font-size: 1.05rem; color: var(--ink, #1b2a4a); margin: 0 0 8px; line-height: 1.4; }
.news-card-body p { font-size: .93rem; line-height: 1.65; color: var(--body, #374151); margin: 0 0 14px; }

/* ── Admin rich-text editor toolbar ──────────────────────────────── */
.rte-toolbar {
  display: flex; flex-wrap: wrap; gap: 4px; padding: 8px;
  background: #f8f9fa; border: 1px solid var(--border, #d8dee6);
  border-bottom: none; border-radius: 6px 6px 0 0;
}
.rte-toolbar button {
  padding: 4px 10px; font-size: 13px; border: 1px solid #d8dee6;
  border-radius: 4px; background: #fff; cursor: pointer; color: #374151;
  transition: background .15s;
}
.rte-toolbar button:hover { background: var(--bg-alt, #e8edf4); }
.rte-toolbar .rte-sep { width: 1px; background: #d8dee6; margin: 2px 4px; align-self: stretch; }
.rte-editor {
  min-height: 200px; padding: 14px; border: 1px solid var(--border, #d8dee6);
  border-radius: 0 0 6px 6px; outline: none; font-size: 15px; line-height: 1.7;
  background: #fff;
}
.rte-editor:focus { border-color: #4f8ef7; }
.rte-editor img { max-width: 100%; border-radius: 6px; margin: 8px 0; display: block; }
.rte-insert-img {
  margin-top: 8px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
}
.rte-insert-img input { flex: 1; min-width: 0; font-size: 13px; }
.rte-hint { font-size: 12px; color: var(--muted, #6b7280); margin-top: 6px; }

@media (max-width: 640px) {
  .app-detail-contact-btns { flex-direction: column; }
}

/* ================================================================
 * v6 — uploaded image display refinements
 * ================================================================ */

/* Uploaded/content images: never overflow their container; scale down
 * automatically and keep the intrinsic aspect ratio. */
img {
  max-width: 100%;
  height: auto;
}

/* ── Home: Applications tiles — photos now match the product-card media
 * look (full card width, 16:11 crop) instead of the old 84px thumbnail. */
.app-tile img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  border-radius: 6px;
  margin-bottom: 12px;
}

/* ── Home: Why Choose Us — uploaded photos become full-width card media
 * (same look as the product cards above); without an uploaded image the
 * small built-in icon badge is preserved. */
.advantage-card {
  display: flex;
  flex-direction: column;
}
.advantage-card .advantage-icon:has(img) {
  display: block;
  width: 100%;
  height: auto;
  padding: 0;
  margin-bottom: 16px;
  border-radius: 6px;
  background: none;
  box-shadow: none;
}
.advantage-icon img {
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 11;
  object-fit: cover;
  border-radius: 6px;
  display: block;
}

/* ── Home: Our Partners — show the logos in their original colours
 * (remove the grayscale filter applied by the bundle). */
.logo-strip img {
  filter: grayscale(0) !important;
  opacity: 1 !important;
}

/* ── Applications list: consistent left main image regardless of the
 * aspect ratio of the uploaded photo (fixed 4:3 crop, fill + cover). */
.app-row-media {
  position: relative;
  width: 100%;
  max-width: 280px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border-radius: 8px;
  background: var(--bg-alt, #f3f5f8);
  flex: none;
}
.app-row-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0;
  object-fit: cover;
}

/* ── About — Who We Are: bigger image + refined text layout */
#who-we-are .split {
  grid-template-columns: 1fr 1.15fr;
  gap: 56px;
}
#who-we-are .split-copy {
  padding: 6px 0;
}
#who-we-are .split-copy p {
  line-height: 1.8;
  margin: 0 0 16px;
  color: var(--body, #374151);
}
#who-we-are .split-copy .check-list li {
  line-height: 1.65;
}
#who-we-are .split-media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid var(--border-light, #e6eaf0);
  box-shadow: 0 20px 44px rgba(27, 42, 74, 0.16);
}

/* ── About — After-Sales & Global Delivery: equal-height aligned cards
 * (image on top, number, title, text in a clean vertical flow). */
.sc-aftersales-grid .step-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.sc-aftersales-grid .sc-step-img,
.sc-aftersales-grid .sc-step-ico {
  width: 100%;
  height: 150px;
  flex: none;
}
.sc-aftersales-grid .step-card .step-num {
  margin-top: 2px;
}

/* Responsive */
@media (max-width: 767px) {
  #who-we-are .split {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .app-row-media {
    max-width: 100%;
  }
}

/* ================================================================
 * v7 — Home applications: 4-up grid matching the Why Choose Us block,
 * photos at the same size as the Why Choose Us card media (full width,
 * 16:11 crop). Tablet/mobile follow the same breakpoints as the
 * advantage grid.
 * ================================================================ */
.app-grid {
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
}
.app-tile {
  padding: 28px 24px;
}
.app-tile h3 {
  font-size: 16.5px;
  margin-bottom: 6px;
}
.app-tile .text-link {
  font-size: 13.5px;
}
@media (max-width: 1024px) {
  .app-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 767px) {
  .app-grid {
    grid-template-columns: 1fr;
  }
}

/* ================================================================
 * v8 — Applications list: back-to-list lands on the matching case row
 * (sticky-header offset + brief highlight).
 * ================================================================ */
.app-row {
  scroll-margin-top: 170px;
}
/* Slight breathing room between the Applications hero heading and the
 * detail / list container rendered right below it (deep-link take-over
 * and list pages). */
.page-hero + .sc-app-wrap {
  margin-top: 28px;
}

/* ================================================================
 * v11 — WhatsApp float kept expanded, detail top bar, consistent
 * detail image ratio, footer certification badges
 * ================================================================ */

/* WhatsApp floating button: keep the expanded pill state ("Chat with us")
 * at all times instead of collapsing to a round icon until hover. */
.whatsapp-float {
  width: auto;
  border-radius: 28px;
  padding: 0 20px;
}
.whatsapp-float-label {
  opacity: 1;
}
.whatsapp-float:hover {
  width: auto;
  border-radius: 28px;
  padding: 0 20px;
}

/* Top-left back bar on application / news detail pages (pill button, same
 * look as the footer back button so the two match). */
.app-detail-topbar {
  display: flex;
  justify-content: flex-start;
  margin-bottom: 18px;
  margin-top: 24px; 
}
.app-detail-topbar .app-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 14.5px;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--navy-700, #1b2a4a);
  background: linear-gradient(135deg, #eef3ff 0%, #e3ebfb 100%);
  border: 1px solid #c9d6f0;
  border-radius: 999px;
  padding: 9px 20px;
  margin: 0;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(27, 42, 74, .08);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.app-detail-topbar .app-back-btn svg { transition: transform .2s ease; }
.app-detail-topbar .app-back-btn:hover {
  background: linear-gradient(135deg, #e0e9fd 0%, #d4e1f9 100%);
  transform: translateX(-2px);
  box-shadow: 0 6px 18px rgba(27, 42, 74, .14);
}
.app-detail-topbar .app-back-btn:hover svg { transform: translateX(-3px); }

/* News list cards: sticky-header offset + focus highlight (reused class)
 * when returning from a news detail. */
.news-card {
  scroll-margin-top: 170px;
}

/* Deep-link news detail takeover (/news/<slug> loaded directly): the React
 * plain-text article and related section are hidden and this wrapper holds
 * the rich-text detail rendered by site-content.js. */
.sc-news-deep {
  padding: 40px 0 70px;
}
.sc-news-deep .news-grid.sc-news-detail-mode {
  display: block;
}
.sc-news-deep .news-grid.sc-news-detail-mode > .app-detail {
  max-width: 860px;
  margin: 0 auto;
}

/* Footer certification badges — placed inside the .footer-grid spanning the
 * last two columns (directly below the SUPPORT and COMPANY columns).
 * Compact badges so all 7 fit on ONE row on desktop. */
.sc-cert-strip {
  grid-column: 3 / -1;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  padding: 6px 0 2px;
  margin-top: -237px; 
}
.sc-cert-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  background: transparent;
  border-radius: 6px;
  padding: 5px 8px;
  box-shadow: none;
}
.sc-cert-item svg {
  display: block;
  height: 40px;
  width: auto;
}
.sc-cert-img {
  display: block;
  height: 40px;
  width: auto;
  max-width: 96px;
  object-fit: contain;
}
@media (max-width: 1100px) {
  .sc-cert-strip {
    flex-wrap: wrap;
  }
}
@media (max-width: 767px) {
  .sc-cert-strip {
    grid-column: 1 / -1;
    justify-content: center;
    gap: 8px;
  }
  .sc-cert-item svg,
  .sc-cert-img {
    height: 38px;
  }
}
.sc-focus-row {
  animation: sc-focus-pulse 3.5s ease;
}
@keyframes sc-focus-pulse {
  0%, 100% {
    background: transparent;
    box-shadow: none;
  }
  25%, 60% {
    background: rgba(37, 99, 235, 0.08);
    box-shadow: inset 4px 0 0 var(--navy-700, #1b2a4a);
  }
}

.footer-bottom {
  margin-top: -60px;   /* 负值上移：线+文字一起上移，数值自调（-10 ~ -40） */
}
