/* Shared type scale for readable copy across the static site. */
body {
  -webkit-font-smoothing: auto;
  text-rendering: optimizeLegibility;
}
body.premium-home { --hp-muted: #303b43; }
body.product-page { --pd-muted: #303b43; }
body.about-page { --about-muted: #303b43; }
body.home-page { --home-muted: #303b43; }

/* Paragraphs and supporting copy on light surfaces. */
body :is(
  .hp-intro-copy > p + p, .hp-section-heading > p,
  .hp-product-copy p, .hp-process-list p,
  .hp-footer-grid > div > p, .hp-footer address,
  .pd-lede, .pd-intro, .pd-features p, .pd-heading > p,
  .pd-finish p, .pd-process p, .pd-packing p, .pd-faq details > p,
  .about-intro-copy p, .about-section-heading > p:last-child,
  .about-advantage-grid p, .about-process span, .about-contact p,
  .home-article-intro, .home-product-card p, .home-why-grid p,
  .home-process-grid p, .home-blog-grid p, .section-intro p,
  .product-meta p, .cap-lede, .cap-row p, .cta-copy > p
) {
  color: #273139;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.85;
}
body .hp-process-list p { max-width: none; }
body :is(.hp-process-list h3, .pd-process h3, .pd-finish h3) {
  font-size: 17px;
  font-weight: 650;
  color: #17242d;
  line-height: 1.5;
}

/* Labels, captions and references have a usable minimum size. */
body :is(
  .hp-kicker, .hp-product-code, .hp-insight > span,
  .pd-eyebrow, .pd-related a > span, .pd-image-code,
  .about-advantage-grid article > span, .about-gallery figcaption span,
  .section-kicker, .home-eyebrow, .home-article-card > p,
  .home-blog-grid > a > span
) {
  color: #354b5b;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.65;
  letter-spacing: .1em;
}
body :is(
  .hp-intro-facts span, .hp-image-note, .hp-footer-bottom,
  .pd-quick span, .pd-reference, .pd-trust, .pd-spec-note,
  .pd-footnote, .pd-product-image figcaption, .pd-breadcrumb,
  .pd-form-note, .pd-form-status, .pd-spec-code span,
  .about-breadcrumb, .about-intro-aside small,
  .about-gallery figcaption strong, .home-product-image-note
) {
  color: #394750;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.75;
}
body :is(.hp-text-link, .hp-insight-read, .hp-footer-grid > div > a:not(.hp-brand),
  .pd-inline-link, .pd-wa, .about-contact-link, .home-text-link,
  .home-article-card > span) {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.65;
  color: #203e53;
}
body .hp-footer h2 {
  color: #20313d;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.5;
  letter-spacing: .08em;
}
body .hp-footer .hp-footer-top { font-size: 14px !important; }
body .hp-footer-bottom > span:nth-child(2) { font-size: 12px; }
body .pd-spec-table { font-size: 15px; line-height: 1.8; }
body .pd-spec-table td { color: #273139; font-weight: 500; }
body .pd-spec-table tbody th { font-size: 15px; color: #182c3b; }
body .pd-spec-aside .pd-mini-label { font-size: 12px; color: #e1eaf0; }
body .pd-spec-aside .pd-spec-code span { color: #e1eaf0; font-size: 13px; }
body .pd-spec-aside > a { color: #fff; font-size: 14px; line-height: 1.7; }
body :is(.pd-features > div > span, .pd-applications > div > span) {
  font-size: 13px;
  font-weight: 600;
  color: #354b5b;
}
body .pd-packing span { font-size: 12px; color: #304d61; }
body .pd-related h3 { font-size: 18px; }

/* Light text stays bright on dark panels and image overlays. */
body :is(
  .hp-capabilities-copy > p:not(.hp-kicker), .hp-capability-list p,
  .hp-contact h2 + p, .hp-contact-whatsapp,
  .pd-quote-layout > div > p:not(.pd-eyebrow), .pd-spec-aside p,
  .about-proof p, .about-proof-list small, .about-hero-copy p:last-child,
  .home-footer-main > div > p, .home-footer address, .company-content > p
) {
  color: #e5edf2;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.85;
}
body :is(.hp-capabilities .hp-kicker, .hp-contact .hp-kicker,
  .pd-quote-bg .pd-eyebrow, .about-proof .section-kicker,
  .about-hero-copy .section-kicker) { color: #d7e6ee; }
body .hp-project figcaption > span { color: #f2f6f8; font-size: 12px; font-weight: 700; }
body .hp-project p { color: #f2f6f8; font-size: 15px; font-weight: 500; line-height: 1.75; }
body .hp-composition-caption { color: #e2ebf0; font-size: 12px; }
body .hp-capability-list > div > span { color: #e0cda5; font-size: 13px; font-weight: 600; }
body.premium-home .hp-capabilities .hp-text-link { color: #f0dfbd; }
body :is(.pd-quote-layout > div > .pd-quote-location, .site-footer .footer-bottom,
  .site-footer .footer-contact a span, .home-footer .home-footer-bottom) {
  font-size: 13px !important;
  color: #e0e8ee;
  font-weight: 500;
  line-height: 1.75;
}
body :is(.site-footer .footer-contact a, .home-footer a) { color: #f2f6f8; font-size: 15px; }
body .site-footer .footer-note { color: #e0e8ee; font-size: 14px; line-height: 1.75; }

/* Forms: readable labels, native-size input text and clear helper copy. */
body :is(.hp-inquiry label, .pd-quote-form label) {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.65;
}
body .hp-inquiry label { color: #f0f4f7; }
body :is(.hp-inquiry input, .hp-inquiry textarea, .pd-quote-form input, .pd-quote-form textarea) {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.75;
}
body :is(.hp-inquiry input, .hp-inquiry textarea) { color: #fff; border-bottom-color: #8b9eaa; }
body :is(.hp-inquiry input, .hp-inquiry textarea)::placeholder { color: #c1d0da; opacity: 1; font-size: 14px; }
body :is(.pd-quote-form input, .pd-quote-form textarea)::placeholder { color: #4e5a65; opacity: 1; font-size: 14px; }
body :is(.hp-form-note, .hp-form-status) { color: #d5e1e9; font-size: 13px; font-weight: 500; line-height: 1.8; }
body :is(.pd-form-note, .pd-form-status) { font-size: 13px !important; }
body :is(.hp-button, .pd-button, .home-btn, .about-contact .button) { font-size: 14px; font-weight: 650; }

/* Remove the sand-colored fills requested in the contact view. */
body .hp-header-wa { background: transparent; color: #fff; }
body .hp-header-wa:hover { background: #ffffff12; }
body .hp-inquiry .hp-button-sand {
  background: transparent;
  color: #fff;
  border: 1px solid #b7c8d5;
  font-size: 15px;
  font-weight: 650;
}
body .hp-inquiry .hp-button-sand:hover { background: #ffffff0d; border-color: #fff; }
body .hp-header-email { font-size: 13px; font-weight: 600; color: #f3f6f8; }
body .hp-header-wa { font-size: 13px; font-weight: 600; }
body .hp-brand-caption { font-size: 11px; color: #e5edf2; font-weight: 600; }
body .hp-footer .hp-brand-caption { color: #394750; }

@media (max-width: 900px) {
  body .pd-spec-table { font-size: 14px; }
  body .pd-spec-table tbody th { font-size: 14px; }
}
@media (max-width: 600px) {
  body .hp-header .hp-brand-caption {
    max-width: 185px;
    white-space: normal;
    font-size: 10px;
    line-height: 1.4;
    letter-spacing: .04em;
  }
  body .hp-footer .hp-brand-caption { font-size: 11px; white-space: normal; }
  body .hp-footer-bottom { align-items: flex-start; flex-direction: column; }
  body .hp-inquiry .hp-form-row { gap: 20px; }
  body .pd-spec-table th, body .pd-spec-table td { padding: 14px 11px; }
}
