/* Measured against Home Depot's live storefront, 2026-09-05.
 * Licensed Helvetica Neue files are optional: see inc/typography.php.
 * Without them, use the visitor's Helvetica or Arial; never fetch THD fonts.
 * Keep this after component styles. Raster campaign artwork has its own type.
 */
:root {
  --ap-font-body: 'Aplus Helvetica Neue', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --ap-font-display: 'Aplus Helvetica Neue Condensed', 'Helvetica Neue Condensed', 'Arial Narrow', Arial, sans-serif;
  --ap-type-small: 12px;
  --ap-type-body: 14px;
  --ap-type-control: 16px;
  --ap-type-subhead: 24px;
  --ap-type-section: 30px;
  --ap-type-display: 48px;
  --ap-type-price: 28px;
}
body { font-family: var(--ap-font-body); font-size: 14px; font-weight: 400; line-height: 1.5; letter-spacing: normal; }
button, input, select, textarea { font-family: var(--ap-font-body); }
h1, h2, h3, h4, h5, h6, .h2 { font-family: var(--ap-font-body); font-weight: 700; letter-spacing: normal; }
b, strong { font-weight: 700; }

/* The primary navigation and search stay readable at every breakpoint. */
.mix-nav, .mix-nav>a, .mix-nav__catalog { font-family: var(--ap-font-body); font-size: 16px; line-height: 20px; font-weight: 400; letter-spacing: normal; }
.mix-search input, .mix-search select { font: 400 16px/20px var(--ap-font-body); }
.mix-mega__title, .drawer-head>strong { font-family: var(--ap-font-body); font-size: 20px; line-height: 25px; font-weight: 700; letter-spacing: normal; }
.mix-mega li a, .drawer-nav a, .drawer-catalog summary, .drawer-catalog details>a { font-size: 16px; line-height: 24px; font-weight: 400; }
.mix-action>span { font-size: 14px; line-height: 21px; font-weight: 400; }
.mix-action small { font-size: 12px; line-height: 18px; }

/* Buttons use Bold 16/24, including WooCommerce and the quote forms. */
.btn, .mix-button, .mix-nav .mix-nav__deal, .ap-header-mobile-quote,
.mix-home .ap-section-button, .ap-catalog-banner__button,
.ap-yard-card__directions, .sp .btn, .sp .single_add_to_cart_button,
.woo-page .button, .drawer-panel--cart .woocommerce-mini-cart__buttons a,
.quote-submit, .woocommerce button.button, .woocommerce a.button {
  font-family: var(--ap-font-body); font-size: 16px; line-height: 24px; font-weight: 700; letter-spacing: normal;
}
.mix-home .mix-products .prod-card__cta>.button,
.mix-home .mix-products .prod-card__cta>.prod-call,
.prod-card__cta .button, .prod-card__cta .prod-call, .prod .button, .prod-call {
  font-family: var(--ap-font-body)!important; font-size: 16px!important; line-height: 24px!important; font-weight: 700!important; letter-spacing: normal;
}

/* Section headings: 30/37.5; smaller modules: 24/30. */
.mix-section__head h2, .ap-departments .mix-section__head h2,
.mix-products .mix-section__head h2, .ap-contact h2,
.ap-planner-complete h2, .h2, .sp-related h2 {
  font-size: var(--ap-type-section); line-height: 1.25; font-weight: 700; letter-spacing: normal;
}
.ap-yard-card h2, .ap-project-help h3, .ap-planner legend,
.sp-tabs h2, .sp-tabs h3, .cart_totals h2, .woocommerce-checkout h3 {
  font-size: 24px; line-height: 30px; font-weight: 700; letter-spacing: normal;
}
.ap-department__name, .ap-category strong { font-size: 16px; line-height: 24px; font-weight: 700; letter-spacing: normal; }
.ap-brand-shop__label { font-size: 16px; line-height: 24px; font-weight: 400; }

/* Display headings use the condensed cut, not stretched letters. */
.store-catalog h1, .store-catalog .ap-catalog-banner h1,
.ap-contact h1, .ap-planner h1, .woo-page>h1, .page-head h1 {
  font-family: var(--ap-font-display); font-size: var(--ap-type-display); line-height: 1; font-weight: 700; letter-spacing: normal;
}
.store-catalog h1 { text-transform: uppercase; }
.ap-catalog-banner__copy>p, .store-catalog-intro, .ap-contact header>p:last-child,
.ap-contact section>p:not(.store-eyebrow), .ap-planner header>p:last-child,
.sp-short { font-size: 16px; line-height: 24px; font-weight: 400; }
.store-subcategories>a, .store-filters label, .store-filters legend,
.store-results-count, .woocommerce-result-count, .filter-toggle,
.store-catalog .woocommerce-ordering select, .ap-planner label { font-size: 16px; line-height: 24px; letter-spacing: normal; }
.store-catalog .woocommerce-ordering select { font-family: var(--ap-font-body); font-weight: 400; }

/* Product names never shrink on phones. Metadata has its own quieter tier. */
.prod-name.prod-card__title, .store-catalog .prod-name.prod-card__title,
.mix-home .mix-products .prod-name.prod-card__title {
  font: 400 16px/20px var(--ap-font-body)!important; letter-spacing: normal!important;
}
.prod-brand.prod-card__brand { font-size: 14px; line-height: 17.5px; font-weight: 700; letter-spacing: normal; text-transform: none; }
.prod-spec, .prod-card__spec, .prod-unit, .prod-card__unit,
.prod-persq, .sp-meta, .sp-pickup-note small { font-family: var(--ap-font-body); font-size: 12px; line-height: 18px; font-weight: 400; }
.prod-card__fulfillment, .prod-fulfillment { font-size: 14px; line-height: 21px; }
.prod-price, .prod-price .price, .prod-card__price, .mix-home .mix-products .prod-card__price {
  font-family: var(--ap-font-display); font-size: var(--ap-type-price); line-height: 1; font-weight: 700; letter-spacing: normal;
}
.prod-card__price>.woocommerce-Price-amount,
.prod-card__price>:not(.prod-persq) .woocommerce-Price-amount,
.mix-home .mix-products .prod-card__price>.woocommerce-Price-amount,
.mix-home .mix-products .prod-card__price>:not(.prod-persq) .woocommerce-Price-amount {
  font-family: var(--ap-font-display); font-size: var(--ap-type-price)!important; line-height: 1!important; font-weight: 700!important; letter-spacing: normal;
}
.prod-card__price .prod-persq { font-family: var(--ap-font-body); font-size: 12px; line-height: 18px; }
.sp h1.product_title { font-family: var(--ap-font-body); font-size: 22px; line-height: 27.5px; font-weight: 700; letter-spacing: normal; }
.sp-price { font-family: var(--ap-font-body); font-size: 14px; line-height: 21px; font-weight: 400; letter-spacing: normal; }
.sp-price>.woocommerce-Price-amount, .sp-price .price { font-family: var(--ap-font-display); font-size: 48px; line-height: 1; font-weight: 700; letter-spacing: normal; }
.prod-card__price .ap-price-fraction, .prod-card__price .woocommerce-Price-currencySymbol { font-size: 12px; line-height: 1; vertical-align: super; }
.sp-price .ap-price-fraction, .sp-price .woocommerce-Price-currencySymbol { font-size: 24px; line-height: 1; vertical-align: super; }
.sp-price .unit { font-family: var(--ap-font-body); font-size: 14px; line-height: 21px; font-weight: 400; }
.sp-price .unit .woocommerce-Price-currencySymbol { font-size: inherit; vertical-align: baseline; }
.prod-card__price del, .prod-card__price del .woocommerce-Price-amount { font-size: 16px!important; }
.prod-card__price del .ap-price-fraction, .prod-card__price del .woocommerce-Price-currencySymbol,
.prod-persq .woocommerce-Price-currencySymbol { font-size: inherit; vertical-align: baseline; }
.sp-price .price del { font-size: 24px; }
.sp-price .price del .ap-price-fraction, .sp-price .price del .woocommerce-Price-currencySymbol { font-size: inherit; vertical-align: baseline; }
.sp-price small { font-family: var(--ap-font-body); font-size: 14px; line-height: 21px; }
.woo-page input.input-text, .woo-page select, .woo-page textarea,
.ap-planner input[type=number], .ap-planner select { font-size: 16px; line-height: 24px; }

.ap-call-strip__hours p { font-size: 16px; line-height: 24px; font-weight: 400; }
.ap-call-strip__hours h2 { font-family: var(--ap-font-display); font-size: 48px; line-height: 1; font-weight: 700; letter-spacing: normal; }
.ap-call-strip__button>span { font-size: 16px; line-height: 24px; letter-spacing: normal; }
.ap-call-strip__button strong { font-family: var(--ap-font-body); font-size: 28px; line-height: 35px; font-weight: 700; letter-spacing: normal; }
.mix-footer__column h3 { font-size: 20px; line-height: 25px; font-weight: 700; letter-spacing: normal; }
.mix-footer__column a { font-size: 14px; line-height: 21px; }

/* Supporting modules inherit the same regular/bold rhythm. */
.ap-delivery-stories__intro h2, .ap-delivery-promo__copy h2 { font-family: var(--ap-font-display); font-size: 40px; line-height: 1; font-weight: 700; letter-spacing: normal; }
.ap-delivery-stories__promise, .ap-delivery-promo__copy p { font-size: 16px; line-height: 24px; }
.ap-delivery-stories__photo figcaption { font-size: 20px; line-height: 25px; font-weight: 700; letter-spacing: normal; }
.ap-delivery-stories__call, .ap-promo-cta { font-size: 16px; line-height: 24px; font-weight: 700; letter-spacing: normal; }
.sp-copy, .entry, .lede, .woocommerce-MyAccount-content { font-size: 16px; line-height: 24px; }
.sp-copy h2, .related.products>h2, .upsells.products>h2 { font-size: 24px; line-height: 30px; font-weight: 700; letter-spacing: normal; }
.sp-copy h3 { font-size: 20px; line-height: 25px; }
.entry h2, .shop-empty h2 { font-size: 24px; line-height: 30px; font-weight: 700; }
.entry h3 { font-size: 20px; line-height: 25px; font-weight: 700; }
.ap-post-meta { font-size: 14px; line-height: 21px; }
.field input, .field select, .field textarea, .quantity input.qty { font-size: 16px; line-height: 24px; }
.field label, .woo-page .form-row label, .sp-trade, .sp-pickup-note, .specs, table.shop_table { font-size: 14px; line-height: 21px; }
.ap-planner-product, .ap-planner-totals>div { font-size: 16px; line-height: 24px; }
.ap-planner-totals strong { font-size: 20px; font-weight: 700; }
.ap-planner-totals>div:last-child strong { font-size: 28px; }
.ap-header-offer { font-size: 14px; line-height: 21px; font-weight: 400; }
.ap-header-mobile-quote { font-weight: 700; }

@media(max-width:700px) {
  :root { --ap-type-display: 32px; --ap-type-price: 24px; }
  .sp h1.product_title { font-size: 20px; line-height: 25px; }
  .ap-call-strip__hours h2 { font-size: 32px; }
  .ap-call-strip__hours p { max-width: 190px; font-size: 14px; line-height: 21px; }
  .mix-home .ap-section-button { gap: 8px; padding-inline: 14px; }
  .ap-departments .mix-section__head, .mix-products .mix-section__head { flex-wrap: wrap; }
  .ap-departments .mix-section__head h2, .mix-products .mix-section__head h2 { max-width: none; flex: 1 1 180px; }
  .ap-yard-card>header { grid-template-columns: 1fr; }
  .ap-yard-card__directions { justify-self: start; }
  .ap-header-mobile-quote { font-size: 14px; line-height: 21px; }
  .mix-action--cart>span { font-size: 0; line-height: 0; }
  .mix-action--cart .aplus-cart-n { font-size: 12px; line-height: 18px; }
  .ap-delivery-stories__intro h2, .ap-delivery-promo__copy h2 { font-size: 32px; }
}
@media(max-width:360px) {
  .ap-department__name>span { display: none; }
}
