/* Shared roles, loaded after the page layouts. Geometry stays in those layouts. */
body,button,input,select,textarea{font-family:var(--font-body)}
body{font-size:var(--fs-body);color:var(--ink)}

/* One title scale on the directory, listing, product and information routes. */
.catalog-main .directory-heading h1,
.catalog-main .catalog-page-heading h1,
.pdp-reference .pdp-heading h1,
.information-main .information-heading h1{
 font-size:var(--fs-h1);line-height:1.25;font-weight:var(--fw-semibold);letter-spacing:-.02em
}
.section-heading h2,.optimus-heading h2,.help-section h2,.partner-copy h2,
.information-content h2,.pdp-reference .pdp-tab-panel h2{
 font-size:var(--fs-h3);line-height:1.3;letter-spacing:-.02em
}
.why-grid h3,.optimus-feature-grid h3,.information-content h3,
.pdp-reference .pdp-summary h2,.pdp-reference .pdp-why h2,.pdp-kit-help h2{
 font-size:var(--fs-h4);line-height:1.4;letter-spacing:0
}
.mobile-disclosure summary h3{font-size:var(--fs-h4)}
.information-content .support-channel-heading h2,
.information-content .support-messengers h2,
.information-content .online-camera-heading h2{font-size:var(--fs-h4)}
.pdp-reference .pdp-spec-group h2{font-size:var(--fs-caption);letter-spacing:.08em}
.hero h1{font-size:var(--fs-display);line-height:1.12}

/* Equal roles keep their size across all pages and card variants. */
.button,.catalog-button,.catalog-main .catalog-card-buy,
.catalog-main .tj-filter-submit,.information-actions .button,
.pdp-reference .pdp-buy-row>.button,.pdp-reference .pdp-invoice,
.pdp-reference .pdp-heading-actions>button,
.pdp-reference .pdp-all-specs,.section-link,.why-link,
.catalog-main .mobile-filter-button{font-size:var(--fs-body);line-height:1.4}
.catalog-main .catalog-product-title,.catalog-main .is-list .catalog-product-title,
.catalog-product-title,.product-title,.new-title,
.catalog-main .directory-item h3{font-size:var(--fs-body);line-height:1.5;font-weight:var(--fw-semibold)}
.price,.new-bottom .price,.catalog-card .price,.catalog-main .catalog-card .price{
 font-size:var(--fs-h3);line-height:1.25
}
.pdp-reference .pdp-price{font-size:var(--fs-stat);line-height:1.15}
.pdp-reference .pdp-key-specs dt,.pdp-reference .pdp-key-specs dd{font-size:var(--fs-caption)}
.pdp-reference .pdp-full-specs>div,.pdp-reference .pdp-tabs button{font-size:var(--fs-body)}
.pdp-reference .pdp-highlight strong{font-size:var(--fs-lead)}
.information-text,.information-callout p,.about-principles p,.delivery-row p,
.why-grid p,.optimus-feature-grid p,.optimus-summary p,.help-section p,
.mobile-disclosure p,.buyer-faq details p,.pdp-reference .pdp-tab-panel{
 font-size:var(--fs-body);line-height:1.6
}
.information-lead,.hero-copy p{font-size:var(--fs-lead);line-height:1.6}
.catalog-main .breadcrumbs,.pdp-reference .breadcrumbs,.breadcrumbs,
.catalog-main .catalog-stock,
.catalog-main .catalog-card .product-type,.catalog-main .tj-old-price,
.catalog-main .catalog-saving,.pdp-reference .pdp-price-note,
.pdp-reference .pdp-highlight>span:last-child{font-size:var(--fs-caption)}
.catalog-main .catalog-toolbar select,.catalog-main .catalog-bottom select{font-size:var(--fs-body)}
.site-navigation .nav-row nav>a,.site-navigation .nav-contact,
.site-navigation .catalog-button{font-size:var(--fs-body)}
.site-header .header-contact-actions>a,.site-header .header-action{font-size:var(--fs-caption)}
.header-official .official-copy>span,.site-navigation .nav-new span,
.counter,.mobile-bottom-nav .counter{font-size:var(--fs-eyebrow)}
.header-official .official-copy strong{font-size:var(--fs-body)}
.footer-pages>a,.footer-main h3,.footer-contact .mail,.messenger-link,
.footer-contact .messenger-link{font-size:var(--fs-body)}

/* The brand accent does not change hue on hover. Disabled actions are neutral. */
.site-header .search button:hover,.site-navigation .catalog-button:hover,
.catalog-main .catalog-card-buy:hover,.button.primary:hover{
 background:var(--orange);box-shadow:inset 0 0 0 2px #ffffff66
}
.button:disabled,#tj-buy:disabled,.pdp-reference .pdp-buy-row>.button:disabled{
 opacity:1;background:var(--line);color:var(--muted);box-shadow:none;cursor:not-allowed
}
.pdp-reference .pdp-why .icon,.pdp-highlight-icon,
.pdp-reference .pdp-doc-link .pdp-file-type{color:var(--orange)}
.pdp-reference .pdp-why li{color:var(--on-dark)}
.catalog-main .catalog-stock.is-available,.pdp-reference .pdp-stock.is-available{color:var(--success)}
.catalog-main .catalog-discount,.pdp-reference .pdp-discount{background:var(--warm);color:var(--orange);border-radius:10px;font-family:var(--font-body);font-weight:var(--fw-medium);letter-spacing:0}
.catalog-main .catalog-picture{background:var(--pale)}

/* Characteristics use the same selectable tiles as resolution. */
.catalog-main .facet-pills .facet-option,.mobile-filter-dialog .facet-pills .facet-option{
 min-width:0;align-items:center;min-height:44px!important;position:relative
}
.catalog-main .facet-pills .facet-option>span,.mobile-filter-dialog .facet-pills .facet-option>span{
 min-width:0;flex:1;white-space:normal;overflow-wrap:anywhere;hyphens:auto;text-align:center;line-height:1.5
}
.catalog-main .facet-pills .facet-option small,.mobile-filter-dialog .facet-pills .facet-option small{flex:none}
.catalog-main .facet-pills-wide .facet-options,.mobile-filter-dialog .facet-pills-wide .facet-options{grid-template-columns:minmax(0,1fr)}
.facet-pills .facet-option:has(input:checked){box-shadow:inset 0 0 0 1px var(--orange)}
.facet-pills .facet-option:has(input:disabled){cursor:not-allowed}

/* Direction pages contain existing categories and direct child links. */
.catalog-main .direction-directory{align-items:start}
.catalog-main .direction-card{background:var(--white);border-radius:var(--radius);overflow:hidden}
.catalog-main .direction-card h3{min-width:0;overflow-wrap:anywhere}
.catalog-main .direction-card>a{min-height:90px;border-radius:0;padding:18px 16px;background:none}
.catalog-main .direction-card:has(.direction-subcategories)>a{min-height:70px}
.direction-subcategories{list-style:none;margin:0;padding:0 16px 14px}
.direction-subcategories a{display:block;min-height:36px;padding:8px 0;font-size:var(--fs-body);line-height:1.5;color:var(--muted)}
.direction-subcategories a:hover{color:var(--orange);text-decoration:underline;text-underline-offset:3px}
.pdp-reference .pdp-documents{display:grid;gap:12px;scroll-margin-top:100px}
.pdp-reference .pdp-documents h2{font-size:var(--fs-h4);line-height:1.4;letter-spacing:0;margin:0 0 2px}
@media(max-width:1180px){
 .catalog-main .direction-directory{display:grid}
 .catalog-main .direction-overview .directory-sidebar{display:none}
 .direction-subcategories a{min-height:44px}
 .pdp-reference .pdp-documents{scroll-margin-top:128px}
}
@media(max-width:767px){
 .catalog-main .direction-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .catalog-main .direction-card>a{padding:14px 12px;min-height:112px}
 .catalog-main .direction-card:has(.direction-subcategories){grid-column:1/-1}
 .catalog-main .direction-card:has(.direction-subcategories)>a{flex-direction:row;align-items:center;min-height:64px}
 .direction-subcategories{padding:0 12px 12px}
 .direction-subcategories a{font-size:var(--fs-body)}
}

/* Supplier descriptions inherit the store's typography, including inline markup. */
.tj-rich-description :where(div,p,span,font,li,td,th){
 font-family:inherit!important;font-size:inherit!important;color:inherit!important;background-color:transparent!important
}
.tj-rich-description :where(h1,h2){font-family:var(--font-body)!important;font-size:var(--fs-h3)!important;color:var(--ink)!important}
.tj-rich-description :where(h3,h4,h5,h6){font-family:var(--font-body)!important;font-size:var(--fs-h4)!important;color:var(--ink)!important}
.tj-rich-description a{color:var(--orange)!important;text-decoration:underline;text-underline-offset:3px}

@media(max-width:767px){
 
 .price,.new-bottom .price,.catalog-card .price,.catalog-main .catalog-card .price{font-size:var(--fs-h3)}
 .site-header .search input,.price-inputs input,.mobile-filter-dialog .price-inputs input{font-size:var(--fs-lead)}
 .pdp-reference .pdp-contact{flex-wrap:wrap}
 .pdp-reference .pdp-invoice{white-space:normal}
 .catalog-main .catalog-toolbar{column-gap:8px}
}
