/* ============================================================
   WRC TYPE — unica fonte della tipografia del portale.
   Caricato per ultimo (inc/template.php). Tutto ciò che è testo
   (h1-h6, p, liste, em, strong, citazioni, didascalie, pulsanti WP)
   prende da qui famiglia, dimensione, peso, interlinea e colore.

   - Token: variabili --wrc-* su :root. Cambiare un valore qui lo
     cambia in tutto il sito.
   - Regole di elemento: specificità (0,0,2), cosi' battono i vecchi
     stili generici ma NON le classi di componente (card, menu...).
   - Esclusi: header, footer, nav, menu (chrome con design proprio).
   - Classi riutilizzabili (anche su elementi non semantici):
       .t-h1 .t-h2 .t-h3 .t-h4 .t-h5 .t-h6   aspetto dei titoli
       .t-text .t-lead .t-small .t-caption    corpo testo
       .t-eyebrow                              etichetta in maiuscolo
       .t-on-dark                              testo chiaro su fondo scuro
       .t-center                               testo centrato
   ============================================================ */

/* ---------- font self-hosted ---------- */
@font-face{font-family:'Raleway';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/raleway-var-latin-ext.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:'Raleway';font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/raleway-var-latin.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:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/inter-var-latin-ext.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:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('/assets/fonts/inter-var-latin.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}

/* ---------- token ---------- */
:root{
    /* famiglie */
    --wrc-font-head: 'Raleway', Georgia, sans-serif;
    --wrc-font-body: 'Inter', Arial, sans-serif;

    /* scala titoli (h1 = specifica del brand; gli altri ne derivano) */
    --wrc-fs-h1: clamp(2rem, 5vw, 3.2rem);
    --wrc-fs-h2: clamp(1.6rem, 3.5vw, 2.2rem);
    --wrc-fs-h3: clamp(1.25rem, 2.4vw, 1.5rem);
    --wrc-fs-h4: 1.25rem;
    --wrc-fs-h5: 1.0625rem;
    --wrc-fs-h6: .8125rem;

    /* scala testo */
    --wrc-fs-lead: 1.2rem;
    --wrc-fs-text: 1.0625rem;
    --wrc-fs-small: .9375rem;
    --wrc-fs-caption: .8125rem;

    /* pesi */
    --wrc-fw-h1: 800;
    --wrc-fw-h2: 800;
    --wrc-fw-h3: 700;
    --wrc-fw-h4: 700;
    --wrc-fw-h5: 700;
    --wrc-fw-h6: 800;
    --wrc-fw-text: 400;
    --wrc-fw-strong: 700;

    /* interlinee */
    --wrc-lh-h1: 1.12;
    --wrc-lh-h2: 1.2;
    --wrc-lh-h3: 1.25;
    --wrc-lh-h4: 1.3;
    --wrc-lh-text: 1.7;

    /* spazi sotto i titoli */
    --wrc-mb-h1: 14px;
    --wrc-mb-h2: 14px;
    --wrc-mb-h3: 10px;
    --wrc-mb-h4: 8px;

    /* colori */
    --wrc-ink: #1f1f1f;
    --wrc-ink-soft: #4a4a4a;
    --wrc-heading: #6a0631;
    --wrc-on-dark: #ffffff;

    /* ombra del titolo sulle foto */
    --wrc-h1-shadow: 0 2px 12px rgba(0, 0, 0, .4);
}

/* ---------- corpo ---------- */
body{
    font-family: var(--wrc-font-body);
    font-size: var(--wrc-fs-text);
    font-weight: var(--wrc-fw-text);
    line-height: var(--wrc-lh-text);
    color: var(--wrc-ink);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* ---------- titoli ---------- */
body :is(h1, h2, h3, h4, h5, h6):not(:where(header, footer, nav, .menu-overlay) *),
.t-h1, .t-h2, .t-h3, .t-h4, .t-h5, .t-h6{
    font-family: var(--wrc-font-head);
    font-style: normal;
    letter-spacing: 0;
    margin-top: 0;
    color: var(--wrc-heading);
    text-wrap: balance;
    overflow-wrap: break-word;
}
body h1:not(:where(header, footer, nav, .menu-overlay) *), .t-h1{
    font-size: var(--wrc-fs-h1);
    font-weight: var(--wrc-fw-h1);
    line-height: var(--wrc-lh-h1);
    margin-bottom: var(--wrc-mb-h1);
}
body h2:not(:where(header, footer, nav, .menu-overlay) *), .t-h2{
    font-size: var(--wrc-fs-h2);
    font-weight: var(--wrc-fw-h2);
    line-height: var(--wrc-lh-h2);
    margin-bottom: var(--wrc-mb-h2);
}
body h3:not(:where(header, footer, nav, .menu-overlay) *), .t-h3{
    font-size: var(--wrc-fs-h3);
    font-weight: var(--wrc-fw-h3);
    line-height: var(--wrc-lh-h3);
    margin-bottom: var(--wrc-mb-h3);
}
body h4:not(:where(header, footer, nav, .menu-overlay) *), .t-h4{
    font-size: var(--wrc-fs-h4);
    font-weight: var(--wrc-fw-h4);
    line-height: var(--wrc-lh-h4);
    margin-bottom: var(--wrc-mb-h4);
}
body h5:not(:where(header, footer, nav, .menu-overlay) *), .t-h5{
    font-size: var(--wrc-fs-h5);
    font-weight: var(--wrc-fw-h5);
    line-height: var(--wrc-lh-h4);
    margin-bottom: var(--wrc-mb-h4);
}
body h6:not(:where(header, footer, nav, .menu-overlay) *), .t-h6{
    font-size: var(--wrc-fs-h6);
    font-weight: var(--wrc-fw-h6);
    line-height: var(--wrc-lh-h4);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: var(--wrc-mb-h4);
}

/* titoli sopra le foto (hero/cover): bianchi con ombra */
body :is(.wrc-cover, .hero, .about-hero, .wrc-hero, .wrc-banner) :is(h1, h2, h3, h4, h5, h6):not(.wrc-has-text-color),
.t-on-dark{
    color: var(--wrc-on-dark);
}
body :is(.wrc-cover, .hero, .about-hero, .wrc-hero) h1,
.t-h1.t-on-dark{
    text-shadow: var(--wrc-h1-shadow);
}

/* ---------- testo ---------- */
body :is(p, li, dd, dt, blockquote, figcaption, td, th, address, summary):not(:where(header, footer, nav, .menu-overlay) *),
.t-text{
    font-family: var(--wrc-font-body);
    font-size: var(--wrc-fs-text);
    font-weight: var(--wrc-fw-text);
    line-height: var(--wrc-lh-text);
}
body :is(em, i, cite):not(:where(header, footer, nav, .menu-overlay) *){ font-style: italic; }
body :is(strong, b):not(:where(header, footer, nav, .menu-overlay) *){ font-weight: var(--wrc-fw-strong); }
body small:not(:where(header, footer, nav, .menu-overlay) *){ font-size: var(--wrc-fs-small); }

.t-lead{
    font-family: var(--wrc-font-body);
    font-size: var(--wrc-fs-lead);
    font-weight: var(--wrc-fw-text);
    line-height: 1.6;
}
.t-small{
    font-family: var(--wrc-font-body);
    font-size: var(--wrc-fs-small);
    line-height: 1.6;
}
.t-caption{
    font-family: var(--wrc-font-body);
    font-size: var(--wrc-fs-caption);
    line-height: 1.5;
    color: var(--wrc-ink-soft);
}
.t-eyebrow{
    font-family: var(--wrc-font-head);
    font-size: var(--wrc-fs-caption);
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.3;
    text-transform: uppercase;
}
.t-center{ text-align: center; }

/* ---------- pulsanti dei blocchi WP ---------- */
body .wrc-button__link{
    font-family: var(--wrc-font-body);
    font-size: var(--wrc-fs-small);
    font-weight: var(--wrc-fw-strong);
    line-height: 1.25;
}

/* ---------- allineamento dei titoli ----------
   Prima era nelle classi/stili inline di ogni <h*> (wrc-has-text-align-center,
   margin-top/bottom): ora i titoli sono tag puliti e l'allineamento
   dipende dal contesto. */
:is(.wrc-single, .wrc-article-content) h2{ text-align: center; }
:is(.wrc-single, .wrc-article-content) :is(.wrc-cats-bottom, .wrc-column, .wrc-sidebar-widget) h2{ text-align: left; }
:is(.wrc-single, .wrc-article-content) .wrc-cover .wrc-group--flex > h1,
.wrc-archive .wrc-cover h1,
.wrc-search .wrc-cover h1{ text-align: center; }
:is(.wrc-single, .wrc-article-content) .wrc-group--flex:not(.wrc-is-vertical) > h3,
:is(.wrc-single, .wrc-article-content) .wrc-group--flex.wrc-is-vertical:not(.wrc-is-content-justification-center) > h3,
:is(.wrc-single, .wrc-article-content) .wrc-group--constrained > h3{ text-align: center; }
