/* ============================================================================
 * V18 CONTRAST FIX  -  AA residuals to zero (audit 2026-07-06).
 * Loads at priority 124 (after v17-contrast-fix, priority 120 group).
 * Sealed-sheet: new sheet, edits nothing upstream. New rules only reuse the
 * design-system AA-safe tokens already declared in v17-design-system.css.
 *
 * Full-sitemap computed-style audit (199 pages, 1440 viewport) found 710
 * flags. Grouped by root cause, there are three real defect families plus
 * a handful of one-off component bugs:
 *
 *  A. Sitewide `strong, b, table th { color:#fff !important; }` lives in
 *     WordPress "Additional CSS" (wp-custom-css, injected outside the theme's
 *     file system). It clobbers bold text and table headers wherever they
 *     land on a cream/light surface (blog FAQ answers, catering subpage
 *     copy, the order-online hours table): 286 flags across 28 pages.
 *     Fix: let bold text and table headers inherit their section's already
 *     correct color instead of a hardcoded white. `main` beats the bare
 *     tag selector on specificity regardless of stylesheet order.
 *
 *  B. The default in-body content link rule in v17-components.css
 *     (`.entry-content a:not(...)`) assumes a cream surface and paints
 *     links rose-deep. But the theme's own compiled `body` rule is a near
 *     black `rgb(19 19 19)` (Tailwind base layer), and most plain pages
 *     render `.entry-content` paragraphs/lists directly against that dark
 *     body with no cream wrapper in between: 296 flags across 111 pages.
 *     Fix: give bare top-level content links (and a few always-dark
 *     components identified below) the dark-surface rose-hover variant.
 *
 *  C. A dozen small one-off component bugs: active chip/pill fills using
 *     bright rose instead of the AA-safe rose-deep, a couple of stale
 *     assumptions (a section the V15 QA round thought was dark is cream
 *     today), an overly broad `a[href*="vegetarien"]` selector catching an
 *     unrelated blog link, and a button whose own "phone link" color rule
 *     was clobbering its own label color to near-invisible.
 *
 * Methodology note: `.latoxica-stroke` (outlined hero display words using
 * `-webkit-text-stroke` + `color:transparent`) reports as ratio 1.0 in any
 * naive computed-color audit, because the fill itself is intentionally
 * transparent. The visible content is the stroke outline, not the fill; at
 * hero display size (over 24px) the rose stroke on charcoal is 4.42, which
 * clears the 3.0 large-text threshold. Documented false positive, no CSS
 * change: see the final audit script for the stroke-aware exclusion.
 * ========================================================================== */

/* ----------------------------------------------------------------------------
 * A. Bold text / table headers must inherit, not hardcode white.
 *    Scoped to `body` rather than `main`: several custom page templates
 *    (e.g. page-commander.php) render their content without a <main>
 *    landmark, so a `main`-scoped override would silently miss them. `body`
 *    is present on every template and still wins on specificity alone
 *    (3 type selectors beat the sitewide rule's 2, tie-independent).
 * -------------------------------------------------------------------------- */
body strong,
body b {
    color: inherit !important;
}
body table th {
    color: inherit !important;
}

/* The commander hours table's "today" row still needs its own explicit
 * light text, because that row's own background changes (see section H) and
 * inherited color would otherwise resolve to the surrounding dark ink. */
.latoxica-commander-card__hours-table tr.is-today th,
.latoxica-commander-card__hours-table tr.is-today td {
    color: var(--v17-white) !important;
}

/* ----------------------------------------------------------------------------
 * B. Bare content links on the dark body / always-dark components.
 * -------------------------------------------------------------------------- */
.entry-content > p a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw),
.entry-content > ul a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw),
.entry-content > ol a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw),
.entry-content > aside.latoxica-catering-credibility a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw) {
    color: var(--v17-rose-hover) !important;
    text-decoration-color: rgba(247, 84, 159, 0.45);
}

/* .latoxica-section-asymmetric is unconditionally dark (noir bg, cream text,
 * no light variant), so its phone links and inline links need the same
 * dark-surface swap wherever the component is reused. */
.latoxica-section-asymmetric .latoxica-section-asymmetric__copy a.wc-phone {
    color: var(--v17-rose-hover) !important;
}
.latoxica-section-asymmetric .latoxica-section-asymmetric__copy p a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw) {
    color: var(--v17-rose-hover) !important;
}

/* The Plaza Saint-Hubert / Chinatown storefront widget band is a near-black
 * surface (#14110f) with its own cream body copy; its phone link needs the
 * dark-surface rose too instead of the cream-surface default. */
.latoxica-page-a__storefront .latoxica-storefront-widget__note a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw) {
    color: var(--v17-rose-hover) !important;
}

/* Same storefront page's "sister location" line sits on the map band, also
 * unconditionally dark (#1a1612). Its link has no color rule of its own, so
 * it was falling through to the cream-surface content-link default; padded
 * with the same :not() list to clear that rule's (0,5,1) specificity. */
.latoxica-storefront-map .latoxica-storefront-sister-link a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw) {
    color: var(--v17-rose-hover) !important;
}

/* Press hub intro band: always dark (#0A0707). The live markup is
 * `.latoxica-press-intro__lede` (v8-press.css); the `__copy` selector some
 * legacy sheets use targets structure that no longer renders. Own bright-rose
 * link color predates the palette-lock and fails at 3.75. */
.latoxica-press-intro__lede a {
    color: var(--v17-rose-hover) !important;
}
.latoxica-press-intro__lede a:hover {
    color: var(--v17-cream-90) !important;
}

/* Catering hub "see also" block (inc/v10-traiteur-main.php) is plain PHP
 * markup with no component class of its own; targeted by its unique
 * aria-labelledby anchor. Always renders on the dark page body. */
[aria-labelledby="voir-aussi-traiteur-heading"] a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw) {
    color: var(--v17-rose-hover) !important;
}

/* Rosa Castellanos bio page is a fully custom template with no `.entry-content`
 * wrapper, so none of the rules above ever reach it. Its "press mentions" link
 * sits on the section's cream background and was inheriting plain body text
 * (1.22), needing the cream-surface rose instead. */
.latoxica-rosa-section__lede a {
    color: var(--v17-rose-deep) !important;
}

/* Catering "formules" cards are always charcoal (noir bg, cream text); their
 * CTA link (and its arrow glyph) needs to stay cream, with rose only as the
 * hover accent, matching the card's own intent. */
.latoxica-v10-traiteur-formules__card a.latoxica-v10-traiteur-formules__cta:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw),
.latoxica-v10-traiteur-formules__card a.latoxica-v10-traiteur-formules__cta span {
    color: var(--v17-cream-90) !important;
}
.latoxica-v10-traiteur-formules__card a.latoxica-v10-traiteur-formules__cta:hover,
.latoxica-v10-traiteur-formules__card a.latoxica-v10-traiteur-formules__cta:focus {
    color: var(--v17-rose-hover) !important;
}

/* ----------------------------------------------------------------------------
 * C. Active chips / pills: bright rose fill + dark text fails at 4.42.
 *    Same surface-aware-rose doctrine as v17-contrast-fix.css's cocktails
 *    chip: deep rose fill, white label.
 * -------------------------------------------------------------------------- */
.latoxica-menu-filter__chip:hover,
.latoxica-menu-filter__chip:focus-visible,
.latoxica-menu-filter__chip.is-active,
.latoxica-menu-chip.is-active {
    background: var(--v17-rose-deep) !important;
    border-color: var(--v17-rose-deep) !important;
    color: var(--v17-white) !important;
}
.latoxica-menu-variant__btn.is-active {
    background: var(--v17-rose-deep) !important;
    color: var(--v17-white) !important;
}
.latoxica-pill--gold,
.latoxica-pill--pink {
    background: var(--v17-rose-deep) !important;
    border-color: var(--v17-rose-deep) !important;
    color: var(--v17-white) !important;
}
/* .latoxica-pill--ink keeps its charcoal fill; only the rose label text
 * needs the dark-surface variant (bright rose on charcoal is 4.42). */
.latoxica-pill--ink {
    color: var(--v17-rose-hover) !important;
}

/* Birria menu card price: bright rose text on the card's charcoal fill. */
.latoxica-v10-birria-menu__price {
    color: var(--v17-rose-hover) !important;
}

/* Food gallery "Signature / Popular / ..." tag badge: white label needs the
 * deep rose fill (white on bright rose is 3.94). */
.latoxica-food-gallery__tag {
    background-color: var(--v17-rose-deep) !important;
}

/* Commander hours "today" row: same fill problem as the tag badge above. */
.latoxica-commander-card__hours-table tr.is-today {
    background: var(--v17-rose-deep) !important;
}

/* ----------------------------------------------------------------------------
 * D. Hero-C corner detail labels: muted warm-grey at 0.7 opacity reads 3.91
 *    on the charcoal hero. Swap to the documented AA-safe meta token.
 * -------------------------------------------------------------------------- */
.latoxica-hero-c__detail {
    color: var(--v17-cream-65) !important;
}

/* ----------------------------------------------------------------------------
 * E. Blog featured eyebrow + pagination ghost button: bright rose on the
 *    cream featured card is 3.68. Deepen to the cream-surface rose.
 * -------------------------------------------------------------------------- */
.latoxica-blog-featured__eyebrow {
    color: var(--v17-rose-deep) !important;
}
.latoxica-blog-pagination__btn .latoxica-button,
.latoxica-blog-pagination__btn a {
    border-color: var(--v17-rose-deep) !important;
    color: var(--v17-rose-deep) !important;
}
.latoxica-blog-pagination__btn .latoxica-button:hover,
.latoxica-blog-pagination__btn a:hover {
    background-color: var(--v17-rose-deep) !important;
    color: var(--v17-white) !important;
}

/* ----------------------------------------------------------------------------
 * F. `a[href*="vegetarien"]` (v17-components.css) was written for the menu
 *    page's vegetarian filter link, but the substring match also catches any
 *    unrelated blog copy that happens to link to a menu anchor containing
 *    "vegetarien" in its URL, painting it with the jaune filter-chip fill.
 *    Restore plain in-body-copy styling for that case.
 * -------------------------------------------------------------------------- */
.entry-content > p a[href*="vegetarien"]:not(.latoxica-menu-filter__chip):not([data-filter]) {
    background-color: transparent !important;
    border-color: transparent !important;
    color: var(--v17-rose-hover) !important;
}

/* ----------------------------------------------------------------------------
 * G. Reservation fallback "call us" button: it is both `.latoxica-button
 *    latoxica-button--primary` (deep-rose fill, meant for a white label) and
 *    `.wc-phone` (v17-components.css forces phone links to rose-deep text on
 *    every surface). The two rules collide here and the label nearly
 *    disappears into its own deep-rose fill (1.06). Buttons keep their own
 *    white label; only bare phone links use the rose-deep text treatment.
 * -------------------------------------------------------------------------- */
a.latoxica-button.wc-phone,
.latoxica-button.wc-phone {
    color: var(--v17-white) !important;
}

/* ----------------------------------------------------------------------------
 * H. Food gallery heading on /notre-menu/ + /our-menu/: the V15 QA round
 *    forced cream text because the section was dark at the time. The
 *    section renders cream today, so cream-on-cream is now the residual
 *    (1.12). Match today's real surface: charcoal heading, rose-deep accent.
 * -------------------------------------------------------------------------- */
.latoxica-food-gallery__head h2,
#food-gallery-heading {
    color: var(--v17-charcoal) !important;
}
.latoxica-food-gallery__head h2 em,
#food-gallery-heading em {
    color: var(--v17-rose-deep) !important;
}

/* ----------------------------------------------------------------------------
 * V18-FIXUPS: status dot to palette jaune
 *    The "live status" dot's `.is-open` state used a raw green (#2ECC71 /
 *    rgb(46,204,113) sitewide; #62d29a / rgb(98,210,154) on the Plaza
 *    Saint-Hubert storefront page) that never belonged to the locked
 *    six-color palette. Recolored to `--v17-jaune` so it still reads as a
 *    positive "open" signal without introducing an off-token hue. Both the
 *    fill and its glow (box-shadow) are overridden; neither sheet is edited.
 * -------------------------------------------------------------------------- */
.latoxica-status.is-open .latoxica-status__dot {
    background: var(--v17-jaune) !important;
    box-shadow: 0 0 8px rgba(242, 177, 25, 0.5) !important;
}
.latoxica-page-a__storefront .latoxica-storefront-status .latoxica-status.is-open .latoxica-status__dot {
    background: var(--v17-jaune) !important;
    box-shadow: 0 0 0 3px rgba(242, 177, 25, 0.22) !important;
}

/* ----------------------------------------------------------------------------
 * V18-FIXUPS: press lede venue links, dark-surface rose (specificity fix)
 *    The group-B rule above (`.latoxica-press-intro__lede a`, specificity
 *    0,1,1) never wins the cascade: v17-components.css's cream-surface
 *    default `.entry-content a:not(.latoxica-button):not([class*="btn"])
 *    :not(.wc-phone):not(.v17-kw)` is 0,5,1 and beats it regardless of load
 *    order. Live computed color on the "Plaza Saint-Hubert" / "Chinatown"
 *    venue links (and their <strong>) stayed rose-deep rgb(200,31,120) on
 *    the #0a0707 press-intro band: 3.75:1, below AA. Re-scope with the same
 *    .entry-content ancestor + :not() list to outrank it (0,6,1) so the
 *    dark-surface rose (--v17-rose-hover, ~5.4:1 on #0a0707) actually
 *    applies.
 * -------------------------------------------------------------------------- */
.entry-content .latoxica-press-intro__lede a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw),
.entry-content .latoxica-press-intro__lede a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw) strong {
    color: var(--v17-rose-hover) !important;
}

/* V18-FIX: blog FAQ cream treatment
 *    Every blog post's "Questions fréquemment posées" section is plain
 *    Gutenberg heading/paragraph markup with no wrapper of its own, so it
 *    renders straight against the dark article body instead of the site's
 *    established cream Q&A treatment (v17-faq.css's .latoxica-bat-faq /
 *    .latoxica-store-faq). All 10 blog posts that carry a FAQ share this
 *    identical unwrapped pattern, so each was given a `.latoxica-blog-faq`
 *    wrapper (content edit, same class on every post) and this rule gives
 *    that wrapper the same cream-band, hairline-divider look. Sealed-sheet:
 *    new class, no edits to v17-faq.css.
 */
.entry-content .latoxica-blog-faq {
    background: var(--v17-cream) !important;
    border-radius: 20px;
    padding: clamp(1.75rem, 4vw, 3rem);
    margin: clamp(2rem, 5vw, 3.5rem) 0;
}
.entry-content .latoxica-blog-faq h2,
.entry-content .latoxica-blog-faq h3 {
    font-family: var(--v17-font-display);
    color: var(--v17-charcoal) !important;
}
.entry-content .latoxica-blog-faq h2 {
    font-weight: 700;
    font-size: var(--v17-fs-h2);
    line-height: 1.05;
    letter-spacing: -0.02em;
    margin: 0 0 clamp(1.25rem, 2.5vw, 2rem);
}
.entry-content .latoxica-blog-faq h3 {
    font-weight: 600;
    font-size: clamp(1.1rem, 1.6vw, 1.4rem);
    line-height: 1.25;
    margin: 0 0 0.6rem;
    padding-top: clamp(1.25rem, 2.4vw, 1.85rem);
    border-top: 1px solid var(--v17-line-cream);
}
.entry-content .latoxica-blog-faq h2 + h3 {
    border-top: none;
    padding-top: 0;
}
.entry-content .latoxica-blog-faq p {
    font-family: var(--v17-font-sans);
    font-size: var(--v17-fs-body);
    line-height: 1.6;
    color: var(--v17-ink-70) !important;
    max-width: 60ch;
    margin: 0 0 clamp(1.25rem, 2.4vw, 1.85rem);
}
.entry-content .latoxica-blog-faq p:last-child {
    margin-bottom: 0;
    padding-bottom: clamp(1.25rem, 2.4vw, 1.85rem);
    border-bottom: 1px solid var(--v17-line-cream);
}
.entry-content .latoxica-blog-faq a:not(.latoxica-button):not([class*="btn"]):not(.wc-phone):not(.v17-kw) {
    color: var(--v17-rose-deep) !important;
}

/* V18-ESCALATION (round 3): the two .latoxica-reservation-fallback sections on
   page-reservation.php (the "How do you book" howto band and the bottom
   phone-fallback band) computed cream text on a cream background, rendering
   the question headings and answers invisible. Force the charcoal ink and the
   AA rose for links on this cream surface. */
.latoxica-reservation-fallback h2,
.latoxica-reservation-fallback p,
.latoxica-reservation-fallback li {
	color: #1a1a1a !important;
}
.latoxica-reservation-fallback a:not(.latoxica-button):not([class*="btn"]) {
	color: var(--v17-rose-deep, #c81f78) !important;
}

/* End v18-contrast.css */
