/* ══════════════════════════════════════════════════════════════
   LocalModels — Global Typography
   Loaded site-wide (except admincp). Mirrors the font system
   defined in lm-profile.css. Do not put layout rules here.
   ══════════════════════════════════════════════════════════════ */

:root {
  /* Font stacks */
  --lm-font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --lm-font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;

  /* Font sizes */
  --lm-text-xs:   11px;
  --lm-text-sm:   12.5px;
  --lm-text-base: 14px;
  --lm-text-md:   15px;
  --lm-text-lg:   16px;
  --lm-text-xl:   18px;
  --lm-text-2xl:  20px;
  --lm-text-3xl:  24px;
  --lm-text-4xl:  28px;
  --lm-text-5xl:  32px;

  /* Weights */
  --lm-weight-regular:  400;
  --lm-weight-medium:   500;
  --lm-weight-semibold: 600;
  --lm-weight-bold:     700;

  /* Line heights */
  --lm-leading-tight:   1.25;
  --lm-leading-normal:  1.5;
  --lm-leading-relaxed: 1.625;

  /* Letter spacing */
  --lm-tracking-tight:     -0.01em;
  --lm-tracking-normal:    0;
  --lm-tracking-wide:      0.025em;
  --lm-tracking-uppercase: 0.05em;

  /* Text colors (mirror lm-profile.css tokens) */
  --lm-text-primary:   #0f172a;
  --lm-text-secondary: #475569;
  --lm-text-muted:     #64748b;
  --lm-text-tertiary:  #94a3b8;
}

/* R20k: Dark theme typography colors flip */
html[data-lm-theme="dark"] {
  --lm-text-primary:   #e6edf3;
  --lm-text-secondary: #c9d1d9;
  --lm-text-muted:     #8b949e;
  --lm-text-tertiary:  #6e7681;
}

/* ── Base ──────────────────────────────────────────────────── */
html, body {
  font-family: var(--lm-font-sans) !important;
  font-size: var(--lm-text-base);
  line-height: var(--lm-leading-normal);
  color: var(--lm-text-primary);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

/* ── Headings ──────────────────────────────────────────────── */
h1, .lm-h1 {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-4xl);
  font-weight: var(--lm-weight-bold);
  line-height: var(--lm-leading-tight);
  letter-spacing: var(--lm-tracking-tight);
  color: var(--lm-text-primary);
}

h2, .lm-h2 {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-3xl);
  font-weight: var(--lm-weight-bold);
  line-height: var(--lm-leading-tight);
  letter-spacing: var(--lm-tracking-tight);
  color: var(--lm-text-primary);
}

h3, .lm-h3 {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-2xl);
  font-weight: var(--lm-weight-semibold);
  line-height: var(--lm-leading-tight);
  color: var(--lm-text-primary);
}

h4, .lm-h4 {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-xl);
  font-weight: var(--lm-weight-semibold);
  line-height: var(--lm-leading-normal);
  color: var(--lm-text-primary);
}

h5, .lm-h5 {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-lg);
  font-weight: var(--lm-weight-semibold);
  line-height: var(--lm-leading-normal);
  color: var(--lm-text-primary);
}

h6, .lm-h6 {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-base);
  font-weight: var(--lm-weight-semibold);
  line-height: var(--lm-leading-normal);
  color: var(--lm-text-primary);
}

/* ── Body / paragraphs ─────────────────────────────────────── */
p {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-base);
  line-height: var(--lm-leading-normal);
  color: var(--lm-text-primary);
}

small, .lm-small {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-sm);
  color: var(--lm-text-muted);
}

.lm-muted, .text-muted {
  color: var(--lm-text-muted) !important;
}

/* ── Forms ─────────────────────────────────────────────────── */
input, textarea, select, button {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-base);
}

input::placeholder, textarea::placeholder {
  color: var(--lm-text-tertiary);
}

label, .lm-label {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-sm);
  font-weight: var(--lm-weight-medium);
  color: var(--lm-text-secondary);
}

/* ── Buttons (font only — no colors/layout) ────────────────── */
.btn, button.btn, .button {
  font-family: var(--lm-font-sans);
  font-weight: var(--lm-weight-semibold);
}

/* ── Tables ────────────────────────────────────────────────── */
table {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-base);
}
th {
  font-weight: var(--lm-weight-semibold);
  font-size: var(--lm-text-sm);
  text-transform: uppercase;
  letter-spacing: var(--lm-tracking-uppercase);
  color: var(--lm-text-muted);
}
td {
  font-size: var(--lm-text-base);
  color: var(--lm-text-primary);
}

/* ── Lists ─────────────────────────────────────────────────── */
ul, ol {
  font-family: var(--lm-font-sans);
  font-size: var(--lm-text-base);
  line-height: var(--lm-leading-normal);
}

/* ── Code / mono ───────────────────────────────────────────── */
code, pre, kbd, samp {
  font-family: var(--lm-font-mono);
  font-size: 0.9em;
}

/* ── Utility classes ───────────────────────────────────────── */
.lm-uppercase {
  text-transform: uppercase;
  font-size: var(--lm-text-xs);
  font-weight: var(--lm-weight-semibold);
  letter-spacing: var(--lm-tracking-uppercase);
  color: var(--lm-text-muted);
}

/* ── Cursors — pointer on all interactive elements (force) ──── */
a[href],
button,
[role="button"],
[onclick],
[data-toggle],
[data-bs-toggle],
[data-action],
.btn,
.button,
.clickable,
input[type="submit"],
input[type="button"],
input[type="reset"],
input[type="checkbox"],
input[type="radio"],
input[type="file"],
label[for],
select,
summary,
.lm-nav-item,
.lm-nav-more-trigger,
.lm-nav-subitem,
.lm-create-btn,
.lm-create-menu-item,
.lm-mini-profile,
.lm-account-menu-item,
.lm-account-menu-header,
.lm-brand,
.lm-topbar-search,
.lm-topbar-action,
.lm-topbar-upgrade,
.lm-tab,
.lm-port-filter-btn,
.lm-cdrop-btn,
.lm-cdrop-item,
.lm-theme-toggle,
.lm-lang-trigger,
.lm-lang-item,
.lm-lang-flag,
.lm-service-cta,
.lm-pop-item,
.lm-card-action,
.lm-icon-btn,
.lm-icon-btn-lg,
.lm-tab-pill,
.lm-modal-close,
.lm-buy-close,
.lm-booking-close,
.lm-share-tab,
.lm-share-net,
.lm-review-toggle,
.lm-portfolio-item,
.pl-nav,
.pl-close-btn,
.pl-side-sort-btn,
.pl-side-sort-item,
.pl-tab-action {
  cursor: pointer !important;
}

/* Disabled states stay default */
[disabled],
.disabled,
button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed !important;
}

/* ══════════════════════════════════════════════════════════════
   Sngine override — Inter cascades naturally from html/body.
   We DO NOT use a broad `*` selector with !important here because
   that breaks Font Awesome / Bootstrap Icons that depend on their
   own font-family declaration on <i class="fa-...">.
   Inheritance from body is enough for normal text; icon fonts
   keep their own font-family because their selectors are specific.
   ══════════════════════════════════════════════════════════════ */

/* Sngine's own utility classes */
.text-bold, .font-weight-bold, .fw-bold {
  font-weight: var(--lm-weight-bold);
}
.fw-medium { font-weight: var(--lm-weight-medium); }
.fw-semibold { font-weight: var(--lm-weight-semibold); }

.card-title {
  font-size: var(--lm-text-lg);
  font-weight: var(--lm-weight-semibold);
}
.card-body {
  font-size: var(--lm-text-base);
}

/* Sidebar / nav links from Sngine */
.sidebar-link, .nav-link, .nav-item {
  font-size: var(--lm-text-base);
  font-weight: var(--lm-weight-medium);
}
