/* Échelle typographique de l'accueil, partagée par toutes les autres pages. */
:root {
  --type-readable-body: 14px;
  --type-readable-control: 13px;
  --type-readable-meta: 12px;
  --type-readable-label: 13px;
  --type-readable-nav: 14px;
  --type-readable-title: 16px;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is(p, li, blockquote) {
  font-size: var(--type-readable-body) !important;
  line-height: 1.6;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is(label, legend, summary) {
  font-size: var(--type-readable-label) !important;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
  font-size: var(--type-readable-control) !important;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is(small, time, dt, dd) {
  font-size: var(--type-readable-meta) !important;
  line-height: 1.45;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is([class*="breadcrumb"], [class*="meta"], [class*="facts"]) {
  font-size: var(--type-readable-control) !important;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is([class*="tag"], [class*="badge"], [class*="kicker"], .eyebrow) {
  font-size: var(--type-readable-meta) !important;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is([type="submit"], [class*="submit"], [class*="reset"], a[class*="button"], a[class*="link"]) {
  font-size: var(--type-readable-control) !important;
}

:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is(th, td) {
  font-size: var(--type-readable-control) !important;
}

:is(.categories-page, .search-page, .latest-page, .trends-page, .app-product-page, .app-alternatives-page, .software-directory-page, .makers-main, .maker-public-page, .submission-page, .app-edit-page) [class*="filter"] :is(h2, strong) {
  font-size: 15px !important;
}

.categories-page .categories-suggestion strong,
.categories-page .categories-search-cta strong,
.makers-main .maker-copy > strong,
.makers-main .makers-cta strong,
.search-page .search-promo strong,
.latest-page [class*="card"] > strong {
  font-size: 14px !important;
}

.makers-main :is(.maker-location, .makers-per-page, .maker-metric dt),
.maker-public-page :is(.maker-update-item small, .maker-public-review footer small) {
  font-size: var(--type-readable-meta) !important;
}

/* Navigation et contrôles : même corps que la navigation de l'accueil. */
:is(
  .categories-page,
  .search-page,
  .latest-page,
  .trends-page,
  .app-product-page,
  .app-alternatives-page,
  .software-directory-page,
  .contact-page,
  .privacy-page,
  .about-page,
  .pricing-hero,
  .page-hero,
  .catalog-section,
  .legal-hero,
  .legal-content,
  .makers-main,
  .maker-public-page,
  .account-main,
  .submission-page,
  .app-edit-page
) :is(nav a, [role="tab"]) {
  font-size: var(--type-readable-nav) !important;
  line-height: var(--leading-tight);
}

/* Les menus de découverte doivent rester strictement identiques à l'accueil. */
:is(.maker-discovery-nav, .maker-category-nav, .account-nav) a {
  font-size: var(--text-sm) !important;
  line-height: var(--leading-tight);
}
.maker-discovery-block > p,
.maker-discovery-filters > p {
  font-size: var(--text-xs) !important;
  line-height: var(--leading-normal);
}
.maker-discovery-filters label {
  font-size: 13px !important;
}
.maker-discovery-filters select {
  font-size: var(--text-xs) !important;
}

/* Listes et fiches makers : suppression des corps miniatures hérités de la maquette. */
.makers-main .maker-copy h2,
.maker-public-page .maker-public-app-copy strong,
.maker-public-page .maker-update-item strong {
  font-size: var(--type-readable-title) !important;
  line-height: var(--leading-tight);
}
.makers-main :is(.maker-copy > strong, .maker-copy p, .maker-metric dd, .maker-profile-button, .makers-reset, .makers-cta > a) {
  font-size: var(--type-readable-body) !important;
}
.makers-main :is(.maker-tag, .maker-location, .maker-metric dt, .makers-pagination a, .makers-pagination > span, .makers-per-page label),
.maker-public-page :is(.maker-public-title-row > span, .maker-public-tag-list a, .maker-public-section-heading > span) {
  font-size: var(--type-readable-meta) !important;
}

/* Les éléments de formulaire suivent les mêmes métriques sur les espaces compte et maker. */
:is(.account-main, .submission-page, .app-edit-page, .makers-main, .maker-public-page) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea, button) {
  font-family: var(--font-sans);
  font-size: var(--type-readable-control) !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Les textes d’introduction gardent un cran de respiration supplémentaire. */
:is(.contact-hero, .categories-hero-copy, .latest-heading, .trends-heading, .search-heading, .app-product-summary, .maker-public-identity, .page-hero, .legal-hero, .about-hero) > p,
.maker-public-bio,
.app-product-description {
  font-size: 15px !important;
  line-height: 1.6;
}

/* Les formulaires d’authentification suivent la même échelle sans toucher à leur aperçu décoratif miniature. */
:is(.auth-form-wrap, .login-form-container) :is(p, label, input, select, textarea, button) {
  font-size: 14px !important;
}
:is(.auth-form-wrap, .login-form-container) :is(small, .form-error) { font-size: 12px !important; }

@media (max-width: 640px) {
  :root {
    --type-readable-body: 14px;
    --type-readable-control: 13px;
    --type-readable-meta: 12px;
    --type-readable-label: 13px;
    --type-readable-nav: 14px;
    --type-readable-title: 16px;
  }
}
