:root {
    --navy:#071f4a;
    --ink:#102552;
    --muted:#61708e;
    --blue:#eaf4fa;
    --line:#dce8ed;
    --orange:#ff671d;
    --orange-dark:#d94d0c;
    --white:#fff;
    --shell:1340px;
    --shadow:0 20px 45px rgba(9,39,67,.12)
}

* {
    box-sizing:border-box
}

html {
    scroll-behavior:smooth
}

body {
    margin:0;
    font-family:Arial,Helvetica,sans-serif;
    color:var(--ink);
    background:#fff;
    line-height:1.55
}

.shell {
    width:min(var(--shell),calc(100% - 40px));
    margin:auto
}

.skip-link {
    position:absolute;
    left:-999px;
    top:0;
    z-index:30;
    background:#fff;
    color:var(--navy);
    padding:12px
}

.skip-link:focus {
    left:12px
}

.site-header {
    position:sticky;
    top:0;
    z-index:20;
    background:rgba(255,255,255,.97);
    border-bottom:1px solid var(--line);
    backdrop-filter:blur(10px)
}

.header-inner {
    min-height:82px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px
}

.brand img {
    display:block;
    width:auto;
    max-height:51px
}

.main-nav {
    display:flex;
    align-items:center;
    gap:22px
}

.main-nav a,.site-footer a {
    color:var(--ink);
    text-decoration:none;
    font-weight:700
}

.main-nav a:hover,.site-footer a:hover,.text-link:hover {
    color:var(--orange-dark)
}

.main-nav img {
    object-fit:contain
}

.button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    border:0;
    border-radius:999px;
    background:var(--orange);
    color:#fff!important;
    text-decoration:none;
    font-weight:700;
    padding:14px 22px;
    transition:background .2s,transform .2s
}

.button:hover {
    background:var(--orange-dark);
    transform:translateY(-1px)
}

.button--small {
    padding:10px 16px
}

.button--light {
    background:#fff;
    color:var(--navy)!important
}

.button--light:hover {
    background:#f6f9fb
}

.menu-toggle {
    display:none;
    border:0;
    background:none;
    padding:10px
}

.menu-toggle span:not(.sr-only) {
    display:block;
    width:25px;
    height:2px;
    background:var(--navy);
    margin:5px
}

.sr-only {
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0
}

.hero {
    background:linear-gradient(115deg,#edf8fb 0%,#fff 58%);
    padding:80px 0 72px;
    overflow:hidden
}

.hero__grid {
    display:grid;
    grid-template-columns:1.04fr .96fr;
    gap:56px;
    align-items:center
}

.eyebrow {
    margin:0 0 12px;
    color:#16739c;
    font-size:.8rem;
    font-weight:800;
    letter-spacing:.1em;
    text-transform:uppercase
}

.hero h1,.page-hero h1 {
    margin:0 0 22px;
    color:var(--navy);
    font-size:clamp(2.3rem,5vw,4.6rem);
    line-height:1.05;
    letter-spacing:-.045em
}

.lead {
    font-size:1.18rem;
    color:#405a6e;
    max-width:650px
}

.hero__actions {
    display:flex;
    gap:14px;
    flex-wrap:wrap;
    margin-top:30px
}

.button--secondary {
    background:transparent;
    color:var(--navy)!important;
    border:1px solid #aec6d2
}

.button--secondary:hover {
    background:#dcecf3
}

.section {
    padding:90px 0
}

.section--soft {
    background:#f5fafc
}

.section-heading {
    max-width:720px;
    margin-bottom:38px
}

.section-heading h2 {
    font-size:clamp(2rem,4vw,3rem);
    line-height:1.1;
    letter-spacing:-.03em;
    color:var(--navy);
    margin:0 0 14px
}

.section-heading p {
    color:var(--muted);
    font-size:1.08rem
}

.stats {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:20px
}

.stat {
    padding:26px;
    border-left:2px solid var(--orange);
    background:#fff
}

.stat strong {
    display:block;
    color:var(--navy);
    font-size:1.25rem
}

.card-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px
}

.module-card {
    display:flex;
    flex-direction:column;
    background:#fff;
    border:1px solid var(--line);
    border-radius:20px;
    overflow:hidden;
    transition:transform .2s,box-shadow .2s
}

.module-card:hover {
    transform:translateY(-5px);
    box-shadow:var(--shadow)
}

.module-card>img {
    width:100%;
    height:190px;
    object-fit:cover
}

.module-card__content {
    padding:24px;
    display:flex;
    flex:1;
    flex-direction:column
}

.module-card h3 {
    margin:0 0 12px;
    color:var(--navy);
    font-size:1.35rem
}

.module-card p:not(.eyebrow) {
    margin:0;
    color:var(--muted)
}

.text-link {
    margin-top:auto;
    padding-top:21px;
    color:#0e668e;
    font-weight:800;
    text-decoration:none
}

.path-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px;
    counter-reset:path
}

.path-item {
    padding:26px;
    background:#fff;
    border-radius:16px;
    border:1px solid var(--line);
    position:relative
}

.path-item:before {
    counter-increment:path;
    content:"0" counter(path);
    display:block;
    margin-bottom:20px;
    color:var(--orange);
    font-weight:800;
    font-size:1.35rem
}

.path-item h3 {
    margin:0 0 9px;
    color:var(--navy)
}

.path-item p {
    margin:0;
    color:var(--muted)
}

.page-hero {
    padding:75px 0 55px;
    background:linear-gradient(135deg,#edf8fb,#fff)
}

.page-hero .lead {
    margin-bottom:0
}

.module-layout {
    display:grid;
    grid-template-columns:.9fr 1.1fr;
    gap:60px;
    align-items:center
}

.module-image {
    width:100%;
    height:440px;
    object-fit:cover;
    border-radius:24px;
    box-shadow:var(--shadow)
}

.check-list {
    list-style:none;
    padding:0;
    margin:28px 0
}

.check-list li {
    padding:15px 0;
    border-bottom:1px solid var(--line);
    font-weight:700
}

.check-list li:before {
    content:"✓";
    color:var(--orange);
    font-weight:900;
    padding-right:10px
}

.feature-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px
}
.feature-grid--two {
    grid-template-columns:repeat(2,1fr)
}
.legacy-numbers-note {
    max-width:900px;
    margin:26px 0 0;
    color:var(--muted)
}

.feature {
    padding:28px;
    border-radius:18px;
    background:var(--blue)
}

.feature h3 {
    margin:0 0 10px;
    color:var(--navy)
}

.feature p {
    margin:0;
    color:var(--muted)
}

.map-frame {
    border:1px solid var(--line);
    border-radius:24px;
    overflow:hidden;
    background:#fff;
    box-shadow:var(--shadow)
}

.map-frame iframe {
    display:block;
    width:100%;
    height:650px;
    border:0
}

.content-columns {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:50px
}

.content-columns h2 {
    color:var(--navy)
}

.content-columns p,.content-columns li {
    color:var(--muted)
}

.faq {
    border-top:1px solid var(--line)
}

.faq details {
    border-bottom:1px solid var(--line);
    padding:20px 0
}

.faq summary {
    cursor:pointer;
    color:var(--navy);
    font-weight:800;
    font-size:1.08rem
}

.faq p {
    max-width:800px;
    color:var(--muted)
}

.contact-layout {
    display:grid;
    grid-template-columns:.75fr 1.25fr;
    gap:45px;
    align-items:start
}

.contact-panel {
    background:var(--navy);
    color:#fff;
    border-radius:22px;
    padding:34px
}

.contact-panel h2 {
    margin-top:0
}

.contact-panel a {
    color:#fff
}

.form-card {
    padding:34px;
    border:1px solid var(--line);
    border-radius:22px;
    background:#fff;
    box-shadow:var(--shadow)
}

.form-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px
}

.form-field {
    display:flex;
    flex-direction:column;
    gap:7px
}

.form-field--full {
    grid-column:1/-1
}

.form-field label {
    font-weight:800;
    color:var(--navy)
}

input,textarea {
    width:100%;
    border:1px solid #aec6d2;
    border-radius:9px;
    padding:12px;
    font:inherit;
    color:var(--ink)
}

input:focus,textarea:focus {
    outline:3px solid #cceaf6;
    border-color:#16739c
}

.consent {
    display:flex;
    align-items:flex-start;
    gap:10px;
    font-size:.92rem;
    color:var(--muted)
}

.consent input {
    width:auto;
    margin-top:5px
}

.honeypot {
    position:absolute;
    left:-10000px;
    opacity:0
}

.message {
    padding:16px 20px;
    border-radius:12px;
    margin-bottom:22px;
    background:#eaf7ed;
    color:#146a30
}

.message--error {
    background:#fff0eb;
    color:#96360a
}

.closing-cta {
    padding:54px 0;
    background:var(--orange);
    color:#fff
}

.closing-cta__inner {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:30px
}

.closing-cta h2 {
    max-width:720px;
    margin:0;
    font-size:clamp(1.75rem,3vw,2.5rem);
    line-height:1.15
}

.closing-cta .eyebrow {
    color:#fff
}

.site-footer {
    padding:55px 0 20px;
    background:var(--navy);
    color:#dceaf1
}

.site-footer p {
    max-width:360px
}

.footer-grid {
    display:grid;
    grid-template-columns:2fr 1fr 1fr;
    gap:45px
}

.footer-grid h2 {
    font-size:.88rem;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#fff
}

.footer-grid a {
    display:block;
    color:#dceaf1;
    margin:9px 0
}

.footer-bottom {
    display:flex;
    justify-content:space-between;
    gap:20px;
    border-top:1px solid rgba(255,255,255,.2);
    margin-top:35px;
    padding-top:20px;
    font-size:.9rem
}

.footer-bottom a {
    color:#fff
}

.footer-grid img {
    background:#fff;
    padding:5px;
    border-radius:4px
}

.region-list {
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-top:20px
}

.region-list span {
    padding:9px 13px;
    border-radius:999px;
    background:var(--blue);
    font-weight:700;
    color:var(--navy)
}

@media(max-width:900px) {
    .menu-toggle {
        display:block
    }
    .main-nav {
        display:none;
        position:absolute;
        top:82px;
        left:0;
        right:0;
        padding:20px;
        background:#fff;
        border-bottom:1px solid var(--line);
        box-shadow:var(--shadow);
        align-items:stretch;
        flex-direction:column
    }
    .main-nav.is-open {
        display:flex
    }
    .main-nav img {
        align-self:flex-start
    }
    .hero__grid,.module-layout,.contact-layout {
        grid-template-columns:1fr
    }
    .hero {
        padding-top:58px
    }
    .card-grid,.feature-grid {
        grid-template-columns:repeat(2,1fr)
    }
    .path-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:600px) {
    .shell {
        width:min(100% - 28px,var(--shell))
    }
    .header-inner {
        min-height:70px
    }
    .brand img {
        max-height:42px
    }
    .main-nav {
        top:70px
    }
    .hero h1,.page-hero h1 {
        font-size:2.45rem
    }
    .section {
        padding:62px 0
    }
    .card-grid,.feature-grid,.stats,.path-grid,.content-columns,.footer-grid,.form-grid {
        grid-template-columns:1fr
    }
    .closing-cta__inner,.footer-bottom {
        align-items:flex-start;
        flex-direction:column
    }
    .map-frame iframe {
        height:520px
    }
    .form-card,.contact-panel {
        padding:23px
    }
}

/* Home: composizione editoriale richiesta, con il testo separato dalla foto per
   mantenere leggibilità e accessibilità anche quando l'immagine viene aggiornata. */

.home-hero {
    overflow:hidden;
    background:#fff
}

.home-hero__grid {
    min-height:580px;
    display:grid;
    grid-template-columns:minmax(0,49%) minmax(0,51%);
    align-items:stretch
}

.home-hero__content {
    padding:76px 42px 46px 0;
    align-self:center;
    position:relative;
    z-index:1
}

.home-hero h1 {
    max-width:690px;
    margin:0 0 20px;
    color:var(--navy);
    /*font-size:clamp(3rem,4.8vw,5.25rem);*/
	font-size:clamp(2.4rem, 3.8vw, 4.2rem);
    line-height:.98;
    letter-spacing:-.06em
}

.home-hero .lead {
    max-width:590px;
    margin:0;
    color:var(--muted);
    font-size:1.22rem;
    line-height:1.55
}

.home-hero__actions {
    display:flex;
    align-items:center;
    gap:36px;
    margin-top:30px
}

.home-hero__actions .button {
    padding:17px 28px;
    font-size:1.03rem;
    gap:14px
}

.home-text-link {
    color:var(--navy);
    font-weight:800;
    text-decoration:underline;
    text-underline-offset:4px
}

.home-text-link span {
    font-size:1.6rem;
    line-height:0;
    vertical-align:-2px;
    text-decoration:none;
    display:inline-block;
    margin-left:6px
}

.home-hero__visual {
    min-height:580px;
    position:relative
}

.home-hero__visual:after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(255,255,255,.08),transparent 22%);
    pointer-events:none
}

.home-hero__visual img {
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center right
}

.home-benefits {
    display:flex;
    gap:34px;
    padding:0;
    margin:31px 0 0;
    list-style:none
}

.home-benefits li {
    display:flex;
    align-items:center;
    gap:13px;
    color:var(--navy);
    font-size:.92rem;
    font-weight:700;
    line-height:1.25
}

.home-benefit__icon,.home-feature-card__icon {
    display:grid;
    place-items:center;
    flex:0 0 auto;
    width:58px;
    height:58px;
    border-radius:50%;
    background:#eaf5ff;
    color:#1674d1
}

.home-benefit__icon:before,.home-feature-card__icon:before {
    font-size:29px;
    font-weight:900
}

.icon-calendar:before {
    content:"□";
    border:2px solid currentColor;
    border-radius:3px;
    width:20px;
    height:17px;
    line-height:12px;
    text-align:center;
    font-size:20px
}

.icon-people:before {
    content:"♟";
    font-size:25px;
    transform:rotate(180deg)
}

.icon-chart:before {
    content:"▮▮▮";
    letter-spacing:2px;
    font-size:19px;
    transform:translateY(3px)
}

.icon-document:before {
    content:"▤";
    border:2px solid currentColor;
    border-radius:2px;
    font-size:18px;
    padding:0 2px
}

.icon-people--orange,.icon-chart--orange {
    color:var(--orange);
    background:#fff0e9
}

.home-features {
    padding:45px 0 58px;
    background:radial-gradient(circle at 50% 0,#fff 0,#f1f9ff 62%,#e8f5fc 100%)
}

.home-features__heading {
    text-align:center
}

.home-features__heading .eyebrow {
    color:#3789e4;
    margin-bottom:12px
}

.home-features__heading h2 {
    margin:0 0 27px;
    color:var(--navy);
    font-size:clamp(2.15rem,3.2vw,3.25rem);
    letter-spacing:-.05em;
    line-height:1.08
}

.home-feature-grid {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:18px
}

.home-feature-card {
    min-height:236px;
    position:relative;
    padding:20px 30px 28px;
    background:rgba(255,255,255,.95);
    border:1px solid rgba(231,240,248,.9);
    border-radius:19px;
    box-shadow:0 12px 26px rgba(32,84,119,.07)
}

.home-feature-card__icon {
    width:57px;
    height:57px;
    margin-bottom:10px
}

.home-feature-card h3 {
    margin:0 0 4px;
    color:var(--navy);
    font-size:1.23rem;
    letter-spacing:-.03em
}

.home-feature-card p {
    margin:0;
    max-width:250px;
    color:var(--muted);
    line-height:1.42
}

.home-feature-card a {
    position:absolute;
    right:20px;
    bottom:20px;
    display:grid;
    place-items:center;
    width:36px;
    height:36px;
    border-radius:50%;
    background:#eaf5ff;
    color:var(--navy);
    font-size:1.25rem;
    text-decoration:none
}

.home-feature-card a:hover {
    background:#d6ecff
}

.main-nav {
    gap:23px
}

.main-nav>img {
    height:42px!important;
    margin-top:4px!important
}

.main-nav .login-link {
    margin-left:3px
}

.search-link {
    width:18px;
    height:26px;
    margin-left:auto;
    position:relative
}

.search-link span {
    position:absolute;
    width:13px;
    height:13px;
    left:0;
    top:5px;
    border:2px solid var(--navy);
    border-radius:50%
}

.search-link span:after {
    content:"";
    position:absolute;
    width:7px;
    height:2px;
    background:var(--navy);
    transform:rotate(45deg);
    right:-6px;
    bottom:-3px
}

.button--small {
    padding:13px 21px
}

@media(max-width:1100px) {
    .main-nav {
        gap:14px;
        font-size:.92rem
    }
    .main-nav>img {
        display:none
    }
    .home-hero__content {
        padding-right:28px
    }
    .home-benefits {
        gap:18px
    }
    .home-feature-grid {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:900px) {
    .home-hero__grid {
        grid-template-columns:1fr
    }
    .home-hero__content {
        padding:60px 0 38px
    }
    .home-hero__visual {
        min-height:400px
    }
    .home-benefits {
        gap:30px
    }
    .search-link {
        margin-left:0
    }
    .main-nav>img {
        display:block
    }
}

@media(max-width:600px) {
    .home-hero__content {
        padding:48px 0 33px
    }
    .home-hero h1 {
        font-size:2.8rem
    }
    .home-hero .lead {
        font-size:1.06rem
    }
    .home-hero__actions {
        align-items:flex-start;
        gap:19px;
        flex-direction:column
    }
    .home-hero__visual {
        min-height:290px
    }
    .home-benefits {
        display:grid;
        grid-template-columns:1fr;
        gap:14px
    }
    .home-feature-grid {
        grid-template-columns:1fr
    }
    .home-feature-card {
        min-height:220px
    }
}

/* L'albero resta un componente unico: tutte le pagine dettaglio lo includono. */

.program-layout {
    display:grid;
    grid-template-columns:290px minmax(0,1fr);
    gap:46px;
    align-items:start
}

.program-navigation {
    position:sticky;
    top:100px;
    padding:24px;
    background:#f4f9fd;
    border:1px solid #dceaf4;
    border-radius:18px
}

.program-navigation h2 {
    margin:0 0 16px;
    color:var(--navy);
    font-size:1.2rem
}

.program-navigation details {
    border-top:1px solid #d8e5ee;
    padding:10px 0
}

.program-navigation summary {
    cursor:pointer;
    color:var(--navy);
    font-weight:800
}

.program-navigation a {
    display:block;
    margin:7px 0 0 12px;
    color:#526b81;
    font-size:.9rem;
    line-height:1.3;
    text-decoration:none
}

.program-navigation a:hover {
    color:var(--orange-dark);
    text-decoration:underline
}

.program-navigation a.active,
.program-navigation a[aria-current="page"] {
    color:var(--orange);
    font-weight:800
}

.program-navigation a.active:hover,
.program-navigation a[aria-current="page"]:hover {
    color:var(--orange-dark)
}

.program-navigation details.active > summary {
    color:var(--orange-dark)
}

@media(max-width:1000px) {
    .program-layout {
        grid-template-columns:1fr
    }
    .program-navigation {
        position:static
    }
    .program-navigation details {
        display:inline-block;
        width:49%;
        vertical-align:top;
        padding-right:14px
    }
}

@media(max-width:600px) {
    .program-navigation details {
        display:block;
        width:100%
    }
}

.legal-content {
    min-width:0;
    color:#31475d
}

.table-wrap {
    overflow-x:auto;
    margin:0 0 28px;
    border:1px solid #d9e6ef;
    border-radius:14px;
    background:#fff;
    box-shadow:0 9px 24px rgba(9,39,67,.07)
}

.table-wrap table {
    width:100%!important;
    min-width:680px;
    border-collapse:collapse;
    border:0!important
}

.table-wrap td,.table-wrap th {
    padding:16px!important;
    border:1px solid #d9e6ef!important;
    vertical-align:top;
    line-height:1.5
}

.table-wrap tr:first-child td {
    background:var(--navy)!important;
    color:#fff!important;
    text-align:center
}

.table-wrap td[bgcolor="bisque"] {
    background:#fff2e8!important;
    color:var(--navy);
    font-weight:800
}

.table-wrap td[bgcolor="#C9EDDE"] {
    background:#e7f7ef!important;
    color:var(--navy);
    font-weight:800
}

.conformity-table-intro {
    margin:0 0 22px
}

.conformity-table-intro h2 {
    margin:5px 0 8px;
    color:var(--navy);
    font-size:clamp(1.65rem,2.6vw,2.35rem)
}

.conformity-table-intro p:last-child {
    max-width:780px;
    margin-bottom:0;
    color:#526b81
}

.table-wrap--conformity {
    border:0;
    border-radius:18px;
    box-shadow:0 16px 38px rgba(9,39,67,.1)
}

.table-wrap--conformity .conformity-table {
    min-width:760px;
    font-size:.94rem
}

.table-wrap--conformity .conformity-table td {
    padding:18px 20px!important;
    border-width:0 0 1px!important;
    border-color:#dce8f0!important;
    background:#fff;
    color:#31475d
}

.table-wrap--conformity .conformity-table tr:not(:first-child):nth-child(odd) td {
    background:#f8fbfd
}

.table-wrap--conformity .conformity-table tr:first-child td {
    padding:22px!important;
    background:linear-gradient(135deg,var(--navy),#126ba3)!important;
    border:0!important;
    font-size:1.02rem;
    font-weight:700;
    line-height:1.45
}

.table-wrap--conformity .conformity-table tr:first-child p {
    margin:0
}

.table-wrap--conformity .conformity-table td[bgcolor="bisque"],
.table-wrap--conformity .conformity-table td[bgcolor="#C9EDDE"] {
    padding:15px 20px!important;
    background:#eaf5fc!important;
    color:var(--navy)!important;
    font-weight:800;
    vertical-align:middle
}

.table-wrap--conformity .conformity-table td[bgcolor="#FFFFCC"] {
    background:#f3f8fc!important;
    color:#1d5278!important;
    font-weight:750;
    vertical-align:middle
}

.table-wrap--conformity .conformity-table ul {
    margin:0;
    padding-left:21px
}

.table-wrap--conformity .conformity-table li + li {
    margin-top:7px
}

.table-wrap--conformity .conformity-table td:last-child {
    width:118px;
    text-align:center;
    vertical-align:middle
}

.table-wrap--conformity .conformity-table tr:not(:first-child) td:last-child span {
    display:inline-grid;
    width:34px;
    height:34px;
    place-items:center;
    border-radius:50%;
    background:#e5f7ef;
    color:#168558!important;
    font-family:Arial,sans-serif!important;
    font-size:1.25rem!important;
    font-weight:800!important
}

@media(max-width:780px) {
    .program-detail__original .table-wrap--conformity {
        margin-right:-22px;
        margin-left:-22px;
        border-radius:0
    }
}

.legacy-content {
    min-width:0
}

.legacy-content img {
    max-width:100%;
    height:auto
}

.legacy-content blockquote {
    margin:0 0 18px;
    padding:18px 22px;
    border-left:4px solid #72b7ea;
    background:#fff;
    color:#40576b;
    font-size:1.03rem
}

.legacy-content .title,.legacy-content .programmaTitle {
    color:var(--navy)
}

.legacy-content h1 {
    font-size:clamp(1.9rem,3.2vw,2.8rem);
    line-height:1.12
}

.legacy-content h2 {
    margin-top:34px;
    color:var(--navy);
    font-size:clamp(1.35rem,2.2vw,1.85rem)
}

.legacy-content ul {
    padding-left:22px
}

.legacy-content li {
    margin:8px 0
}

.legacy-content [style*="display:none"] {
    display:none!important
}

.legacy-content .col-xs-1 {
    display:none
}

.legacy-content [class*="col-xs"],.legacy-content [class*="col-md"] {
    width:auto;
    float:none
}

.legacy-content .row {
    margin:0
}

.legacy-content .flex-container {
    display:block
}

.legacy-content .programSymbol {
    color:var(--orange);
    margin-right:9px
}

.program-browser .program-navigation {
    position:static;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0 22px
}

.program-browser .program-navigation>p,.program-browser .program-navigation>h2 {
    grid-column:1/-1
}

.program-browser .program-navigation details {
    min-width:0
}

@media(max-width:900px) {
    .program-browser .program-navigation {
        grid-template-columns:repeat(2,1fr)
    }
}

@media(max-width:600px) {
    .program-browser .program-navigation {
        display:block
    }
}

/* Testata: proporzioni degli asset riprese dalla navbar storica. Logo e ISO
   non vengono ridimensionati dalle regole generiche; l'anniversario è un
   elemento sovrapposto, come nell'originale, senza sottrarre spazio al menu. */

.site-header .shell.header-inner {
    width:100%;
    max-width:none;
    min-height:72px;
    padding:0 16px;
    position:relative
}

.site-header .brand {
    flex:0 0 205px;
    z-index:2
}

.site-header .brand img {
    width:auto;
    height:76px;
    max-height:none
}

.brand-anniversary {
    position:absolute;
    z-index:3;
    left:224px;
    top:3px;
    width:138px;
    height:132px;
    object-fit:cover;
    border-radius:50%;
    box-shadow:0 5px 14px rgba(9,39,67,.28);
    margin:0
}

.site-header .main-nav {
    margin-left:auto;
    gap:27px;
    min-height:72px
}

.site-header .main-nav>img {
    width:auto;
    height:42px!important;
    margin-top:4px!important
}

.main-nav .button--small {
    padding:15px 25px;
    white-space:nowrap
}

@media(max-width:900px) {
    .site-header .shell.header-inner {
        min-height:70px
    }
    .site-header .brand {
        flex-basis:auto
    }
    .site-header .brand img {
        height:52px
    }
    .brand-anniversary {
        display:none
    }
}

/* Navbar storica 4hsito: regole copiate e poste alla fine per prevalere sul
   layout moderno senza influenzare le sezioni editoriali sottostanti. */

:root {
    --main-bg-color:#ff9900
}

.legacy-site-header #logo4himg {
    height:70px
}

.legacy-site-header #logo20 {
    border-radius: 100px;
    box-shadow: 1px 5px 9px #666;
    margin-top: 70px;
    margin-left: -56px;
    padding: 3px;
    height: 101px;
}

.legacy-site-header .navbar-light .navbar-nav .active>.nav-link {
    color:var(--main-bg-color)!important
}

.legacy-site-header .nav-link.active {
    color:var(--main-bg-color)!important
}

.legacy-site-header .nav-item:hover .nav-link.active,.legacy-site-header .nav-item.active>.nav-link:hover,.legacy-site-header .nav-link.active:hover {
    color:var(--orange-dark)!important
}

.legacy-site-header .navbar-nav .nav-link {
    padding-left:5px;
    padding-right:5px
}

.legacy-site-header .nav-item {
    font-size:16px;
    padding-left:7px;
    padding-right:7px;
    text-transform:uppercase
}

.legacy-site-header .navbar {
    position:sticky;
    top:0;
    right:0;
    left:0;
    padding-top:0;
    padding-bottom:0;
    margin:0;
    align-items:stretch;
    opacity:1;
    z-index:100;
    display:flex!important;
    justify-content:space-between;
    border:none;
    box-shadow:0 3px 10px grey;
    border-radius:0;
    background:#f8f9fa;
	padding:20px
}

.legacy-site-header .navbar-brand {
    height:inherit;
    padding:0
}

.legacy-site-header .navbar-nav {
    display:flex;
    align-items:center;
    padding-left:60px;
    margin:0;
    list-style:none
}

.legacy-site-header .navbar-collapse {
    display:flex;
    flex-basis:auto;
    flex-grow:1
}

.legacy-site-header .nav-link {
    display:block;
    color:rgba(0,0,0,.5);
    text-decoration:none
}

.legacy-site-header .nav-link:hover {
    background-color:var(--main-bg-color)!important;
    color:rgba(0,0,0,.7)
}

.legacy-site-header .navbar-toggler {
    display:none;
    background:transparent;
    border:1px solid rgba(0,0,0,.1);
    border-radius:4px;
    padding:7px
}

.legacy-site-header .navbar-toggler-icon {
    display:block;
    width:22px;
    height:14px;
    border-top:2px solid #777;
    border-bottom:2px solid #777;
    position:relative
}

.legacy-site-header .navbar-toggler-icon:after {
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:5px;
    border-top:2px solid #777
}

@media screen and (min-width:992px) {
    .legacy-site-header .navbar {
        height:50px
    }
    .legacy-site-header .navbar-nav {
        float:right
    }
}

@media screen and (max-width:991px) {
    .legacy-site-header #logo4himg {
        height:40px
    }
    .legacy-site-header #logo20 {
        height:40px;
        margin-bottom:7px
    }
    .legacy-site-header #navSX {
        flex-direction:row;
        align-items:center
    }
    .legacy-site-header .navbar {
        height:auto;
        min-height:52px;
        flex-wrap:wrap
    }
    .legacy-site-header .navbar-toggler {
        display:block;
        margin-left:auto;
        margin-right:10px
    }
    .legacy-site-header .navbar-collapse {
        display:none;
        flex-basis:100%;
        padding:8px 12px
    }
    .legacy-site-header .navbar-collapse.show {
        display:flex
    }
    .legacy-site-header #navDX {
        align-items:flex-start;
        flex-direction:column
    }
    .legacy-site-header .nav-item {
        padding:5px 7px
    }
}

.legacy-site-header .nav-item-demo {
    padding:0 7px
}

.legacy-site-header .nav-link.nav-link-demo {
    display:flex;
    align-items:center;
    height:36px;
    padding:0 17px;
    border-radius:999px;
    background:#ff671d;
    color:#fff;
    text-transform:none;
    font-weight:800;
    white-space:nowrap
}

.legacy-site-header .nav-link.nav-link-demo:hover {
    background:#d94d0c!important;
    color:#fff
}

@media screen and (max-width:991px) {
    .legacy-site-header .nav-link.nav-link-demo {
        height:38px;
        width:max-content
    }
}

/* Pannello del Programma: il contenuto AJAX sostituisce solo questa colonna. */

.module-content {
    min-width:0;
    transition:opacity .18s ease
}

.module-content--loading {
    opacity:.42;
    pointer-events:none
}

.module-content__inner>h1 {
    margin:0 0 18px;
    color:var(--navy);
    font-size:clamp(2.2rem,4vw,4rem);
    letter-spacing:-.05em;
    line-height:1.04
}

.module-content__inner>.lead {
    margin:0 0 34px
}

.module-content__inner .legacy-content {
    margin-top:58px;
    padding-top:42px;
    border-top:1px solid var(--line)
}

.footer-grid--restored {
    grid-template-columns:1.25fr 1fr 1fr
}

.footer-grid--restored h2 {
    margin:18px 0 10px
}

.footer-grid--restored .footer-subtitle {
    margin-top:30px
}

.remote-support {
    font-weight:800
}

@media(max-width:800px) {
    .footer-grid--restored {
        grid-template-columns:1fr
    }
}

/* Solo Accesso: unisce il testo storico in un'unica sequenza editoriale. */

.accesso-content {
    color:var(--ink)
}

.accesso-content__hero {
    display:grid;
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    gap:32px;
    padding:0 0 42px;
    border-bottom:1px solid var(--line)
}

.accesso-content__hero h1 {
    margin:0 0 17px;
    color:var(--navy);
    font-size:clamp(2.35rem,4vw,4.3rem);
    line-height:1.02;
    letter-spacing:-.05em
}

.accesso-content__hero .lead {
    margin:0
}

.accesso-content__hero img {
    display:block;
    width:100%;
    max-height:270px;
    object-fit:contain
}

.accesso-content__section {
    padding:38px 0;
    border-bottom:1px solid var(--line)
}

.accesso-content__section h2,.accesso-content__benefits h2 {
    margin:0 0 16px;
    color:var(--navy);
    font-size:clamp(1.55rem,2.5vw,2.15rem);
    line-height:1.16
}

.accesso-content__section p {
    max-width:860px;
    margin:0 0 14px;
    color:var(--muted);
    font-size:1.04rem
}

.accesso-content__section--blue {
    margin-top:34px;
    padding:34px;
    border:1px solid #d6eaf7;
    border-radius:18px;
    background:#f1f9ff
}

.accesso-content__section--blue+.accesso-content__benefits {
    padding-top:42px
}

.accesso-content__benefits {
    display:block
}

.accesso-content__benefits .check-list {
    margin:22px 0 28px
}

@media(max-width:780px) {
    .accesso-content__hero {
        grid-template-columns:1fr
    }
    .accesso-content__hero img {
        order:-1
    }
    .accesso-content__section--blue {
        padding:24px
    }
}

/* Impaginazione editoriale condivisa da Accesso e Programmazione.
   Le due sezioni introduttive diventano una colonna sui dispositivi piccoli. */

.programma-editoriale {
    --proposal-blue:#eaf5fc;
    --proposal-border:#d9e8f2;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.programma-editoriale .accesso-content__hero {
    grid-column:1/-1;
    padding:30px;
    border:0;
    border-radius:20px;
    background:var(--proposal-blue);
}

.programma-editoriale .accesso-content__section {
    margin:0;
    padding:28px;
    border:1px solid var(--proposal-border);
    border-radius:18px;
}

.programma-editoriale .accesso-content__section:first-of-type {
    background:#fff5ed;
}

.programma-editoriale .accesso-content__benefits {
    grid-column:1/-1;
    margin:0;
    padding:30px;
    border-radius:18px;
    background:#f6f9fc;
}

@media(max-width:780px) {
    .programma-editoriale {
        grid-template-columns:1fr;
    }
    .programma-editoriale .accesso-content__hero,.programma-editoriale .accesso-content__benefits {
        grid-column:auto;
    }
    .programma-editoriale .accesso-content__hero,.programma-editoriale .accesso-content__section,.programma-editoriale .accesso-content__benefits {
        padding:22px;
    }
}

/* Moduli del Programma: composizione della proposta 05. Il blocco originale
   resta intatto, compresi immagini, collegamenti e testi eventualmente lunghi. */

.program-detail {
    color:var(--ink)
}

.program-detail__hero {
    display:grid;
    grid-template-columns:1.05fr .95fr;
    align-items:center;
    gap:32px;
    padding:30px;
    border-radius:20px;
    background:#eaf5fc
}

.program-detail__hero h1 {
    margin:0 0 17px;
    color:var(--navy);
    font-size:clamp(2.35rem,4vw,4.3rem);
    line-height:1.02;
    letter-spacing:-.05em
}

.program-detail__hero .lead {
    margin:0
}

.program-detail__hero img {
    display:block;
    width:100%;
    max-height:270px;
    object-fit:contain;
    border-radius:16px
}

.program-detail__cards {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    margin-top:20px
}

.program-detail__card {
    min-width:0;
    padding:28px;
    border:1px solid #d9e8f2;
    border-radius:18px
}

.program-detail__card--warm {
    background:#fff5ed
}

.program-detail__card--blue {
    background:#f1f9ff
}

.program-detail__card h2 {
    margin:0 0 16px;
    color:var(--navy);
    font-size:clamp(1.4rem,2.2vw,2rem);
    line-height:1.16
}

.program-detail__card p:not(.eyebrow) {
    color:var(--muted)
}

.program-detail__card .check-list {
    margin:0 0 24px
}

.program-detail__original {
    margin-top:20px;
    padding:30px;
    border:1px solid #d9e8f2;
    border-radius:18px;
    background:#f6f9fc;
    overflow-wrap:anywhere
}

.program-detail__original .programmaImgTitle {
    max-height:300px;
    object-fit:contain
}

.program-detail__original blockquote {
    border:1px solid #d9e8f2;
    border-left:4px solid #72b7ea;
    border-radius:12px
}

@media(max-width:780px) {
    .program-detail__hero,.program-detail__cards {
        grid-template-columns:1fr
    }
    .program-detail__hero,.program-detail__card,.program-detail__original {
        padding:22px
    }
    .program-detail__hero img {
        order:-1;
        max-height:230px
    }
}

/* Formato comune delle immagini principali dei moduli: la stessa cornice
   16:9 e gli stessi angoli arrotondati restano coerenti anche su mobile.
   Le immagini originali non vengono modificate; cover riempie la cornice. */

.accesso-content__hero img, .program-detail__hero img, .module-content .module-layout > .module-image {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:16 / 9;
    max-height:none;
    object-fit:cover;
    border-radius:16px;
}

/* Solo il prototipo Programmazione: approfondimento a tutta larghezza con
   immagine storica conservata; il layout collassa su una colonna su mobile. */

.programmazione-content .programmazione-content__domiciliari {
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(150px, .35fr);
    gap:28px;
    align-items:center;
    background:#fff;
}

.programmazione-content__domiciliari img {
    display:block;
    width:100%;
    max-height:220px;
    object-fit:contain;
}

.programmazione-content__domiciliari a {
    color:#075e9e;
    font-weight:700;
}

@media(max-width:780px) {
    .programmazione-content .programmazione-content__domiciliari {
        grid-template-columns:1fr;
    }
    .programmazione-content__domiciliari img {
        max-height:160px;
    }
}

/* Le frecce individuano i vantaggi del prototipo senza cambiare Accesso. */

.programmazione-content .check-list li:before {
    content:"→";
}

/* Struttura editoriale delle pagine Programma: vantaggi e approfondimento
   mantengono larghezza intera e restano leggibili sui dispositivi piccoli. */

.program-detail__benefits {
    margin-top:20px;
    padding:30px;
    border-radius:18px;
    background:#f6f9fc;
}

.program-detail__benefits h2 {
    margin:0 0 16px;
    color:var(--navy);
    font-size:clamp(1.55rem,2.5vw,2.15rem);
    line-height:1.16;
}

.program-detail__benefits .check-list {
    margin:22px 0 28px;
}

.program-detail__benefits .check-list li:before {
    content:"→";
}

@media(max-width:780px) {
    .program-detail__benefits {
        padding:22px;
    }
}

/* Stili locali della FAQ FSE, riportati nel foglio unico e isolati dalla pagina. */

.fse-faq-legacy {
    background:#f7f7f7;
    padding:20px 0 40px;
}

.fse-faq-legacy .page-header {
    margin-top:0;
}

.fse-faq-legacy .note-box {
    background:#fff8e1;
    border:1px solid #f0d98a;
    padding:15px;
    border-radius:4px;
    margin-bottom:20px;
}

.fse-faq-legacy .legal-box {
    background:#fff;
    border:1px solid #ddd;
    padding:15px;
    border-radius:4px;
    margin-top:20px;
}

.fse-faq-legacy .tag {
    display:inline-block;
    padding:4px 8px;
    margin:2px 4px 2px 0;
    background:#337ab7;
    color:#fff;
    border-radius:3px;
    font-size:12px;
}

.fse-faq-legacy .footer-note {
    font-size:12px;
    color:#666;
    margin-top:25px;
}

.fse-faq-legacy .faq-answer ul {
    margin-bottom:0;
}

.fse-faq-legacy .panel-heading a {
    display:block;
    text-decoration:none;
}

.fse-faq-legacy .topic-title {
    font-size:18px;
    font-weight:bold;
}

.fse-faq-legacy .panel-warning>.panel-heading {
    background:#fff6e7;
    color:orange;
    border-color:orange;
}

/* La testata intera resta agganciata alla finestra: la navbar interna non
   deve avere un proprio sticky limitato all'altezza del solo contenitore. */

.legacy-site-header {
    position:sticky;
    top:0;
    z-index:100;
}

.legacy-site-header .navbar {
    position:relative;
}
/* Immagine illustrativa del percorso domiciliare nella pagina Programmazione. */
.programmazione-content__domiciliari img { border-radius:16px; }

/* Schede in evidenza della home: immagini uniformi e collegamento esteso all'intera scheda. */
.home-highlight-card { overflow: hidden; background: #fff; border: 1px solid #e7f0f8; border-radius: 19px; box-shadow: 0 12px 26px rgba(32,84,119,.07); }
.home-highlight-card[hidden] { display: none; }
.home-highlight-card a { display: flex; height: 100%; flex-direction: column; color: var(--navy); text-decoration: none; }
.home-highlight-card img { display: block; width: 100%; height: 200px; object-fit: cover; }
.home-highlight-card h3 { margin: 0; padding: 20px 22px; color: var(--navy); font-size: 1.2rem; }
.home-highlight-card a:hover h3, .home-highlight-card a:focus-visible h3 { color: #1674d1; }

/* Carosello home: attivato soltanto con più di quattro schede visibili.
   Lo scorrimento nativo mantiene utilizzabili le schede anche con tastiera e touch. */
.home-highlight-carousel.is-carousel .home-feature-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 54px) / 4); grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.home-highlight-carousel.is-carousel .home-feature-grid::-webkit-scrollbar { display: none; }
.home-highlight-carousel.is-carousel .home-highlight-card:not([hidden]) { scroll-snap-align: start; }
.home-highlight-carousel__controls { display: flex; justify-content: center; gap: 10px; margin-top: 20px; }
.home-highlight-carousel__controls[hidden] { display: none; }
.home-highlight-carousel__controls button { width: 42px; height: 42px; border: 1px solid #cfe3f2; border-radius: 50%; background: #fff; color: var(--navy); font-size: 1.3rem; cursor: pointer; }
.home-highlight-carousel__controls button:hover, .home-highlight-carousel__controls button:focus-visible { background: #eaf5ff; }
@media (max-width: 1100px) { .home-highlight-carousel.is-carousel .home-feature-grid { grid-auto-columns: calc((100% - 18px) / 2); } }
@media (max-width: 600px) { .home-highlight-carousel.is-carousel .home-feature-grid { grid-auto-columns: 100%; } }

/* Inquadra la parte superiore della grafica NIS 2, preservando il logo nella cornice 16:9. */
.accesso-content__hero img.nis2-hero-image, .program-detail__hero img.nis2-hero-image { object-position: center top; }

.program-detail__hero img.teleriabilitazione-hero-image { object-position: right center; }
