/* Échelle typographique validée (#97, #98) : chaque rôle de texte branché sur un des 6 niveaux de btp-typo-tokens.css. Boutons, filtres et pagination : styles propres (A « Souligné »), tailles via les mêmes variables. */

/* 1 Grand titre */
html:not(#btp-typo) body h1.btp-page-hero-title, html:not(#btp-typo) body h1.btp-section-title, html:not(#btp-typo) body h1.btpv-h1, html:not(#btp-typo) body h1.btp-la-carte-h2 {
    font-family: var(--btp-fd) !important; font-size: var(--btp-t1) !important; line-height: var(--btp-lh-1) !important;
    letter-spacing: var(--btp-ls-title) !important; font-weight: 400 !important; text-transform: uppercase !important;
}

/* 2 Titre */
html:not(#btp-typo) body h2.btp-section-title, html:not(#btp-typo) body h2.btpv-h2, html:not(#btp-typo) body .btp-menu-sec-head > span:not(.btp-menu-sec-num):not(.btp-menu-sec-price), html:not(#btp-typo) body .btp-menu-sec-head > :is(h2, h3), html:not(#btp-typo) body .btp-menu-sec-head > :is(h2, h3) > span:first-child,
html:not(#btp-typo) body .btp-grp-name, html:not(#btp-typo) body h2.btpv-bk-t, html:not(#btp-typo) body .btp-social-score, html:not(#btp-typo) body .btp-section-text h2, html:not(#btp-typo) body .btp-section-text > strong:first-child {
    font-family: var(--btp-fd) !important; font-size: var(--btp-t2) !important; line-height: var(--btp-lh-2) !important;
    letter-spacing: var(--btp-ls-title) !important; font-weight: 400 !important; text-transform: uppercase !important;
}

/* 3 Sous-titre (titres de cartes, d'espaces, de blocs, FAQ des pages légales) */
html:not(#btp-typo) body .btpv-card-t, html:not(#btp-typo) body .btp-priv-espace-name, html:not(#btp-typo) body h3.btp-priv-espace-h4, html:not(#btp-typo) body h3.btp-terr-name,
html:not(#btp-typo) body .btp-priv-card h3, html:not(#btp-typo) body h3.btp-contact-title, html:not(#btp-typo) body h4.btpv-hub-h, html:not(#btp-typo) body .btp-resa-split-col h3,
html:not(#btp-typo) body .btp-section-text h3, html:not(#btp-typo) body .btp-prog-month span, html:not(#btp-typo) body .btp-social-card span, html:not(#btp-typo) body .btp-pdf-modal-title,
html:not(#btp-typo) body .btp-home-event-title, html:not(#btp-typo) body .btp-prog-card .btp-prog-title, html:not(#btp-typo) body .btp-cp-grid .btp-prog-title, html:not(#btp-typo) body .btp-home-event-title a, html:not(#btp-typo) body .btp-bf-yr, html:not(#btp-typo) body .btpv-fact-v,
html:not(#btp-typo) body .btp-social-handle, html:not(#btp-typo) body .btp-timeline-time, html:not(#btp-typo) body .btp-tuile-content h2 {
    font-family: var(--btp-fd) !important; font-size: var(--btp-t3) !important; line-height: var(--btp-lh-3) !important;
    letter-spacing: var(--btp-ls-sub) !important; font-weight: 400 !important;
}
html:not(#btp-typo) body .btp-social-score small { font-size: 0.5em !important; }
html:not(#btp-typo) body .btp-section-text h2 strong { font: inherit !important; letter-spacing: inherit !important; }
html:not(#btp-typo) body .btp-menu-sec-head small { text-transform: none !important; }

/* 4 Texte : paragraphes, listes, chapôs, noms de plats et de boissons, questions de FAQ, titres d'étapes */
html:not(#btp-typo) body p.btp-page-hero-subtitle, html:not(#btp-typo) body p.btpv-lead, html:not(#btp-typo) body p.btpv-lead span, html:not(#btp-typo) body p.btp-bf-lead, html:not(#btp-typo) body .btp-cp-intro,
html:not(#btp-typo) body .btp-section-text p, html:not(#btp-typo) body .btp-section-text li, html:not(#btp-typo) body .btpv-text p, html:not(#btp-typo) body .btpv-text span, html:not(#btp-typo) body .btpv-points li, html:not(#btp-typo) body .btpv-points span,
html:not(#btp-typo) body .btp-faq-answer p, html:not(#btp-typo) body .btp-faq-item summary, html:not(#btp-typo) body .btp-faq-item summary span, html:not(#btp-typo) body .btp-timeline-body h3, html:not(#btp-typo) body .btp-timeline-body p,
html:not(#btp-typo) body .btp-resto-info p, html:not(#btp-typo) body .btp-night-text p, html:not(#btp-typo) body .btp-bar-text, html:not(#btp-typo) body .btp-bar-text p, html:not(#btp-typo) body .btp-venir-card p, html:not(#btp-typo) body .btp-venir-transit span, html:not(#btp-typo) body .btp-venir-transit strong,
html:not(#btp-typo) body .btp-terr-desc, html:not(#btp-typo) body .btp-priv-desc, html:not(#btp-typo) body .btp-priv-card li, html:not(#btp-typo) body .btp-priv-card-cap, html:not(#btp-typo) body .btp-tuile-sub, html:not(#btp-typo) body .btpv-card-m,
html:not(#btp-typo) body .btp-contact-item p, html:not(#btp-typo) body .btp-contact-item a, html:not(#btp-typo) body .btp-contact-acces span, html:not(#btp-typo) body .btp-contact-intro, html:not(#btp-typo) body .btp-priv-intro, html:not(#btp-typo) body .btpv-devis-txt p, html:not(#btp-typo) body .btpv-bk p,
html:not(#btp-typo) body .btp-bf-tl p, html:not(#btp-typo) body .btp-bf-addr, html:not(#btp-typo) body .btp-container > p, html:not(#btp-typo) body .btp-menu-section > p > a, html:not(#btp-typo) body .btp-tuile-sub, html:not(#btp-typo) body .btp-section-head > p, html:not(#btp-typo) body .btp-resa-split-col > p, html:not(#btp-typo) body .btp-social-block-card > p:not(.btp-social-score):not(.btp-social-handle):not(.btp-social-count):not(.btp-sp-measured),
html:not(#btp-typo) body .btp-item-name, html:not(#btp-typo) body .btp-item h4, html:not(#btp-typo) body .btp-menu-table td, html:not(#btp-typo) body .btp-menu-inline li, html:not(#btp-typo) body .btp-menu-inline span, html:not(#btp-typo) body .btp-resto-signatures strong, html:not(#btp-typo) body .btp-resto-signatures li, html:not(#btp-typo) body .btp-night-points span {
    font-family: var(--btp-fb) !important; font-size: var(--btp-t4) !important; line-height: var(--btp-lh-4) !important; letter-spacing: 0 !important;
}
html:not(#btp-typo) body p.btp-page-hero-subtitle, html:not(#btp-typo) body p.btpv-lead, html:not(#btp-typo) body p.btp-bf-lead { color: var(--btp-red-light); }
html:not(#btp-typo) body .btp-item-name, html:not(#btp-typo) body .btp-item h4, html:not(#btp-typo) body .btp-faq-item summary, html:not(#btp-typo) body .btp-timeline-body h3, html:not(#btp-typo) body .btp-venir-addr, html:not(#btp-typo) body .btp-resto-signatures strong { font-weight: 600 !important; }

/* 5 Petit texte : descriptions traduites de la carte, notes, mentions, pied de page ; en capitales espacées pour les étiquettes Outfit */
html:not(#btp-typo) body .btp-item em, html:not(#btp-typo) body .btp-menu-note, html:not(#btp-typo) body .btp-menu-note em, html:not(#btp-typo) body .btp-menu-foot p, html:not(#btp-typo) body .btp-menu-table small, html:not(#btp-typo) body .btp-embed-note,
html:not(#btp-typo) body .btp-sp-measured, html:not(#btp-typo) body .btp-cp-upd, html:not(#btp-typo) body .btp-cp-table td, html:not(#btp-typo) body .btp-form-cat-label > span:not(.btp-form-cat-num),
html:not(#btp-typo) body footer.btp-footer p, html:not(#btp-typo) body footer.btp-footer span, html:not(#btp-typo) body footer.btp-footer a, html:not(#btp-typo) body footer.btp-footer strong, html:not(#btp-typo) body footer.btp-footer button {
    font-size: var(--btp-t5) !important; line-height: var(--btp-lh-5) !important; letter-spacing: 0 !important;
}
html:not(#btp-typo) body .btp-eyebrow, html:not(#btp-typo) body .btpv-eyebrow, html:not(#btp-typo) body .btp-contact-label, html:not(#btp-typo) body .btp-contact-acces strong, html:not(#btp-typo) body .btpv-fact-l, html:not(#btp-typo) body .btp-menu-table th,
html:not(#btp-typo) body .btp-menu-table strong, html:not(#btp-typo) body .btp-prog-date, html:not(#btp-typo) body .btp-home-event-date, html:not(#btp-typo) body .btp-prog-tags, html:not(#btp-typo) body .btp-home-event-tags,
html:not(#btp-typo) body .btp-bar-card-label, html:not(#btp-typo) body .btp-partners-label, html:not(#btp-typo) body .btp-terr-cap, html:not(#btp-typo) body .btp-priv-capacity, html:not(#btp-typo) body .btp-priv-capacity span, html:not(#btp-typo) body .btpv-hours,
html:not(#btp-typo) body .btpv-crumb a, html:not(#btp-typo) body .btpv-crumb span,
html:not(#btp-typo) body .btpv-sel > span, html:not(#btp-typo) body .btp-social-count, html:not(#btp-typo) body .btp-visite-meta-label, html:not(#btp-typo) body .btp-cp-table th, html:not(#btp-typo) body footer.btp-footer .btp-footer-h {
    font-family: var(--btp-fb) !important; font-size: var(--btp-t5) !important; line-height: var(--btp-lh-5) !important;
    letter-spacing: var(--btp-ls-caps) !important; font-weight: 600 !important; text-transform: uppercase !important;
}
html:lang(ja):not(#btp-typo) body .btp-eyebrow, html:lang(ja):not(#btp-typo) body .btpv-eyebrow { letter-spacing: 0.04em !important; }

/* 6 Prix et étiquettes Anton (les boutons prennent le même niveau dans leurs propres styles) */
html:not(#btp-typo) body .btp-item-price, html:not(#btp-typo) body .btp-menu-sec-price, html:not(#btp-typo) body .btp-resto-signatures li > span, html:not(#btp-typo) body .btp-menu-inline strong, html:not(#btp-typo) body .btp-menu-table td:not(:first-child),
html:not(#btp-typo) body .btp-menu-sec-head small, html:not(#btp-typo) body .btp-menu-sec-num, html:not(#btp-typo) body .btp-pm-title, html:not(#btp-typo) body .btp-pm-when, html:not(#btp-typo) body .btp-form-cat-num, html:not(#btp-typo) body .btp-priv-card-num, html:not(#btp-typo) body .btp-terr-badge, html:not(#btp-typo) body .btp-terr-badge strong {
    font-family: var(--btp-fd) !important; font-size: var(--btp-t6) !important; line-height: var(--btp-lh-6) !important;
    letter-spacing: var(--btp-ls-6) !important; font-weight: 400 !important;
}
html:not(#btp-typo) body .btp-menu-table td:first-child { font-family: var(--btp-fb) !important; }
html:not(#btp-typo) body .btp-menu-table td:not(:first-child) { letter-spacing: 0 !important; }

/* Champs de formulaire : police du site au lieu de la police système (Arial) ; boutons exclus (style A, btp-buttons.css). */
:where(input, select, textarea) { font-family: inherit; }
html:not(#btp-typo) body .btp-lang-code { font-family: var(--btp-fb) !important; }

/* Grands titres en capitales partout (décision du 15/10) ; retiré en japonais, chinois et coréen où il n'a pas d'effet utile. */
html:not(#btp-typo) body h1:not(.btp-hero-logo) { text-transform: uppercase !important; }
html:is(:lang(ja), :lang(zh), :lang(ko)):not(#btp-typo) body h1 { text-transform: none !important; }

/* Garde-fous de l'échelle aux petites largeurs (contrôle 10 langues × 320 → 1440 px). */
html:not(#btp-typo) body .btp-menu-group-sep .btp-grp-name { font-size: min(var(--btp-t2), 7.4vw) !important; }
html:not(#btp-typo) body .btp-menu-table th, html:not(#btp-typo) body #visite .btp-visite-meta-label { letter-spacing: var(--btp-ls-6) !important; }
@media (max-width: 480px) { html:not(#btp-typo) body .btp-menu-table th { font-size: min(var(--btp-t5), 3.3vw) !important; letter-spacing: 0.02em !important; } }
