/**
 * PCM Electronics — sistema tipográfico v1
 *
 * Manrope expresa marca y jerarquía. Inter resuelve interfaz, lectura y datos.
 * Las fuentes se sirven localmente; no añadir imports de proveedores externos.
 */

@font-face {
  font-family: "PCM Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../../fonts/manrope/manrope-latin-ext-v20.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7,
    U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F,
    U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F,
    U+A720-A7FF;
}

@font-face {
  font-family: "PCM Manrope";
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../../fonts/manrope/manrope-latin-v20.woff2") 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;
}

@font-face {
  font-family: "PCM Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../../fonts/inter/inter-regular-v4.1.woff2") format("woff2");
}

@font-face {
  font-family: "PCM Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../../fonts/inter/inter-medium-v4.1.woff2") format("woff2");
}

@font-face {
  font-family: "PCM Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../../fonts/inter/inter-semibold-v4.1.woff2") format("woff2");
}

@font-face {
  font-family: "PCM Inter";
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("../../fonts/inter/inter-italic-v4.1.woff2") format("woff2");
}

:root {
  --pcm-font-display: "PCM Manrope", "Avenir Next", "Segoe UI", Arial,
    sans-serif;
  --pcm-font-body: "PCM Inter", "Segoe UI", Roboto, Helvetica, Arial,
    sans-serif;

  --pcm-font-weight-regular: 400;
  --pcm-font-weight-medium: 500;
  --pcm-font-weight-semibold: 600;

  --pcm-type-display-size: clamp(2.5rem, 1.83rem + 2.86vw, 4.5rem);
  --pcm-type-h1-size: clamp(2rem, 1.67rem + 1.43vw, 3rem);
  --pcm-type-h2-size: clamp(1.625rem, 1.42rem + 0.89vw, 2.25rem);
  --pcm-type-h3-size: clamp(1.25rem, 1.17rem + 0.36vw, 1.5rem);
  --pcm-type-h4-size: 1.125rem;
  --pcm-type-body-lg-size: 1.125rem;
  --pcm-type-body-size: 1rem;
  --pcm-type-body-sm-size: 0.875rem;
  --pcm-type-label-size: 0.8125rem;
  --pcm-type-micro-size: 0.75rem;
  --pcm-type-price-size: clamp(2rem, 1.67rem + 1.43vw, 3rem);

  --pcm-leading-display: 1.02;
  --pcm-leading-h1: 1.08;
  --pcm-leading-h2: 1.12;
  --pcm-leading-h3: 1.2;
  --pcm-leading-h4: 1.25;
  --pcm-leading-body-lg: 1.6;
  --pcm-leading-body: 1.55;
  --pcm-leading-body-sm: 1.45;
  --pcm-leading-label: 1.3;
  --pcm-leading-micro: 1.35;

  --pcm-measure-heading: 24ch;
  --pcm-measure-body: 68ch;
  --pcm-measure-support: 58ch;
}

.pcm-type-root {
  font-family: var(--pcm-font-body);
  font-size: var(--pcm-type-body-size);
  font-weight: var(--pcm-font-weight-regular);
  line-height: var(--pcm-leading-body);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

.pcm-type-display,
.pcm-type-h1,
.pcm-type-h2,
.pcm-type-h3,
.pcm-type-h4 {
  max-inline-size: var(--pcm-measure-heading);
  margin-block: 0;
  font-family: var(--pcm-font-display);
  font-weight: var(--pcm-font-weight-semibold);
  text-wrap: balance;
}

.pcm-type-display {
  font-size: var(--pcm-type-display-size);
  line-height: var(--pcm-leading-display);
  letter-spacing: -0.035em;
}

.pcm-type-h1 {
  font-size: var(--pcm-type-h1-size);
  line-height: var(--pcm-leading-h1);
  letter-spacing: -0.03em;
}

.pcm-type-h2 {
  font-size: var(--pcm-type-h2-size);
  line-height: var(--pcm-leading-h2);
  letter-spacing: -0.025em;
}

.pcm-type-h3 {
  font-size: var(--pcm-type-h3-size);
  line-height: var(--pcm-leading-h3);
  letter-spacing: -0.015em;
}

.pcm-type-h4 {
  font-size: var(--pcm-type-h4-size);
  line-height: var(--pcm-leading-h4);
  letter-spacing: -0.01em;
}

.pcm-type-body-lg,
.pcm-type-body,
.pcm-type-body-sm,
.pcm-type-support {
  margin-block: 0;
  font-family: var(--pcm-font-body);
  font-weight: var(--pcm-font-weight-regular);
  text-wrap: pretty;
}

.pcm-type-body-lg {
  max-inline-size: var(--pcm-measure-body);
  font-size: var(--pcm-type-body-lg-size);
  line-height: var(--pcm-leading-body-lg);
}

.pcm-type-body {
  max-inline-size: var(--pcm-measure-body);
  font-size: var(--pcm-type-body-size);
  line-height: var(--pcm-leading-body);
}

.pcm-type-body-sm,
.pcm-type-support {
  font-size: var(--pcm-type-body-sm-size);
  line-height: var(--pcm-leading-body-sm);
}

.pcm-type-support {
  max-inline-size: var(--pcm-measure-support);
}

.pcm-type-label,
.pcm-type-button,
.pcm-type-form-hint,
.pcm-type-error,
.pcm-type-stock,
.pcm-type-sku,
.pcm-type-spec-value {
  font-family: var(--pcm-font-body);
}

.pcm-type-label {
  font-size: var(--pcm-type-label-size);
  font-weight: var(--pcm-font-weight-medium);
  line-height: var(--pcm-leading-label);
  letter-spacing: 0.01em;
}

.pcm-type-button {
  font-size: var(--pcm-type-body-sm-size);
  font-weight: var(--pcm-font-weight-semibold);
  line-height: 1.2;
  letter-spacing: 0.005em;
  text-transform: none;
}

.pcm-type-price {
  font-family: var(--pcm-font-display);
  font-size: var(--pcm-type-price-size);
  font-weight: var(--pcm-font-weight-semibold);
  line-height: 1;
  letter-spacing: -0.025em;
  font-variant-numeric: lining-nums tabular-nums;
}

.pcm-type-price-table,
.pcm-type-stock,
.pcm-type-spec-value {
  font-variant-numeric: lining-nums tabular-nums;
}

.pcm-type-price-table,
.pcm-type-stock,
.pcm-type-spec-value {
  font-family: var(--pcm-font-body);
  font-weight: var(--pcm-font-weight-medium);
}

.pcm-type-sku {
  font-size: var(--pcm-type-micro-size);
  font-weight: var(--pcm-font-weight-medium);
  line-height: var(--pcm-leading-micro);
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.pcm-type-form-hint,
.pcm-type-error {
  font-size: var(--pcm-type-micro-size);
  line-height: var(--pcm-leading-micro);
}

.pcm-type-form-hint {
  font-weight: var(--pcm-font-weight-regular);
}

.pcm-type-error {
  font-weight: var(--pcm-font-weight-medium);
}

.pcm-type-micro {
  font-family: var(--pcm-font-body);
  font-size: var(--pcm-type-micro-size);
  font-weight: var(--pcm-font-weight-medium);
  line-height: var(--pcm-leading-micro);
  letter-spacing: 0.02em;
}

@media print {
  .pcm-type-display {
    font-size: 32pt;
  }

  .pcm-type-h1 {
    font-size: 26pt;
  }

  .pcm-type-h2 {
    font-size: 20pt;
  }

  .pcm-type-body,
  .pcm-type-body-lg {
    font-size: 10.5pt;
    line-height: 1.45;
  }
}
