/* Shared body-copy standard, matching the approved desktop hero paragraph.
 * Keep this after template styles so mobile rules cannot shrink normal copy.
 * Deliberately exclude headings, buttons, icons, prices and semantic states.
 */
:root {
  --font-body-size: 18px;
  --font-body-leading: 1.55;
  --color-body-copy: #000000;
}

body main :is(.entry-content, .atelier-story__content, .product-tab-panel),
body main :is(p, li, td, th, dt, dd, label, legend, summary, address, small):not(.eyebrow):not([class*="price"]):not([class*="stock"]):not(.screen-reader-text):not(.visually-hidden),
body:not(.wp-admin) main :is(.trust-item span, .trust-item strong, .product-card__meta, .product-shipping, .breadcrumbs, .woocommerce-result-count, .contact-form label > span),
body main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]), textarea, select) {
  color: var(--color-body-copy);
  font-size: var(--font-body-size);
  line-height: var(--font-body-leading);
}

/* Stock availability remains green/amber while using readable text sizing. */
body:not(.wp-admin) main .product-stock > span,
body:not(.wp-admin) main .category-card__label span {
  font-size: var(--font-body-size);
  line-height: var(--font-body-leading);
}

/* WooCommerce Blocks render much of their normal copy in spans, not paragraphs. */
body.woocommerce-page main :is(
  .wc-block-components-product-name,
  .wc-block-components-product-metadata,
  .wc-block-components-product-price,
  .wc-block-components-totals-item,
  .wc-block-components-totals-item__label,
  .wc-block-components-radio-control__label,
  .wc-block-components-radio-control__description,
  .wc-block-components-checkbox__label,
  .wc-block-components-express-payment-continue-rule,
  .wc-block-components-address-card__edit,
  .wc-block-components-address-form__address_2-toggle,
  .wc-block-checkout__shipping-option--free
) {
  color: var(--color-body-copy);
  font-size: var(--font-body-size);
  line-height: var(--font-body-leading);
}

/* Inline formatting should not reintroduce tiny copy; emphasis stays intact. */
body main :is(.entry-content, .atelier-story__content, .product-tab-panel) :is(span, small):not([class]):not([style]),
body main p:not(.eyebrow):not([class*="price"]):not([class*="stock"]) > small {
  font-size: inherit;
  line-height: inherit;
}

/* Descriptive text in dark panels must retain its light foreground. */
body main .location-card--contact {
  --color-body-copy: var(--color-white);
}

body .site-footer :is(p, li, small, address),
body .site-footer :is(.footer-nav a, .footer-contact a, .footer-contact span, .site-footer__legal) {
  color: #f1ece6;
  font-size: var(--font-body-size);
  line-height: var(--font-body-leading);
}

body .site-footer :is(.footer-nav a, .footer-contact a, .footer-contact span) {
  overflow-wrap: anywhere;
}

/* Let short promotional cards grow with the larger copy, not crop it. */
body.home-page :is(.trust-strip__grid, .service-card, .inspiration-banner) {
  height: auto;
}
