/*
 * Liudao B2B: readable text scale.
 * Load after site.css and the inquiry plugin stylesheet.
 * Main page/hero headings and the root rem size deliberately stay unchanged.
 * Navigation collapse rules belong to site.css/site.js; recommended breakpoint
 * with a 100px desktop contact rail: max-width: 1399px in both files.
 */

body {
  --ldb-copy-size: 1.0625rem; /* 17px with the browser's default 16px root. */
  --ldb-control-size: 1rem;
  --ldb-meta-size: 0.875rem;
  font-size: var(--ldb-copy-size);
  line-height: 1.75;
}

/* Navigation: clear, bold task names on every viewport. */
body .primary-navigation,
body .primary-navigation > a:not(.button),
body .nav-more > summary,
body .custom-nav > li > a,
body .menu-toggle {
  font-size: 1.0625rem;
  font-weight: 700;
  line-height: 1.5;
}

body .nav-dropdown,
body .nav-dropdown a,
body .custom-nav .sub-menu a {
  font-size: 1rem;
  font-weight: 650;
  line-height: 1.55;
}

body .nav-dropdown a,
body .custom-nav .sub-menu a {
  white-space: normal;
  overflow-wrap: anywhere;
  min-height: 46px;
}

body .language-switch {
  font-size: 1rem;
  font-weight: 650;
}

body .brand-sub {
  font-size: var(--ldb-meta-size);
  line-height: 1.35;
  letter-spacing: 0.025em;
  font-weight: 600;
}

body .header-inner {
  gap: 20px;
  padding-block: 10px;
}

/* Reading text. Specific selectors also override the old phone rules. */
body .hero-intro,
body .page-intro,
body .section-heading p:not(.eyebrow),
body .process-grid p,
body .resource-feature > p:not(.eyebrow),
body .cta-panel p:not(.eyebrow),
body .entry-content,
body .info-card p:not(.eyebrow),
body .comparison-card p:not(.eyebrow),
body .comparison-card li,
body .faq-item > p,
body .journal-card p:not(.eyebrow),
body .detail-summary,
body .empty-state p,
body .not-found > p:not(.eyebrow),
body .comment-content {
  font-size: var(--ldb-copy-size);
  line-height: 1.8;
}

body .note-box,
body .inquiry-aside ol,
body .inquiry-aside > p,
body .aside-demo strong,
body .aside-demo p,
body .benefit-strip .container > span,
body .category-links strong,
body .card-spec,
body .stock-preview .card-spec,
body .spec-list > div,
body .results-bar p,
body .page-subnav a,
body .faq-item summary {
  font-size: 1rem;
  line-height: 1.7;
}

body .faq-item summary {
  font-weight: 650;
}

body .card-content h3,
body .stock-preview .card-content h3,
body .home-price-preview .card-content h3 {
  font-size: 1.125rem;
  line-height: 1.45;
}

/* Supporting text: 14px minimum, including status/date/source information. */
body small,
body .demo-bar,
body .demo-bar .container,
body .demo-bar strong,
body .language-notice,
body .eyebrow,
body .hero-copy .eyebrow,
body .section-heading .eyebrow,
body .page-heading .eyebrow,
body .detail-information .eyebrow,
body .inquiry-aside .eyebrow,
body .journal-card .eyebrow,
body .comparison-card .eyebrow,
body .cta-panel .eyebrow,
body .hero-quick-links,
body .hero-proof span,
body .hero-proof p,
body .feature-topline,
body .feature-caption p,
body .feature-caption > div > span,
body .feature-demo,
body .breadcrumbs,
body .catalog-filters label,
body .filter-chip,
body .result-demo,
body .status,
body .price-meta .status,
body .price-meta time,
body .image-tag,
body .card-price > span,
body .stock-text,
body .catalog-note,
body .media-placeholder small,
body .media-note,
body .gallery-expand,
body .gallery-dialog > p,
body .inline-demo,
body .detail-tags span,
body .detail-price-heading,
body .detail-price-heading .status,
body .currency-grid > div > span,
body .detail-price-panel > p,
body .action-note,
body .source-note,
body .source-note strong,
body .article-meta,
body .post-tags a,
body .site-search-form > label,
body .comment-metadata {
  font-size: var(--ldb-meta-size);
  line-height: 1.65;
}

body .eyebrow,
body .hero-copy .eyebrow,
body .section-heading .eyebrow,
body .page-heading .eyebrow,
body .detail-information .eyebrow,
body .inquiry-aside .eyebrow,
body .journal-card .eyebrow,
body .comparison-card .eyebrow,
body .cta-panel .eyebrow,
body .feature-topline,
body .feature-caption p,
body .feature-demo,
body .demo-bar strong {
  letter-spacing: 0.065em;
}

body .status,
body .price-meta .status,
body .detail-price-heading .status {
  white-space: normal;
}

body .table-secondary,
body .table-product small,
body .catalog-note,
body .breadcrumbs,
body .breadcrumbs a,
body .breadcrumbs > span[aria-current],
body .currency-grid > div > span,
body .status-unquoted {
  color: #53667e;
}

/* Buttons and text actions never shrink with cards or narrow layouts. */
body .button,
body .button-small,
body .button-row > .button,
body .primary-navigation .button,
body .hero-search .button,
body .section-heading > .button,
body .catalog-filters > .button,
body .empty-state .button,
body .cta-panel .button,
body .detail-information > .button,
body .site-search-form .button,
body .not-found .button,
body .text-link,
body .section-heading > .text-link,
body .section-heading.compact > .text-link,
body .resource-feature .text-link,
body .info-card .text-link,
body .journal-card .text-link,
body .inquiry-aside .text-link,
body .card-bottom .text-link {
  font-size: var(--ldb-control-size);
  line-height: 1.5;
  font-weight: 650;
}

body .button,
body .button-small,
body .menu-toggle,
body .catalog-filters > .button,
body .hero-search .button {
  min-height: 46px;
}

body .active-filters > .text-link,
body .view-switch button,
body .pagination a,
body .pagination span,
body .nav-links .page-numbers {
  font-size: var(--ldb-meta-size);
  line-height: 1.5;
}

body .view-switch button,
body .pagination a,
body .pagination span,
body .nav-links .page-numbers {
  min-height: 42px;
}

/* Forms: at least 16px keeps controls legible and avoids iOS focus zoom. */
body input,
body select,
body textarea,
body .hero-search input,
body .catalog-filters input,
body .catalog-filters select,
body .catalog-filters .filter-search input,
body .site-search-form input,
body .comment-form input:not([type="checkbox"]),
body .comment-form textarea,
body .ld-inquiry input:not([type="checkbox"]),
body .ld-inquiry select,
body .ld-inquiry textarea,
body .ld-inquiry__submit {
  font-size: var(--ldb-control-size);
  line-height: 1.5;
}

body .hero-search input,
body .catalog-filters input,
body .catalog-filters select,
body .site-search-form input {
  min-height: 46px;
  height: auto;
}

body .ld-inquiry,
body .ld-inquiry label,
body .comment-form label {
  font-size: 1rem;
  line-height: 1.7;
}

body .ld-inquiry .ld-inquiry__hint,
body .ld-inquiry .ld-inquiry__consent {
  font-size: var(--ldb-meta-size);
  line-height: 1.7;
}

body .catalog-filters {
  flex-wrap: wrap;
  gap: 16px 14px;
}

body .catalog-filters > div {
  flex: 1 1 145px;
}

body .catalog-filters .filter-search {
  flex: 2.4 1 290px;
}

body .catalog-filters > .button {
  min-width: 96px;
  height: auto;
}

/* The table keeps horizontal scrolling inside its own container. */
body .price-table,
body .data-table,
body .entry-content table {
  font-size: 1rem;
  line-height: 1.6;
}

body .price-table {
  min-width: 1080px;
}

body .price-table thead th,
body .data-table thead th,
body .table-product small,
body .condition-label,
body .table-secondary,
body .table-stock,
body .price-table .button {
  font-size: var(--ldb-meta-size);
  line-height: 1.6;
}

body .table-product strong {
  font-size: 1rem;
  line-height: 1.5;
}

body .table-money {
  font-size: 1.0625rem;
}

body .price-table .button {
  min-height: 42px;
}

body .card-price strong {
  font-size: 1.5rem;
  line-height: 1.3;
}

/* Footers are useful navigation and policy text, not decorative fine print. */
body .footer-brand > p,
body .footer-links a,
body .footer-bottom p,
body .footer-bottom a,
body .footer-disclaimer {
  font-size: var(--ldb-meta-size);
  line-height: 1.8;
}

body .footer-contact,
body .footer-links h2 {
  font-size: 1rem;
  line-height: 1.6;
}

body .footer-links h2 {
  font-weight: 700;
}

body .footer-links a,
body .footer-bottom a {
  min-height: 36px;
}

body .footer-contact {
  flex-wrap: wrap;
}

body .footer-bottom,
body .footer-bottom > div,
body .footer-bottom ul {
  flex-wrap: wrap;
}

/* Give larger supporting copy room instead of clipping it. */
body .feature-topline,
body .detail-price-heading,
body .card-bottom,
body .results-bar,
body .demo-bar .container {
  flex-wrap: wrap;
}

body .demo-bar .container {
  padding-block: 8px;
}

body .feature-caption {
  padding-bottom: 20px;
}

body .feature-demo {
  position: static;
  display: block;
  margin: 0 23px 16px;
}

body .result-demo,
body .image-tag,
body .inline-demo,
body .detail-tags span {
  padding-block: 5px;
}

body .result-demo {
  display: inline-block;
}

body .currency-grid > div,
body .hero-copy,
body .hero-feature,
body .detail-information,
body .info-card,
body .comparison-card,
body .inquiry-aside,
body .footer-links {
  min-width: 0;
}

@media (max-width: 1399px) {
  body .catalog-filters .filter-search {
    flex-basis: 100%;
  }

  body .benefit-strip .container > span {
    padding-inline: 12px;
  }
}

@media (max-width: 900px) {
  body .feature-topline {
    letter-spacing: 0.025em;
  }

  body .footer-brand {
    align-items: start;
  }

  body .footer-brand > p,
  body .footer-contact {
    overflow-wrap: anywhere;
  }
}

@media (max-width: 650px) {
  body {
    --ldb-copy-size: 1rem;
  }

  body .header-inner {
    min-height: 86px;
    gap: 12px;
  }

  body .brand-wrap {
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 104px);
  }

  body .brand {
    max-width: 100%;
  }

  body .brand > span:last-child {
    min-width: 0;
  }

  body .brand-sub {
    letter-spacing: 0;
  }

  body .menu-toggle {
    flex-shrink: 0;
    padding-inline: 12px;
  }

  body .nav-dropdown {
    grid-template-columns: minmax(0, 1fr);
  }

  body .hero-proof {
    flex-wrap: wrap;
    gap: 18px 28px;
  }

  body .hero-proof p {
    flex: 1 1 100%;
    max-width: none;
    border-left: 0;
    padding-left: 0;
  }

  body .hero-search {
    gap: 8px;
  }

  body .hero-search .button {
    padding-inline: 13px;
    gap: 8px;
  }

  body .hero-quick-links,
  body .page-subnav {
    gap: 12px 18px;
  }

  body .page-subnav {
    flex-wrap: wrap;
  }

  body .page-subnav a {
    padding-block: 12px;
  }

  body .benefit-strip .container > span {
    padding-inline: 0;
  }

  body .section-heading.compact {
    flex-wrap: wrap;
  }

  body .feature-demo {
    margin-inline: 17px;
  }

  body .catalog-filters > div {
    flex: 1 1 calc(50% - 14px);
  }

  body .catalog-filters .filter-search {
    flex-basis: 100%;
  }

  body .catalog-filters > .button {
    flex: 1 1 calc(50% - 14px);
  }

  body .spec-list > div {
    grid-template-columns: minmax(105px, 0.85fr) minmax(0, 1.15fr);
  }

  body .footer-top {
    gap: 32px 22px;
  }
}

@media (max-width: 480px) {
  body .catalog-filters > div,
  body .catalog-filters .filter-search,
  body .catalog-filters > .button {
    flex-basis: 100%;
  }

  body .category-links strong {
    font-size: 1rem;
    overflow-wrap: anywhere;
  }

  body .category-links a {
    padding-inline: 11px;
    gap: 8px;
  }

  body .category-index {
    flex-shrink: 0;
  }
}
