:root {
  --axe-site-heading-font: "Oswald", sans-serif;
  --axe-site-body-font: "Roboto", sans-serif;
  --axe-site-caption-size: 0.75rem;
  --axe-site-caption-leading: 1rem;
  --axe-site-small-size: 0.875rem;
  --axe-site-small-leading: 1.25rem;
  --axe-site-body-size: 1rem;
  --axe-site-body-leading: 1.5rem;
  --axe-site-prose-size: 1rem;
  --axe-site-prose-leading: 1.5rem;
  --axe-site-subheading-size: 1.25rem;
  --axe-site-subheading-leading: 1.75rem;
  --axe-site-heading-size: 1.5rem;
  --axe-site-heading-leading: 2rem;
  --axe-site-title-size: 2rem;
  --axe-site-title-leading: 2.5rem;
  --axe-site-prose-measure: 65ch;
}

@media (min-width: 960px) {
  :root {
    --axe-site-prose-size: 1.125rem;
    --axe-site-prose-leading: 1.75rem;
    --axe-site-subheading-size: 1.375rem;
    --axe-site-heading-size: 1.75rem;
    --axe-site-heading-leading: 2.25rem;
    --axe-site-title-size: 2.25rem;
    --axe-site-title-leading: 2.75rem;
  }
}

html body {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-body-size);
  font-weight: 400;
  line-height: var(--axe-site-body-leading);
}

/* The theme collapses footer links with zero-size type, which conflicts with
 * the body typography below. Collapse the menu itself at the theme breakpoint. */
@media (max-width: 959px) {
  html body .footer-widgets-2 .widget_nav_menu:not(.clicked) .menu {
    display: none;
  }

  html body .footer-widgets-2 .widget_nav_menu {
    margin-bottom: 16px;
  }

  html body .footer-widgets-2 .widget_nav_menu:last-child {
    margin-bottom: 0;
  }

  html body .footer-widgets-2 .widget-title {
    min-height: 44px;
    padding-bottom: 8px;
  }

  html body .footer-widgets-2 .clicked .menu a {
    display: block;
    font-family: var(--axe-site-body-font);
    line-height: var(--axe-site-body-leading);
    padding: 8px 0;
    margin: 0;
    transition:
      color 0.2s,
      opacity 0.2s;
  }
}

html body :is(p, li, dt, dd, address, blockquote, figcaption, td, th, label) {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-body-size) !important;
  line-height: var(--axe-site-body-leading) !important;
}

html
  body
  :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-body-size) !important;
  line-height: var(--axe-site-body-leading) !important;
}

html body form.cart :is(label, .label, .label-tag),
html body form.checkout label {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-body-size) !important;
  line-height: var(--axe-site-body-leading) !important;
}

html body form.cart .sublabel-tag {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-small-size) !important;
  line-height: var(--axe-site-small-leading) !important;
}

/*
 * The cart is a narrow transactional surface. Preserve the sitewide typefaces
 * and hierarchy while giving dense order data a compact, readable scale.
 */
html body .axe-funnel-cart .axe-funnel-cart__timing p {
  font-size: 16px !important;
  line-height: 22px !important;
}

html body .axe-funnel-cart-item__configuration .variation dt {
  font-size: 12px !important;
  line-height: 16px !important;
}

html body .axe-funnel-cart-item__configuration .variation dd,
html body .axe-funnel-cart-item__configuration .variation dd p {
  font-size: 15px !important;
  line-height: 20px !important;
}

html body .axe-funnel-cart .quantity .qty {
  font-size: var(--axe-site-body-size) !important;
  line-height: 36px !important;
}

html body .axe-funnel-cart .cart_totals .shop_table th,
html body .axe-funnel-cart .cart_totals .shop_table td {
  font-size: 16px !important;
  line-height: 22px !important;
}

html body .axe-funnel-cart .cart_totals .order-total th,
html body .axe-funnel-cart .cart_totals .order-total td {
  font-size: 18px !important;
  line-height: 24px !important;
}

html body .axe-funnel-cart .cart_totals .woocommerce-shipping-destination,
html body .axe-funnel-cart .cart_totals .woocommerce-shipping-destination p,
html body .axe-funnel-cart .cart_totals .woocommerce-shipping-calculator {
  font-size: 14px !important;
  line-height: 19px !important;
}

/* Checkout item details need the same compact scale as the cart drawer. */
html body.axe-funnel-checkout #order_review .shop_table :is(th, td) {
  font-size: 15px !important;
  line-height: 22px !important;
}

html body.axe-funnel-checkout #order_review .shop_table thead th,
html body.axe-funnel-checkout #order_review dl.variation dt {
  font-size: 12px !important;
  font-weight: 600;
  line-height: 17px !important;
  letter-spacing: 0.035em;
  overflow-wrap: normal;
  word-break: normal;
}

html body.axe-funnel-checkout #order_review dl.variation dd,
html body.axe-funnel-checkout #order_review dl.variation dd p {
  font-size: 14px !important;
  font-weight: 400;
  line-height: 20px !important;
  overflow-wrap: break-word;
  word-break: normal;
}

html body.axe-funnel-checkout #order_review .axe-funnel-cart-item__delivery {
  margin-top: 8px;
  font-size: 12px;
  font-weight: 400;
  line-height: 18px;
}

html
  body.axe-funnel-checkout
  #order_review
  .axe-funnel-cart-item__delivery
  strong {
  font-weight: 600;
}

html
  body.axe-funnel-checkout
  #order_review
  .axe-funnel-checkout__choice-toggle {
  font-family: var(--axe-site-body-font) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 20px !important;
}

html body.axe-funnel-checkout #order_review .order-total :is(th, td) {
  font-size: 18px !important;
  line-height: 24px !important;
}

html body.axe-funnel-checkout #order_review .woocommerce-shipping-totals td {
  font-size: 14px !important;
  font-weight: 400;
  line-height: 20px !important;
}

html
  body
  :is(
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .entry-title,
    .product_title,
    .woocommerce-loop-product__title,
    .axe-funnel-configurator__intro-title,
    .axe-funnel-configurator__title,
    .axe-funnel-configurator__heading,
    .axe-funnel-configurator__native-heading,
    .axe-funnel-custom-stamp__title,
    .axe-funnel-helmet-section__title,
    .axe-funnel-thread-gallery__title,
    .axe-funnel-cart__title,
    .axe-funnel-cart__section-heading,
    .axe-funnel-checkout__title,
    .woocommerce-order-details__title
  ) {
  font-family: var(--axe-site-heading-font) !important;
  font-size: var(--axe-site-heading-size) !important;
  font-weight: 600 !important;
  line-height: var(--axe-site-heading-leading) !important;
}

html body #order_review_heading {
  font-family: var(--axe-site-heading-font) !important;
  font-size: var(--axe-site-heading-size) !important;
  font-weight: 600 !important;
  line-height: var(--axe-site-heading-leading) !important;
}

/* Semantic roles override theme heading tags: a product-card h2 is not a
 * page title. Keep the scale here rather than adding page-specific sizes. */
html body :is(h1, .entry-title, .product_title) {
  font-size: var(--axe-site-title-size) !important;
  line-height: var(--axe-site-title-leading) !important;
}

html
  body
  :is(
    h3,
    .axe-funnel-configurator__title,
    .axe-funnel-configurator__native-heading,
    .axe-funnel-custom-stamp__title,
    .axe-funnel-helmet-section__title,
    .axe-funnel-cart__section-heading,
    .footer-widgets .widget-title
  ) {
  font-size: var(--axe-site-subheading-size) !important;
  line-height: var(--axe-site-subheading-leading) !important;
}

html body :is(h4, h5, h6, .woocommerce-loop-product__title) {
  font-size: 1.125rem !important;
  line-height: var(--axe-site-body-leading) !important;
}

html
  body
  :is(
    .woocommerce-product-details__short-description,
    .woocommerce-Tabs-panel--description,
    .entry-content > .wp-block-paragraph
  ) {
  max-width: var(--axe-site-prose-measure);
  font-size: var(--axe-site-prose-size) !important;
  line-height: var(--axe-site-prose-leading) !important;
}

html
  body
  :is(
    .woocommerce-product-details__short-description,
    .woocommerce-Tabs-panel--description
  )
  :is(p, li),
html body .entry-content > .wp-block-paragraph {
  font-size: var(--axe-site-prose-size) !important;
  line-height: var(--axe-site-prose-leading) !important;
}

html
  body
  :is(
    button,
    .button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"]
  ) {
  font-family: var(--axe-site-heading-font) !important;
  font-size: var(--axe-site-body-size) !important;
  font-weight: 600 !important;
  line-height: var(--axe-site-body-leading) !important;
}

/* Choices and disclosures are UI controls, not editorial headlines. Explicit
 * states beat legacy theme rules without changing their dimensions on hover. */
html
  body
  :is(
    .axe-funnel-configurator,
    .axe-funnel-visual-product-options,
    .axe-funnel-simple-product-options
  )
  :is(
    .axe-funnel-choice,
    .axe-funnel-color-select__trigger,
    .axe-funnel-color-select__option,
    .axe-funnel-configurator__trigger
  ):is(*, :hover, :focus, :active) {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-body-size) !important;
  font-weight: 500 !important;
  line-height: var(--axe-site-body-leading) !important;
}

html
  body
  :is(
    .axe-funnel-choice__detail,
    .axe-funnel-field-note,
    .axe-funnel-match-strap__description,
    .axe-funnel-configurator__summary,
    .axe-funnel-configurator__progress-label,
    .axe-funnel-configurator__intro-description,
    .axe-funnel-choice__price
  ) {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-small-size) !important;
  line-height: var(--axe-site-small-leading) !important;
}

html
  body
  :is(
    .axe-funnel-configurator__eyebrow,
    .axe-funnel-configurator__status,
    .axe-funnel-configurator__number
  ) {
  font-family: var(--axe-site-body-font) !important;
  font-size: var(--axe-site-caption-size) !important;
  line-height: var(--axe-site-caption-leading) !important;
}

html body :is(.axe-funnel-cart, #order_review) .amount {
  font-variant-numeric: tabular-nums;
}
