:root {
    --tamañonormal: clamp(1rem, 0.9rem + 0.4vw, 1.25rem);
    --interlinea: clamp(1.45, 1.4 + 0.2vw, 1.6);
    --espaciadoletra: clamp(0.015em, 0.01em + 0.05vw, 0.05em);
}

body {
    line-height: var(--interlinea);
    letter-spacing: var(--espaciadoletra);
}

h1 {
    font-size: clamp(2rem, 1.5rem + 2vw, 3.25rem);
    font-style: italic;
}

h2 {
    font-size: clamp(1.5rem, 1.2rem + 1vw, 2.25rem);
}

h3 {
    font-size: clamp(1.25rem, 1rem + 0.6vw, 1.75rem);
}

h4 {
    font-size: clamp(1.125rem, 1rem + 0.4vw, 1.5rem);
}

h1, h2, h3, h4 {
    color: var(--primario);
    overflow-wrap: anywhere; /* rompe palabras/largas o URLs */
    word-break: normal;
    hyphens: none;           /* añade guion si procede */
    max-inline-size: 32ch;   /* (opcional) controla línea máxima */
    text-wrap: balance;
    user-select: none;
}

p, dd {
    font-size: var(--tamañonormal);
    hyphens: auto;
    max-width: 47ch;
}

dl, ul, button {
    font-size: var(--tamañonormal);
}

dt {
    font-weight: bold;
}

form label {
    font-size: clamp(0.9rem, 0.82rem + 0.28vw, 1.05rem);
}

form input,
form select,
form textarea {
    font-size: clamp(0.9rem, 0.82rem + 0.28vw, 1.05rem);
    line-height: var(--interlinea);
    letter-spacing: var(--espaciadoletra);
    font-family: inherit; /* asegura la misma tipografía que el body */
    color: var(--secundario);
}

form input[type="submit"] {
    font-size: var(--tamañonormal);
}

form ::placeholder {
    font-size: clamp(0.9rem, 0.82rem + 0.28vw, 1.05rem);
    line-height: var(--interlinea);
    letter-spacing: var(--espaciadoletra);
    font-family: inherit;
    color: var(--secundario);
}

abbr {
    text-decoration: none;
}

.versalitas, button, form input[type="submit"], abbr {
    font-variant-caps: all-small-caps;
    letter-spacing: clamp(0.035em, 0.02em + 0.05vw, 0.08em);
}