/* Focused readability layer. Loaded after page styles so the shared type roles stay consistent. */
:root {
  --type-meta:.875rem;
  --type-support:.9375rem;
  --type-ui:1rem;
  --type-body:1.0625rem;
  --type-lede:1.125rem;
  --leading-tight:1.35;
  --leading-copy:1.62;
}

body { font-size:1rem; line-height:var(--leading-copy); }
.eyebrow { font-size:var(--type-meta); line-height:1.4; letter-spacing:.12em; }
.button,.text-link { font-size:var(--type-support); line-height:1.35; }
input,select,textarea { font-size:var(--type-ui); line-height:1.5; }

/* Shared header, navigation and mega menu */
.announcement { font-size:var(--type-meta); line-height:1.45; }
.desktop-nav { font-size:var(--type-ui); }
.shop-mega-intro .eyebrow,.shop-mega-feature small { font-size:var(--type-meta); }
.shop-mega-intro p { max-width:34ch; font-size:var(--type-ui); line-height:1.55; }
.shop-mega-intro .text-link,.shop-mega-feature > span > span { font-size:var(--type-support); }
.shop-mega-collections a > span { font-size:1.125rem; }
.shop-mega-collections small,.mobile-shop-collections small { font-size:var(--type-meta); }
.menu-links .mobile-shop-collections a { font-size:var(--type-ui); }

/* Homepage and shared product cards */
.hero-description,.feature-copy>p:not(.eyebrow),.rewards-intro>p:not(.eyebrow),.newsletter-copy>p:not(.eyebrow) { max-width:66ch; font-size:var(--type-body); line-height:var(--leading-copy); }
.hero-note,.sample-note { font-size:var(--type-support); line-height:1.6; }
.rewards-steps p { font-size:var(--type-ui)!important; line-height:1.65; }
.club-intro,.club-bottom,.detail-notes p { font-size:var(--type-ui)!important; line-height:1.65; }
.detail-notes b { font-size:var(--type-ui)!important; }
.hero-actions .button,.hero-actions .text-link,.shop-section .section-heading>.text-link,.club .section-heading>.text-link,.rewards-intro>.text-link,.club-bottom .button { font-size:var(--type-support); }
.hero-photo-small figcaption,.photo-frame figcaption,.feature-photo figcaption { font-size:var(--type-meta); line-height:1.45; }
.joy-ribbon,.filter,.currency-note { font-size:var(--type-support); }
.product-category,.product-badge,.preview-tag,.media-type,.step-label { font-size:var(--type-meta); line-height:1.4; }
.price,.row-price { font-size:var(--type-ui); }
.price-prefix { font-size:var(--type-meta); }
.quick-button,.add-button,.remove-button,.media-caption .text-link { font-size:var(--type-support); }
.media-caption p { font-size:var(--type-ui); line-height:1.55; }

/* Forms, newsletter and customer feedback */
.email-field input,.search-input { min-height:50px; font-size:var(--type-ui); }
.email-field .button,.newsletter-action .button,#newsletter-popup-form .button { font-size:var(--type-support); }
.consent-label,.newsletter-consent { font-size:var(--type-ui); line-height:1.55; }
.field-error,.form-status,.account-form-status,#submission-status,#checkout-status { font-size:var(--type-support); line-height:1.5; }
.newsletter-action > p,.newsletter-popup-copy > p:first-child,.newsletter-result p { font-size:var(--type-ui); line-height:1.6; }
.newsletter-preview-note,.newsletter-storage,.newsletter-privacy p { font-size:var(--type-support); line-height:1.55; }
#newsletter-popup-form > label:first-child { font-size:var(--type-ui); }
.newsletter-privacy strong { font-size:var(--type-meta); }

/* Shared footer */
.footer-main { gap:clamp(32px,4vw,58px); }
.footer-brand p { max-width:32ch; font-size:var(--type-ui); line-height:1.7; }
.footer-column { gap:6px; }
.footer-column h3 { font-size:1.25rem; line-height:1.3; }
.footer-column a,.footer-column button { min-height:42px; padding:9px 0; font-size:var(--type-support); line-height:1.45; }
.footer-bottom { font-size:var(--type-meta); line-height:1.55; }
.footer-bottom a,.footer-bottom button { font-size:var(--type-meta); }
.footer-signoff { font-size:var(--type-ui); }

/* Dialogs, drawers and search modal */
.overlay-eyebrow { font-size:var(--type-meta); }
.overlay-content p,.overlay-content li,.preview-disclosure { font-size:var(--type-ui)!important; line-height:1.6; }
.row-details,.saved-reference { font-size:var(--type-support); line-height:1.5; }
.drawer-row .row-name { font-size:1.25rem; line-height:1.3; }
.drawer-row .add-button,.quantity span { font-size:var(--type-support); }
.cart-summary p,.bag-item-issue,.cart-data-notice,.storage-notice,.unavailable-wish p { font-size:var(--type-ui); line-height:1.6; }
.search-label,.quick-copy label { font-size:var(--type-ui); }
.search-status { font-size:var(--type-support); }
.search-row span { font-size:var(--type-support); }
.search-row b { font-size:1.25rem; }
.wishlist-feedback,.wishlist-feedback .text-link,.toast,.lightbox-caption { font-size:var(--type-support); line-height:1.55; }

/* Shop and catalog */
.catalog-breadcrumbs,.catalog-intro p:not(.eyebrow),.collection-footnote,.price-explainer { font-size:var(--type-support); line-height:1.6; }
.collection-choice,.catalog-control,.catalog-sort label,.catalog-sort select,.active-price,.clear-catalog-filters,.catalog-empty .button { font-size:var(--type-support); }
.collection-count,.catalog-currency,.filter-caption,.single-page,.catalog-drawer-collections .collection-count,.price-option .price-option-count { font-size:var(--type-meta); }
.catalog-count,.catalog-pagination,.catalog-empty p { font-size:var(--type-support); line-height:1.55; }

/* Product detail */
.breadcrumbs { font-size:var(--type-support); }
.gallery-note,.gallery-caption,.material-note,.purchase-help,.detail-note,.club-photo-preview p,.club-video-preview p,.club-preview-note,.empty-media p { font-size:var(--type-ui); line-height:1.6; }
.gallery-zoom,.purchase-help a,.club-video-preview .text-link,.lightbox-tools > button,.lightbox-navigation .button,.mobile-purchase .button { font-size:var(--type-support); }
.purchase-price > span:last-child,.product-options label,.quantity-label { font-size:var(--type-ui); }
.video-preview-label,.lightbox-tools > span,.related-heading .eyebrow,.sticky-name,#sticky-price small { font-size:var(--type-meta); }

/* Wishlist and shopping bag */
.wishlist-breadcrumbs,.bag-breadcrumbs { font-size:var(--type-support); }
.wishlist-intro p:not(.eyebrow),.wishlist-local-note,.wishlist-empty p,.wishlist-missing .product-info > p:not(.product-category),.bag-intro p:not(.eyebrow),.bag-local-note,.bag-pricing-note,.bag-review-note,.bag-empty > p { font-size:var(--type-ui); line-height:1.6; }
.wishlist-toolbar .text-link,.wishlist-remove.product-wish,.wishlist-empty .button,.bag-toolbar .text-link,.bag-line-actions .bag-remove,.bag-save,.bag-empty > .button,.bag-empty > .text-link { font-size:var(--type-support); }
.wishlist-availability,.bag-line-options,.bag-unit-price,.bag-order-summary dl > div,.bag-subtotal dt { font-size:var(--type-support); }
.bag-line-info .saved-reference,.bag-unit-price span,.bag-line-total > span { font-size:var(--type-meta); }
.bag-quantity-error,#bag-checkout-note { font-size:var(--type-ui); line-height:1.55; }

/* Checkout and confirmation */
.checkout-progress,.checkout-back,.checkout-intro > p:last-child,.demo-notice,.checkout-small,.section-help,.payment-explanation,.checkout-action-note,.checkout-errors ul,.checkout-notice,.checkout-footer p,.confirmation-endnote { font-size:var(--type-ui); line-height:1.6; }
.checkout-item-options,.checkout-item-quantity,.checkout-item > strong,.checkout-item-issue,.edit-bag,.checkout-totals > div,.checkout-choice small,.confirmation-methods p { font-size:var(--type-support); line-height:1.5; }
.checkout-field label,.checkout-checkbox,.checkout-choice strong,.payment-explanation strong { font-size:var(--type-ui); }
.checkout-field label span,.field-help,.checkout-checkbox small,.checkout-totals dt span,.checkout-final-amount small,.confirmation-meta span,.confirmation-meta strong,.confirmation-meta time,.section-title > span,.confirmation-methods small,.demo-tag { font-size:var(--type-meta); line-height:1.5; }
.checkout-footer { font-size:var(--type-meta); }

/* Account, Rewards and submissions */
.account-breadcrumbs { font-size:var(--type-support); }
.account-intro p:last-child,.account-demo-notice,.account-side-note,.account-greeting > p:last-child,.account-summary-links small,.account-form-help,.account-memory-note,.account-fixture-note,.account-order-disclosure,.account-small,.account-address-empty,.account-welcome > p:not(.account-small),.social-signin > p { font-size:var(--type-ui)!important; line-height:1.65; }
.account-shortcuts small { font-size:var(--type-support)!important; line-height:1.55; }
.account-navigation a,.account-navigation button,.account-navigation > summary,.account-navigation summary strong,.account-tabs button,.rewards-account-tabs button { font-size:var(--type-ui); }
.account-profile-badge small,.account-nav-count,.account-source,.account-order-id time,.account-status-tag,.account-order-price small,.order-mobile-label,.social-provider small,.social-divider { font-size:var(--type-meta); line-height:1.4; }
.account-section-heading .text-link,.account-section-heading > span,.account-back,.account-empty .button,.account-empty .text-link,.account-address-card .button,.account-welcome .button,.account-forgot,.account-entry-panel form > .button,.account-details-form > .button,.account-form-actions .button,.social-provider span { font-size:var(--type-support); }
.account-order-head,.account-order-row,.account-order-id strong,.account-order-row .text-link,.account-order-items p,.account-order-methods p,.account-order-totals .checkout-totals > div,.account-address-card address { font-size:var(--type-support); line-height:1.55; }
.account-order-statuses dt,.account-order-statuses dd span,.account-order-items p span,.account-recorded-options,.account-order-items small,.account-order-totals dt span { font-size:var(--type-meta); }
.account-field label,.account-checkbox { font-size:var(--type-ui); }
.account-field label span,.account-field-note,.account-checkbox small { font-size:var(--type-support); line-height:1.55; }
.account-errors ul,.account-field .field-error,.account-status { font-size:var(--type-support); }
.account-rewards-notice,.account-submission-notice,.reward-calculation-note,.referral-mini p:not(.eyebrow),.referral-link-panel > p:last-child,.reward-privacy-note,.rewards-empty p,.payout-privacy-note,.submission-media-placeholder p { font-size:var(--type-ui); line-height:1.6; }
.reward-metrics > div > span,.reward-metrics small,.reward-source,.reward-activity-main time,.reward-activity-list small,.reward-status,.referral-link-panel .eyebrow,.referral-code-line>span,.referral-url-line>label,.referral-order-head,.referral-orders li time,.referral-orders li small,.payout-list li > div > span,.payout-list time,.payout-list small,.submission-record-head time,.submission-record dt,.reward-mobile-label { font-size:var(--type-meta); line-height:1.45; }
.referral-mini .button,.reward-help-links strong,.referral-link-panel .button,.reward-activity-main strong,.reward-amount strong,.referral-orders li strong,.payout-list strong,.submission-record-head strong { font-size:var(--type-support); }
.reward-help-links small,.referral-orders li > p,.payout-list p,.submission-record dd { font-size:var(--type-support); line-height:1.55; }
.referral-link-panel code,.referral-url-value { font-size:var(--type-support); }

/* Public Rewards */
.rewards-breadcrumbs { font-size:var(--type-support); }
.rewards-lede,.rewards-process-intro > p:last-child { max-width:68ch; font-size:var(--type-lede); line-height:1.65; }
.rewards-launch-note { font-size:var(--type-ui); line-height:1.6; }
.program-type { font-size:var(--type-meta); letter-spacing:.11em; }
.program-card > p:not(.program-type) { max-width:60ch; font-size:var(--type-body); line-height:1.65; }
.program-points li { font-size:var(--type-ui); line-height:1.6; padding-bottom:12px; }
.program-actions .button,.program-actions .text-link,.closing-actions .button { font-size:var(--type-support); }
.rewards-distinction li { max-width:60ch; padding-block:9px; font-size:var(--type-ui); line-height:1.55; }
.process-row strong { font-size:var(--type-body); }
.process-row small { font-size:var(--type-support); line-height:1.55; }
.process-row li > span,.rewards-distinction .eyebrow,.rewards-section-heading .eyebrow,.rewards-process-intro .eyebrow,.faq-intro .eyebrow,.rewards-closing .eyebrow { font-size:var(--type-meta); }
.terms-note,.faq-answer p,.rewards-closing p:not(.eyebrow) { font-size:var(--type-ui); line-height:1.65; }
.faq-item button { font-size:var(--type-ui); }

/* Community and viewer */
.community-breadcrumbs { font-size:var(--type-support); }
.community-description,.community-preview-note,.community-empty p:not(.eyebrow),.community-invitation p:not(.eyebrow),.monthly-club p:not(.eyebrow) { max-width:68ch; font-size:var(--type-body); line-height:1.65; }
.community-intro-side .button,.community-filter-clear,.community-filters button,.community-empty .button,.community-invitation .button,.monthly-club .button { font-size:var(--type-support); }
#community-status,.community-card-product,.community-thumbnail-unavailable { font-size:var(--type-support); }
.community-media-label,.community-card .community-source,.community-viewer .community-source,.community-viewer-navigation > span,.community-product small { font-size:var(--type-meta); }
.community-viewer-navigation .text-link,.community-product .text-link,.community-gallery-link { font-size:var(--type-support); }
.community-source-note,.community-credit,.community-original,.community-disclosure,.community-product p,.community-product.missing p,.community-media-fallback p { font-size:var(--type-ui); line-height:1.6; }

/* Share Your Squish */
.share-breadcrumbs ol { font-size:var(--type-support); }
.share-intro>div>p:last-child,.share-preview-notice,.share-resume-note,.section-help,.media-dropzone label > span:not(.media-drop-icon),.media-dropzone label small,.social-link-tile p,.share-check,.share-check small,.demo-order-field p,.review-private p,.submission-action-note,.guide-card p,.share-guide details p,.next-card ol,.next-card p,.result-notice,.result-endnote,.result-memory-note { font-size:var(--type-ui); line-height:1.6; }
.share-field label,.demo-order-field > label,.credit-choices strong,.social-link-tile strong,.share-guide summary,.guide-card strong { font-size:var(--type-ui); }
.share-field label span,.field-help,.character-count,.product-option small,.submission-review-heading .eyebrow,.submission-review-heading > span,.review-list dt,.result-status,.result-reference span,.result-summary span { font-size:var(--type-meta); }
.media-tile-copy > strong,.media-tile-copy > small,.selected-products li:not(.selected-products-empty),.selected-products-empty,.credit-choices small,.review-list dd,.review-private strong,.submission-errors ul,.result-summary strong,.future-flow li { font-size:var(--type-support); line-height:1.55; }
.remove-file,.cover-choice,.selected-products button { font-size:var(--type-support); }

/* Content, FAQ, search, 404 and policies */
.content-breadcrumbs,.policy-breadcrumbs { font-size:var(--type-support); }
.content-hero-copy > p:not(.eyebrow):not(.content-lede),.about-experience-copy p,.contact-aside p,.contact-preview-note,.contact-privacy,.contact-confirmation p,.faq-header p,.faq-side p,.faq-answer,.error-explanation,.search-intro p:not(.eyebrow),.search-empty-card > p { max-width:70ch; font-size:var(--type-ui); line-height:1.65; }
.content-hero .eyebrow,.error-copy .eyebrow { font-size:var(--type-meta)!important; }
.content-actions .button,.faq-categories button,.faq-side a,.search-category-links a,.error-search button { font-size:var(--type-support); }
.contact-field label,.search-page-form > label,.error-search > label { font-size:var(--type-ui); }
.faq-question { font-size:var(--type-ui); line-height:1.45; }
.faq-status,.search-result-count { font-size:var(--type-support); }
.policy-preview,.policy-toc summary,.policy-toc a,.policy-related a { font-size:var(--type-support); line-height:1.55; }
.policy-section p,.policy-section li { max-width:72ch; font-size:var(--type-body); line-height:1.7; }

@media(max-width:1199px) {
  .footer-main { gap:30px; }
  .process-referral ol { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media(max-width:899px) {
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
}

@media(max-width:699px) {
  .announcement { font-size:var(--type-meta); }
  .button,.text-link { font-size:var(--type-support); }
  .hero-description,.feature-copy>p:not(.eyebrow),.rewards-intro>p:not(.eyebrow),.newsletter-copy>p:not(.eyebrow) { font-size:var(--type-ui); }
  .footer-main { grid-template-columns:1fr 1fr; gap:28px 24px; }
  .footer-brand { grid-column:1 / -1; }
  .footer-column:last-child { grid-column:1 / -1; }
  .footer-bottom { gap:14px; }
  .process-row li { grid-template-columns:34px minmax(82px,auto) minmax(0,1fr); }
  .process-row strong { font-size:var(--type-ui); }
  .process-row small { font-size:var(--type-support); }
  .account-order-row,.reward-activity-list>li,.referral-orders li,.payout-list li { font-size:var(--type-support); }
  .account-rewards-notice,.account-submission-notice,.reward-calculation-note,.referral-link-panel > p:last-child,.reward-privacy-note,.submission-media-placeholder p { font-size:var(--type-ui); }
}

/* Explicit floors for legacy responsive selectors with higher specificity. */
.page-home .eyebrow,.page-shop .eyebrow,.page-product .eyebrow,.page-wishlist .eyebrow,.page-cart .eyebrow,.page-checkout .eyebrow,.page-confirmation .eyebrow,.page-account .eyebrow,.page-community .eyebrow,.page-share .eyebrow,.page-rewards .eyebrow,.page-content .eyebrow,.page-search .eyebrow,.page-policy .eyebrow,.newsletter-copy .eyebrow,.section-heading .eyebrow { font-size:var(--type-meta)!important; line-height:1.4; }
.header-actions .count { min-width:18px; height:18px; padding-inline:4px; font-size:var(--type-meta)!important; line-height:18px; }
.product-bottom .add-button,.drawer-row .add-button { font-size:var(--type-support)!important; }
.feature-copy>.button { font-size:var(--type-support)!important; }
.club-bottom .button { font-size:var(--type-support)!important; }
#wishlist-count,#bag-count { font-size:var(--type-support)!important; }
#summary-count,.checkout-final-amount dt,.checkout-totals dt { font-size:var(--type-meta)!important; }
#preview-order { font-size:var(--type-support)!important; }
.checkout-empty p,.account-empty p { font-size:var(--type-ui)!important; line-height:1.65; }
.referral-link-panel code,.reward-activity-list code,.referral-url-value { font-size:var(--type-support)!important; }
.share-section legend>span,.selected-products li strong { font-size:var(--type-meta)!important; }
.product-option strong { font-size:var(--type-meta)!important; line-height:1.35; }
.guide-card li>span { font-size:var(--type-meta)!important; }
.catalog-intro p:not(.eyebrow),.product-intro,.story-copy>p:not(.eyebrow),.product-club-copy p:not(.eyebrow) { font-size:var(--type-ui)!important; line-height:1.65; }
.detail-content p { font-size:var(--type-ui)!important; line-height:1.65; }
.collection-footnote,.referral-orders li>p,.payout-list p,.community-card-product,.selected-products-empty { font-size:var(--type-ui)!important; line-height:1.6; }

@media(max-width:699px) {
  input,select,textarea,#catalog-sort,.bag-quantity input,#referral-link-text { font-size:var(--type-ui)!important; }
}

/* Current section uses the existing navigation design. */
.desktop-nav a[aria-current],.menu-links a[aria-current]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}

/* Final integration: readable entry notice, reward explanations and form errors. */
.account-welcome .account-small { font-size:var(--type-meta)!important; }
.rw .rw-notice,.rw .rw-mobile-nav,.rw-activity-info p,.rw-referral-row p { font-size:var(--type-ui)!important; line-height:1.6; }
.field-error { font-size:var(--type-ui); }
#catalog-sort,.bag-quantity input { font-size:var(--type-ui); }
.newsletter-privacy p { font-size:var(--type-ui); line-height:1.6; }
