/*
 * SodiYUMMY!™ Lighthouse — LC-02 information hierarchy
 *
 * Defines consistent visual importance for equivalent content across Core v1.
 * Layout, spacing, color, controls, behavior, and product capability remain
 * governed by their existing screen styles and scripts.
 */

@import url("./tokens.css?v=20260914-lc14");
@import url("./spacing.css?v=20260902-lc03");
@import url("./controls.css?v=20260902-lc04");
@import url("./navigation.css?v=20260903-lc05");
@import url("./action-hierarchy.css?v=20260908-lc06");
@import url("./icons.css?v=20260911-lc07");
@import url("./motion-feedback.css?v=20260911-lc08");
@import url("./accessibility.css?v=20260911-lc09");
@import url("./data-communication.css?v=20260913-lc11");
@import url("./responsive.css?v=20260914-lc13");

:root {
  --lh-type-page-title: clamp(2rem, 4vw, 2.75rem);
  --lh-type-section-title: clamp(1.375rem, 2.5vw, 1.5rem);
  --lh-type-subsection-title: 1.125rem;
  --lh-type-supporting: 1.0625rem;
  --lh-type-body: 1rem;
  --lh-type-label: 1rem;
  --lh-type-meta: 0.875rem;
  --lh-type-kicker: 0.75rem;
  --lh-type-primary-number: clamp(3.5rem, 12vw, 4.5rem);
  --lh-type-summary-number: clamp(2rem, 6vw, 2.625rem);
  --lh-type-row-number: 1.75rem;
}

body {
  font-size: var(--lh-type-body);
  line-height: 1.5;
}

/* Level 1 — screen and entity titles. */
h1 {
  font-size: var(--lh-type-page-title) !important;
  font-weight: 800 !important;
  line-height: 1.08 !important;
  letter-spacing: -0.03em !important;
}

/* Level 2 — primary sections. */
h2 {
  font-size: var(--lh-type-section-title) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.018em !important;
}

/* Level 3 — subsections and grouped card titles. */
h3 {
  font-size: var(--lh-type-subsection-title) !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
}

.lh-recipe-card h3,
.sr-card h3 {
  font-size: 1.25rem !important;
}

/* Context labels that sit above titles and sections. */
.lh-kicker,
.lh-mini-kicker,
.lh-eyebrow,
.lh-recipe-kicker,
.sr-mini-kicker,
.ym-kicker,
.ym-mini-kicker,
.yr-kicker,
.yr-category {
  font-size: var(--lh-type-kicker) !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase;
}

/* Supporting copy directly beneath a title or key value. */
.lh-greeting-copy,
.lh-intro,
.lh-heading > p:not([class]),
.lh-panel-intro,
.lh-serving-brand,
.lh-serving-basis {
  font-size: var(--lh-type-supporting) !important;
  line-height: 1.5 !important;
}

/* Form and control labels carry one consistent emphasis. */
label,
legend,
.lh-search-label,
.lh-field-label,
.ym-label {
  font-size: var(--lh-type-label);
  font-weight: 700 !important;
  line-height: 1.35;
}

/* Counts, sources, helper text, and secondary descriptors. */
.lh-section-meta,
.lh-results-meta,
.lh-food-meta,
.lh-recipe-sodium-label,
.lh-serving-message,
.lh-form-message,
.lh-message,
.lh-lookup-status,
.ym-meta,
.ym-message,
.ym-search-status,
.yr-meta,
.yr-message,
.sr-action-message {
  font-size: var(--lh-type-meta) !important;
  line-height: 1.4 !important;
}

/* Primary daily total. */
.lh-total {
  font-size: var(--lh-type-primary-number) !important;
  line-height: 0.95 !important;
}

/* Summary totals for serving, editing, meals, and reviews. */
.lh-serving-sodium,
.lh-final-total,
.lh-edit-meta-row strong,
.lh-edit-total strong,
.ym-total-card strong,
.yr-total strong {
  font-size: var(--lh-type-summary-number) !important;
  line-height: 1 !important;
}

/* Repeated row/card sodium values stay prominent but subordinate. */
.lh-entry-sodium,
.lh-result-sodium,
.lh-meal-total,
.lh-food-sodium,
.lh-recipe-sodium-value,
.ym-food-mg,
.ym-item-right strong,
.yr-item-mg {
  font-size: var(--lh-type-row-number) !important;
  line-height: 1.05 !important;
}

/* Dialog titles are local decisions, not new screen titles. */
.lh-dialog h2,
.lh-recipe-modal-head h2,
.lh-delete-dialog h2,
.sr-dialog-head h2 {
  font-size: clamp(1.625rem, 4vw, 1.875rem) !important;
}
