/* CNSBII 1.6.16.79Q — gerarchia tipografica pubblica e correzioni di contrasto */
:root{
  --cns-type-body:clamp(1rem,.98rem + .10vw,1.075rem);
  --cns-type-small:clamp(.875rem,.85rem + .08vw,.95rem);
  --cns-type-h3:clamp(1.25rem,1.15rem + .45vw,1.55rem);
  --cns-type-h2:clamp(1.85rem,1.52rem + 1.35vw,2.8rem);
  --cns-type-h1:clamp(2.35rem,1.78rem + 2.45vw,4rem);
  --cns-reading-width:72ch;
}

.site-main{
  font-size:var(--cns-type-body);
}
.site-main :where(p,li,dd,figcaption,blockquote){
  line-height:1.62;
}
.site-main :where(p,li,dd){
  overflow-wrap:anywhere;
}
.site-main :where(h1,h2,h3){
  text-wrap:balance;
  overflow-wrap:normal;
  hyphens:none;
}
.site-main h1{
  font-size:var(--cns-type-h1)!important;
  line-height:1.07!important;
  letter-spacing:-.035em!important;
  max-width:24ch;
}
.site-main h2{
  font-size:var(--cns-type-h2)!important;
  line-height:1.14!important;
  letter-spacing:-.025em!important;
  max-width:30ch;
}
.site-main h3{
  font-size:var(--cns-type-h3)!important;
  line-height:1.24!important;
  letter-spacing:-.012em!important;
}
.site-main :where(.portal74d-lead,.cns74f-lead,.oc74o-hero-lead,.tr74i-lead,.tf74n-lead,.rpt74o-lead,.form74p-lead){
  font-size:clamp(1.05rem,1rem + .25vw,1.22rem)!important;
  line-height:1.58!important;
  max-width:68ch;
}
.site-main :where(.portal74d-section-heading,.cns74f-heading,.oc74o-section-heading,.tr74i-section-heading) > p:last-child{
  max-width:var(--cns-reading-width);
}
.site-main :where(.portal74d-kicker,.cns74f-kicker,.oc74o-kicker,.tr74i-kicker){
  font-size:clamp(.76rem,.73rem + .10vw,.84rem)!important;
  line-height:1.35!important;
  letter-spacing:.095em!important;
}

/* Correzione del difetto visibile nella pagina Natura giuridica: testo bianco su schede bianche. */
.cns74f-section-dark .cns74f-boundaries article{
  color:#172033!important;
}
.cns74f-section-dark .cns74f-boundaries article h3{
  color:#111827!important;
}
.cns74f-section-dark .cns74f-boundaries article li{
  color:#334155!important;
}
.cns74f-section-dark .cns74f-boundaries article li::marker{
  color:#64748b;
}
.cns74f-boundaries article{
  min-height:0!important;
}

/* I titoli lunghi non devono occupare quasi l'intero schermo. */
.portal74d-hero h1,.cns74f-hero h1,.oc74o-hero h1,
.tr74i-hero h1,.tf74n-hero h1,.rpt74o-hero h1,
.form74p-hero h1,.partner74l-hero h1,.ved74m-hero h1{
  font-size:var(--cns-type-h1)!important;
}

/* Footer: meno grassetti, gerarchia più discreta, righe più leggibili. */
.site-footer{
  font-size:var(--cns-type-small)!important;
}
.site-footer h2{
  margin:0 0 .85rem!important;
  font-size:clamp(1rem,.97rem + .12vw,1.08rem)!important;
  line-height:1.25!important;
  letter-spacing:-.01em!important;
  font-weight:700!important;
  max-width:none!important;
}
.site-footer p,.site-footer a,.site-footer li,.site-footer span{
  line-height:1.55!important;
}
.site-footer strong{
  font-weight:650!important;
}
.site-footer .footer-about > h2{
  font-size:clamp(1.28rem,1.2rem + .25vw,1.48rem)!important;
}
.site-footer .footer-full-name{
  margin-top:.35rem;
  font-weight:600;
}
.site-footer .legal-note{
  font-size:.9em;
  font-weight:400;
  opacity:.88;
}
.site-footer .footer-note{
  font-size:clamp(.82rem,.8rem + .05vw,.88rem)!important;
}
.site-footer .footer-bottom{
  font-size:clamp(.78rem,.76rem + .05vw,.84rem)!important;
}

@media (max-width:760px){
  :root{
    --cns-type-h1:clamp(2.1rem,8.5vw,2.75rem);
    --cns-type-h2:clamp(1.7rem,6.5vw,2.2rem);
    --cns-type-h3:clamp(1.2rem,4.7vw,1.42rem);
  }
  .site-main h1,.site-main h2{max-width:100%;}
  .site-main :where(p,li,dd,figcaption,blockquote){line-height:1.58;}
  .site-footer .footer-grid{gap:2rem!important;}
}

@media (max-width:420px){
  :root{
    --cns-type-h1:clamp(2rem,10.5vw,2.45rem);
    --cns-type-h2:clamp(1.58rem,7.4vw,2rem);
  }
}
