/* LuxuryPartners operational typography is served from the same origin. */
@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('/assets/fonts/unbounded-cyrillic.woff2?v=20260830-1') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
  src: url('/assets/fonts/unbounded-latin.woff2?v=20260830-1') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --lp-font-ui: 'Unbounded', Arial, sans-serif;
  --lp-font-data: 'Unbounded', Arial, sans-serif;
}

/* Authentication, cabinet and admin surfaces share one self-hosted UI face. */
:is(.partner-react, .dashboard-page, .lp-mode, .partner-admin-mode, .partner-admin-login),
:is(.partner-react, .dashboard-page, .lp-mode, .partner-admin-mode, .partner-admin-login) * {
  font-family: var(--lp-font-ui) !important;
}

/* The public brand landing uses Benzin for its hero offer and narrative chapter titles. */
.partner-react :is(.ph-hero h1, .ph-hero h1 span, .ph-hero h1 strong, .ph-steps-heading h2, .ph-step h3, .ph-growth-heading h2, .ph-growth-heading h2 em, .ph-level-copy > b, .ph-laptop-heading) {
  font-family: 'Benzin', var(--lp-font-ui) !important;
}

/* Primary landing conversion labels share the same Benzin Bold display voice. */
.partner-react :is(
  .ph-bottom-copy h2,
  .ph-bottom-copy h2 > span,
  .ph-hero .ph-actions .btn-primary,
  .ph-hero .ph-actions .btn-primary > span,
  .ph-bottom-actions .btn,
  .ph-bottom-actions .btn > span,
  .nav-actions .btn,
  .nav-actions .btn .nav-action-label
) {
  font-family: 'Benzin', var(--lp-font-ui) !important;
  font-weight: 700 !important;
  font-synthesis: none;
}

/* Data is deliberately distinct: amounts, rates and identifiers scan as a separate layer. */
:is(.partner-react, .dashboard-page, .partner-admin-mode) :is(
  code,
  kbd,
  pre,
  .num,
  .numeric,
  .ref-code,
  .partner-ledger-email,
  .partner-ledger-uid,
  .kpi-value,
  .chart-summary-item b,
  .finance-amount,
  .phs b,
  .ph-calc-value b,
  .ph-calc-result b
) {
  font-family: var(--lp-font-data) !important;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.035em;
}

/* The cabinet token is intentionally more specific than its legacy layout
   rules, so the approved Unbounded preview wins on every route. */
:root[data-lp-cabinet-font="unbounded"] :is(.dashboard-page, .dashboard-page *) {
  font-family: 'Unbounded', Arial, sans-serif !important;
  font-synthesis: none;
}

:root[data-lp-admin-font="unbounded"] :is(.partner-admin-mode, .partner-admin-mode *) {
  font-family: 'Unbounded', Arial, sans-serif !important;
  font-synthesis: none;
}

:root[data-lp-cabinet-font="unbounded"] {
  --lp-unbounded-caption-size: 10px;
  --lp-unbounded-label-size: 11px;
  --lp-unbounded-control-size: 12px;
  --lp-unbounded-body-size: 13px;
  --lp-unbounded-title-size: 20px;
  --lp-unbounded-page-title-size: 28px;
  --lp-unbounded-metric-size: 23px;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page {
  font-size: var(--lp-unbounded-body-size);
  line-height: 1.55;
  letter-spacing: -0.02em;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page :is(button, input, select, textarea, option) {
  font-size: var(--lp-unbounded-control-size) !important;
  line-height: 1.45 !important;
  letter-spacing: -0.025em;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page :is(small, .label, .field > span, .status-pill, .data-table th, .metric-label, .chart-tabs button, .cabinet-period-control, .sidebar-finance span) {
  font-size: var(--lp-unbounded-caption-size) !important;
  line-height: 1.45 !important;
  letter-spacing: -0.02em;
}

/* Currency glyphs are controls, not balance captions. */
:root[data-lp-cabinet-font="unbounded"] .dashboard-page .sidebar-finance .sidebar-currency-toggle__option {
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  -webkit-text-stroke: 0;
  transform: none !important;
  transition: color 220ms ease;
}

.dashboard-page #payout-page-btn {
  font-size: 14px !important;
}

@media (max-width: 760px) {
  :root[data-lp-cabinet-font="unbounded"] .dashboard-page .sidebar-finance .sidebar-currency-toggle__option {
    font-size: 19px !important;
  }
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page :is(.data-table td, .data-table td *, .sidebar-finance strong, .side-nav-item, .button, .input, .field, .modal-sub) {
  font-size: var(--lp-unbounded-label-size) !important;
  line-height: 1.5 !important;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page :is(h2, h3, h4, h5, h6, .section-page-heading h1 + p) {
  font-size: var(--lp-unbounded-title-size) !important;
  font-weight: 400 !important;
  line-height: 1.28 !important;
  letter-spacing: -0.035em;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page h1 {
  font-size: var(--lp-unbounded-page-title-size) !important;
  font-weight: 300 !important;
  line-height: 1.2 !important;
  letter-spacing: -0.04em;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page .dashboard-panel[data-panel="overview"] .metric-card h3 {
  font-weight: 400 !important;
}

/* Desktop KPI labels need a readable compact role without overflowing their card column. */
@media (min-width: 761px) {
  :root[data-lp-cabinet-font="unbounded"] .dashboard-page .dashboard-panel[data-panel="overview"] .metric-card h3 {
    font-size: 14px !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere;
  }
}

/* The Landings catalogue title uses the owner's approved regular weight. */
:root[data-lp-cabinet-font="unbounded"] .dashboard-page .dashboard-panel[data-panel="offers"] .section-page-heading h1 {
  font-weight: 400 !important;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page :is(.kpi-value, .metric-value, .metric-card strong, .chart-summary-item b) {
  font-size: var(--lp-unbounded-metric-size) !important;
  line-height: 1.18 !important;
  letter-spacing: -0.05em;
  font-variant-numeric: tabular-nums;
}

:root[data-lp-cabinet-font="unbounded"] .dashboard-page .payout-main > b {
  font-size: 20px !important;
  font-weight: 400 !important;
  letter-spacing: -0.04em;
}

@media (max-width: 760px) {
  :root[data-lp-cabinet-font="unbounded"] {
    --lp-unbounded-caption-size: 9px;
    --lp-unbounded-label-size: 10px;
    --lp-unbounded-control-size: 11px;
    --lp-unbounded-body-size: 12px;
    --lp-unbounded-title-size: 17px;
    --lp-unbounded-page-title-size: 23px;
    --lp-unbounded-metric-size: 19px;
  }

  /* Two-column overview cards keep their full labels at phone widths. */
  :root[data-lp-cabinet-font="unbounded"] .dashboard-page .dashboard-panel[data-panel="overview"] .metric-card h3 {
    font-size: 10px !important;
    letter-spacing: -0.035em;
    line-height: 1.3 !important;
  }

  :root[data-lp-cabinet-font="unbounded"] .dashboard-page .payout-main > b {
    font-size: 18px !important;
  }
}
