/* Readable type across the storefront. Keep this after component styles.
   Product photography, brand colours and compact banner targets are unchanged. */
:root {
  --read-font: 'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --read-copy: 18px;
  --read-small: 14px;
  --read-ink: #302134;
  --read-muted: #594a57;
  --muted: #594a57;
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body {
  font-family: var(--read-font);
  font-size: var(--read-copy);
  font-weight: 400;
  line-height: 1.65;
  color: var(--read-ink);
  text-rendering: optimizeLegibility;
}
body :is(button, input, select, textarea) { font-family: var(--read-font); }
body :is(h1, h2, h3, h4, h5) { font-family: var(--read-font); font-weight: 700; }
body :is(h1, h2) { letter-spacing: -.035em; }
body :is(h3, h4, h5) { letter-spacing: -.015em; line-height: 1.35; }
body :is(p, li) { text-wrap: pretty; }
body :is(button, a, input, select, textarea, summary):focus-visible {
  outline: 3px solid #8d429b; outline-offset: 4px;
}
body :is(input, select, textarea)::placeholder { color: #655765; opacity: 1; }
body :is(button, select, input:not([type='checkbox']):not([type='radio']):not([type='range']), textarea) {
  min-height: 44px;
}
body :is(input, select, textarea) { font-size: 16px; line-height: 1.5; }
body :is(.button, .official-button, .bundle-button, .text-link, .official-text-link) {
  font-family: var(--read-font); font-size: 16px; font-weight: 600; line-height: 1.45; min-height: 44px;
}
body :is(.eyebrow, .official-kicker, .bundle-kicker, .story-kicker, .pe-v12-kicker) {
  font-size: 13px; font-weight: 700; letter-spacing: .09em; line-height: 1.6;
}
/* These source rules were already !important; keep disclosures legible too. */
body .fine, body .catalogue-source-note, body .routine-label-note,
body .saved-plan-pending, body .story-film-help {
  font-size: 14px !important; line-height: 1.65 !important;
}
body :is(.fine, .catalogue-source-note, .routine-label-note, .saved-plan-pending) { color: var(--read-muted); }

/* Navigation and footers remain comfortable without squeezing the logo. */
body .announcement { font-size: 13px; line-height: 1.5; letter-spacing: .075em; }
body header { gap: 18px; }
body header nav { font-size: 15px; font-weight: 600; gap: clamp(15px, 1.5vw, 24px); }
body header nav a { display: inline-flex; align-items: center; min-height: 44px; }
body .tools { gap: 8px; flex-shrink: 0; }
body .tools button { min-width: 44px; min-height: 44px; }
body .tools .market-button, body .tools .bag { font-size: 14px; font-weight: 600; line-height: 1.4; }
body .tools .market-button { padding: 10px 12px; }
body .mobile-nav a { font-size: 14px; font-weight: 600; line-height: 1.4; min-height: 44px; display: inline-flex; align-items: center; padding: 8px 7px; }
body footer { color: #fff7f0; }
body footer h2 { font-weight: 700; letter-spacing: -.035em; }
body footer h4 { font-size: 14px; letter-spacing: .075em; color: #fff7f0; }
body footer :is(a, .footer-privacy), body .footer-top a { font-size: 16px; color: #fff7f0; line-height: 1.6; }
body footer .footer-top>div>a:not(.original-brand) { min-height: 40px; padding-block: 7px; margin-bottom: 0; }
body .footer-bottom, body .footer-bottom a { font-size: 14px; color: #f1dfec; line-height: 1.6; }
body .footer-bottom { flex-wrap: wrap; gap: 15px 25px; }

/* Home copy, discovery, product shelves and filters. */
body :is(.section-title p, .discovery p, .feature-copy p, .ritual-panel p, .world p,
  .lab-intro p, .label-lab>div>p, .kit-builder p, .collection-intro p,
  .collection-body p, .collection-body li, .guide-grid p, .market-hero p,
  .market-details p, .faq details p, .pdp-story p, .pdp-benefits p) {
  font-size: var(--read-copy); line-height: 1.7; color: var(--read-muted);
}
body .section .feature-copy p, body .section .ritual-panel p,
body .label-lab.section>div>p, body .kit-builder.section p { font-size: var(--read-copy); }
body :is(.section h2, .collection-body h2, .feature-copy h2, .kit-builder h2) { font-weight: 700; letter-spacing: -.035em; }
body .section .product h3, body .product h3 { font-size: 19px; line-height: 1.4; font-weight: 700; letter-spacing: -.015em; }
body .section .product .caption, body .product .caption { font-size: 16px; line-height: 1.6; color: var(--read-muted); min-height: 0; }
body .section .product .brand, body .product .brand { font-size: 13px; color: #62415d; font-weight: 700; letter-spacing: .065em; }
body .section .product-action a, body .product-action a { font-size: 15px; font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }
body .section .product-action button, body .product-action button,
body .section .heart, body .heart { min-width: 44px; width: 44px; min-height: 44px; height: 44px; }
body .section .badge, body .badge { font-size: 12px; font-weight: 700; line-height: 1.5; letter-spacing: .025em; padding: 6px 9px; max-width: calc(100% - 53px); }
body .section .compare-choice, body .compare-choice { font-size: 14px; line-height: 1.5; color: var(--read-muted); gap: 8px; }
body .compare-choice>span { max-width: none; }
body .section :is(.sort-label, .shop-facets label, .shop-utilities label),
body :is(.shop-facets label, .shop-utilities label, .sort-label, .results-line) { font-size: 14px; color: var(--read-muted); line-height: 1.5; }
body .section :is(.shop-facets select, .sort-label select, .inline-search input),
body .shop-facets select, body .inline-search input { font-size: 16px; }
body .section #filters button, body #filters button, body .moment-tabs button,
body .section .shop-utilities>button, body .shop-utilities>button,
body .shop-facets>button { font-size: 15px; line-height: 1.4; min-height: 44px; }
body .section .results-line { font-size: 14px; line-height: 1.5; }
body :is(.shop-utilities, .shop-facets, .filter-row, .results-line, .product-action) { flex-wrap: wrap; }
body :is(.feature-tags, .feature-copy small, .world-values, .brand-strip>span,
  .guide-grid span, .lab-pills, .kit-options span, .kit-preview a, .rail-tail) { font-size: 14px; line-height: 1.6; }
body .kit-options b { font-size: 18px; line-height: 1.4; }
body .faq summary, body .pdp-qa summary { font-size: 18px; line-height: 1.5; min-height: 44px; }
body .intent-grid :is(span, b) { font-size: 13px; font-weight: 600; line-height: 1.5; }
body .intent-grid strong { font-size: 25px !important; font-weight: 700; line-height: 1.2; }

/* Compact campaign banners: readable copy can grow the grid naturally.
   No fixed height/max-height is introduced; decorative words keep their opacity. */
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) { grid-template-rows: auto auto; height: auto; max-height: none; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) h1 { font-weight: 700; line-height: 1.08; letter-spacing: -.04em; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) h1 em { letter-spacing: -.025em; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-copy>p {
  font-size: 17px; line-height: 1.55; color: inherit; opacity: 1; max-width: 520px;
}
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .eyebrow { font-size: 13px; line-height: 1.5; letter-spacing: .07em; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-ctas { flex-wrap: wrap; gap: 10px 18px; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-ctas .button,
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-secondary { font-size: 15px; font-weight: 600; line-height: 1.4; min-height: 44px; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-proof span { font-size: 12px; line-height: 1.45; letter-spacing: .025em; padding: 6px 9px; opacity: 1; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-spotlight>span { font-size: 12px; line-height: 1.45; letter-spacing: .055em; opacity: 1; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-spotlight strong { font-size: 16px; font-weight: 700; line-height: 1.4; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-spotlight small { font-size: 13px; line-height: 1.5; opacity: 1; color: inherit; }
body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-art-credit { font-size: 12px; line-height: 1.4; opacity: 1; color: inherit; }
body .hero-v4 .hero-hint, body .hero-v4 #heroCounter, body .hero-v4 .hero-controls #heroPlay { font-size: 13px; line-height: 1.4; opacity: 1; }
body .universe-tabs button { font-size: 17px; font-weight: 700; line-height: 1.35; }
body .universe-tabs button>span, body .universe-tabs button small { font-size: 13px; line-height: 1.5; opacity: 1; color: #61445d; }
body .hero-shopping-heading .eyebrow { font-size: 13px; letter-spacing: .075em; }
body .hero-product-card strong, body .hero-product-card>span { font-size: 17px; font-weight: 700; line-height: 1.4; padding-right: 35px; }
body .hero-product-card small { font-size: 14px; color: var(--read-muted); line-height: 1.5; }
body .hero-product-card .card-links a { font-size: 14px; min-height: 44px; white-space: normal; }
body .hero-product-card .card-links { flex-wrap: wrap; gap: 4px 14px; }
body .hero-product-card { flex-basis: 370px; min-width: 0; }
body .egg-series-heading p { font-size: 15px; color: var(--read-muted); line-height: 1.6; }
body .egg-series-buttons button { font-size: 15px; line-height: 1.45; min-height: 44px; }

/* All current catalogue products, category shelves and product detail routes. */
body .official-catalogue { font-size: var(--read-copy); --oc-muted: #594a57; }
body .official-catalogue :is(h1, h2, h3) { font-weight: 700; }
body .official-catalogue h1, body .official-shop-hero-v11 h1 { letter-spacing: -.035em; line-height: 1.08; }
body .official-catalogue h2 { letter-spacing: -.03em; line-height: 1.15; }
body .official-shop-hero-v11 .official-hero-copy>p:not(.official-kicker),
body .official-hero-copy>p:not(.official-kicker), body .official-section-heading>p,
body .official-beauty-guidance article>p, body .official-admin-panel li { font-size: var(--read-copy); line-height: 1.7; }
body .official-shop-hero-v11 .official-kicker { font-size: 13px; letter-spacing: .075em; }
body .official-shop-hero-v11 .official-hero-proof>span { font-size: 15px; line-height: 1.55; }
body .official-shop-hero-v11 .official-button { font-size: 16px; }
body .official-shop-hero-v11 .official-hero-mosaic figcaption span,
body .official-shop-hero-v11 .official-beauty-discover span { font-size: 12px; letter-spacing: .05em; }
body .official-shop-hero-v11 .official-hero-mosaic figcaption strong,
body .official-shop-hero-v11 .official-beauty-discover strong { font-size: 15px; line-height: 1.4; }
body .official-worlds button { font-size: 16px; min-height: 44px; }
body .official-worlds button small { font-size: 14px; }
body .official-category-card>span, body .official-beauty-categories .official-category-card>span { font-size: 18px; font-weight: 700; line-height: 1.4; }
body .official-category-card>p { font-size: 15px; line-height: 1.5; }
body .official-category-card small, body .official-category-card[data-campaign-category] small { font-size: 13px; color: #594456; line-height: 1.45; }
body .official-product h3, body .official-beauty-v12 .official-product h3 { font-size: 19px; line-height: 1.4; font-weight: 700; letter-spacing: -.015em; }
body .official-product-brand { font-size: 13px; line-height: 1.5; letter-spacing: .065em; font-weight: 700; }
body .official-product-category { font-size: 15px; line-height: 1.5; }
body .official-product-actions { flex-wrap: wrap; gap: 4px 14px; }
body .official-product-actions a { font-size: 15px; min-height: 44px; line-height: 1.4; }
body .official-art-caption, body .official-product-image[data-campaign-art] .official-art-caption,
body .official-beauty-v12 .official-art-caption { font-size: 12px; line-height: 1.45; color: #574154; }
body .official-filters label { font-size: 15px; line-height: 1.5; }
body .official-filters :is(input, select) { font-size: 16px; line-height: 1.5; }
body :is(.official-results-line p, .official-results-line button, .official-shopping-note,
  .official-refresh-note, .official-runtime-status, .official-admin-note,
  .official-admin-panel [role='status']) { font-size: 15px; line-height: 1.65; }
body .official-saved-toggle { font-size: 15px; line-height: 1.4; }
body :is(.catalogue-breadcrumb, .breadcrumb, .pdp .breadcrumb, .bundle-breadcrumb, .pe-v12-breadcrumb) { font-size: 14px; line-height: 1.6; }
body .catalogue-detail-copy h1, body .pdp-copy h1 { font-family: var(--read-font); font-weight: 700; line-height: 1.14; letter-spacing: -.035em; }
body :is(.catalogue-source-overview p, .catalogue-detail-facts p, .catalogue-business-card p,
  .catalogue-extension-body>p, .catalogue-faq p, .pdp-copy>p, .pdp-panel p,
  .pdp-panel a, .pdp-points, .pdp-qa p, .pdp-qa details) { font-size: var(--read-copy); line-height: 1.7; }
body :is(.catalogue-detail-category, .catalogue-source-overview h2, .catalogue-pending,
  .catalogue-buy-panel>span, .catalogue-secondary-link, .catalogue-extension-nav a,
  .pdp-price small, .pdp-selectors label, .pdp-secondary, .pdp-secondary button,
  .pdp-gallery .fine, .product-source-note, .recommendation-grid span, .recent-grid span,
  .catalogue-gallery-instructions, .catalogue-gallery-fallback figcaption,
  .catalogue-gallery-zoom-figure figcaption, .catalogue-gallery-dialog-controls,
  .catalogue-gallery-dialog-controls a) { font-size: 15px; line-height: 1.6; }
body .catalogue-detail-facts article>span { font-size: 14px; color: var(--read-muted); }
body .catalogue-detail-facts h2, body .catalogue-extension-nav h2 { font-weight: 700; letter-spacing: -.02em; }
body .catalogue-detail-art figcaption { font-size: 14px; line-height: 1.55; letter-spacing: .02em; }
body .catalogue-gallery-hint { font-size: 13px; min-height: 44px; background: #fffaf3ed; }
body .catalogue-gallery-thumb span { font-size: 12px; white-space: normal; overflow-wrap: anywhere; }
body .catalogue-gallery-dialog-top h2 { font-size: 15px; font-weight: 600; line-height: 1.5; }
body .catalogue-gallery-close, body .catalogue-gallery-dialog-controls button { width: 44px; height: 44px; min-height: 44px; }
body .pdp-selectors :is(select, input), body .pdp-selectors select { font-size: 16px; }
body .pdp-secondary { flex-wrap: wrap; }
body .pdp-sticky-buy { gap: 12px; flex-wrap: wrap; }
body .pdp-sticky-buy span { font-size: 14px; line-height: 1.4; }
body .pdp-sticky-buy .button { font-size: 14px; min-height: 44px; }

/* Beauty concepts and Pagoto editorial keep brand-colour inheritance. */
body .beauty-v12-hero-copy>p:not(.official-kicker), body .beauty-v12-atlas-heading>div:last-child p,
body .beauty-v12-world-description, body .beauty-v12-home-atlas .beauty-v12-world-description,
body .beauty-v12-next p:not(.official-kicker) { font-size: var(--read-copy); line-height: 1.7; color: var(--read-muted); }
body .beauty-v12-world h3, body .beauty-v12-home-atlas .beauty-v12-world h3 { font-size: 23px; font-weight: 700; line-height: 1.3; letter-spacing: -.02em; }
body .beauty-v12-world h3 span { font-size: 20px; font-weight: 600; }
body .beauty-v12-world-meta, body .beauty-v12-home-atlas .beauty-v12-world-meta { font-size: 13px; line-height: 1.5; color: #604356; letter-spacing: .04em; }
body .beauty-v12-world-meta>span:last-child { color: #594a57; font-weight: 500; }
body :is(.beauty-v12-heading-link, .beauty-v12-explore, .beauty-v12-world-list summary,
  .beauty-v12-world-list li>a, .beauty-v12-world-list>a, .beauty-v12-category-index a) { font-size: 15px; line-height: 1.5; min-height: 44px; }
body .beauty-v12-world-list li>a { display: flex; align-items: center; padding-block: 8px; }
body :is(.beauty-v12-proof>span, .beauty-v12-atlas-foot>p, .beauty-v12-extra p,
  .beauty-v12-extra small, .beauty-v12-world-list .beauty-v12-small) { font-size: 15px; line-height: 1.65; }
body .beauty-v12-category-index small, body .beauty-v12-extra>span { font-size: 13px; opacity: 1; }
body .beauty-v12-hero-art figcaption, body .beauty-v16-photo-collage figcaption { font-size: 13px; line-height: 1.5; }
body .beauty-v16-original-photo .beauty-v12-art-word { font-size: 12px; letter-spacing: .05em; }
body .beauty-v12-hero-sticker, body .beauty-v16-photo-collage .beauty-v12-hero-sticker { font-size: 12px; line-height: 1.5; }
body .pe-v12-intro, body .pe-v12-spotlight .pe-v12-intro,
body .pe-v12-bottom p:not(.pe-v12-kicker):not(.pe-v12-note) { font-size: 17px; line-height: 1.65; color: inherit; opacity: 1; }
body .pe-v12-cta, body .pe-v12-bundle, body .pe-v12-filterbar button { font-size: 15px; line-height: 1.5; min-height: 44px; }
body .pe-v12-spotlight .pe-v12-kicker { font-size: 13px; letter-spacing: .075em; }
body .pe-v12-flavour-copy h3, body .pe-v12-flavour--mini h3 { font-size: 19px; font-weight: 700; letter-spacing: -.015em; line-height: 1.35; }
body .pe-v12-flavour-links>a, body .pe-v12-range-links a { font-size: 14px; line-height: 1.5; min-height: 44px; display: inline-flex; align-items: center; }
body .pe-v12-select-label, body .pe-v12-number, body .pe-v12-filterbar button span,
body .pe-v12-caption, body .pe-v12-pack-caption, body .pe-v12-flavour-art>.pe-v12-pack-caption,
body .pe-v12-serving-label, body .pe-v12-flavour--mini .pe-v12-serving-label,
body .pe-v12-spotlight .pe-v12-pack-caption, body .pe-v12-spotlight .pe-v12-pager-hint,
body .pe-v12-pager>span { font-size: 12px; line-height: 1.5; opacity: 1; }
body .pe-v12-note, body .pe-v12-source, body .pe-v12-result-count,
body .pe-v12-menu-heading>a { font-size: 14px; line-height: 1.65; }
body .pagoto-editorial-v12 .pe-v12-title { letter-spacing: -.045em; line-height: 1.07; }

/* Bundle builders, saved routines, nutrition and the content workspace. */
body :is(.bundle-hero-copy>p, .bundle-overview-hero>p, .bundle-world-copy p,
  .bundle-how p, .bundle-clarity p, .bundle-saved-card p, .routine-content>p,
  .plan-intro p, .plan-notice p, .empty-plans p, .plan-next-step li,
  .my-plans-section>p, .nutrition-intro p, .nutrition-product-copy p,
  .nutrition-preferences p, .studio-lead, .studio-notice, .campaign-section p,
  .market-readiness p, .next-connections p, .readiness-checks li) { font-size: var(--read-copy); line-height: 1.7; }
body :is(.bundle-note, .bundle-feedback, .bundle-empty, .bundle-summary li,
  .bundle-summary-rhythm, .bundle-other-worlds, .bundle-clarity a,
  .bundle-saved .bundle-section-heading>a, .bundle-series span, .bundle-world-cta,
  .bundle-cadence label>span, .bundle-market, .bundle-slot label,
  .bundle-slot-pack, .routine-fields label, .routine-cadence legend,
  .routine-cadence label, .routine-explainer, .routine-connection, .routine-feedback,
  .routine-followup p, .routine-secondary>*, .saved-plan-info>p, .saved-plan-rhythm,
  .saved-plan-actions>*, .plan-next-step>p, .nutrition-preferences label,
  .nutrition-product-copy small, .nutrition-v7 .calc-fields label,
  .nutrition-recommendation-head>span, .calc-fields label, .marketing label,
  .marketing label small, .studio-stats span, .listing-current strong,
  .listing-current a, .market-readiness a) { font-size: 15px; line-height: 1.6; }
body :is(.bundle-kicker, .bundle-overview-counts, .bundle-size-note, .bundle-slot-head,
  .bundle-slot-head a, .bundle-slot-caption, .bundle-market>span, .bundle-summary li small,
  .bundle-saved-status, .bundle-art-pending, .bundle-hero-product figcaption,
  .bundle-world-product small, .bundle-campaign-composition figcaption,
  .bundle-world-art .bundle-campaign-composition figcaption, .routine-stamp,
  .routine-private, .saved-plan-status, .nutrition-stage-number,
  .nutrition-product-copy .eyebrow) { font-size: 13px; line-height: 1.5; }
body :is(.bundle-slot select, .bundle-market select, .bundle-share-fallback,
  .routine-fields input, .routine-fields select, .routine-form select,
  .nutrition-preferences select, .nutrition-v7 .calc-fields input,
  .marketing input, .marketing select, .marketing textarea) { font-size: 16px; line-height: 1.5; }
body :is(.bundle-export-actions button, .bundle-saved-actions button, .bundle-saved-actions a,
  .bundle-summary li>a, .bundle-summary-actions>.bundle-button, .routine-tabs button,
  .routine-actions .button, .plan-export-actions button, .nutrition-product-actions a,
  .nutrition-product-actions button, .nutrition-v7 .calculator-mode button,
  .photo-actions button, #routineResult button, .studio-buttons>button,
  .content-downloads>button) { font-size: 15px; line-height: 1.5; min-height: 44px; }
body :is(.bundle-summary-actions, .bundle-export-actions, .bundle-saved-actions,
  .routine-actions, .routine-secondary, .saved-plan-actions, .plan-export-actions,
  .nutrition-product-actions) { flex-wrap: wrap; }
body .bundle-slot-head { flex-wrap: wrap; gap: 5px 10px; }
body .bundle-slot-head a { min-height: 44px; display: inline-flex; align-items: center; }
body .bundle-summary li { flex-wrap: wrap; }
body .routine-content h3, body .saved-plan-info h3, body .nutrition-product-copy h4 { font-size: 19px; font-weight: 700; line-height: 1.4; }
body .routine-form>label, body #routineResult, body #photoFeedback { font-size: 16px; line-height: 1.6; }
body #photoLabel, body #photoFeedback small { font-size: 13px; line-height: 1.5; opacity: 1; letter-spacing: .04em; }
body #listingStatus, body #campaignStatus { font-size: 15px; line-height: 1.6; }
body .search-preview p { font-size: 16px; line-height: 1.6; }
body .search-preview>span { font-size: 14px; }
body .marketing-head nav, body .studio-head a { font-size: 15px; line-height: 1.5; }
body .marketing-head nav { flex-wrap: wrap; }
body :is(.studio .notice, .studio .review-list, .studio .preview p) { font-size: 16px; line-height: 1.7; }
body .studio .editor label, body .studio .editor label small,
body .studio .preview .url, body #studioStatus { font-size: 14px; line-height: 1.6; color: var(--read-muted); }
body .studio .editor :is(input, textarea, select) { font-size: 16px; line-height: 1.5; }
body .studio .buttons button, body .studio .buttons label { font-size: 15px; line-height: 1.5; min-height: 44px; }
body :is(.bundle-slot-caption, .bundle-saved-status, .bundle-market>span,
  .bundle-size-note, .bundle-summary li small, .bundle-empty) { color: #574c43; }
body :is(.routine-private, .saved-plan-status, .nutrition-stage-number,
  .nutrition-product-copy small) { color: #594a57; }

/* Story copy and dialogs: retain light type on their dark canvases. */
body :is(.story-teaser p, .story-intro-bottom p, .story-film-heading p,
  .story-chapter-heading p, .story-chapter-copy p, .story-principle-list p,
  .story-continue p) { font-size: var(--read-copy); line-height: 1.7; }
body :is(.story-teaser-note, .story-film-label, .story-intro-meta, .story-film-toolbar,
  .story-film-toolbar>span, .story-chapter-controls span, .story-chapter-controls small,
  .story-chapter-status, .story-chapter-copy .story-chapter-detail,
  .story-principle-list article>span) { font-size: 14px; line-height: 1.6; opacity: 1; }
body .story-chapter-controls strong { font-size: 16px; line-height: 1.4; }
body .story-film-toolbar button, body .story-text-link { font-size: 15px; min-height: 44px; }
body :is(.detail-grid p, .bag-row>div, .bag-row .bag-name, .market-option span,
  .market-option a, .consent-bar) { font-size: 16px; line-height: 1.6; }
body .bag-row .bag-name { font-weight: 600; }
body .bag-row>div>small, body .bag-row a, body .bag-quantity a,
body .market-option strong, body .search-row label { font-size: 15px; line-height: 1.5; }
body .bag-quantity button { width: 44px; height: 44px; min-height: 44px; font-size: 20px; }
body .bag-quantity { flex-wrap: wrap; gap: 9px; }
body .bag-buttons .button, body .detail-grid .button, body .consent-bar button { font-size: 15px; min-height: 44px; }
body .close, body .routine-close { width: 44px; height: 44px; min-height: 44px; }
body #toast { font-size: 16px; line-height: 1.5; }
body .comparison-grid :is(dt, dd) { font-size: 15px; line-height: 1.6; }
body .comparison-grid .button, body .remove-compare { font-size: 14px; min-height: 44px; }
body .comparison-grid h3 { font-family: var(--read-font); font-weight: 700; line-height: 1.35; }

@media (max-width: 1180px) {
  body header nav[aria-label='Main navigation'] { display: none; }
  body nav.mobile-nav {
    display: flex; justify-content: flex-start; align-items: center; gap: 10px;
    overflow-x: auto; padding: 3px 4%; scrollbar-width: thin; scroll-padding-inline: 4%;
  }
  body .mobile-nav a { flex: 0 0 auto; white-space: nowrap; }
  body .official-filters, body .official-beauty-portal .official-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .official-filters .official-search-label { grid-column: 1/-1; }
  body .official-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
  :root { --read-copy: 17px; }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-copy { column-gap: 12px; }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-spotlight strong { font-size: 15px; }
  body .products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body .official-shop-hero-v11 .official-hero-mosaic figcaption strong,
  body .official-shop-hero-v11 .official-beauty-discover strong { font-size: 14px; }
}
@media (max-width: 700px) {
  :root { --read-copy: 16px; }
  body .announcement { font-size: 12px; letter-spacing: .04em; }
  body .announcement span { display: none; }
  body header { gap: 8px; padding-inline: 4%; height: auto; min-height: 88px; flex-wrap: wrap; padding-block: 6px; }
  body .tools { gap: 4px; margin-left: auto; }
  body .tools .market-button, body .tools .bag { font-size: 13px; padding-inline: 7px; }
  body .tools .bag span { margin-left: 3px; padding: 3px 6px; }
  body .mobile-nav a { font-size: 14px; }
  body .section .product h3, body .product h3,
  body .official-product h3, body .official-beauty-v12 .official-product h3 { font-size: 18px; }
  body .products, body .official-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-copy>p { font-size: 16px; line-height: 1.55; }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .eyebrow { font-size: 12px; }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-proof span { font-size: 12px; }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-spotlight strong { font-size: 15px; }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-art-credit { font-size: 12px; }
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-ctas .button,
  body .hero-v4.hero-universe:is(.hero-v11, .hero-v12) .hero-secondary { font-size: 14px; }
  body .hero-product-card { flex-basis: 315px; }
  body .hero-product-card strong, body .hero-product-card>span { font-size: 16px; }
  body .universe-tabs button { flex-basis: 164px; font-size: 16px; }
  body .section-title, body .official-section-heading { align-items: flex-start; flex-wrap: wrap; }
  body .section-title p, body .official-section-heading>p { max-width: none; }
  body .beauty-v12-world h3, body .beauty-v12-home-atlas .beauty-v12-world h3 { font-size: 21px; }
  body .pe-v12-intro, body .pe-v12-spotlight .pe-v12-intro { font-size: 16px; }
  body .pe-v12-flavour-copy h3, body .pe-v12-flavour--mini h3 { font-size: 18px; }
  body .pe-v12-flavour-links { flex-wrap: wrap; gap: 5px 12px; }
  body .pe-v12-flavour-art>.pe-v12-pack-caption { font-size: 12px; }
  body .market-options { grid-template-columns: 1fr; }
  body .catalogue-detail-copy h1, body .pdp-copy h1 { font-size: clamp(30px, 7.5vw, 40px); }
  body .pdp-sticky-buy span { flex: 1 1 160px; max-width: none; }
  body .pdp-sticky-buy .button { flex-shrink: 0; }
  body .consent-bar { flex-wrap: wrap; gap: 12px; font-size: 15px; max-height: 70vh; overflow-y: auto; }
  body .footer-top { gap: 30px; }
  body footer .footer-top>div:first-child { grid-column: 1/-1; }
  body .bundle-summary, body .bundle-slot, body .routine-content { min-width: 0; }
  body .story-film-toolbar { flex-wrap: wrap; gap: 12px; }
}
@media (max-width: 420px) {
  body .original-brand img { width: 100px; height: 58px; }
  body header { padding-inline: 3%; }
  body .tools { gap: 2px; }
  body .tools .market-button, body .tools .bag { font-size: 12px; padding-inline: 5px; }
  body .section .products, body .official-product-grid { gap: 28px 14px; }
  body .section .product h3, body .product h3,
  body .official-product h3, body .official-beauty-v12 .official-product h3 { font-size: 17px; }
  body .official-product-actions { gap: 0; align-items: flex-start; }
  body .official-product-actions a { flex-basis: 100%; }
  body .hero-product-card { flex-basis: 290px; }
  body .intent-grid strong { font-size: 23px !important; }
  body .intent-grid :is(span, b) { font-size: 12px; }
  body .official-filters, body .official-beauty-portal .official-filters { grid-template-columns: minmax(0, 1fr); }
  body .bundle-slots { grid-template-columns: minmax(0, 1fr); }
  body .bundle-series { flex-wrap: wrap; }
  body .bundle-series button { flex: 1 1 95px; }
}
/* Disabled states still communicate unavailability; they no longer erase labels. */
body button:disabled { opacity: .7; }
@media (forced-colors: active) {
  body :is(button, a, input, select, textarea, summary):focus-visible { outline-color: Highlight; }
}
