/*
 * RCD typography normalization.
 * Baseline: pagina Associazione / gerarchia istituzionale condivisa.
 * Questo file deve essere caricato per ultimo tra i CSS applicativi.
 */

:root {
    --rcd-type-family: 'Titillium Web', Geneva, Tahoma, sans-serif;
    --rcd-type-body-size: 1rem;
    --rcd-type-body-line: 1.65;
    --rcd-type-lead-size: clamp(1.1rem, 1.45vw, 1.25rem);
    --rcd-type-lead-line: 1.58;
    --rcd-type-h1-size: clamp(2.35rem, 5.2vw, 4.25rem);
    --rcd-type-h2-size: clamp(1.85rem, 3vw, 2.65rem);
    --rcd-type-h3-size: clamp(1.3rem, 2vw, 1.65rem);
    --rcd-type-h4-size: clamp(1.15rem, 1.45vw, 1.35rem);
    --rcd-type-small-size: .9rem;
    --rcd-type-content-measure: 72ch;
}

html {
    font-size: clamp(16px, calc(15.35px + .18vw), 17px);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

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

body {
    font-size: var(--rcd-type-body-size);
    font-weight: 400;
    line-height: var(--rcd-type-body-line);
    text-rendering: optimizeLegibility;
}

/* Corpo pagina: stessa baseline dell'Associazione. */
.acn-page-content,
.unified-registry-page,
.faq-page-body,
.rcd-public-profiles,
.rcd-governance-page main,
main .container {
    font-size: var(--rcd-type-body-size);
    line-height: var(--rcd-type-body-line);
}

.acn-page-content p,
.acn-page-content li,
.acn-page-content dd,
.acn-page-content dt,
.unified-registry-page p,
.unified-registry-page li,
.faq-page-body p,
.faq-page-body li,
.rcd-public-profiles p,
.rcd-public-profiles li,
.rcd-governance-page main p,
.rcd-governance-page main li {
    line-height: var(--rcd-type-body-line);
}

/* Titoli contenuto: scala istituzionale unica. */
.acn-page-content h2,
.rcd-public-profiles h2,
.faq-section h2,
.unified-registry-page h2,
.rcd-governance-page main h2 {
    margin-bottom: .8rem;
    font-size: var(--rcd-type-h2-size);
    font-weight: 700;
    line-height: 1.12;
    letter-spacing: -.015em;
}

.acn-page-content h3,
.rcd-public-profiles h3,
.faq-section h3,
.unified-registry-page h3,
.rcd-governance-page main h3 {
    font-size: var(--rcd-type-h3-size);
    font-weight: 700;
    line-height: 1.2;
}

.acn-page-content h4,
.rcd-public-profiles h4,
.faq-section h4,
.unified-registry-page h4,
.rcd-governance-page main h4 {
    font-size: var(--rcd-type-h4-size);
    font-weight: 700;
    line-height: 1.25;
}

/* Hero: valori della pagina Associazione. */
.acn-page-hero h1,
.faq-hero h1 {
    max-width: 22ch;
    font-size: var(--rcd-type-h1-size);
    font-weight: 700;
    line-height: 1.03;
    letter-spacing: -.025em;
    text-wrap: balance;
}

.acn-page-hero p,
.acn-page-hero .lead,
.rcd-governance-page .acn-page-hero p,
.faq-hero > .container > p {
    max-width: var(--rcd-type-content-measure);
    font-size: clamp(1.05rem, 1.5vw, 1.2rem);
    font-weight: 400;
    line-height: 1.62;
}

.acn-page-content .lead,
.rcd-public-lead,
.rcd-public-section-intro,
.faq-section .lead,
.unified-registry-page .lead {
    max-width: var(--rcd-type-content-measure);
    font-size: var(--rcd-type-lead-size);
    font-weight: 400;
    line-height: var(--rcd-type-lead-line);
}

.rcd-kicker,
.registry-service-kicker,
.acn-page-hero .rcd-association-eyebrow {
    font-size: var(--rcd-type-small-size);
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: .07em;
}

/* Componenti testuali: niente micro-font arbitrari. */
.rcd-page-toc,
.rcd-governance-nav,
.card,
.alert,
.list-group,
.table,
.form-control,
.form-select,
.form-check-label,
.btn {
    font-family: var(--rcd-type-family);
}

.form-control,
.form-select,
textarea,
input,
button,
.btn {
    font-size: 1rem;
}

.table {
    font-size: .96rem;
    line-height: 1.5;
}

small,
.small,
.form-text,
.text-small {
    font-size: var(--rcd-type-small-size);
    line-height: 1.45;
}

/* Testo lungo e stringhe tecniche non devono rompere il layout. */
.acn-page-content,
.unified-registry-page,
.faq-page-body,
.rcd-public-profiles,
.rcd-governance-page main,
.card,
.alert,
.table-responsive {
    overflow-wrap: break-word;
    word-break: normal;
}

.acn-page-content p,
.rcd-public-lead,
.rcd-public-section-intro,
.faq-section p,
.unified-registry-page p {
    text-wrap: pretty;
}

@media (max-width: 767.98px) {
    :root {
        --rcd-type-body-line: 1.58;
        --rcd-type-h2-size: clamp(1.58rem, 7vw, 1.9rem);
        --rcd-type-h3-size: clamp(1.24rem, 5.4vw, 1.48rem);
        --rcd-type-h4-size: clamp(1.1rem, 4.5vw, 1.25rem);
        --rcd-type-lead-size: clamp(1.06rem, 4.4vw, 1.15rem);
    }

    html {
        font-size: 16px;
    }

    body {
        line-height: var(--rcd-type-body-line);
    }

    .acn-page-hero h1,
    .faq-hero h1 {
        max-width: 100%;
        font-size: clamp(2.05rem, 10vw, 2.35rem);
        line-height: 1.06;
    }

    .acn-page-hero p,
    .acn-page-hero .lead,
    .rcd-governance-page .acn-page-hero p,
    .faq-hero > .container > p {
        max-width: 100%;
        font-size: clamp(1rem, 4.3vw, 1.08rem);
        line-height: 1.55;
    }

    .acn-page-content h2,
    .rcd-public-profiles h2,
    .faq-section h2,
    .unified-registry-page h2,
    .rcd-governance-page main h2,
    .acn-page-content h3,
    .rcd-public-profiles h3,
    .faq-section h3,
    .unified-registry-page h3,
    .rcd-governance-page main h3 {
        text-wrap: balance;
    }

    .acn-page-content p,
    .acn-page-content li,
    .unified-registry-page p,
    .unified-registry-page li,
    .faq-page-body p,
    .faq-page-body li,
    .rcd-public-profiles p,
    .rcd-public-profiles li,
    .rcd-governance-page main p,
    .rcd-governance-page main li {
        line-height: 1.58;
    }

    /* 16px reali: evita lo zoom automatico sui form iOS. */
    input,
    select,
    textarea,
    .form-control,
    .form-select,
    button,
    .btn {
        font-size: 1rem;
    }

    .table {
        font-size: .94rem;
        line-height: 1.45;
    }

    .rcd-page-toc,
    .rcd-page-toc--scrollspy,
    .rcd-governance-card,
    .rcd-boundary-item,
    .rcd-method-principles article,
    .rcd-flow-step {
        font-size: 1rem;
    }
}

@media (max-width: 374.98px) {
    .acn-page-hero h1,
    .faq-hero h1 {
        font-size: 2rem;
    }

    .acn-page-content h2,
    .rcd-public-profiles h2,
    .faq-section h2,
    .unified-registry-page h2,
    .rcd-governance-page main h2 {
        font-size: 1.55rem;
    }

    .rcd-governance-nav a,
    .rcd-page-toc a,
    .btn {
        white-space: normal;
    }
}
