/* OneVilo Global Typography v1.0.2
   Homepage keeps its existing display typography.
   All other pages use compact conventional product-page heading sizes.
*/

:root {
  --ov-font-page-h1: 30px;
  --ov-font-page-h2: 20px;
  --ov-font-h3: 17px;
  --ov-font-title: 15px;
  --ov-font-body: 14px;
  --ov-font-button: 13px;
  --ov-font-label: 12px;
  --ov-font-small: 12px;
  --ov-font-meta: 11px;

  --ov-weight-heading: 600;
  --ov-weight-title: 500;
  --ov-weight-body: 400;
  --ov-weight-action: 500;
}

/* Homepage: deliberately do not touch H1/H2/H3.
   It keeps the current visual hierarchy. */

/* All non-home pages */
body:not(.ov-page-home) h1 {
  font-size: var(--ov-font-page-h1) !important;
  line-height: 1.22 !important;
  font-weight: var(--ov-weight-heading) !important;
}

body:not(.ov-page-home) h2 {
  font-size: var(--ov-font-page-h2) !important;
  line-height: 1.35 !important;
  font-weight: var(--ov-weight-heading) !important;
}

body:not(.ov-page-home) h3 {
  font-size: var(--ov-font-h3) !important;
  line-height: 1.4 !important;
  font-weight: var(--ov-weight-heading) !important;
}

body:not(.ov-page-home) h4,
body:not(.ov-page-home) h5,
body:not(.ov-page-home) h6 {
  font-size: var(--ov-font-title) !important;
  line-height: 1.45 !important;
  font-weight: var(--ov-weight-title) !important;
}

/* Normal text */
p, li, dd, dt, blockquote {
  font-size: var(--ov-font-body);
  font-weight: var(--ov-weight-body);
}

/* Navigation */
header nav a,
header nav button,
nav a,
nav button,
[role="navigation"] a,
[role="navigation"] button {
  font-size: var(--ov-font-body) !important;
  font-weight: var(--ov-weight-body) !important;
}

/* Buttons */
button,
[role="button"],
input[type="button"],
input[type="submit"],
input[type="reset"],
a.button,
a.btn,
[class~="button"],
[class~="btn"] {
  font-size: var(--ov-font-button) !important;
  font-weight: var(--ov-weight-action) !important;
}

/* Form */
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
  font-size: var(--ov-font-body) !important;
}

label,
legend,
.form-label,
.field-label,
[class*="form-label"],
[class*="field-label"] {
  font-size: var(--ov-font-label) !important;
  font-weight: var(--ov-weight-body) !important;
}

/* Secondary text */
small,
.help,
.hint,
.helper,
.caption,
.eyebrow,
[class*="help"],
[class*="hint"],
[class*="helper"],
[class*="caption"],
[class*="eyebrow"] {
  font-size: var(--ov-font-small) !important;
  font-weight: var(--ov-weight-body) !important;
}

/* Metadata */
.meta,
.metadata,
.badge,
.tag,
.status,
.version,
.date,
.time,
.size,
.platform,
[class*="meta"],
[class*="badge"],
[class*="tag"],
[class*="status"],
[class*="version"],
[class*="date"],
[class*="time"],
[class*="size"] {
  font-size: var(--ov-font-meta) !important;
  font-weight: var(--ov-weight-body) !important;
}

/* Module/card titles */
.card-title,
.module-title,
.panel-title,
.section-title,
[class*="card-title"],
[class*="module-title"],
[class*="panel-title"] {
  font-size: var(--ov-font-title) !important;
  font-weight: var(--ov-weight-title) !important;
}

.subtitle,
.description,
.summary,
.note,
[class*="subtitle"],
[class*="description"],
[class*="summary"] {
  font-size: 13px !important;
  font-weight: var(--ov-weight-body) !important;
}

/* Tables */
table { font-size: 13px; }
th {
  font-size: var(--ov-font-label) !important;
  font-weight: var(--ov-weight-title) !important;
}
td { font-size: 13px !important; }

/* Admin */
body.ov-page-admin table,
body.ov-page-admin .table { font-size: 13px !important; }

body.ov-page-admin th,
body.ov-page-admin .table-head,
body.ov-page-admin [class*="table-head"] {
  font-size: 12px !important;
}

body.ov-page-admin td,
body.ov-page-admin .table-cell,
body.ov-page-admin [class*="table-cell"] {
  font-size: 13px !important;
}

body.ov-page-admin button,
body.ov-page-admin [role="button"],
body.ov-page-admin a.button,
body.ov-page-admin a.btn {
  font-size: 12px !important;
}

body.ov-page-admin label,
body.ov-page-admin legend {
  font-size: 12px !important;
}

body.ov-page-admin input:not([type="checkbox"]):not([type="radio"]),
body.ov-page-admin select,
body.ov-page-admin textarea {
  font-size: 14px !important;
}

/* Download center */
body.ov-page-download .ov-platform-action,
body.ov-page-download .ov-platform-name,
body.ov-page-download .ov-platform-label {
  font-size: 13px !important;
}

body.ov-page-download .ov-platform-status,
body.ov-page-download .ov-platform-version,
body.ov-page-download .ov-platform-note {
  font-size: 11px !important;
}

/* Wallpapers */
body.ov-page-wallpapers .wallpaper-title,
body.ov-page-wallpapers [class*="wallpaper-title"] {
  font-size: 14px !important;
  font-weight: 600 !important;
}

body.ov-page-wallpapers .wallpaper-meta,
body.ov-page-wallpapers [class*="wallpaper-meta"] {
  font-size: 11px !important;
}

/* Mobile */
@media (max-width: 639px) {
  :root {
    --ov-font-page-h1: 26px;
    --ov-font-page-h2: 18px;
    --ov-font-h3: 16px;
  }

  p, li,
  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    font-size: 14px;
  }
}
