/* Title presentation belongs to the main plugin; Layout supplies geometry variables. */
.pkl-section .fonte-dinamica,.pkl-section .fonte-dinamica *{font-family:var(--pklb-title-family)!important}
.pkl-section .pkp-main-heading h2,.pkl-section .pkp-section-heading h3,.pkl-section .pkg-label{text-transform:var(--pkp-title-case,var(--pkl-title-case,uppercase))!important}
.pklb .pklb-heading{position:relative;z-index:6;display:flex;justify-content:center;padding:10px clamp(20px,5vw,40px);margin:20px 0 0;min-width:0;overflow:visible}
.pklb .pklb-heading--over{margin-top:-104px;min-height:70px}
.pklb .pklb-heading h2{margin:0;max-width:100%;font-size:clamp(18px,4vw,40px);line-height:1.2;text-align:center;color:var(--pkp-accent);white-space:normal;word-break:normal!important;overflow-wrap:normal!important;hyphens:none!important}
.pklb .pklb-heading h2.fonte-dinamica,.pklb .pklb-heading h2.fonte-dinamica *{font-family:var(--pklb-title-family) !important}
@media(max-width:767px){.pklb .pklb-heading--over{margin-top:-64px;min-height:44px}.pklb .pklb-heading{padding-inline:20px}}


/* The flex gap used for groups must not also separate heading from its body. */
.pkp-separation-space{--pkp-section-before:76px;--pkp-title-after:18px;--pkp-group-gap:10px}
.pkp-separation-space .pkp-group-sections{gap:0!important;row-gap:0!important}
.pkp-separation-space .pkp-group-sections>.pkp-module+.pkp-module{margin-top:56px}
.pkp-separation-space .pkp-main-heading{margin-bottom:var(--pkp-title-after)!important;padding-bottom:0!important;min-height:0}
.pkp-separation-space .pkp-main-heading>h2{margin-block:0!important;padding-block:0!important}
.pkp-separation-space .pkp-group-sections>.pkp-main-heading{margin-top:0!important;padding-top:0!important}
.pkp-separation-space .pkp-main-heading+.pkp-module,
.pkp-separation-space .pkp-main-heading+.pkp-dates{margin-top:0!important;padding-top:0!important}
.pkp-separation-space .pkp-section-heading{margin-block:0 var(--pkp-group-gap)!important;padding-block:0!important}
.pkp-separation-space .pkp-section-heading>h3{margin-block:0!important;padding-block:0!important}
.pkp-separation-space .pkp-module .pkp-rail{padding-top:var(--pkp-group-gap)!important}
.pkp-separation-space .pkp-main-heading+.pkp-module:not(:has(.pkp-section-heading)) .pkp-rail{padding-top:0!important}
.pkp-separation-space .pklb-heading+.pklb-body{padding-top:0!important}
.pkp-separation-space .pklb-heading+.pklb-body>.pkb-module{padding-top:0!important;margin-top:0!important}
/* General siblings tolerate style/link nodes and spacing is inside the section,
   so Layout's margin-top:0 and collapsing margins cannot cancel it. */
.pkp-separation-space .pkl-content>.pkp-dates-section~.pkp-group-sections,
.pkp-separation-space .pkl-content>.pkp-group-sections~.pkp-group-sections,
.pkp-separation-space .pkl-content>.pkp-group-sections~.pkp-dates-section,
.pkp-separation-space .pklb-module:has(.pkp-main-heading){margin-top:0!important;padding-top:var(--pkp-section-before)!important;border-top:0!important}
.pkp-separation-space .pkp-group-sections+.pkp-group-sections{margin-top:0!important;padding-top:var(--pkp-section-before)!important;border-top:0!important}
@media(max-width:767px){
 .pkp-separation-space{--pkp-section-before:56px;--pkp-title-after:16px;--pkp-group-gap:8px}
 .pkp-separation-space .pkp-group-sections>.pkp-module+.pkp-module{margin-top:40px}
}

/* Target the music scope, not the incidental sibling/wrapper structure. */
.pkp-separation-space .pkl-music:has(.pkp-dates) [data-pkp-title-scope="musica"]:has(>.pkp-main-heading),
.pkp-separation-space [data-pkp-after-dates="true"]{margin-top:0!important;padding-top:var(--pkp-section-before,76px)!important}
.pkp-dates-title-source[hidden]{display:none!important}
.pkp-dates-title-source{display:flex;align-items:center;min-width:0}
.pkp-dates-title-source h3,.pkp-dates .ghead.pkp-section-heading h3{font-weight:500!important;line-height:1.25!important;color:var(--pkp-accent);margin:0!important;flex:0 1 auto;min-width:0;overflow:visible;text-overflow:clip}
.pkp-dates .ghead.pkp-section-heading{justify-content:flex-start;gap:18px}
.pkp-dates .ghead.pkp-section-heading h3{order:1;transition:none;opacity:1;transform:none}
.pkp-dates .ghead.pkp-section-heading::after{min-width:0}
.pkp-dates .ghead.pkp-section-heading .nav{flex-shrink:0}

/* Platform rule: the first content in a rounded, bannerless surface has
   breathing room from its top edge. Bio owns a banner and is always excluded.
   Apply once to the surface content, never to every nested module/title.
   Future banner surfaces must declare data-pkl-has-banner="true". */
.pkp-separation-space .pkl-section:not(.pklb):not([data-pkp-title-scope="bio"]):not([data-pkl-has-banner="true"]):not(:has(.pklb-banner)) > .pkl-content{padding-top:48px}
@media(max-width:767px){
 .pkp-separation-space .pkl-section:not(.pklb):not([data-pkp-title-scope="bio"]):not([data-pkl-has-banner="true"]):not(:has(.pklb-banner)) > .pkl-content{padding-top:38px}
}
