/* v3 redesign bridge: layout tweaks on top of v3r-design.css */

/* Typography: v3 全站对齐 v3r-design（--sans / --serif） */
:root {
  --v3-font-body: var(--sans);
  --v3-font-display: var(--serif);
}

body.v3-page {
  font-family: var(--sans);
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.v3-page h1,
.v3-page h2,
.v3-page h3,
.v3-page h4 {
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: 0.005em;
}

.ipf-v3r-hidden,
.section.ipf-v3r-hidden {
  display: none !important;
}

.ipf-anchor {
  display: block;
  height: 0;
  overflow: hidden;
  scroll-margin-top: calc(env(safe-area-inset-top, 0px) + 80px);
}

body.v3-page:has(.site-header.ipf-v3r),
body.v3-page.ipf-v3r {
  padding-top: 0;
  background: var(--paper);
  color: var(--ink);
}

.ipf-v3r .brand img {
  display: block;
  height: 44px;
  width: auto;
  max-width: 140px;
}

.ipf-v3r .lang-menu .lang-link {
  display: flex;
  align-items: center;
  width: 100%;
  padding: 9px 12px;
  border-radius: 5px;
  font-size: 0.86rem;
  color: var(--ink);
  text-decoration: none;
  transition: background-color 0.15s;
}

.ipf-v3r .lang-menu .lang-link:hover,
.ipf-v3r .lang-menu .lang-link.active {
  background: var(--ice);
  color: var(--brand);
  font-weight: 700;
}

.ipf-v3r-footer .foot-recip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  font-size: 0.88rem;
  color: var(--muted);
}

.ipf-v3r-footer .foot-recip nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
}

.ipf-v3r-footer .foot-recip a {
  color: var(--muted);
  text-decoration: none;
}

.ipf-v3r-footer .foot-recip a:hover {
  color: var(--brand);
}

.hero .ratings .home-hero-badge,
.v3-page .bg-badges .bg-badge {
  height: 15px;
  width: auto;
  opacity: 0.92;
}

.v3-page .bg-box .bg-inner .bg-left .bg-badges .bg-badge.badge-ink,
.hero .ratings .badge-ink {
  display: inline-block;
}

.hero .ratings .badge-on-dark,
.v3-page .bg-box .bg-inner .bg-left .bg-badges .bg-badge.badge-on-dark {
  display: none;
}

:root[data-theme="dark"] .hero .ratings .badge-ink,
:root[data-theme="dark"] .v3-page .bg-box .bg-inner .bg-left .bg-badges .bg-badge.badge-ink {
  display: none;
}

:root[data-theme="dark"] .hero .ratings .badge-on-dark,
:root[data-theme="dark"] .v3-page .bg-box .bg-inner .bg-left .bg-badges .bg-badge.badge-on-dark {
  display: inline-block;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .hero .ratings .badge-ink,
  :root:not([data-theme="light"]) .v3-page .bg-box .bg-inner .bg-left .bg-badges .bg-badge.badge-ink {
    display: none;
  }

  :root:not([data-theme="light"]) .hero .ratings .badge-on-dark,
  :root:not([data-theme="light"]) .v3-page .bg-box .bg-inner .bg-left .bg-badges .bg-badge.badge-on-dark {
    display: inline-block;
  }
}

.ipf-nav-auth--lg {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

@media (max-width: 959px) {
  .ipf-nav-auth--lg {
    display: none !important;
  }
}

/* Hero + footer CTA: equal-width button pair (hero wider than footer) */
.hero-top .cta-row,
.final-cta .cta-row {
  display: inline-flex;
  flex-wrap: nowrap;
  max-width: 100%;
}

.hero-top .cta-row {
  width: min(100%, 30rem);
}

.final-cta .cta-row {
  width: min(100%, 20rem);
}

.hero-top .cta-row .btn,
.final-cta .cta-row .btn {
  flex: 1 1 0;
  min-width: 0;
  justify-content: center;
}

/* Header shell: wider track than default .wrap (1200px) */
.site-header.ipf-v3r > .wrap {
  max-width: 1300px;
}

/* Nav labels = UI sans (--sans / --v3-font-body); mega prices = --serif (by design) */
.site-header.ipf-v3r {
  font-family: var(--v3-font-body, var(--sans));
  --bs-body-font-family: var(--sans);
  --bs-btn-font-family: var(--sans);
  --bs-nav-link-font-size: 0.9rem;
  --bs-nav-link-font-weight: 500;
}

.site-header.ipf-v3r .nav-link,
.site-header.ipf-v3r .menu-btn,
.site-header.ipf-v3r .nav-login,
.site-header.ipf-v3r .lang-btn,
.site-header.ipf-v3r .lang-link,
.site-header.ipf-v3r .btn {
  font-family: var(--v3-font-body, var(--sans));
}

@media (min-width: 960px) {
  .site-header.ipf-v3r .bar-in {
    flex-wrap: nowrap;
    gap: clamp(12px, 2vw, 28px);
    min-width: 0;
  }

  .site-header.ipf-v3r .site-nav {
    flex: 1 1 auto;
    min-width: 0;
  }

  .site-header.ipf-v3r .site-nav > ul {
    flex-wrap: nowrap;
  }

  .site-header.ipf-v3r .nav-tools {
    flex: 0 0 auto;
    flex-wrap: nowrap;
  }
}

/* English: longer labels — spacing + compact desktop band before drawer */
@media (min-width: 960px) {
  html[lang="en"] .site-header.ipf-v3r .site-nav > ul {
    gap: 6px;
  }

  html[lang="en"] .site-header.ipf-v3r .nav-link,
  html[lang="en"] .site-header.ipf-v3r .menu-btn {
    padding-inline: 12px;
  }

  html[lang="en"] .site-header.ipf-v3r .nav-login {
    padding-inline: 14px;
  }
}

@media (min-width: 960px) and (max-width: 1280px) {
  .site-header.ipf-v3r .nav-link,
  .site-header.ipf-v3r .menu-btn {
    padding-inline: 8px;
    font-size: 0.86rem;
  }

  .site-header.ipf-v3r .nav-login {
    font-size: 0.86rem;
    padding-inline: 10px;
  }

  .site-header.ipf-v3r .lang-btn {
    padding-inline: 10px;
    font-size: 0.82rem;
  }

  .site-header.ipf-v3r .nav-cta {
    min-height: 40px;
    padding-inline: 14px;
    font-size: 0.88rem;
  }

  html[lang="en"] .site-header.ipf-v3r .bar-in {
    gap: 10px;
  }
}

/* English: switch to drawer before inline nav wraps */
@media (max-width: 1199px) {
  html[lang="en"] .site-header.ipf-v3r .burger {
    display: inline-grid;
  }

  html[lang="en"] .site-header.ipf-v3r .ipf-nav-auth--lg {
    display: none !important;
  }

  html[lang="en"] .site-header.ipf-v3r .site-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: stretch;
    padding: 12px clamp(20px, 4vw, 40px) 24px;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    max-height: calc(100vh - 80px);
    overflow-y: auto;
  }

  html[lang="en"] .site-header.ipf-v3r .site-nav.open {
    display: flex;
  }

  html[lang="en"] .site-header.ipf-v3r .site-nav > ul {
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  html[lang="en"] .site-header.ipf-v3r .nav-link,
  html[lang="en"] .site-header.ipf-v3r .menu-btn {
    width: 100%;
    justify-content: space-between;
    padding: 14px 8px;
    border-radius: 0;
    border-bottom: 1px solid var(--line);
    font-size: 0.9rem;
  }

  html[lang="en"] .site-header.ipf-v3r .site-nav li .menu,
  html[lang="en"] .site-header.ipf-v3r .site-nav li .menu.wide {
    position: static;
    min-width: 0;
    box-shadow: none;
    border: 0;
    padding: 4px 0 8px;
    display: block;
  }

  html[lang="en"] .site-header.ipf-v3r .mobile-only {
    display: flex !important;
    gap: 10px;
    margin-top: 18px;
  }
}

@media (min-width: 1200px) {
  html[lang="en"] .site-header.ipf-v3r .burger {
    display: none;
  }

  html[lang="en"] .site-header.ipf-v3r .mobile-only {
    display: none !important;
  }
}

/* Works with: top border only */
.v3-page.ipf-v3r .works {
  border-bottom: none;
  border-top: 1px solid var(--line);
}

/* Header mega: brand SVG row (pre-redesign) */
.mega-in .v3-mega-brand-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.mega-in .v3-mega-brand-icon {
  display: block;
  width: 20px;
  height: 20px;
  object-fit: contain;
}

@media (min-width: 960px) and (hover: hover) {
  .site-nav li .menu {
    padding-top: 10px;
    margin-top: -10px;
  }
}

/* Solutions section labels: same icons as product mega rows */
.sol-half-label .sol-label-ic {
  width: 28px;
  height: 28px;
  border-radius: 5px;
  display: grid;
  place-items: center;
  background: var(--ice);
  color: var(--brand);
  flex: none;
}

.sol-half-label .sol-label-ic .ic {
  width: 15px;
  height: 15px;
  stroke-width: 1.6;
}

/* Home legacy sections on v3r page shell (token-based for light/dark) */
.v3-page.ipf-v3r .sc-container,
.v3-page.ipf-v3r .ts-container {
  background: var(--paper);
}

.v3-page.ipf-v3r .sc-container .sc-title,
.v3-page.ipf-v3r .ts-container .ts-title {
  color: var(--ink);
}

.v3-page.ipf-v3r .sc-container .sc-title::after,
.v3-page.ipf-v3r .ts-container .ts-title::after {
  background: var(--brand);
}

.v3-page.ipf-v3r h2.sc-title,
.v3-page.ipf-v3r h2.ts-title {
  margin-top: 0;
  margin-bottom: 0;
}

.v3-page.ipf-v3r .sc-title + .sc-cards,
.v3-page.ipf-v3r .ts-container-inner + .ts-marquee-outer {
  margin-top: 4rem;
}

/* Scenario cards must not inherit hero showcase .sc-card positioning */
.v3-page.ipf-v3r .sc-container .sc-cards .sc-card {
  position: static;
  z-index: auto;
  animation: none;
  transform: none;
  background: var(--surface);
  border-color: color-mix(in srgb, var(--brand) 14%, var(--line));
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ink) 6%, transparent);
}

.v3-page.ipf-v3r .sc-container .sc-cards .sc-card .sc-card-icon {
  color: var(--brand);
}

.v3-page.ipf-v3r .sc-container .sc-cards .sc-card .sc-card-title {
  color: var(--ink);
}

.v3-page.ipf-v3r .sc-container .sc-cards .sc-card .sc-card-desc {
  color: var(--muted);
}

.v3-page.ipf-v3r .sc-container .sc-cards .sc-card:hover {
  border-color: color-mix(in srgb, var(--brand) 32%, var(--line));
  box-shadow: 0 12px 28px color-mix(in srgb, var(--ink) 12%, transparent);
}

.v3-page.ipf-v3r .sc-container .sc-cards .sc-card:hover .sc-card-icon,
.v3-page.ipf-v3r .sc-container .sc-cards .sc-card:hover .sc-card-title {
  color: var(--brand);
}

.v3-page.ipf-v3r .sc-container .sc-cards .sc-card:hover .sc-card-desc {
  color: var(--muted);
}

/* Testimonials marquee */
.v3-page.ipf-v3r .ts-marquee-fade--start {
  background: linear-gradient(
    to right,
    var(--paper) 0%,
    var(--paper) 18%,
    color-mix(in srgb, var(--paper) 88%, transparent) 42%,
    color-mix(in srgb, var(--paper) 45%, transparent) 68%,
    transparent 100%
  );
}

.v3-page.ipf-v3r .ts-marquee-fade--end {
  background: linear-gradient(
    to left,
    var(--paper) 0%,
    var(--paper) 18%,
    color-mix(in srgb, var(--paper) 88%, transparent) 42%,
    color-mix(in srgb, var(--paper) 45%, transparent) 68%,
    transparent 100%
  );
}

.v3-page.ipf-v3r .ts-marquee .ts-card {
  background: var(--surface);
  border-color: color-mix(in srgb, var(--brand) 14%, var(--line));
  box-shadow: 0 8px 24px color-mix(in srgb, var(--ink) 6%, transparent);
}

.v3-page.ipf-v3r .ts-marquee .ts-card:hover {
  border-color: color-mix(in srgb, var(--brand) 28%, var(--line));
  box-shadow: 0 14px 32px color-mix(in srgb, var(--brand) 18%, transparent);
}

.v3-page.ipf-v3r .ts-name {
  color: var(--ink);
}

.v3-page.ipf-v3r .ts-role,
.v3-page.ipf-v3r .ts-quote {
  color: var(--muted);
}

.v3-page.ipf-v3r .ts-avatar {
  background: linear-gradient(135deg, var(--ice) 0%, color-mix(in srgb, var(--brand) 12%, var(--ice)) 100%);
  border-color: color-mix(in srgb, var(--brand) 22%, var(--line));
}

.v3-page.ipf-v3r .ts-avatar-fallback {
  color: var(--brand);
}

.v3-page.ipf-v3r .ts-stat-value {
  color: var(--brand);
}

.v3-page.ipf-v3r .ts-stat-label {
  color: var(--muted);
}

.v3-page.ipf-v3r .ts-cta-btn {
  color: #fff;
  background: linear-gradient(135deg, var(--btn) 0%, color-mix(in srgb, var(--brand) 85%, #fff) 100%);
  border-color: color-mix(in srgb, var(--brand) 40%, transparent);
}

.v3-page.ipf-v3r .ts-cta-btn:hover {
  color: #fff;
  box-shadow: 0 14px 32px color-mix(in srgb, var(--brand) 35%, transparent);
}

.v3-page.ipf-v3r .footer-tech {
  margin-top: 0;
  border-radius: 0;
}

.v3-page .footer-tech {
  margin-top: 0;
  border-radius: 0;
  padding-block: 0;
  color: var(--ink);
}

.v3-page.ipf-v3r .ts-container {
  padding-bottom: 6rem;
}

/* Product guides: breathing room below testimonials (light blue band) */
.v3-page.ipf-v3r #guides.section {
  padding-top: clamp(56px, 7vw, 96px);
}

.footer-tech > .final-cta {
  margin-top: 0;
}

/* footer-tech surface: light theme (CTA band unchanged) */
.footer-tech .footer-surface {
  background:
    radial-gradient(ellipse 80% 50% at 50% 0%, color-mix(in srgb, var(--brand) 8%, transparent) 0%, transparent 55%),
    linear-gradient(180deg, var(--ice) 0%, var(--paper) 14%, var(--paper) 100%);
  color: var(--ink);
}

.footer-tech .footer-bg-grid {
  background-image:
    linear-gradient(color-mix(in srgb, var(--brand) 7%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--brand) 7%, transparent) 1px, transparent 1px);
  opacity: 0.45;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.35), transparent 92%);
}

.footer-tech .footer-nav-title {
  color: var(--brand);
}

.footer-tech .footer-nav-link {
  color: var(--muted);
}

.footer-tech .footer-nav-link:hover {
  color: var(--ink);
}

.footer-tech .footer-brand-row,
.footer-tech .footer-meta-row,
.footer-tech .footer-links-row {
  border-bottom-color: var(--line);
}

.footer-tech .footer-brand-logo img {
  filter: none;
}

.footer-tech .footer-social-item {
  color: var(--muted);
}

.footer-tech .footer-email {
  color: var(--muted);
}

.footer-tech .footer-email:hover {
  color: var(--ink);
}

.footer-tech .footer-email .bi {
  color: var(--brand);
}

.footer-tech .footer-links-label,
.footer-tech .footer-copyright,
.footer-tech .footer-bottom-links {
  color: var(--muted);
}

.footer-tech .footer-bottom-links a {
  color: var(--brand);
}

.footer-tech .footer-bottom-links a:hover {
  color: var(--btn-hover);
}

.footer-tech .footer-policy-divider {
  color: var(--line-strong);
}

.footer-tech .footer-link-item {
  color: var(--muted);
  border-color: transparent;
}

.footer-tech .footer-link-item:hover {
  color: var(--ink);
  background: var(--ice);
  border-color: color-mix(in srgb, var(--brand) 22%, transparent);
}
