/* BoxPro typography. Load after component and responsive styles. No external fonts. */
:root{
 --bp-font-family:Arial,Helvetica,sans-serif;
 --bp-type-page:48px;
 --bp-type-section:36px;
 --bp-type-card:20px;
 --bp-type-body:17px;
 --bp-type-meta:14px;
 --bp-leading-page:1.12;
 --bp-leading-section:1.2;
 --bp-leading-card:1.3;
 --bp-leading-body:1.55;
 --bp-leading-meta:1.45;
}
:where(body,.header,main,.site-footer,dialog),
:where(.header,main,.site-footer,dialog) :where(h1,h2,h3,h4,h5,p,a,span,strong,small,summary,label,legend,button,input,select,textarea,th,td,dt,dd,li){
 font-family:var(--bp-font-family)!important;
 letter-spacing:0!important;
}
:where(main,dialog,.site-footer) :where(p,li,th,td,dt,dd,label,legend,input,textarea,select),
:where(.home-lead,.entry-heading p,.headline p,.lab-layout>div p,.foods button>span:not(.food-photo),.entry-paths small,.format-options small,.picker-options small,.entry-choice small){
 font-size:var(--bp-type-body)!important;
 line-height:var(--bp-leading-body)!important;
}
:where(main h1,.hero .hero-title,[data-type-role="page"]){
 font-size:var(--bp-type-page)!important;
 line-height:var(--bp-leading-page)!important;
 font-weight:700!important;
 letter-spacing:0!important;
}
:where(main h2,dialog h2,.site-footer .footer-cta h2,[data-type-role="section"]){
 font-size:var(--bp-type-section)!important;
 line-height:var(--bp-leading-section)!important;
 font-weight:700!important;
 letter-spacing:0!important;
}
:where(main h3,main h4,main h5,.foods strong,.entry-paths strong,.entry-choice strong,.entry-model h5,.assurance strong,.format-options strong,.picker-options strong,.filter-heading h2,.material-sidebar h2,.shopping-empty h3,.complex-ledger-row h2>button,.complex-check-title,.info-card h3,[data-type-role="card"]){
 font-size:var(--bp-type-card)!important;
 line-height:var(--bp-leading-card)!important;
 font-weight:700!important;
 letter-spacing:0!important;
}
/* These eight labels share one role at every breakpoint and state. */
:where(#products .foods strong,#catalog-entry .entry-paths strong){
 font-size:var(--bp-type-card)!important;
 font-weight:700!important;
 line-height:var(--bp-leading-card)!important;
}
:where(#products h2,#catalog-entry .entry-heading h2){
 font-size:var(--bp-type-section)!important;
 font-weight:700!important;
 line-height:var(--bp-leading-section)!important;
}
:where(#products .foods button>span:not(.food-photo),#catalog-entry .entry-paths small){
 font-size:var(--bp-type-body)!important;
 font-weight:400!important;
 line-height:var(--bp-leading-body)!important;
 color:#46505d!important;
}
:where(main,dialog,.site-footer) :where(small,figcaption),
:where(.eyebrow,.home-kicker,.source-note,.breadcrumbs,.category-tag,.sku,.availability,.catalog-heading>div>p,.material-heading>p,.material-card-sku,.material-unit,.entry-overline,.entry-types-meta,.entry-model-sku,.entry-result-types,.entry-result-footer small,.selector-caption,.selector-status,.complex-eyebrow,.complex-small,.complex-status,.complex-candidate-role,.complex-candidate-sku,.complex-illustration-note,.complex-motion>p,.complex-motion>label,.news-eyebrow,.news-date,.info-eyebrow,.footer-bottom,.site-footer nav a,.site-footer nav button,.site-footer h3,.site-footer .footer-brand p,[data-type-role="meta"]){
 font-size:var(--bp-type-meta)!important;
 line-height:var(--bp-leading-meta)!important;
 letter-spacing:0!important;
}
/* Card descriptions are body copy, not fine print, even when marked up as small. */
:where(#catalog-entry .entry-paths small,.entry-choice small,.format-options small,.picker-options small){
 font-size:var(--bp-type-body)!important;
 line-height:var(--bp-leading-body)!important;
}
:where(.header nav,.header .button,.header .shopping-open,.header .search button,main button,dialog button,.site-footer .button,.site-footer button){
 font-size:var(--bp-type-meta)!important;
 line-height:var(--bp-leading-meta)!important;
}
:where(.header input,main input,main select,main textarea,dialog input,dialog select,dialog textarea){
 font-size:var(--bp-type-body)!important;
 line-height:var(--bp-leading-body)!important;
}
:where(.model .price,.material-card .material-price,.material-price,.complex-candidate-price,.entry-model-price,.product-price,.product-intro>.price,.shopping-summary strong,.shopping-line-total,.footer-phone,[data-type-role="price"]){
 font-size:var(--bp-type-card)!important;
 line-height:var(--bp-leading-card)!important;
 font-weight:700!important;
 font-variant-numeric:tabular-nums;
}
/* Compact controls keep their semantic role rather than inheriting page H2 size. */
:where(.catalog-heading .filter-heading h2,.material-filters h2,.material-sidebar h2,.filter-heading h2,.complex-check-title,.complex-brief-copy h3){
 font-size:var(--bp-type-card)!important;
 line-height:var(--bp-leading-card)!important;
}
:where(.model h3,.material-card h3,.complex-candidate h4,.entry-model h5){
 height:auto!important;
 max-height:none!important;
 min-height:calc(var(--bp-type-card) * var(--bp-leading-card) * 3)!important;
 overflow:visible!important;
 overflow-wrap:anywhere;
 -webkit-line-clamp:unset!important;
}
:where(main h1,main h2,main h3,main h4,main h5,dialog h2,dialog h3,.entry-paths strong,.foods strong){
 overflow-wrap:anywhere;
}
@media(max-width:1023px){:root{--bp-type-page:40px;--bp-type-section:32px;--bp-type-card:18px}}
@media(max-width:640px){:root{--bp-type-page:32px;--bp-type-section:28px;--bp-type-card:18px;--bp-type-body:16px}}
@media(forced-colors:active){:where(#products .foods button>span:not(.food-photo),#catalog-entry .entry-paths small){color:CanvasText!important}}

/* Role aliases follow general controls so headings inside buttons keep their role. */
:where(.hero .hero-title){font-size:var(--bp-type-page)!important;line-height:var(--bp-leading-page)!important;font-weight:700!important}
:where(.site-footer h2){font-size:var(--bp-type-section)!important;line-height:var(--bp-leading-section)!important;font-weight:700!important}
:where(dialog h3,dialog h4,dialog h5,.complex-ledger-row h2>button){font-size:var(--bp-type-card)!important;line-height:var(--bp-leading-card)!important;font-weight:700!important}
:where(.material-row h2,.material-row-actions strong,.info-phone,.inquiry-contact a){font-size:var(--bp-type-card)!important;line-height:var(--bp-leading-card)!important;font-weight:700!important}
:where(.material-summary,.material-note,.material-row .material-sku,.material-candidates li span,.info-kicker,.info-role,.info-note){font-size:var(--bp-type-meta)!important;line-height:var(--bp-leading-meta)!important}
@media(max-width:640px){
 :where(.catalog-domains .catalog-domain-name){min-width:0;max-width:100%;min-height:calc(var(--bp-type-meta) * var(--bp-leading-meta) * 2);white-space:normal!important}
 :where(.catalog-domains .catalog-domain-name>span){white-space:normal!important;overflow-wrap:anywhere;hyphens:auto}
}
/* Inline component labels follow the same five roles; brand wordmarks stay intact. */
:where(main summary,dialog summary,.complex-deliverables li>strong){font-size:var(--bp-type-card)!important;line-height:var(--bp-leading-card)!important}
:where(.hero-action-label,.info-contact-actions a){font-size:var(--bp-type-body)!important;line-height:var(--bp-leading-body)!important}
:where(main .text-link,dialog .text-link,.footer-kicker,.plm-state,.catalog-type-groups summary,.catalog-type-groups summary>span,.complex-flow-outcome span,.complex-candidate-footer a,.news-breadcrumbs a,.news-breadcrumbs span){font-size:var(--bp-type-meta)!important;line-height:var(--bp-leading-meta)!important}
/* Explicit roles are the final integration contract for future semantic templates. */
:where([data-type-role="page"]){font-size:var(--bp-type-page)!important;line-height:var(--bp-leading-page)!important;font-weight:700!important}
:where([data-type-role="section"]){font-size:var(--bp-type-section)!important;line-height:var(--bp-leading-section)!important;font-weight:700!important}
:where([data-type-role="card"],[data-type-role="price"]){font-size:var(--bp-type-card)!important;line-height:var(--bp-leading-card)!important;font-weight:700!important}
:where([data-type-role="body"]){font-size:var(--bp-type-body)!important;line-height:var(--bp-leading-body)!important}
:where([data-type-role="meta"]){font-size:var(--bp-type-meta)!important;line-height:var(--bp-leading-meta)!important}
/* Preserve compact product roles while keeping standalone text actions touchable. */
#product-view .product-page :where(.product-engineer,.product-all-specs){min-height:44px!important}
:where(main .route-related>a){font-size:var(--bp-type-body)!important;line-height:var(--bp-leading-body)!important;min-height:44px;display:inline-flex;align-items:center}
