/* Customer-facing reading sizes. Loaded after storefront.css; headings and logos retain their design. */
:root {
    --reading-body: 1.125rem;
    --reading-control: 1rem;
    --reading-note: .9375rem;
    --reading-small: .875rem;
    --reading-meta: .8125rem;
}

body:not(.wp-admin) { font-size: var(--reading-body); line-height: 1.7; }

/* Editorial copy, explanations, and answers. */
.hero-description,
.section-description,
.process-intro > p:not(.eyebrow),
.process-steps p,
.pricing-feature > div > p:not(.eyebrow),
.pricing-equation > p,
.collection-header > p:not(.eyebrow),
.editorial-heading > p:not(.eyebrow),
.editorial-content p,
.editorial-content li,
.page-content > p,
.page-content > ul,
.page-content > ol,
.embroidery-steps p,
.editorial-two-col p,
.check-list > li,
.info-banner p,
.pricing-notes p,
.faq-list p,
.faq-answer p,
.faq-answer ul,
.faq-answer ol,
.editorial-cta p,
.help-introduction,
.shipping-highlight p,
.help-contact-panel p:not(.eyebrow),
.contact-intro > p:not(.eyebrow),
.contact-aside p,
.contact-form-panel > p,
.woocommerce-product-details__short-description,
.woocommerce-Tabs-panel,
.woocommerce-MyAccount-content,
.woocommerce-customer-details address,
.sme-section-heading > p,
.sme-config-form fieldset > p,
.sme-config-form details > p,
.sme-review-notice,
.sme-cart-progress,
.sme-account-note,
.sme-notice {
    font-size: var(--reading-body);
    line-height: 1.75;
}

.hero-description,
.process-intro > p:not(.eyebrow),
.pricing-feature > div > p:not(.eyebrow),
.contact-intro > p:not(.eyebrow) { max-width: 40rem; }

.eyebrow,
.hero .eyebrow,
.sme-eyebrow,
.hero-image-label,
.hero-image-caption span,
.step-number,
.process-steps > li > span,
.category-number,
.products .product-style,
.product_meta,
.sme-config-form legend > span {
    font-size: var(--reading-meta);
    line-height: 1.5;
    letter-spacing: .075em;
}

/* Navigation, footer, and meaningful supporting information. */
.primary-nav a,
.primary-nav .menu a,
.footer-grid h2,
.footer-grid > div:not(.footer-brand) > a,
.print-referral a,
.trust-strip strong,
.hero-image-caption strong,
.category-name h3,
.contact-details,
.faq-jump-links a,
.woocommerce-tabs .tabs a,
.woocommerce-MyAccount-navigation li,
.woocommerce-MyAccount-navigation a {
    font-size: var(--reading-control);
    line-height: 1.6;
}

.primary-nav a { white-space: normal; }
.primary-nav .menu { flex-wrap: wrap; gap: .5rem 1.4rem; }
.footer-grid h2 { line-height: 1.5; margin-bottom: 1rem; }
.footer-grid > div:not(.footer-brand) > a { margin-bottom: .7rem; }
.footer-brand .footer-small,
.print-referral p,
.trust-strip span,
.hero-reassurance,
.collection-promise,
.woocommerce-breadcrumb,
.woocommerce-result-count,
.single-price-basis,
.woocommerce-shipping-methods,
.woocommerce-shipping-destination,
.woocommerce-shipping-calculator,
.woocommerce-LostPassword,
.dimension-illustration > p {
    font-size: var(--reading-note);
    line-height: 1.7;
}
.review-promise { font-size: var(--reading-control); line-height: 1.65; }
.site-main .small-note { font-size: var(--reading-note) !important; line-height: 1.75; }
.dimension-top,
.dimension-side { font-size: var(--reading-small); letter-spacing: .06em; }
.service-bar { font-size: var(--reading-small); line-height: 1.55; }
.service-bar > .container { gap: 1rem; padding-top: .45rem; padding-bottom: .45rem; }
.service-bar a { text-align: center; }
.staging-ribbon,
.staging-ribbon > span:last-child,
.footer-bottom,
.sme-fixture-note {
    font-size: .75rem;
    line-height: 1.5;
    letter-spacing: .02em;
}
.staging-ribbon { flex-wrap: wrap; gap: .25rem .5rem; padding: .4rem 1rem; text-align: center; }
.cart-count { font-size: .75rem; min-width: 1.125rem; height: 1.125rem; line-height: 1.125rem; }

/* Keep controls readable without changing heading or logo dimensions. */
#main-content label,
#main-content .form-row label,
#main-content :is(input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password], input[type=search], input[type=url], input[type=date], input:not([type]), select, textarea),
.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container .select2-results__option,
.select2-container .select2-search__field,
.site-main .button,
.site-main .woocommerce a.button,
.site-main .woocommerce button.button,
.site-main input[type=submit],
.site-main button[type=submit],
.site-main .wp-element-button,
.hero .button,
.hero .text-link,
.text-link,
.section-heading .text-link,
.process-intro .text-link,
.sme-color-tab,
.sme-add-pms,
.product-configure {
    font-size: var(--reading-control);
    line-height: 1.5;
}
#main-content .sme-submit { font-size: var(--reading-control) !important; }
#main-content input[type=file],
#main-content input[type=file]::file-selector-button { font-size: var(--reading-small); line-height: 1.6; }
#main-content input[type=file]::file-selector-button { white-space: normal; }
.site-main .button,
.site-main button[type=submit],
.site-main input[type=submit],
.hero .button { max-width: 100%; min-height: 3rem; gap: .75rem; padding: .85rem 1.15rem; }
.site-main legend { font-size: var(--reading-control); line-height: 1.5; }
.sme-config-form legend { font-size: 1.25rem; }
.site-main .woocommerce-notices-wrapper .button,
.woocommerce-message .button,
.woocommerce-info .button { font-size: var(--reading-control); }
.woocommerce-error,
.woocommerce-message,
.woocommerce-info { font-size: var(--reading-control); line-height: 1.7; }
.hero-actions,
.section-heading,
.editorial-cta,
.help-contact-panel,
.print-referral > .container { flex-wrap: wrap; }
.hero-actions { gap: 1rem 1.5rem; }
.hero-reassurance { align-items: flex-start; }
.hero-reassurance svg { margin-top: .25rem; }

/* Product cards, pricing facts, and tabular order details. */
.products li.product .woocommerce-loop-product__title,
.woocommerce-cart-form .shop_table .product-name > a { font-size: var(--reading-control); line-height: 1.55; max-width: 100%; }
.products .price { font-size: 1.25rem; line-height: 1.5; }
.products .price-from,
.summary .price-from { font-size: var(--reading-control); }
.products .price-basis,
.category-card > p { font-size: var(--reading-small); line-height: 1.65; }
.product-configure { gap: .6rem; }
.woocommerce-pagination li > * { font-size: var(--reading-control); min-width: 2.75rem; min-height: 2.75rem; }
.woocommerce-tabs .tabs { flex-wrap: wrap; gap: .5rem 1.5rem; }
.pricing-facts > div { min-width: 0; }
.pricing-facts span { font-size: var(--reading-small); line-height: 1.5; letter-spacing: .035em; min-height: 2.8em; }
.pricing-rule-included strong { font-size: var(--reading-control); line-height: 1.5; }
.pricing-table,
.pricing-table th,
.pricing-table td,
.woocommerce-product-attributes,
table.shop_table,
table.shop_table th,
table.shop_table td,
#order_review .shop_table th,
#order_review .shop_table td,
.woocommerce-order-pay .shop_table { font-size: var(--reading-control); line-height: 1.6; }
.pricing-table { table-layout: fixed; }
.pricing-table caption { font-size: var(--reading-note); line-height: 1.5; }
table.shop_table .product-name,
table.shop_table th,
table.shop_table td,
.variation dd { overflow-wrap: anywhere; }
.variation,
#order_review .variation { font-size: var(--reading-note); line-height: 1.7; }
.woocommerce-cart-form .shop_table .product-subtotal::before { font-size: var(--reading-control); }
.woocommerce-order-overview li { font-size: var(--reading-small); }
.woocommerce-order-overview strong { font-size: var(--reading-control); line-height: 1.6; }
#payment .payment_box,
.woocommerce-privacy-policy-text,
.woocommerce-terms-and-conditions-wrapper { font-size: var(--reading-control); line-height: 1.75; }
#payment .payment_methods label,
.woocommerce-terms-and-conditions-checkbox-text { font-size: var(--reading-control); line-height: 1.65; }
.cart_totals { width: 50%; }
.cart_totals table.shop_table,
#order_review table.shop_table { table-layout: fixed; }
.cart_totals table.shop_table td,
#order_review .product-total { padding-left: .65rem; }

/* Embroidery choices, quotes, search filters, and contact consent. */
.sme-config-form small,
.sme-muted,
.sme-config-summary > small,
.sme-config-summary .sme-preview-state,
.sme-placement-tile small,
.sme-live-quote > small { font-size: var(--reading-note); line-height: 1.7; }
.sme-config-summary > small,
.sme-placement-tile small { font-size: var(--reading-small); }
.sme-size-group h4,
.sme-size-matrix label > span,
.sme-size-matrix small,
.sme-placement-tile strong,
.sme-config-form summary,
.sme-config-summary > a,
.sme-live-quote,
.sme-quote-row,
.sme-quote-progress,
.sme-unit-estimate { font-size: var(--reading-control); line-height: 1.65; }
.sme-size-matrix { grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); gap: .65rem; }
.sme-size-matrix label { min-width: 0; }
.sme-config-form .sme-size-matrix input { min-width: 0; }
.sme-section-heading { flex-wrap: wrap; }
.sme-config-layout { grid-template-columns: minmax(0, 1.6fr) minmax(20rem, 1fr); }
.sme-quote-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem .75rem; align-items: start; }
.sme-quote-row > span { min-width: 0; }
.sme-quote-row > strong { white-space: nowrap; }
.sme-quote-row:last-of-type { font-size: var(--reading-body); }
.sme-catalog-filters label { min-width: 0; }
.sme-catalog-filters { grid-template-columns: minmax(0, 1.5fr) repeat(4, minmax(0, 1fr)) auto; }
.sme-contact-form p > label:has(input[type=checkbox]) { font-size: var(--reading-control); line-height: 1.7; }
.faq-list summary { font-size: var(--reading-body); line-height: 1.65; }
.faq-list summary::after { top: 1.2rem; }
.faq-jump-links a { max-width: 100%; }

@media (min-width: 681px) and (max-width: 1280px) {
    .header-row { flex-wrap: wrap; gap: 0; }
    .primary-nav { order: 3; flex-basis: 100%; padding: .85rem 0; border-top: 1px solid var(--line); }
    .primary-nav .menu { justify-content: center; gap: .5rem 1.5rem; }
    .header-actions { margin-left: auto; padding: 1.25rem 0; }
}

@media (max-width: 1200px) {
    .sme-catalog-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .pricing-feature { gap: 2rem; }
}

@media (max-width: 1000px) {
    .sme-config-layout { grid-template-columns: minmax(0, 1fr); }
    .sme-config-summary { position: static; }
    .sme-section-heading > p { max-width: none; }
}

@media (max-width: 900px) {
    .sme-catalog-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cart_totals { width: 65%; }
    .trust-strip { grid-template-columns: 1fr; gap: 0; }
    .trust-strip > div,
    .trust-strip > div:first-child,
    .trust-strip > div:last-child { justify-content: flex-start; padding: 1rem .25rem; border-right: 0; border-bottom: 1px solid var(--line); }
    .trust-strip > div:last-child { border-bottom: 0; }
}

@media (max-width: 680px) {
    :root { --reading-body: 1.0625rem; }
    .service-bar > .container { padding-top: .5rem; padding-bottom: .5rem; }
    .staging-ribbon > span:last-child { border-left: 0; padding-left: 0; }
    .primary-nav a,
    .primary-nav .menu a { font-size: var(--reading-control); line-height: 1.5; padding: .9rem 0; }
    .hero-actions { align-items: flex-start; flex-wrap: wrap; gap: 1rem; }
    .hero-actions > .button { width: auto; }
    .hero .text-link { font-size: var(--reading-control); }
    .hero-image-caption { gap: .75rem; }
    .hero-image-caption > div { min-width: 0; }
    .hero-image-caption a { flex-shrink: 0; }
    .collection-promise { display: block; line-height: 1.9; }
    .collection-promise > span { display: inline; padding: 0 .25em; }
    .woocommerce-result-count,
    .woocommerce-ordering { float: none; width: 100%; }
    #main-content .woocommerce-ordering select { max-width: 100%; width: 100%; }
    .cart_totals { width: 100%; padding: 1.25rem; }
    .woocommerce-MyAccount-content { font-size: var(--reading-body); }
    .woocommerce-MyAccount-navigation li { font-size: var(--reading-control); }
    .woocommerce-cart-form .shop_table tbody tr:not(:last-child) { grid-template-columns: 1.75rem minmax(0, 1fr) 4.75rem; }
    .woocommerce-cart-form .shop_table .product-name { min-width: 0; max-width: none; }
    .woocommerce-cart-form .shop_table .product-quantity input { max-width: 100%; }
    .pricing-table th,
    .pricing-table td { padding: .75rem .65rem; overflow-wrap: anywhere; }
    .pricing-facts span { font-size: var(--reading-small); line-height: 1.5; }
    .pricing-rule-included strong { font-size: var(--reading-control); }
    .sme-config-form fieldset { padding: 1rem; }
    .sme-config-summary { padding: 1rem; }
    .sme-placement-tile strong { padding-right: .7rem; }
    .dimension-illustration { padding: 1.5rem 1rem; }
    .dimension-side { position: static; display: block; writing-mode: horizontal-tb; margin-top: 1rem; }
}

@media (max-width: 480px) {
    .pricing-facts { grid-template-columns: minmax(0, 1fr); text-align: left; gap: 0; }
    .pricing-facts > div { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .9rem 0; border-bottom: 1px solid #cbd9d0; }
    .pricing-facts span { min-height: 0; margin: 0; max-width: 65%; font-size: var(--reading-small); }
    .pricing-facts > p { border-top: 0; padding-top: 1rem; }
    .sme-catalog-filters { grid-template-columns: minmax(0, 1fr); }
    .sme-dimensions,
    .sme-pms-row { grid-template-columns: minmax(0, 1fr); }
    .woocommerce-order-overview { grid-template-columns: minmax(0, 1fr); }
    .woocommerce-cart-form .shop_table .product-price,
    .woocommerce-cart-form .shop_table .product-subtotal { padding-left: 0; }
    .footer-grid { column-gap: 1rem; }
}

@media (max-width: 380px) {
    .category-grid,
    ul.products,
    ul.products.columns-4,
    .home-products ul.products.columns-4 { grid-template-columns: minmax(0, 1fr); }
    .category-image { height: 16rem; }
    .home-products .products li.product .attachment-woocommerce_thumbnail,
    .products li.product .attachment-woocommerce_thumbnail { height: 17rem; }
    .hero .button { padding: .85rem 1rem; font-size: var(--reading-control); }
    .footer-grid { grid-template-columns: minmax(0, 1fr); }
    .footer-grid > div,
    .footer-grid > div:last-child { grid-column: 1; }
}
