/* Shared storefront palette */
body:has(.site-header) {
  --pd-page: #f7f8fa;
  --pd-paper: #fff;
  --pd-ink: #142538;
  --pd-muted: #40566e;
  --pd-blue: #174b82;
  --pd-border: #cbd7e4;
  background: var(--pd-page);
}
body .site-header {
  background: #fff;
  color: #142538;
  border-color: #cbd7e4;
}
body .site-header :is(.brand,.nav a,.mobile-head-action,.icon-btn,.mobile-search-trigger) { color: #142538; }
body .site-header :is(.mobile-search-trigger,.icon-btn) { background: #f0f4f8; border-color: #cbd7e4; }
body .site-header .nav { background: #fff; }
body .site-header .nav a:is(.active,:hover) { color: #174b82; background: #edf3fa; }
body .site-header .brand :is(strong,b,small,span) { color: #142538; }
body .site-header .btn.primary { background: #174b82; color: white; border-color: #174b82; }
main.with-social-rail { background: #f7f8fa; color: #142538; }
main.with-social-rail > section.section { --text: #142538; --muted: #40566e; --cyan: #174b82; --tech: #174b82; --line: #cbd7e4; }
main.with-social-rail > section.section :is(h1,h2,h3,h4,label,legend) { color: var(--text); }
main.with-social-rail > section.section :is(.muted,.section-note,.breadcrumbs) { color: var(--muted); }
main.with-social-rail > section.section :is(.panel,.content-card,.category-card,.product-card,.product-info,.filter,.checkout-customer-panel,.checkout-summary,.location-address-card,.contact-map-card,.pd-catalog-answer) {
  background: #fff;
  color: #142538;
  border-color: #cbd7e4;
}
main.with-social-rail > section.section :is(.product-card h3 a,.product-tech-link,.breadcrumbs a) { color: #174b82; }
main.with-social-rail > section.section :is(input:not([type=checkbox],[type=radio]),select,textarea) {
  background: white; color: #142538; border-color: #8295aa;
}
main.with-social-rail > section.section :is(input,textarea)::placeholder { color: #52677d; opacity: 1; }
main.with-social-rail > section.section .btn.primary { background: #174b82; color: #fff; border-color: #174b82; }
main.with-social-rail > section.section :is(.product-card,.product-info) .price { color: #a5162b; }
:is(.site-header, main.with-social-rail > section.section) :focus-visible { outline: 2px solid #2563a6; outline-offset: 3px; }

/* Keep the same surface when the mobile header becomes sticky. */
body .site-header:is(.scrolled,:not(.scrolled)) { background: #fff !important; }
body .site-header .icon-btn.menu-btn {
  background: #edf3fa !important;
  color: #142538 !important;
  border-color: #cbd7e4 !important;
}
/* Shared spacing and readable surfaces across public content. */
main.with-social-rail > .section .section-head {
  align-items: start;
  gap: clamp(12px, 3vw, 28px);
  margin-bottom: clamp(16px, 3vw, 30px);
}
main.with-social-rail > .section .section-head :is(h1,h2) {
  line-height: 1.16;
  text-wrap: balance;
}
main.with-social-rail > .section :is(.product-card,.product-info,.content-card,.filter,.checkout-summary,.checkout-customer-panel) {
  border: 1px solid #d7e0ea;
  border-radius: 16px;
  box-shadow: 0 6px 22px #1425380d;
}
main.with-social-rail > .section .product-card:hover {
  border-color: #9db3cb;
  box-shadow: 0 10px 24px #14253817;
  transform: translateY(-2px);
}
main.with-social-rail > .section .product-body { padding: clamp(15px, 2vw, 22px); }
main.with-social-rail > .section :is(.product-copy,.product-body p,.section-head p) {
  color: #40566e;
  line-height: 1.65;
}
main.with-social-rail > .section :is(.product-card,.product-info) .spec {
  background: #f1f5f9;
  color: #142538;
  border-color: #d7e0ea;
}
main.with-social-rail > .section :is(.product-card,.product-info) .spec span { color: #40566e; }
main.with-social-rail > .section .product-img { background: #eef2f6; }
footer.footer { background: #102236; color: #f4f8fc; border-color: #2f455d; }
footer.footer :is(a,p,.footer-bottom) { color: #d6e0ed; }
footer.footer :is(h4,.footer-col-heading) { color: #fff; }
footer.footer a:hover { color: #fff; text-decoration: underline; }
@media (max-width: 600px) {
  main.with-social-rail > .section .section-head h2 { font-size: clamp(24px, 6.6vw, 32px); }
  main.with-social-rail > .section :is(.product-body,.section-head) { overflow-wrap: anywhere; }
}
/* Retail catalog: compact introduction, clear filters, consistent cards. */
main.pd-buy-landing .page-hero { padding-block: clamp(24px,4vw,54px); min-height: 0; }
main.pd-buy-landing .page-hero h1 { font-size: clamp(25px,3.2vw,42px); line-height: 1.15; max-width: 24ch; }
main.pd-buy-landing .catalog-layout {
  display: grid;
  grid-template-columns: minmax(185px, 220px) minmax(0, 1fr);
  gap: 20px;
  align-items: start;
}
main.pd-buy-landing .catalog-layout .filter { padding: 16px; }
main.pd-buy-landing .catalog {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,225px),1fr));
  gap: 16px;
}
main.pd-buy-landing .catalog .product-card { display: flex; flex-direction: column; min-width: 0; }
main.pd-buy-landing .catalog .product-img { aspect-ratio: 4 / 3; height: auto; }
main.pd-buy-landing .catalog .product-img img { width: 100%; height: 100%; object-fit: contain; }
main.pd-buy-landing .catalog .product-body { display: flex; flex-direction: column; flex: 1; }
main.pd-buy-landing .catalog .product-body .card-actions { margin-top: auto; padding-top: 12px; }
@media (max-width: 760px) {
  main.pd-buy-landing .catalog-layout { grid-template-columns: minmax(0,1fr); gap: 12px; }
  main.pd-buy-landing .catalog { grid-template-columns: repeat(auto-fit,minmax(min(100%,155px),1fr)); gap: 10px; }
  main.pd-buy-landing .catalog .product-body { padding: 12px; }
}
/* Put shopping before the long buying guide. */
main.pd-buy-landing { display: flex; flex-direction: column; min-width: 0; }
main.pd-buy-landing > .page-hero { order: -4; padding-block: clamp(20px, 3vw, 38px); }
main.pd-buy-landing > .product-category-nav { order: -3; }
main.pd-buy-landing > .section:has(> .catalog-layout) { order: -2; }
main.pd-buy-landing > .pd-quick-quote-section { order: -1; }
main.pd-buy-landing .catalog .product-body .product-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  line-height: 1.5;
}
main.pd-buy-landing .catalog .product-spec-list {
  display: grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap: 6px;
  font-size: .86rem;
}
main.pd-buy-landing .catalog .price-row { margin-top: auto; }
@media (max-width: 450px) {
  main.pd-buy-landing .catalog .product-spec-list { grid-template-columns: minmax(0,1fr); }
}
/* Light surfaces for informational, support and purchase routes. */
main.with-social-rail > .page-hero:not(.custom-page-hero) {
  background: #eff4f9 url('/uploads/pd-pearl-showroom.jpg') center / cover no-repeat !important;
  color: #142538;
  min-height: clamp(190px, 24vw, 290px);
}
main.with-social-rail > .page-hero:not(.custom-page-hero)::before {
  background: linear-gradient(90deg,#fff 0%,#ffffffed 58%,#ffffff55 100%) !important;
}
main.with-social-rail > .page-hero:not(.custom-page-hero)::after { opacity: 0; }
main.with-social-rail > .page-hero:not(.custom-page-hero) :is(h1,p,.breadcrumbs,.breadcrumbs a,.eyebrow) {
  color: #142538 !important;
  text-shadow: none;
}
main.with-social-rail > .section :is(.result-card,.process-card,.audience-card,.gallery-card,.pd-media-card,.delivery-map-card,.map-managed-card,.shipping-partner,.pd-tech-sheet,.pd-tech-group) {
  background: #fff;
  color: #142538;
  border-color: #d7e0ea;
  box-shadow: 0 6px 22px #1425380d;
}
main.with-social-rail > .section :is(.result-card,.process-card,.audience-card,.pd-tech-group) p { color: #40566e; }
body .mobile-nav-bar { background: #fff !important; border-top: 1px solid #d7e0ea; }
body .mobile-nav-bar .mobile-nav-item { color: #40566e !important; }
body .mobile-nav-bar .mobile-nav-item:is(.active,[aria-current="page"]) { color: #174b82 !important; }
@media (max-width: 480px) {
  main.pd-buy-landing .catalog { grid-template-columns: minmax(0,1fr); }
}
/* Replace legacy pale lettering on the light retail surfaces. */
main.with-social-rail :is(.product-desc,.product-info .lead,.product-copy,.purchase-transparency,.pd-tech-note,.pd-tech-source) {
  color: #34495e !important;
  opacity: 1;
}
main.with-social-rail :is(.product-spec-list,.pd-tech-sheet,.pd-product-comparison,.vn-address-group) {
  background: #f1f5f9;
  color: #142538;
  border-color: #cbd7e4;
}
main.with-social-rail :is(.product-spec-list dt,.product-spec-list dd,.pd-tech-sheet h3,.pd-tech-sheet p,.pd-tech-sheet strong,.pd-product-comparison h2,.pd-product-comparison h3,.pd-product-comparison p,.vn-address-group legend,.vn-address-group label) {
  color: #233b52 !important;
  opacity: 1;
}
main.with-social-rail :is(.pd-tech-eyebrow,.purchase-transparency a,.product-tech-link,.coverage-link) {
  color: #174b82 !important;
}
main.with-social-rail .product-flag {
  background: #173853 !important;
  color: #fff !important;
}
main.with-social-rail .product-info .buy-box .btn:not(.primary) {
  background: #edf3fa;
  color: #174b82 !important;
  border-color: #9eb4ca;
}
main.with-social-rail .social-hub-arrow { color: #174b82 !important; }
main.with-social-rail :is(.pd-product-comparison,.pd-product-comparison article,.pd-tech-care,.metric) {
  background: #f1f5f9 !important;
  color: #142538 !important;
  border-color: #cbd7e4;
}
main.with-social-rail .pd-product-comparison .product-tech-link {
  background: #e3edf7 !important;
  color: #174b82 !important;
}
main.with-social-rail .metric :is(strong,span,b,small) { color: #233b52 !important; }
.site-header .zalo-mini { color: #173853 !important; }
/* Match the text palette to each surface, including nested content. */
main.with-social-rail :is(.feature,.buy-box,.signature-cta-inner,.social-hub-card,.pd-product-comparison dl) {
  background: #f1f5f9 !important;
  color: #142538;
  border-color: #cbd7e4;
  --text: #142538;
  --muted: #40566e;
  --cyan: #174b82;
}
main.with-social-rail :is(.feature,.signature-cta-inner,.social-hub-card,.pd-product-comparison dl) :is(h2,h3,b,small,span,dt,dd,p) {
  color: #233b52 !important;
}
main.with-social-rail .feature i {
  background: #dde9f6;
  color: #174b82;
  border-color: #adc2d9;
}
main.with-social-rail .buy-box .price { color: #a5162b !important; }
main.with-social-rail :is(.buy-box,.signature-cta-inner) .btn.primary {
  background: #174b82 !important;
  color: #fff !important;
  border-color: #174b82;
}
main.with-social-rail :is(.feature-link,.social-hub-card):hover { background: #e5edf6 !important; }
main.with-social-rail > .page-hero:not(.custom-page-hero) .page-title {
  padding-block: clamp(24px,4vw,56px);
}
main.with-social-rail > .page-hero:not(.custom-page-hero) h1 {
  font-size: clamp(27px,4vw,54px);
  line-height: 1.12;
}
footer.footer .footer-link-list a { font-size: 15px; line-height: 1.45; }
@media (max-width: 480px) {
  main.with-social-rail > .section :is(.panel,.buy-box,.checkout-summary,.checkout-customer-panel) { padding: 15px; }
  main.with-social-rail .product-info { min-width: 0; }
  main.with-social-rail .product-info :is(.lead,.purchase-transparency) { line-height: 1.55; }
}
/* Pair legacy components with their new light surfaces. */
main.with-social-rail :is(.hero-v17,.v17-category-ribbon,.v17-stats,.executive-assurance) {
  background: #f1f5f9 !important;
  color: #142538;
  border-color: #d7e0ea;
}
main.with-social-rail .hero-v17 {
  background: #f4f3f0 url('/uploads/pd-pearl-showroom.jpg') center / cover no-repeat !important;
}
main.with-social-rail .hero-v17 :is(.hero-v17-glow,.hero-v17-shade) { opacity: 0; }
main.with-social-rail .hero-v17::before,
main.with-social-rail .hero-v17::after { opacity: 0; }
main.with-social-rail .hero-v17 :is(h1,.hero-title-main,.hero-v17-copy p,.hero-v17-copy summary) {
  color: #142538 !important;
  text-shadow: none;
}
main.with-social-rail .hero-v17 h1 span { color: #a5162b !important; }
main.with-social-rail .hero-v17 :is(.hero-v17-proofs a,.hero-coverage,.hero-call,.eyebrow) {
  background: #fff !important;
  color: #174b82 !important;
  border-color: #a7bbd1;
}
main.with-social-rail .hero-v17 :is(.hero-v17-proofs,.hero-coverage) :is(b,strong,h2,h3,p,span,li,small) {
  color: #233b52 !important;
}
main.with-social-rail :is(.hero-v17,.buy-box) .btn.primary {
  background: #174b82 !important;
  color: #fff !important;
  box-shadow: none;
}
main.with-social-rail .buy-box :is(.price,.price b) {
  color: #a5162b !important;
  -webkit-text-fill-color: #a5162b;
}
main.with-social-rail :is(.buy-box .price small,.product-trust-bar small) {
  color: #40566e !important;
  font-size: 14px;
  opacity: 1;
}
main.with-social-rail .product-trust-bar b { font-size: 15px; }
main.with-social-rail .buy-box .qty button {
  background: #e8eff7 !important;
  color: #142538 !important;
  border-color: #a7bbd1;
}
main.with-social-rail .pd-tech-metrics > * {
  background: #e9f0f8 !important;
  border-color: #cbd7e4;
}
main.with-social-rail .pd-tech-metrics > * :is(strong,b,span,small,em) {
  color: #193b60 !important;
  -webkit-text-fill-color: #193b60;
}
main.with-social-rail .v17-category-ribbon a :is(b,strong,span,small) {
  color: #fff !important;
  text-shadow: 0 1px 4px #071321, 0 1px 10px #071321;
}
main.with-social-rail :is(.v17-stats,.executive-assurance) :is(b,strong,span,p,small) { color: #233b52 !important; }
/* Readable supporting text on the storefront. */
main.with-social-rail :is(.product-cat,.price small,.spec span,.breadcrumbs,.product-trust-bar small,.field label,.filter label,.detail-row,.cart-name span,.pd-tech-note,.pd-tech-source,.pd-tech-eyebrow,.product-spec-list dt,.product-spec-list dd) {
  font-size: 14px !important;
  line-height: 1.45;
}
main.with-social-rail :is(.product-card,.product-info,.checkout-summary,.checkout-customer-panel,.filter,.pd-tech-sheet,.vn-address-group) :is(.product-cat,.price small,.spec span,.product-trust-bar small,.field label,.pd-tech-note,.pd-tech-source,.product-spec-list dt,.product-spec-list dd) {
  color: #344a62 !important;
  opacity: 1;
}
main.with-social-rail :is(.product-flag,.card-actions .btn) {
  font-size: 13px;
  line-height: 1.4;
}
main.with-social-rail .product-flag { color: white !important; }
main.with-social-rail .hero-v17 :is(.eyebrow,.hero-v17-proofs span,.hero-coverage small) { font-size: 14px; }
body .site-header .brand-copy span { font-size: 13px; color: #344a62; }
footer.footer :is(p,small,.footer-bottom,.footer-link-list a) {
  color: #dce7f3;
  font-size: 14px;
  line-height: 1.55;
}
@media(max-width:600px) {
  main.with-social-rail :is(.product-trust-bar,.product-info .specs) > * { min-width: 0; overflow-wrap: anywhere; }
  body .site-header .brand-copy span { font-size: 12px; }
}
body .site-header .brand-copy strong {
  color: #142538 !important;
  opacity: 1;
  text-shadow: none;
  -webkit-text-fill-color: #142538;
}
body :is(.site-header,.mobile-nav-bar) .cart-badge {
  background: #a5162b !important;
  color: #fff !important;
}
main.with-social-rail .hero-v17 .zalo-mini {
  background: #fff !important;
  color: #174b82 !important;
}
main.with-social-rail .social-hub-card .social-hub-arrow {
  background: #e5edf6 !important;
  color: #174b82 !important;
}
main.with-social-rail .pd-tech-sheet .pd-tech-intro {
  background: #eef3f8 !important;
  color: #142538 !important;
}
main.with-social-rail .pd-tech-sheet .pd-tech-intro :is(h2,h3,p,span,strong) {
  color: #233b52 !important;
  opacity: 1;
  text-shadow: none;
  -webkit-text-fill-color: #233b52;
}
/* Allow supporting text and purchase actions to reflow at narrow widths. */
main.with-social-rail :is(.product-trust-bar,.pd-tech-metrics) {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr));
  gap: clamp(8px, 1.2vw, 14px);
}
main.with-social-rail :is(.product-trust-bar,.pd-tech-metrics) > * {
  min-width: 0;
  overflow-wrap: anywhere;
}
main.with-social-rail .product-trust-bar > div {
  background: #f1f5f9;
  border: 1px solid #d7e0ea;
  border-radius: 12px;
  padding: 10px;
}
main.with-social-rail .product-trust-bar b { color: #142538 !important; }
main.with-social-rail .buy-box .price b { font-size: clamp(24px, 3.2vw, 36px); }
@media (max-width: 480px) {
  main.with-social-rail .buy-box .toolbar { flex-wrap: wrap; }
  main.with-social-rail .buy-box .toolbar .btn { flex: 1 1 100%; min-height: 44px; white-space: normal; }
}
/* Give the campaign price a solid surface at every viewport width. */
main.with-social-rail .hero-v17 h1 > span:not(.hero-title-main) {
  display: block;
  width: fit-content;
  max-width: 100%;
  padding: .18em .34em;
  margin-top: .24em;
  border-radius: .24em;
  background: #fff !important;
  color: #8e1226 !important;
  -webkit-text-fill-color: #8e1226 !important;
  text-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
  font-size: clamp(26px, 4.2vw, 62px);
  line-height: 1.17;
  overflow-wrap: anywhere;
}
body .pd-deal-price strong {
  color: #8e1226 !important;
  -webkit-text-fill-color: #8e1226 !important;
  text-shadow: none !important;
}
/* Solid ink and opaque reading surfaces for copy over the showroom image. */
main.with-social-rail .hero-v17 .hero-v17-copy {
  background: #f8fafc;
  color: #142538;
  padding: clamp(14px, 2vw, 28px);
  border: 1px solid #cbd7e4;
  border-radius: 16px;
  min-width: 0;
}
main.with-social-rail .hero-v17 .hero-v17-copy :is(p,summary,details,.hero-title-main) {
  color: #142538 !important;
  -webkit-text-fill-color: #142538;
  opacity: 1;
  text-shadow: none !important;
}
main.with-social-rail .hero-v17 .hero-v17-copy summary { font-weight: 650; }
main.with-social-rail .hero-v17 .hero-call :is(span,b,strong) {
  color: #174b82 !important;
  -webkit-text-fill-color: #174b82;
}
main.with-social-rail :is(.product-info,.pd-catalog-answer,.checkout-summary,.checkout-customer-panel,.contact-map-card) :is(.muted,.section-note,.help-text,small:not(.price small)) {
  color: #344a62 !important;
  opacity: 1;
  text-shadow: none;
}
/* Explicit color pairs for shared support and lead sections. */
body footer.footer .footer-policy-column {
  background: #172f48 !important;
  border-color: #49627d;
}
body footer.footer .footer-policy-column :is(.footer-col-heading, a) {
  background: #172f48 !important;
  color: #f4f8fc !important;
}
body footer.footer .footer-policy-column :is(b,small,span,i,em) {
  color: #e2edf8 !important;
  -webkit-text-fill-color: #e2edf8;
  opacity: 1;
  text-shadow: none;
}
body footer.footer .footer-policy-column :is(a,small) { font-size: 14px; line-height: 1.5; }
main.with-social-rail :is(.pd-quote-panel,.delivery-map-copy) :is(p,.pd-quote-disclosure) {
  color: #344a62 !important;
  -webkit-text-fill-color: #344a62;
  opacity: 1;
  font-size: max(14px, 1em);
  line-height: 1.55;
}
main.with-social-rail .pd-quote-panel { background: #fff !important; }
main.with-social-rail .delivery-map-copy { background: #f1f5f9; }
main.with-social-rail .empty { background: #eef3f8 !important; color: #142538; }
main.with-social-rail .empty :is(h2,h3,p) { color: #233b52 !important; text-shadow: none; }
main.with-social-rail .executive-assurance-grid > a {
  background: #fff !important;
  color: #142538 !important;
  border: 1px solid #cbd7e4;
  box-shadow: 0 4px 14px #14253812;
  min-width: 0;
}
main.with-social-rail .executive-assurance-grid > a b {
  color: #142538 !important;
  font-size: 17px;
  line-height: 1.35;
}
main.with-social-rail .executive-assurance-grid > a small {
  color: #344a62 !important;
  font-size: 15px;
  line-height: 1.55;
}
main.with-social-rail .executive-assurance-grid > a > span {
  background: #e4eef8 !important;
  color: #174b82 !important;
  border-color: #adc2d9;
}
main.with-social-rail .executive-assurance-grid > a :is(b,small,span) {
  opacity: 1 !important;
  -webkit-text-fill-color: currentColor;
  text-shadow: none !important;
}
@media (max-width: 480px) {
  main.with-social-rail .executive-assurance-grid { grid-template-columns: minmax(0,1fr); }
}
/* Keep warranty instructions legible on the dark QR panel. */
main.with-social-rail .warranty-qr-intro {
  background: #102438 !important;
  color: #f4f8fc;
  border-color: #41617c;
}
main.with-social-rail .warranty-qr-intro .qr-sample {
  background: #172f48 !important;
  border-color: #496983;
}
main.with-social-rail .warranty-qr-intro :is(h2,h3,b,strong,p,.eyebrow,.kicker) {
  color: #f4f8fc !important;
  -webkit-text-fill-color: #f4f8fc;
  opacity: 1;
  text-shadow: none;
}
main.with-social-rail .warranty-qr-intro p {
  font-size: clamp(15px,1.25vw,18px);
  line-height: 1.6;
}
main.with-social-rail .warranty-qr-intro .btn.primary {
  background: #205d9a !important;
  color: #fff !important;
}
/* Match video copy to its own light surface. */
main.with-social-rail article[id^="pd-video-"] {
  background: #fff !important;
  color: #142538 !important;
  border-color: #cbd7e4 !important;
  box-shadow: 0 5px 20px #1425380d;
}
main.with-social-rail article[id^="pd-video-"] :is(h2,h3,p,small,summary) {
  color: #233b52 !important;
  -webkit-text-fill-color: currentColor;
  text-shadow: none;
}
main.with-social-rail article[id^="pd-video-"] :is(p,small) { font-size: 15px !important; line-height: 1.55; }
body .site-header .brand-copy { min-width: 0; max-height: none !important; overflow: visible !important; }
body .site-header .brand-copy :is(strong,span) {
  max-height: none !important;
  line-height: 1.35 !important;
  color: #344a62 !important;
  -webkit-text-fill-color: currentColor;
  text-shadow: none;
}
@media (min-width: 900px) {
  body .site-header .brand-copy span {
    white-space: normal !important;
    overflow: visible !important;
    letter-spacing: .05em;
    font-size: 12px;
  }
}
/* Custom banners can use any CMS image. Give their copy a stable surface. */
main .page-hero.custom-page-hero .page-title {
  box-sizing: border-box;
  background: #f8fafc;
  color: #142538;
  padding: clamp(16px, 3vw, 32px);
  margin-block: clamp(16px, 4vw, 36px);
  border-radius: 16px;
  max-width: min(900px, calc(100% - 32px));
}
main .page-hero.custom-page-hero .page-title :is(h1,h2,p,.breadcrumbs,.breadcrumbs a,.eyebrow,.kicker) {
  color: #142538 !important;
  -webkit-text-fill-color: #142538 !important;
  text-shadow: none !important;
  opacity: 1;
}
main .page-hero.custom-page-hero .page-title h1 {
  font-size: clamp(26px, 4vw, 52px);
  line-height: 1.15;
  overflow-wrap: anywhere;
}
main .page-hero.custom-page-hero .page-title :is(p,.breadcrumbs) { font-size: 15px; line-height: 1.55; }
/* Readable sizes for supporting text without changing heading hierarchy. */
main.with-social-rail :is(.product-desc,.spec span,.price small,.product-trust-bar small,.feature span,.metric span,.product-spec-list dt,.product-spec-list dd,.pd-tech-note,.pd-tech-source,.breadcrumbs,.field label,.filter label,.cart-name span,.price-table td) {
  font-size: 15px !important;
  line-height: 1.5;
}
main.with-social-rail :is(.product-cat,.product-flag,.kicker,.eyebrow,.price-table th,.card-actions .btn) {
  font-size: 13px !important;
  line-height: 1.45;
}
main.with-social-rail :is(.field input:not([type=checkbox],[type=radio]),.field select,.field textarea) { font-size: 16px; }
body .site-header .brand-copy strong { font-size: 12px !important; letter-spacing: .04em !important; }
body footer.footer :is(.footer-contact small,.footer-bottom,.footer-col-heading small) { font-size: 14px !important; line-height: 1.5; }
/* Replace mobile and CMS dark surface overrides with explicit light pairs. */
body #app :is(.hero-v17-copy,.route-finder,.delivery-map-card,.map-managed-card,.contact-map-card,[data-pd-map-title],.warranty-qr-intro,.warranty-qr-intro .qr-sample) {
  background: #f8fafc !important;
  color: #142538 !important;
  border-color: #cbd7e4 !important;
}
body #app :is(.route-finder,.delivery-map-card,.map-managed-card,.contact-map-card,[data-pd-map-title],.warranty-qr-intro) :is(h1,h2,h3,p,label,small,.eyebrow,.kicker,b,strong) {
  color: #233b52 !important;
  -webkit-text-fill-color: #233b52 !important;
  opacity: 1 !important;
}
body #app .hero-v17-copy { box-sizing: border-box; padding: clamp(16px,2vw,28px) !important; }
body #app .hero-v17-copy .eyebrow { background: #e5eef8 !important; color: #174b82 !important; }
body #app .mobile-nav-bar { background: #fff !important; }
body #app .mobile-nav-bar .mobile-nav-item { background: #fff !important; color: #233b52 !important; }
body #app .mobile-nav-bar .mobile-nav-item:is(.active,[aria-current="page"]) { background: #e5eef8 !important; color: #174b82 !important; }
body #app .mobile-nav-item span:not(.cart-badge) { font-size: 12px !important; }
body #app .site-header .mobile-head-action small { color: #40566e !important; }
body #app .site-header .brand { overflow: visible !important; }
@media (min-width: 900px) {
  body #app .site-header .header-row { height: auto !important; min-height: 68px; padding-block: 8px; }
}
@media (max-width: 600px) {
  body #app .route-finder { grid-template-columns: minmax(0,1fr) !important; gap: 16px; }
  body #app .route-finder-form { min-width: 0; }
}
/* Match the slide-out navigation to the storefront. */
body .mobile-menu { background: #fff !important; color: #142538 !important; border-color: #cbd7e4 !important; }
body .mobile-menu .mobile-menu-head { background: #fff !important; border-color: #d7e0ea !important; }
body .mobile-menu :is(.mobile-menu-close,.mobile-menu-search,.mobile-menu-service-grid > a,.mobile-menu-hotline,.mobile-social .social-link) {
  background: #edf3f9 !important;
  color: #142538 !important;
  border-color: #cbd7e4 !important;
}
body .mobile-menu :is(.mobile-menu-brand,.mobile-menu-service-grid,.mobile-menu-hotline) :is(b,small) { color: #233b52 !important; }
body .mobile-menu :is(.mobile-menu-service-grid,.mobile-menu-hotline) small { font-size: 12px; line-height: 1.4; }
body .mobile-menu .mobile-menu-links > a { color: #142538 !important; border-color: #d7e0ea !important; font-size: 15px; }
body .mobile-menu .mobile-menu-links > a.active { color: #174b82 !important; background: #edf3f9 !important; }
body .mobile-menu :is(.mobile-menu-search,.mobile-menu-service-grid) svg { color: #174b82; }
body .mobile-menu .mobile-menu-service-grid svg { stroke: #174b82; }
body .mobile-menu .mobile-social .social-link svg { width: 22px; height: 22px; flex-shrink: 0; }
@media (max-width: 760px) {
  body #app .hero-v17 .hero-v17-content {
    min-height: 0 !important;
    padding-top: clamp(24px, 7vw, 52px) !important;
    padding-bottom: 24px !important;
  }
}
/* Wrap copy at its container width, including enlarged text. */
main.with-social-rail :is(.section-head,.page-title,.product-body,.route-finder-form) {
  min-width: 0;
  overflow-wrap: anywhere;
}
main.with-social-rail :is(.section-head,.page-title) :is(h1,h2) { text-wrap: balance; }
body #app :is(.map-location-embed,.map-location-head) {
  background: #f8fafc !important;
  color: #142538 !important;
  border-color: #cbd7e4 !important;
}
body #app .map-location-head :is(h1,h2,h3,p,.eyebrow,.kicker) {
  color: #233b52 !important;
  -webkit-text-fill-color: #233b52 !important;
  opacity: 1;
  text-shadow: none;
}
body #app .map-location-head p { font-size: 16px; line-height: 1.6; }
body #app .pd-deferred-map { min-height: clamp(280px, 43vw, 440px); }
body #app .pd-deferred-map iframe { display: block; width: 100%; height: clamp(280px, 43vw, 440px); border: 0; }
body #app .audience-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap: clamp(12px,2vw,22px);
}
body #app .audience-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  background: #fff !important;
  border: 1px solid #cbd7e4;
  box-shadow: 0 6px 22px #14253812;
}
body #app .audience-card::before,
body #app .audience-card::after { content: none; }
body #app .audience-card > img {
  position: static;
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  filter: none;
}
body #app .audience-card .audience-card-copy {
  position: relative;
  inset: auto;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 8px;
  padding: clamp(16px,2vw,24px);
  background: #fff !important;
  color: #142538;
  overflow-wrap: anywhere;
}
body #app .audience-card-copy :is(h3,p,span,b) {
  margin: 0;
  color: #233b52 !important;
  -webkit-text-fill-color: currentColor;
  text-shadow: none;
  opacity: 1;
}
body #app .audience-card-copy p { font-size: 15px; line-height: 1.55; }
body #app .audience-card-copy b { margin-top: auto; padding-top: 8px; color: #174b82 !important; }
/* Keep the three operations cards readable independently of their photos. */
body #app .v17-operations .inside {
  background: #102438 !important;
  color: #fff !important;
}
body #app .v17-operations .inside :is(h3,p,.kicker) {
  color: #f4f8fc !important;
  -webkit-text-fill-color: #f4f8fc !important;
  opacity: 1;
  text-shadow: none;
}
body #app .v17-operations .inside .kicker { color: #b7dcff !important; -webkit-text-fill-color: #b7dcff !important; }
body #app .v17-operations .inside p { font-size: 15px; line-height: 1.55; }
body .global-search-backdrop { background: #e6edf5d9 !important; }
body .global-search-panel {
  color-scheme: light;
  background: #fff !important;
  border: 1px solid #cbd7e4;
  color: #142538 !important;
  box-shadow: 0 16px 50px #14253826;
}
body .global-search-panel :is(h1,h2,h3,b,strong,a,p,small,span,label,button) {
  color: #233b52 !important;
  -webkit-text-fill-color: currentColor;
  text-shadow: none;
}
body .global-search-panel :is(.global-search-input-wrap,.global-search-hints,.global-search-results > *) {
  background: #f1f5f9 !important;
  border-color: #cbd7e4 !important;
  color: #233b52 !important;
}
body .global-search-panel .global-search-input-wrap input {
  background: #fff !important;
  color: #142538 !important;
  font-size: 16px !important;
}
body .global-search-panel input::placeholder { color: #465b70; opacity: 1; }
body .global-search-panel :is(a,button,input):focus-visible { outline: 2px solid #174b82; outline-offset: 2px; }
body #app .site-header,
body #app .site-header.scrolled {
  background: #fff !important;
  overflow: visible !important;
}
body #app .site-header .brand-copy > span {
  color: #263d54 !important;
  -webkit-text-fill-color: #263d54;
  line-height: 1.5 !important;
}
@media (min-width: 900px) {
  body #app .site-header .brand-copy { padding-block: 3px 7px; }
  body #app .site-header .brand-copy > span {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    padding-bottom: 3px;
    white-space: normal !important;
    overflow: visible !important;
    font-size: 13px !important;
  }
}
body #app main.with-social-rail > .hero-v17 {
  background: #f4f3f0 url('/uploads/pd-pearl-showroom.jpg') center / cover no-repeat !important;
}
/* Keep captions readable in photo, video and showroom collections. */
body #app main :is(.pd-media-card,.gallery-card) {
  background: #fff !important;
  color: #142538;
  border-color: #cbd7e4;
}
body #app main :is(.pd-media-copy,.gallery-copy) {
  background: #fff !important;
  color: #142538;
}
body #app main :is(.pd-media-copy,.gallery-copy) :is(h2,h3,h4,p,small) {
  color: #344a62 !important;
  -webkit-text-fill-color: currentColor;
  opacity: 1;
  text-shadow: none;
}
body #app main :is(.pd-media-copy,.gallery-copy) :is(h2,h3,h4) { color: #142538 !important; }
body #app main :is(.pd-media-copy,.gallery-copy) :is(p,small) { font-size: 15px; line-height: 1.55; }
body #app main :is(.pd-media-copy,.gallery-copy) a:not(.btn) { color: #174b82 !important; }
/* Contrast pairs verified across the public routes. */
body .site-header .mobile-head-action :is(span,em):not(.cart-badge) {
  color: #344a62 !important;
  -webkit-text-fill-color: #344a62;
}
body #app main :is(.content-card,.pd-quote-panel,.product-copy.pd-tech-fullwidth,.panel.summary,.step,.qr-sample) {
  background: #fff !important;
  color: #142538;
}
body #app main :is(.content-card,.pd-quote-panel,.product-copy.pd-tech-fullwidth,.panel.summary,.step,.qr-sample) :is(p,small,li,dt,dd,.summary-row span,.summary-row b) {
  color: #344a62 !important;
  -webkit-text-fill-color: #344a62;
}
body #app main :is(.step,.qr-sample) :is(b,strong,span) {
  color: #233b52 !important;
  -webkit-text-fill-color: #233b52;
}
body #app main .product-card .price b {
  color: #8e1226 !important;
  -webkit-text-fill-color: #8e1226;
}
body #app main :is(.hero-protocol,.pd-product-comparison > span,.product-zoom-action > span) {
  background: #e8f0f9 !important;
  color: #174b82 !important;
  -webkit-text-fill-color: #174b82;
}
body #app main .product-zoom-action > span { padding: 6px 10px; border-radius: 8px; }
body #app main [id^="video-"] { background: #fff !important; color: #142538 !important; }
body #app main [id^="video-"] :is(h2,h3,p,small) {
  color: #233b52 !important;
  -webkit-text-fill-color: #233b52;
}
body #app main .hero-v17-proofs a > i,
body #app main [id^="video-"] > div > span {
  color: #174b82 !important;
  -webkit-text-fill-color: #174b82 !important;
}
body #app main .pd-branded-host > small {
  background: #fff !important;
  color: #344a62 !important;
  -webkit-text-fill-color: #344a62 !important;
}

/* Responsive storefront typography and spacing, 2026-11-06. */
body #app {
  --pd-reading-ink: #233b52;
  --pd-reading-muted: #40566e;
  --shadow: 0 8px 28px rgba(20,37,56,.09);
}
body #app main { font-size: 16px; line-height: 1.65; }
body #app main :is(p,li,dd,.product-desc,.section-note,.pd-hero-summary) {
  font-size: clamp(16px, 1.1vw, 18px);
  line-height: 1.65;
  overflow-wrap: break-word;
}
body #app main :is(small,.kicker,.eyebrow,.product-cat,.product-flag,.hero-protocol,
  .product-photo-count,.product-zoom-action>span,.product-policy-links a,
  .pd-tech-metrics span,.pd-tech-metrics small,.coverage-caption,
  .category-card-copy>span,.category-info>span,.metric span,.step b,.step span,
  .feature span,.product-trust-bar small,.field label,.filter label,
  .pd-tech-sheet th,.pd-tech-sheet td,.price-table th,.price-table td,
  .card-actions .btn,.pd-hero-terms summary,.pd-hero-terms p) {
  font-size: 14px !important;
  line-height: 1.55 !important;
}
body #app main .hero-v17-proofs :is(b,span) { font-size: 14px !important; line-height: 1.5; }
body #app main .hero-call :is(b,span) { font-size: 15px !important; }
body #app main .zalo-mini { font-size: 12px !important; }
body #app main .hero-protocol {
  white-space: normal !important;
  max-width: 100%;
  letter-spacing: .04em;
}
body #app main :is(h1,h2,h3,h4) {
  overflow-wrap: break-word;
  text-wrap: pretty;
  letter-spacing: -.02em;
  line-height: 1.22;
}
body #app main :is(.page-title h1,.product-info h1) {
  font-size: clamp(28px, 3.6vw, 48px) !important;
  line-height: 1.2 !important;
}
body #app main .section-head h2 { font-size: clamp(26px, 3.2vw, 40px); line-height: 1.25; }
body #app main .section { padding-block: clamp(32px, 5vw, 64px); }
body #app main .section.tight { padding-block: clamp(24px, 3vw, 40px); }
body #app main :is(.split,.warehouse-grid,.lookup-shell,.form-grid,.product-layout,.hero-v17-content)>* {
  min-width: 0;
}
body #app main :is(.panel,.content-card,.product-info,.product-card,.filter,.route-finder,
  .map-managed-card,.contact-map-card,.delivery-map-card) {
  box-shadow: 0 6px 24px rgba(20,37,56,.07) !important;
}
body #app main :is(.panel,.content-card,.product-info) {
  padding: clamp(16px, 2.2vw, 28px);
}
body #app main :is(input:not([type=checkbox],[type=radio]),select,textarea) {
  font-size: 16px !important;
  max-width: 100%;
}
body #app :is(main,.site-header,.global-search-panel) .btn {
  min-height: 44px;
  white-space: normal;
  line-height: 1.45;
}
body #app main :is(.toolbar,.card-actions,.buy-actions,.hero-actions) {
  flex-wrap: wrap;
  gap: 10px;
}
body #app main :is(.toolbar,.card-actions)>* { min-width: 0; }
body #app main .hero-v17-glow { max-width: 100%; }
body #app main :is(.pd-tech-table,.table-wrap,.price-table) {
  max-width: 100%;
  overscroll-behavior-inline: contain;
}
body #app main :is(.product-hero,.product-gallery,.product-gallery-main) { min-width: 0; }
body #app .site-header .header-row { height: auto !important; min-height: 76px; padding-block: 12px; }
body #app .site-header .brand-copy { min-width: 0; overflow: visible; }
body #app .site-header .brand-copy span {
  height: auto !important;
  max-height: none !important;
  line-height: 1.5 !important;
  overflow: visible !important;
  white-space: normal !important;
  text-overflow: clip;
}
body #app .site-header { box-shadow: 0 3px 14px rgba(20,37,56,.07) !important; }
body #app footer.footer {
  background: #f0f4f8 !important;
  color: #233b52 !important;
  border-color: #d4dfea;
}
body #app footer.footer :is(.footer-policy-column,.footer-col-heading,.footer-policy-column a) {
  background: #fff !important;
  color: #142538 !important;
  border-color: #d4dfea !important;
}
body #app footer.footer :is(p,a,span,small,b,strong,i,em) {
  color: #344a62 !important;
  -webkit-text-fill-color: currentColor !important;
  opacity: 1;
  text-shadow: none !important;
  line-height: 1.6 !important;
}
body #app footer.footer :is(p,a,span,small) { font-size: 14px !important; }
body #app footer.footer :is(b,strong) { font-size: 15px !important; }
body #app footer.footer .footer-dealer-cta {
  background: #174b82 !important;
  color: white !important;
  -webkit-text-fill-color: white !important;
  min-height: 44px;
}
body #app footer.footer .footer-dealer-cta :is(span,b) { color: white !important; }
body #app .global-search-panel { width: min(760px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); overflow-y: auto; }
body #app .global-search-panel :is(input,p,.search-empty,.search-result em) { font-size: 16px !important; line-height: 1.6; }
body #app .global-search-panel :is(small,.global-search-hints span) { font-size: 14px !important; }
body #app .global-search-head { gap: 12px; align-items: start; }
body #app .global-search-head h2 { font-size: clamp(23px, 4vw, 32px); line-height: 1.25; }
body #app :focus-visible { outline: 3px solid #2563a6; outline-offset: 3px; }
@media(max-width:900px) {
  body #app main .hero-v17-content { padding-block: 24px !important; min-height: 0 !important; gap: 24px !important; }
  body #app main .hero-v17-copy { margin-block: 0 !important; }
  body #app main :is(.split,.warehouse-grid,.lookup-shell) { grid-template-columns: minmax(0,1fr); gap: 20px; }
}
@media(max-width:600px) {
  body #app main .container { padding-inline: 16px !important; }
  body #app main :is(.form-grid,.filter) { grid-template-columns: minmax(0,1fr); }
  body #app main .section-head { flex-direction: column; align-items: stretch; gap: 12px; }
  body #app main .product-info .buy-box { padding: 16px; }
  body #app main .card-actions .btn { flex: 1 1 120px; }
  body #app .site-header .header-row { min-height: 64px; padding-block: 8px; gap: 10px; }
  body #app .site-header .brand img { width: 44px; height: 44px; }
  body #app .site-header .brand-copy b { font-size: 20px !important; }
  body #app .site-header .brand-copy strong { font-size: 12px !important; line-height: 1.4; }
  body #app .mobile-menu :is(.mobile-menu-links a,.mobile-menu-service-grid b) { font-size: 15px !important; }
  body #app .mobile-nav-bar { min-height: 64px; padding-bottom: env(safe-area-inset-bottom); }
  body #app .mobile-nav-bar .mobile-nav-item { min-width: 0; padding-inline: 4px; }
  body #app .mobile-nav-item span:not(.cart-badge) { font-size: 12px !important; line-height: 1.35; }
}


/* Supporting copy and compact header controls use the same reading scale. */
body #app main :is(.category-copy span,.category-arrow,.v17-stats-grid span,
 .visual-card-caption span,.audience-card-copy span,.audience-card-copy b,
 .map-click-badge,.shipping-partner a,.faq-item summary span,.faq-item summary b,
 .seo-link-card span,.purchase-policies a,.pd-tech-downloads a,.coverage-badge) {
  font-size: 14px !important;
  line-height: 1.55 !important;
}
body #app main .delivery-map-visual :is(span,em) { font-size: 14px !important; }
body #app main .coverage-caption { font-size: 14px !important; }
body #app footer.footer .footer-cookie-link {
  color: #344a62 !important;
  -webkit-text-fill-color: #344a62 !important;
  font-size: 14px !important;
  min-height: 44px;
}
@media(max-width:600px) {
  body #app .site-header .header-row { padding-inline: 12px !important; gap: 8px !important; }
  body #app .site-header #menuBtn {
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    padding: 10px !important;
  }
  body #app .site-header #menuBtn svg { width: 24px !important; height: 24px !important; }
  body #app .site-header .brand { flex: 1 1 auto; min-width: 0; gap: 8px !important; }
  body #app .site-header .brand img { width: 36px !important; height: 40px !important; flex: 0 0 36px; }
  body #app .site-header .brand-copy b { font-size: 18px !important; }
  body #app .site-header .brand-copy strong { white-space: normal !important; font-size: 12px !important; }
  body #app .site-header .mobile-head-actions { flex: 0 0 auto; gap: 2px !important; }
  body #app .site-header .mobile-head-action { width: 36px !important; min-width: 36px !important; height: 44px; padding: 4px !important; }
  body #app .site-header .mobile-head-action svg { width: 22px; height: 22px; }
  body #app .site-header .mobile-head-action :is(span,em):not(.cart-badge) { display: none !important; }
  body #app .site-header .mobile-search-trigger { font-size: 15px !important; line-height: 1.45; padding-block: 10px; }
}

body #app main :is(.hero-coverage-v34 .coverage-kicker,.hero-coverage-v34 li,
 .hero-coverage-v34 .coverage-link,.hero-coverage-v34 .coverage-map span,
 .hero-coverage-v34 .coverage-count span,.map-link-card em,.delivery-map-card em,
 .zalo-mini) { font-size: 14px !important; line-height: 1.5; }
body #app main .zalo-mini { min-width: 32px; }


/* Explicit contrast pairs for quotation and technical actions in every state. */
body #app main .quote-btn {
  background: #174b82 !important;
  border-color: #174b82 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  opacity: 1;
  text-shadow: none;
}
body #app main .product-tech-link {
  background: #edf3fa !important;
  border-color: #9eb4ca !important;
  color: #174b82 !important;
  -webkit-text-fill-color: #174b82 !important;
  opacity: 1;
  text-shadow: none;
}
body #app main :is(.quote-btn,.product-tech-link):is(:hover,:focus-visible,:active) {
  background: #123b67 !important;
  border-color: #123b67 !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}
body #app main :is(.quote-btn,.product-tech-link) :is(span,b,strong) {
  color: inherit !important;
  -webkit-text-fill-color: inherit !important;
}
body #app main :is(.quote-btn,.product-tech-link):focus-visible {
  outline: 3px solid #2563a6;
  outline-offset: 3px;
}


/* Give the distribution map its own opaque, readable heading surface. */
body #app main .hero-coverage-v34 .coverage-visual {
  background: #edf3fa !important;
  border: 1px solid #cbd7e4 !important;
  box-shadow: none !important;
  padding: 12px;
  min-width: 0;
}
body #app main .hero-coverage-v34 .coverage-badge {
  display: block;
  width: 100%;
  margin: 0 0 10px !important;
  padding: 8px 6px;
  border-radius: 10px;
  background: #fff !important;
  color: #174b82 !important;
  -webkit-text-fill-color: #174b82 !important;
  font-size: clamp(14px,1.1vw,16px) !important;
  font-weight: 800 !important;
  line-height: 1.45 !important;
  letter-spacing: .03em !important;
  text-align: center;
  text-wrap: balance;
  white-space: normal !important;
  overflow-wrap: normal;
  text-shadow: none !important;
  filter: none !important;
  opacity: 1 !important;
}
body #app main .hero-coverage-v34 .coverage-scope {
  width: 100%;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px;
  margin: 10px 0 0 !important;
}
body #app main .hero-coverage-v34 .coverage-scope span {
  color: #233b52 !important;
  -webkit-text-fill-color: #233b52 !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  letter-spacing: .04em;
}
