/* V49 — readable text at its natural size. Loaded last for screen output.
   Keep photography, hero title sizing and the V43 measured slots untouched. */
:root {
  --type-font-v49: 'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --type-ink-v49: #302638;
  --type-muted-v49: #554b59;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-family: var(--type-font-v49);
  font-size: 17px;
  font-weight: 400;
  line-height: 1.65;
  color: var(--type-ink-v49);
}
body button, body input, body select, body textarea { font-family: var(--type-font-v49); }
body input, body select, body textarea,
body .ops-field input, body .ops-field select, body .ops-field textarea,
body .ops-order-line select,
body .pos-order-details-grid-v45 input, body .pos-order-details-grid-v45 select, body .pos-order-details-grid-v45 textarea,
body .pdp-selectors input, body .pdp-selectors select,
body .official-filters input, body .official-filters select,
body .mk-controls input, body .mk-controls select,
body .pp-v29 input, body .pp-v29 .pp-v29-form input, body .pp-v29 select,
body .lifestyle-edits-v29 select, body .lifestyle-edits-v29 .le-v29-item-copy select,
body .growth-field input, body .growth-field select, body .growth-field textarea {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
}
body input::placeholder, body textarea::placeholder { color: #655c67; opacity: 1; }
body label, body legend { font-size: 14px; line-height: 1.55; }
body small { font-size: 13px; line-height: 1.55; }
body table { font-size: 15px; line-height: 1.55; }
body table th { font-size: 13px; font-weight: 650; line-height: 1.5; }
body table td { font-size: 15px; line-height: 1.55; }

/* Text buttons are explicit: icon-only hearts, close and arrow controls keep
   their larger glyph sizes and existing touch targets. */
body .button, body .official-button, body .bundle-button,
body .pay-button, body .pay-secondary, body .pos-button,
body .ops-button, body .ops-toolbar .ops-button,
body[data-workspace-role="customer"] .ops-button,
body .growth-button, body .growth-secondary,
body .mk-controls button, body .pos-heading-actions .pos-button,
body .pos-heading > .pos-button {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.45;
  white-space: normal;
}
body header nav a, body .mk-header nav a, body .pos-top nav a,
body .topbar nav a, body .top nav a, body .tabs a, body .tabs button {
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
}
body header.site-header-v29 nav.chrome-v29-main-nav,
body header.site-header-v29 nav.chrome-v29-main-nav a { font-size: 15px; font-weight: 600; }
body nav.mobile-nav a { font-size: 15px; font-weight: 600; line-height: 1.5; }
body header.site-header-v29 .tools .market-button,
body header.site-header-v29 .tools .bag { font-size: 14px; font-weight: 600; line-height: 1.45; }
body header.site-header-v29 .bag span { font-size: 12px; }
body header.site-header-v29.luxury-header-v32 .chrome-v29-brand-note {
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .02em;
  white-space: normal;
  max-width: var(--chrome-brand-width,148px);
  color: #594535;
}
body .announcement { font-size: 13px; line-height: 1.5; }

/* Enlarge information within the existing hero rows. Theme ink still inherits
   correctly on dark Pagoto/Organics slides. No title or media resizing here. */
#heroLuxury.hero-luxury-v32[data-world] #heroDescription { font-size: 16px; line-height: 1.6; font-weight: 400; }
#heroLuxury.hero-luxury-v32[data-world] #heroEyebrow { font-size: 12px; line-height: 1.5; letter-spacing: .09em; }
#heroLuxury.hero-luxury-v32[data-world] .hero-ctas .button,
#heroLuxury.hero-luxury-v32[data-world] .hero-secondary { font-size: 15px; line-height: 1.45; font-weight: 600; }
#heroLuxury.hero-luxury-v32[data-world] #heroProof > span { font-size: 12px; line-height: 1.5; letter-spacing: .04em; }
#heroLuxury.hero-luxury-v32[data-world] #heroProof > button { font-size: 13px; line-height: 1.45; font-weight: 600; }
#heroLuxury.hero-luxury-v32[data-world] #heroSpotlight > span,
#heroLuxury.hero-luxury-v32[data-world] #heroCredit,
#heroLuxury.hero-luxury-v32[data-world] .hero-story-kicker { font-size: 12px; line-height: 1.5; }
#heroLuxury.hero-luxury-v32[data-world] #heroProductName { font-size: 16px; line-height: 1.45; font-weight: 600; }
#heroLuxury.hero-luxury-v32[data-world] #heroNow { font-size: 15px; line-height: 1.45; }
#heroLuxury.hero-luxury-v32[data-world] #heroCounter,
#heroLuxury.hero-luxury-v32[data-world] .hero-controls #heroPlay { font-size: 14px; line-height: 1.45; }
#heroLuxury.hero-luxury-v32[data-world] .aqua-view-switch-v33 button { font-size: 14px; line-height: 1.45; }
#heroLuxury.hero-luxury-v32[data-world] .aqua-view-switch-v33 small { font-size: 12px; line-height: 1.4; }
#heroLuxury.hero-luxury-v32[data-world] .aqua-bottles-v33 figcaption a,
#heroLuxury.hero-luxury-v32[data-world] .aqua-cans-v33 figcaption a { font-size: 14px; line-height: 1.45; }
#heroLuxury.hero-luxury-v32[data-world] .aqua-bottles-v33 figcaption > span,
#heroLuxury.hero-luxury-v32[data-world] .aqua-launch-note-v33 { font-size: 12px; line-height: 1.5; }

/* Equal media frames and reserved card rows stay under ui-balance-v47. */
body .official-product[data-official-world] h3,
body .products .product h3 { font-size: 18px; line-height: 1.45; font-weight: 700; }
body .official-product[data-official-world] .official-product-brand,
body .products .product .brand { font-size: 13px; line-height: 1.6; font-weight: 650; color: #62415d; }
body .official-product[data-official-world] .official-product-category,
body .products .product .caption { font-size: 16px; line-height: 1.6; color: var(--type-muted-v49); }
body .official-product[data-official-world] .official-product-actions a,
body .products .product .product-action a { font-size: 16px; line-height: 1.5; font-weight: 600; }
body .official-product[data-official-world] .official-product-image .official-art-caption,
body .official-category-card > div > small,
body .official-category-card > div.bottle-scene-v34 > small,
body .official-category-card[data-campaign-category] > div > small,
body .products .product .media-note-v44,
body .products .product .beauty-v26-featured-caption { font-size: 12px; line-height: 1.5; color: var(--type-muted-v49); }
body .media-note-v44 { font-size: 12px; line-height: 1.5; color: var(--type-muted-v49); }
body .official-category-card > p { font-size: 16px; line-height: 1.55; color: var(--type-muted-v49); }
body .official-category-card > span,
body .official-beauty-categories .official-category-card > span { font-size: 19px; line-height: 1.4; }
body .official-filters label, body .shop-facets label, body .sort-label,
body .official-results-line p, body .official-results-line button,
body .results-line, body .compare-choice { font-size: 14px; line-height: 1.55; }
body .official-worlds button, body .section #filters button,
body #filters button, body .egg-series-buttons button { font-size: 16px; line-height: 1.45; }
body .official-worlds button small { font-size: 14px; }
body .hero-product-card small { font-size: 15px; line-height: 1.55; color: var(--type-muted-v49); }
body .hero-product-card .card-links a { font-size: 15px; line-height: 1.5; }

body .catalogue-detail-category, body .catalogue-breadcrumb,
body .pdp .breadcrumb, body .pdp-selectors label,
body .catalogue-buy-panel > span, body .catalogue-secondary-link,
body .pdp-price small, body .pdp-secondary, body .pdp-secondary button,
body .pdp-sticky-buy span, body .pdp-sticky-buy .button { font-size: 15px; line-height: 1.55; }
body .catalogue-source-overview p, body .catalogue-detail-facts p,
body .catalogue-business-card p, body .catalogue-extension-body > p,
body .catalogue-faq p, body .pdp-copy > p, body .pdp-panel p,
body .pdp-panel a, body .pdp-points, body .pdp-qa p { font-size: 18px; line-height: 1.7; }
body .catalogue-detail-art figcaption,
body .catalogue-gallery-zoom-figure figcaption,
body .gallery-source-archive-v46 { font-size: 14px; line-height: 1.6; color: var(--type-muted-v49); }
body .catalogue-gallery-thumb span { font-size: 12px; line-height: 1.5; }
body .catalogue-gallery-dialog-controls,
body .catalogue-gallery-dialog-controls a { font-size: 15px; line-height: 1.55; }
body .catalogue-gallery-dialog-top h2 { font-size: 17px; line-height: 1.45; font-weight: 600; }
body .bag-row .bag-name { font-size: 16px; line-height: 1.5; font-weight: 600; }
body .bag-row > div > small, body .bag-quantity a { font-size: 13px; line-height: 1.55; }
body .bag-buttons .button { font-size: 15px; line-height: 1.45; }

#footerLuxury { --footer-soft: #5d493f; }
#footerLuxury .footer-luxury-kicker, #footerLuxury .signature-v32-kicker,
#footerLuxury .footer-luxury-more-grid nav > span,
#footerLuxury [data-footer-link-status] { font-size: 12px; line-height: 1.5; letter-spacing: .04em; }
#footerLuxury .footer-v19-panel > summary, #footerLuxury .footer-v19-links a,
#footerLuxury .footer-v19-contact a, #footerLuxury .footer-luxury-more-grid a,
#footerLuxury .footer-luxury-more > summary, #footerLuxury .footer-luxury-shop { font-size: 15px; line-height: 1.55; }
#footerLuxury .footer-connect-intro-v40 p { font-size: 15px; line-height: 1.6; }
#footerLuxury .footer-social-links-v40 a > span,
#footerLuxury .footer-v19-bottom > small,
#footerLuxury .footer-v19-bottom a, #footerLuxury .footer-v19-bottom button { font-size: 13px; line-height: 1.55; }

/* Business surfaces: readable records and form labels, without altering the
   value scale of charts, numeric totals, tables or printed receipts. */
body .ops-sidebar nav a, body .ops-mobile-nav-v30 a,
body[data-workspace-role="customer"] .ops-sidebar nav a { font-size: 15px; line-height: 1.5; }
body .ops-sidebar-bottom, body .ops-sidebar-bottom a,
body .ops-user, body .ops-worktop, body .ops-footer { font-size: 13px; line-height: 1.55; }
body[data-workspace-role="customer"] .ops-user,
body[data-workspace-role="customer"] .ops-footer { font-size: 13px; line-height: 1.55; }
body .ops-eyebrow, body .ops-sidebar .ops-eyebrow,
body .ops-workspace-number, body .ops-pill { font-size: 12px; line-height: 1.5; }
body[data-workspace-role="customer"] .ops-sidebar .ops-eyebrow { font-size: 12px; line-height: 1.5; }
body .ops-panel p, body .ops-workspace p, body .ops-note p,
body .ops-empty p, body .ops-onboarding-v45 p { font-size: 16px; line-height: 1.65; }
body[data-workspace-role="customer"] .ops-panel p { font-size: 16px; line-height: 1.65; }
body .ops-field, body .ops-order-line .ops-field,
body .ops-stat span, body .ops-onboarding-v45 li a { font-size: 14px; line-height: 1.55; }
body .ops-field small, body .ops-table small, body .ops-table[data-cards-v30] td small,
body .ops-portal-period-v45, body .ops-portal-note-v45,
body .ops-business-bars-v45 small, body .ops-form-note,
body .ops-detail-list dt, body .ops-code { font-size: 13px; line-height: 1.6; }
body .ops-panel p, body .ops-field small, body .ops-table small,
body .ops-portal-period-v45, body .ops-portal-note-v45,
body .ops-business-bars-v45 small { color: var(--type-muted-v49); }
body .ops-table th { font-size: 13px; line-height: 1.5; color: #4e4655; }
body .ops-table td, body .ops-detail-list dd,
body .ops-media strong { font-size: 15px; line-height: 1.55; }
body .ops-table button, body .ops-table[data-cards-v30] td button,
body .ops-media button { font-size: 14px; line-height: 1.45; }
body .ops-media p { font-size: 14px; line-height: 1.6; color: var(--type-muted-v49); }
body .ops-table[data-cards-v30] td[data-label]::before { font-size: 12px; line-height: 1.5; }
body[data-workspace-role="customer"] .ops-table[data-cards-v30] td { font-size: 15px; line-height: 1.55; }
body .cp-v34-kicker, body .cp-v34-link-number,
body .cp-v34-payment-status { font-size: 12px; line-height: 1.5; }
body .cp-v34-welcome p, body .cp-v34-section-intro p,
body .cp-v34-orders-empty p { font-size: 16px; line-height: 1.65; }
body .cp-v34-quicklinks strong { font-size: 17px; line-height: 1.45; }
body .cp-v34-quicklinks a > span:last-child,
body .cp-v34-order-count, body .cp-v34-order-toolbar p,
body .cp-v34-order-status, body .cp-v34-order-note { font-size: 14px; line-height: 1.6; }
body .cp-v34-shop-button, body .cp-v34-order-toolbar button,
body .cp-v34-order-action, body .cp-v34-order-card li,
body .cp-v34-order-card li strong, body .cp-v34-order-total { font-size: 15px; line-height: 1.5; }

body .pay-card p, body .mk-panel p, body .mk-intro p,
body .growth-panel p, body .pos-heading p { font-size: 16px; line-height: 1.65; }
body .pay-lines span, body .pay-action small, body .pay-reference,
body .pay-readiness-list-v44 small, body .pay-readiness-note-v44,
body .mk-note, body .mk-metric p, body .growth-small,
body .pos-help, body .pos-line small, body .pos-reference,
body .pos-product p { font-size: 14px; line-height: 1.6; }
body .pay-kicker, body .pay-status, body .pay-readiness-list-v44 b,
body .mk-kicker, body .mk-badge, body .pos-eyebrow,
body .pos-stock-ref, body .pos-count { font-size: 12px; line-height: 1.5; }
body .mk-controls label, body .pos-search-label, body .pos-line label,
body .pos-selects label, body .pos-order-details-grid-v45 label { font-size: 14px; line-height: 1.55; }
body .pos-product h3, body .pos-line strong { font-size: 16px; line-height: 1.45; }
body .pos-totals dl > div { font-size: 15px; line-height: 1.55; }
body .pos-totals .pos-total { font-size: 20px; }
body .pos-identity, body .pos-footer, body .mk-footer,
body .mk-metric > span { font-size: 13px; line-height: 1.55; }
body .mk-chart svg text { font-size: 12px; }

@media (max-width: 480px) {
  body { font-size: 16px; }
  body header.site-header-v29 .tools .market-button,
  body header.site-header-v29 .tools .bag { font-size: 14px; }
  body .catalogue-source-overview p, body .catalogue-detail-facts p,
  body .catalogue-business-card p, body .catalogue-extension-body > p,
  body .catalogue-faq p, body .pdp-copy > p, body .pdp-panel p,
  body .pdp-panel a, body .pdp-points, body .pdp-qa p { font-size: 17px; }
}
