@font-face {
  font-family: "Manrope";
  src: url("fonts/manrope-variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}

:root {
  --font-sans: "Manrope", Arial, Helvetica, sans-serif;
  --type-xs: 0.75rem;
  --type-sm: 0.8125rem;
  --type-base: 0.9375rem;
  --type-md: 1.0625rem;
  --type-lg: 1.25rem;
  --type-xl: 1.625rem;
  --type-2xl: 2rem;
}

html,
body,
button,
input,
select,
textarea {
  font-family: var(--font-sans);
}

body {
  font-size: var(--type-base);
  font-weight: 450;
  line-height: 1.55;
  letter-spacing: -0.012em;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  font-optical-sizing: auto;
}

button,
input,
select,
textarea {
  font-size: inherit;
  letter-spacing: inherit;
}

h1,
h2,
h3,
h4,
strong,
b {
  letter-spacing: -0.025em;
}

/* Loja */
.nav-link {
  font-size: var(--type-sm);
  font-weight: 650;
  letter-spacing: 0;
}

.submenu button {
  font-size: var(--type-sm);
  font-weight: 550;
}

.section-heading h1,
.collection-title {
  font-size: var(--type-xl);
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -0.035em;
}

.app-card {
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.35;
}

.benefits p {
  font-size: 0.875rem;
  line-height: 1.5;
}

.benefits strong {
  font-weight: 750;
}

.filter-count {
  font-size: var(--type-xs);
  font-weight: 650;
}

.product-name {
  font-size: 0.975rem;
  font-weight: 720;
  line-height: 1.3;
  letter-spacing: -0.022em;
}

.product-stock {
  font-size: var(--type-xs);
  font-weight: 700;
  letter-spacing: 0.005em;
}

.old-price {
  font-size: var(--type-sm);
  font-weight: 500;
}

.price {
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.03em;
}

.discount {
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.01em;
}

.more-info,
.confirm-purchase,
.details-buy,
.secondary-action {
  font-size: var(--type-xs);
  font-weight: 750;
  letter-spacing: 0.025em;
}

.footer-column h3,
.footer-pages h3 {
  font-size: var(--type-sm);
  font-weight: 750;
}

.footer-column a,
.footer-pages a {
  font-size: var(--type-xs);
  font-weight: 500;
}

.product-modal-eyebrow,
.purchase-progress span {
  font-size: 0.7rem;
  font-weight: 750;
  letter-spacing: 0.09em;
}

.product-modal-content h2,
.details-content h2 {
  font-size: 1.75rem;
  font-weight: 760;
  line-height: 1.18;
  letter-spacing: -0.04em;
}

.field-label,
.customer-field,
.customization-field {
  font-size: var(--type-xs);
  font-weight: 650;
}

#planSelect,
.customer-field input,
.customization-field input,
.customization-field select {
  font-size: var(--type-sm);
  font-weight: 500;
}

.purchase-summary {
  font-size: var(--type-sm);
}

.purchase-summary strong,
.pix-amount {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.035em;
}

.details-description {
  font-size: 0.9rem;
  line-height: 1.7;
}

.details-list dt,
.details-list dd,
.details-section ul,
.details-plans span {
  font-size: var(--type-xs);
}

.details-list dt,
.details-section h3,
.details-plans h3 {
  font-weight: 750;
}

/* Painel administrativo */
.login-card h1 {
  font-size: 1.8rem;
  font-weight: 760;
  line-height: 1.18;
}

.login-card p {
  font-size: 0.9rem;
}

.eyebrow {
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.1em;
}

.nav-button,
.sidebar-footer button,
.sidebar-footer a {
  font-size: var(--type-sm);
  font-weight: 550;
}

.sidebar-brand span {
  font-size: 0.65rem;
  font-weight: 750;
  letter-spacing: 0.06em;
}

.topbar h1 {
  font-size: 1.4rem;
  font-weight: 750;
  letter-spacing: -0.035em;
}

.api-status {
  font-size: var(--type-xs);
  font-weight: 650;
}

.metric-card span {
  font-size: var(--type-xs);
  font-weight: 650;
}

.metric-card strong {
  font-size: 1.85rem;
  font-weight: 780;
  line-height: 1.1;
  letter-spacing: -0.045em;
}

.metric-card small,
.summary-item span,
.compact-item span,
.compact-item time {
  font-size: 0.7rem;
}

.panel-heading h2,
.section-toolbar h2,
.subheading h3 {
  font-size: 1.1rem;
  font-weight: 740;
  letter-spacing: -0.025em;
}

.summary-item strong,
.compact-item strong,
.entity-item strong {
  font-size: var(--type-sm);
  font-weight: 700;
}

.primary-button,
.secondary-button,
.small-button,
.text-button {
  font-size: var(--type-xs);
  font-weight: 700;
  letter-spacing: 0.005em;
}

.table-panel th {
  font-size: 0.68rem;
  font-weight: 750;
  letter-spacing: 0.055em;
}

.table-panel td {
  font-size: var(--type-sm);
  font-weight: 480;
}

.table-primary strong {
  font-weight: 700;
}

.row-actions button {
  font-size: var(--type-xs);
  font-weight: 650;
}

.table-primary small,
.badge,
.notice,
.mode-select {
  font-size: 0.72rem;
}

.badge {
  font-weight: 750;
  letter-spacing: 0.005em;
}

.login-card label,
.field,
.check-field {
  font-size: var(--type-xs);
  font-weight: 650;
  line-height: 1.35;
}

input,
select,
textarea {
  font-size: var(--type-sm);
  font-weight: 480;
}

.dialog-card > header h2 {
  font-size: 1.35rem;
  font-weight: 750;
  letter-spacing: -0.035em;
}

.dialog-card > header p,
.field-help,
.inline-example,
.entity-item span,
.config-example summary,
.config-example span {
  font-size: 0.7rem;
  line-height: 1.5;
}

.toast {
  font-size: var(--type-sm);
  font-weight: 550;
}

/* Páginas institucionais */
body:not(:has(.site-header)):not(:has(.admin-layout)):not(:has(.login-screen)) {
  font-size: 0.95rem;
  line-height: 1.75;
}

body:not(:has(.site-header)):not(:has(.admin-layout)):not(:has(.login-screen)) h1 {
  font-size: 1.8rem;
  font-weight: 760;
  line-height: 1.2;
  letter-spacing: -0.04em;
}

body:not(:has(.site-header)):not(:has(.admin-layout)):not(:has(.login-screen)) h2 {
  font-size: 1.12rem;
  font-weight: 720;
  line-height: 1.35;
}

@media (max-width: 620px) {
  :root {
    --type-base: 0.9rem;
    --type-xl: 1.35rem;
  }

  .product-name {
    font-size: 0.86rem;
  }

  .price {
    font-size: 1.05rem;
  }

  .product-modal-content h2,
  .details-content h2 {
    font-size: 1.45rem;
  }
}
