/* Home partecipativa e dinamica. La hero continua a usare vision.css. */
.home-live {
    --hl-navy: #07182f;
    --hl-blue: #1d5ed8;
    --hl-cyan: #29c7e8;
    --hl-green: #35d39b;
    --hl-yellow: #f2c75c;
    --hl-coral: #ff765f;
    --hl-violet: #8b76ff;
    --hl-ink: #10243d;
    --hl-muted: #61728a;
    --hl-line: rgba(92, 130, 178, .18);
    --hl-shadow: 0 28px 80px rgba(5, 26, 55, .16);
    overflow: hidden;
    color: var(--hl-ink);
    background: #f4f8fd;
}

.home-space-section {
    position: relative;
    padding: clamp(4.5rem, 8vw, 8rem) 0;
}

.home-space-section::before,
.home-space-section::after {
    pointer-events: none;
}

.home-space-stars {
    position: absolute;
    inset: 0;
    opacity: .48;
    background-image:
        radial-gradient(circle at 15% 20%, rgba(255,255,255,.9) 0 1px, transparent 1.8px),
        radial-gradient(circle at 76% 31%, rgba(89,224,178,.9) 0 1px, transparent 2px),
        radial-gradient(circle at 42% 72%, rgba(242,199,92,.9) 0 1px, transparent 2px),
        radial-gradient(circle at 91% 79%, rgba(255,255,255,.8) 0 1px, transparent 1.8px);
    background-size: 84px 84px, 132px 132px, 176px 176px, 112px 112px;
    animation: home-stars-drift 24s linear infinite;
}

.home-space-kicker {
    display: inline-flex;
    align-items: center;
    gap: .62rem;
    margin: 0 0 .9rem;
    color: var(--hl-coral);
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.home-space-kicker > span {
    position: relative;
    width: 28px;
    height: 8px;
}

.home-space-kicker > span::before,
.home-space-kicker > span::after {
    content: "";
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}

.home-space-kicker > span::before {
    left: 0;
    width: 100%;
    height: 1px;
    background: currentColor;
}

.home-space-kicker > span::after {
    right: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 12px currentColor;
    animation: home-signal-pulse 1.8s ease-in-out infinite;
}

.home-space-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 2.4rem;
    margin-bottom: 2.6rem;
}

.home-space-head > div:first-child {
    max-width: 940px;
}

.home-space-head h2,
.home-map-copy h2,
.home-final-action h2 {
    margin: 0;
    color: inherit;
    font-size: clamp(2.55rem, 5.3vw, 5.7rem);
    line-height: .94;
    letter-spacing: -.058em;
}

.home-space-head h2 em {
    color: var(--hl-yellow);
    font-style: normal;
}

.home-space-head p:not(.home-space-kicker),
.home-map-copy > p:not(.home-space-kicker),
.home-final-action__copy > p:not(.home-space-kicker) {
    max-width: 850px;
    margin: 1.2rem 0 0;
    color: rgba(255,255,255,.73);
    font-size: clamp(1rem, 1.45vw, 1.16rem);
    line-height: 1.65;
}

.home-space-head--ink p:not(.home-space-kicker) {
    color: var(--hl-muted);
}

.home-space-head__actions,
.home-block-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: .72rem;
    flex: 0 0 auto;
}

.home-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .58rem;
    min-height: 48px;
    padding: .82rem 1.18rem;
    border: 1px solid transparent;
    border-radius: 14px;
    font-size: .88rem;
    font-weight: 900;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.home-btn:hover,
.home-btn:focus {
    transform: translateY(-2px);
}

.home-btn--light {
    color: #fff;
    border-color: rgba(255,255,255,.28);
    background: rgba(255,255,255,.09);
    backdrop-filter: blur(14px);
}

.home-btn--light:hover,
.home-btn--light:focus {
    color: var(--hl-navy);
    background: #fff;
}

.home-btn--dark {
    color: #fff;
    background: var(--hl-navy);
    box-shadow: 0 12px 30px rgba(7,24,47,.18);
}

.home-btn--dark:hover,
.home-btn--dark:focus {
    color: #fff;
    background: #123d73;
}

.home-btn--signal {
    color: #08263a;
    background: linear-gradient(135deg, #69efbd, #2bd09a);
    box-shadow: 0 14px 34px rgba(43,208,154,.24);
}

.home-btn--signal:hover,
.home-btn--signal:focus {
    color: #08263a;
    box-shadow: 0 18px 42px rgba(43,208,154,.34);
}

.home-btn span,
.home-inline-cta span,
.home-company-card > a span {
    transition: transform .2s ease;
}

.home-btn:hover span,
.home-inline-cta:hover span,
.home-company-card > a:hover span {
    transform: translateX(4px);
}

.home-inline-cta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: inherit;
    font-weight: 900;
    text-decoration: none;
}

.home-inline-cta:hover,
.home-inline-cta:focus {
    color: var(--hl-coral);
}

/* Movimento */
.home-movement {
    color: #fff;
    background:
        radial-gradient(circle at 88% 12%, rgba(41,199,232,.20), transparent 30%),
        radial-gradient(circle at 12% 72%, rgba(139,118,255,.16), transparent 34%),
        linear-gradient(145deg, #06162c 0%, #0b2d56 55%, #0d4180 100%);
}

.home-movement::after {
    content: "";
    position: absolute;
    inset: 0;
    opacity: .4;
    background-image:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
    background-size: 54px 54px;
    mask-image: linear-gradient(to bottom, #000, transparent 92%);
}

.home-signal-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    margin-bottom: 2.4rem;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 22px;
    background: rgba(255,255,255,.10);
    box-shadow: inset 0 0 40px rgba(71,160,255,.06), 0 26px 70px rgba(0,0,0,.16);
}

.home-signal-grid article {
    position: relative;
    min-height: 138px;
    padding: 1.3rem 1.25rem;
    background: rgba(5,24,48,.66);
    backdrop-filter: blur(14px);
}

.home-signal-grid article::after {
    content: "";
    position: absolute;
    left: 1.25rem;
    right: 1.25rem;
    bottom: 0;
    height: 2px;
    transform: scaleX(.2);
    transform-origin: left;
    background: linear-gradient(90deg, var(--hl-cyan), transparent);
    animation: home-data-scan 3.8s ease-in-out infinite;
}

.home-signal-grid article:nth-child(2)::after { animation-delay: .4s; background: linear-gradient(90deg, var(--hl-violet), transparent); }
.home-signal-grid article:nth-child(3)::after { animation-delay: .8s; background: linear-gradient(90deg, var(--hl-green), transparent); }
.home-signal-grid article:nth-child(4)::after { animation-delay: 1.2s; background: linear-gradient(90deg, var(--hl-yellow), transparent); }
.home-signal-grid article:nth-child(5)::after { animation-delay: 1.6s; background: linear-gradient(90deg, var(--hl-coral), transparent); }

.home-signal-grid span,
.home-data-lane > header span,
.home-data-card__type,
.home-audio-card > div > span,
.home-variant-card > span,
.home-company-rank,
.home-radar-card header span,
.home-waiting-card header span,
.home-testimonial-copy > span {
    color: rgba(255,255,255,.58);
    font-size: .66rem;
    font-weight: 950;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.home-signal-grid strong {
    display: block;
    margin: .4rem 0 .14rem;
    color: #fff;
    font-size: clamp(2rem, 4vw, 3.7rem);
    line-height: 1;
    letter-spacing: -.06em;
}

.home-signal-grid small {
    color: rgba(255,255,255,.68);
    font-size: .78rem;
}

.home-data-lanes {
    position: relative;
    z-index: 1;
    display: grid;
    gap: 1.55rem;
}

.home-data-lane {
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 26px;
    background: rgba(255,255,255,.065);
    box-shadow: 0 24px 65px rgba(0,0,0,.14);
    backdrop-filter: blur(15px);
}

.home-data-lane > header,
.home-data-lane > footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.25rem 1.35rem;
}

.home-data-lane > header {
    border-bottom: 1px solid rgba(255,255,255,.10);
}

.home-data-lane > header h3 {
    margin: .22rem 0 0;
    color: #fff;
    font-size: clamp(1.12rem, 2vw, 1.55rem);
    letter-spacing: -.025em;
}

.home-lane-tools {
    display: flex;
    align-items: center;
    gap: .48rem;
}

.home-lane-tools button,
.home-lane-tools a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 11px;
    color: #fff;
    background: rgba(255,255,255,.07);
    font-size: .78rem;
    font-weight: 850;
    text-decoration: none;
}

.home-lane-tools a {
    min-width: auto;
    padding: 0 .85rem;
}

.home-lane-tools button:hover,
.home-lane-tools button:focus,
.home-lane-tools a:hover,
.home-lane-tools a:focus {
    color: var(--hl-navy);
    background: #fff;
}

.home-data-track {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(225px, 1fr);
    gap: .9rem;
    overflow-x: auto;
    padding: 1.15rem 1.35rem 1.4rem;
    scroll-snap-type: x mandatory;
    scrollbar-width: thin;
    scrollbar-color: rgba(255,255,255,.28) transparent;
}

.home-data-track > article {
    scroll-snap-align: start;
}

.home-data-card,
.home-audio-card,
.home-variant-card {
    position: relative;
    min-height: 225px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 20px;
    background: linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.045));
}

.home-data-card {
    display: flex;
    flex-direction: column;
    padding: 1.2rem;
}

.home-data-card__orbit {
    position: absolute;
    top: -68px;
    right: -64px;
    width: 145px;
    height: 145px;
    border: 1px solid rgba(41,199,232,.35);
    border-radius: 50%;
    box-shadow: 0 0 38px rgba(41,199,232,.14);
}

.home-data-card__orbit::before,
.home-data-card__orbit::after {
    content: "";
    position: absolute;
    border-radius: 50%;
}

.home-data-card__orbit::before {
    inset: 24px;
    border: 1px dashed rgba(255,255,255,.22);
    animation: home-spin 11s linear infinite;
}

.home-data-card__orbit::after {
    left: 11px;
    top: 50%;
    width: 7px;
    height: 7px;
    background: var(--hl-cyan);
    box-shadow: 0 0 14px var(--hl-cyan);
}

.home-data-card h4,
.home-audio-card h4,
.home-variant-card h4 {
    position: relative;
    margin: .8rem 0 .45rem;
    color: #fff;
    font-size: clamp(1.25rem, 2vw, 1.75rem);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.home-data-card p,
.home-audio-card p,
.home-variant-card p {
    position: relative;
    margin: 0 0 1rem;
    color: rgba(255,255,255,.68);
    line-height: 1.45;
}

.home-data-card > a,
.home-audio-card > div > a,
.home-variant-card a {
    position: relative;
    margin-top: auto;
    color: #fff;
    font-size: .82rem;
    font-weight: 900;
    text-decoration: none;
}

.home-data-card > a small {
    color: var(--hl-green);
}

.home-data-card--empty {
    justify-content: center;
    border-style: dashed;
}

.home-audio-card {
    display: grid;
    grid-template-columns: 82px 1fr;
    gap: .95rem;
    align-items: center;
    padding: 1.1rem;
}

.home-audio-play {
    position: relative;
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    border: 1px solid rgba(95,224,178,.44);
    border-radius: 50%;
    color: #fff;
    background: radial-gradient(circle, rgba(53,211,155,.36), rgba(53,211,155,.05) 68%);
    box-shadow: 0 0 0 9px rgba(53,211,155,.04), 0 0 34px rgba(53,211,155,.18);
}

.home-audio-play:hover,
.home-audio-play:focus,
.home-audio-play.is-playing {
    border-color: var(--hl-green);
    box-shadow: 0 0 0 10px rgba(53,211,155,.09), 0 0 42px rgba(53,211,155,.34);
}

.home-audio-play__icon {
    position: relative;
    z-index: 2;
    font-size: 1.1rem;
}

.home-audio-wave {
    position: absolute;
    inset: auto 9px 11px;
    display: flex;
    align-items: end;
    justify-content: center;
    gap: 2px;
    height: 18px;
    opacity: .45;
}

.home-audio-wave i {
    width: 2px;
    height: 35%;
    border-radius: 99px;
    background: var(--hl-green);
}

.home-audio-play.is-playing .home-audio-wave i {
    animation: home-wave .65s ease-in-out infinite alternate;
}

.home-audio-play.is-playing .home-audio-wave i:nth-child(2),
.home-audio-play.is-playing .home-audio-wave i:nth-child(6) { animation-delay: .12s; }
.home-audio-play.is-playing .home-audio-wave i:nth-child(3),
.home-audio-play.is-playing .home-audio-wave i:nth-child(5) { animation-delay: .24s; }
.home-audio-play.is-playing .home-audio-wave i:nth-child(4) { animation-delay: .36s; }

.home-variant-card {
    display: flex;
    flex-direction: column;
    padding: 1.15rem;
    background:
        linear-gradient(145deg, rgba(139,118,255,.16), rgba(255,255,255,.04)),
        rgba(255,255,255,.04);
}

.home-variant-card > div {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    margin-top: auto;
}

.home-variant-card b {
    padding: .28rem .5rem;
    border-radius: 999px;
    color: #09233b;
    background: var(--hl-green);
    font-size: .62rem;
    text-transform: uppercase;
}

.home-data-lane > footer {
    border-top: 1px solid rgba(255,255,255,.09);
    color: rgba(255,255,255,.72);
    font-size: .88rem;
}

.home-data-lane > footer p { margin: 0; }
.home-data-lane > footer .home-inline-cta { color: #fff; }

/* Mappa */
.home-map-section {
    background:
        radial-gradient(circle at 6% 5%, rgba(43,208,154,.12), transparent 32%),
        linear-gradient(180deg, #f4f8fd 0%, #eaf3fc 100%);
}

.home-map-layout {
    display: grid;
    grid-template-columns: minmax(300px, .78fr) minmax(0, 1.22fr);
    gap: clamp(2rem, 5vw, 5rem);
    align-items: center;
}

.home-map-copy h2 { color: var(--hl-ink); }
.home-map-copy h2 strong { color: var(--hl-blue); }
.home-map-copy > p:not(.home-space-kicker) { color: var(--hl-muted); }

.home-map-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .8rem;
    margin: 1.8rem 0;
}

.home-map-stats article {
    padding: 1rem;
    border: 1px solid var(--hl-line);
    border-radius: 16px;
    background: rgba(255,255,255,.75);
    box-shadow: 0 12px 32px rgba(34,78,121,.08);
}

.home-map-stats strong {
    display: block;
    color: var(--hl-blue);
    font-size: 2rem;
    line-height: 1;
}

.home-map-stats span {
    display: block;
    margin-top: .3rem;
    color: var(--hl-muted);
    font-size: .78rem;
    font-weight: 800;
}

.home-map-copy .home-block-actions { justify-content: flex-start; }

.home-map-stage {
    position: relative;
    min-height: 590px;
    overflow: hidden;
    border: 1px solid rgba(54,110,160,.18);
    border-radius: 30px;
    background: #dceaf6;
    box-shadow: var(--hl-shadow);
}

.home-map-stage::before {
    content: "";
    position: absolute;
    z-index: 500;
    inset: 12px;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,.58);
    border-radius: 22px;
}

.home-live-map {
    position: absolute;
    inset: 0;
    min-height: 590px;
}

.home-map-loader {
    position: absolute;
    z-index: 800;
    inset: 0;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: .8rem;
    color: var(--hl-ink);
    background: rgba(232,243,252,.9);
    backdrop-filter: blur(8px);
}

.home-map-loader[hidden] { display: none; }

.home-map-loader i {
    width: 44px;
    height: 44px;
    border: 3px solid rgba(29,94,216,.16);
    border-top-color: var(--hl-blue);
    border-radius: 50%;
    animation: home-spin 1s linear infinite;
}

.home-map-loader span { font-size: .85rem; font-weight: 850; }

.home-map-legend {
    position: absolute;
    z-index: 600;
    left: 25px;
    bottom: 24px;
    display: flex;
    gap: .9rem;
    padding: .7rem .85rem;
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 13px;
    color: var(--hl-ink);
    background: rgba(255,255,255,.86);
    box-shadow: 0 12px 32px rgba(14,45,77,.12);
    backdrop-filter: blur(10px);
    font-size: .72rem;
    font-weight: 850;
}

.home-map-legend span { display: inline-flex; align-items: center; gap: .38rem; }
.home-map-legend i { width: 10px; height: 10px; border-radius: 3px; }
.home-map-legend .is-active { background: #2f9f68; }
.home-map-legend .is-inactive { background: #c8ced5; }

.home-live-map .leaflet-popup-content-wrapper,
.home-live-map .leaflet-popup-tip {
    color: var(--hl-ink);
    background: #fff;
}

.home-map-popup { min-width: 210px; }
.home-map-popup span { color: var(--hl-green); font-size: .66rem; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.home-map-popup h3 { margin: .25rem 0 .45rem; font-size: 1.2rem; }
.home-map-popup p { margin: 0 0 .7rem; color: var(--hl-muted); font-size: .78rem; }
.home-map-popup a { display: inline-flex; padding: .5rem .68rem; border-radius: 9px; color: #fff; background: var(--hl-blue); font-size: .72rem; font-weight: 900; text-decoration: none; }

/* Libri */
.home-books-section {
    background:
        radial-gradient(circle at 90% 10%, rgba(242,199,92,.15), transparent 28%),
        linear-gradient(180deg, #fff 0%, #f5f8fc 100%);
}

.home-book-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
}

.home-book-card {
    display: grid;
    grid-template-columns: minmax(150px, .82fr) 1.18fr;
    min-height: 315px;
    overflow: hidden;
    border: 1px solid var(--hl-line);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 50px rgba(27,58,92,.09);
    transition: transform .25s ease, box-shadow .25s ease;
}

.home-book-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 28px 70px rgba(27,58,92,.16);
}

.home-book-cover {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: 1.25rem;
    color: #fff;
    background:
        radial-gradient(circle at 75% 20%, rgba(255,255,255,.18), transparent 22%),
        linear-gradient(145deg, #0a2850, #1e68d7 75%, #29c7e8);
}

.home-book-card--waiting .home-book-cover {
    background:
        radial-gradient(circle at 75% 20%, rgba(255,255,255,.14), transparent 22%),
        linear-gradient(145deg, #323c50, #65758b 75%, #9aa6b6);
}

.home-book-cover::before,
.home-book-cover::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    border: 1px solid rgba(255,255,255,.24);
}

.home-book-cover::before {
    width: 180px;
    height: 180px;
    right: -92px;
    bottom: -84px;
}

.home-book-cover::after {
    width: 94px;
    height: 94px;
    right: -30px;
    bottom: -28px;
    border-style: dashed;
    animation: home-spin 18s linear infinite;
}

.home-book-cover span,
.home-book-cover small,
.home-book-cover h3,
.home-book-cover i { position: relative; z-index: 1; }
.home-book-cover span { font-size: .65rem; font-weight: 950; letter-spacing: .14em; }
.home-book-cover small { color: rgba(255,255,255,.7); font-size: .68rem; }
.home-book-cover h3 { margin: auto 0; font-size: 1rem; line-height: 1.28; font-weight: 600; }
.home-book-cover h3 strong { display: block; margin-top: .25rem; font-size: clamp(1.25rem, 2vw, 1.75rem); line-height: 1.02; }
.home-book-cover i { color: rgba(255,255,255,.72); font-size: .68rem; font-style: normal; }

.home-book-meta {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: .55rem;
    padding: 1.25rem;
}

.home-book-meta p { margin: 0; color: var(--hl-muted); font-size: .82rem; }
.home-book-meta p strong { color: var(--hl-ink); font-size: 1.1rem; }
.home-book-meta a { margin-top: .45rem; color: var(--hl-blue); font-weight: 900; text-decoration: none; }
.home-book-card--waiting .home-book-meta a { color: var(--hl-coral); }

/* Compagnie */
.home-companies-section {
    overflow: hidden;
    color: #fff;
    background:
        radial-gradient(circle at 16% 18%, rgba(139,118,255,.22), transparent 32%),
        radial-gradient(circle at 88% 70%, rgba(41,199,232,.18), transparent 28%),
        linear-gradient(145deg, #07172e, #142b5c 58%, #173e78);
}

.home-orbit {
    position: absolute;
    pointer-events: none;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
}

.home-orbit::after {
    content: "";
    position: absolute;
    top: 50%;
    left: -4px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--hl-green);
    box-shadow: 0 0 18px var(--hl-green);
}

.home-orbit--one { width: 480px; height: 480px; right: -210px; top: -160px; animation: home-spin 22s linear infinite; }
.home-orbit--two { width: 330px; height: 330px; left: -160px; bottom: -120px; animation: home-spin-reverse 18s linear infinite; }

.home-company-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
}

.home-company-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 355px;
    overflow: hidden;
    padding: 1.25rem;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 22px;
    background: linear-gradient(160deg, rgba(255,255,255,.11), rgba(255,255,255,.035));
    box-shadow: 0 22px 55px rgba(0,0,0,.16);
    backdrop-filter: blur(14px);
    transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

.home-company-card:hover {
    transform: translateY(-6px);
    border-color: rgba(95,224,178,.54);
    background: linear-gradient(160deg, rgba(95,224,178,.14), rgba(255,255,255,.04));
}

.home-company-emblem {
    position: relative;
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin-bottom: 1rem;
    border: 1px solid rgba(95,224,178,.4);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(95,224,178,.26), transparent 68%);
}

.home-company-emblem span { position: relative; z-index: 2; font-size: 1.5rem; font-weight: 950; }
.home-company-emblem i { position: absolute; inset: -8px; border: 1px dashed rgba(255,255,255,.2); border-radius: 50%; animation: home-spin 13s linear infinite; }
.home-company-rank { color: var(--hl-green); }
.home-company-card h3 { margin: .55rem 0 .55rem; color: #fff; font-size: 1.32rem; line-height: 1.05; }
.home-company-card p { margin: 0; color: rgba(255,255,255,.65); font-size: .82rem; line-height: 1.5; }

.home-company-metrics {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .35rem;
    margin: 1rem 0;
}

.home-company-metrics span {
    padding: .58rem .35rem;
    border-radius: 10px;
    color: rgba(255,255,255,.64);
    background: rgba(255,255,255,.06);
    font-size: .62rem;
    text-align: center;
}

.home-company-metrics b { display: block; color: #fff; font-size: .92rem; }
.home-company-card > a { display: inline-flex; align-items: center; gap: .5rem; margin-top: auto; color: #fff; font-size: .78rem; font-weight: 900; text-decoration: none; }

/* Sfida */
.home-challenge-section {
    background:
        radial-gradient(circle at 95% 5%, rgba(255,118,95,.11), transparent 30%),
        linear-gradient(180deg, #f7f9fc 0%, #edf3fa 100%);
}

.home-challenge-grid {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 1.2rem;
}

.home-radar-card,
.home-waiting-card {
    overflow: hidden;
    border: 1px solid var(--hl-line);
    border-radius: 25px;
    background: #fff;
    box-shadow: 0 22px 60px rgba(23,61,99,.10);
}

.home-radar-card > header,
.home-waiting-card > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.3rem;
    border-bottom: 1px solid var(--hl-line);
}

.home-radar-card header span,
.home-waiting-card header span { color: var(--hl-blue); }
.home-radar-card header strong,
.home-waiting-card header strong { color: var(--hl-ink); font-size: .9rem; }

.home-radar-list,
.home-waiting-list { padding: .5rem 1rem; }

.home-radar-list > a {
    display: grid;
    grid-template-columns: 34px 1fr auto;
    gap: .75rem;
    align-items: center;
    padding: .85rem .2rem;
    border-bottom: 1px solid rgba(95,114,138,.12);
    color: var(--hl-ink);
    text-decoration: none;
}

.home-radar-list > a > b {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #fff;
    background: var(--hl-blue);
    font-size: .75rem;
}

.home-radar-list > a > span { min-width: 0; }
.home-radar-list strong { display: block; font-size: .88rem; }
.home-radar-list small { display: block; overflow: hidden; color: var(--hl-muted); font-size: .68rem; white-space: nowrap; text-overflow: ellipsis; }
.home-radar-list i { position: relative; display: block; height: 4px; overflow: hidden; margin-top: .42rem; border-radius: 99px; background: #e6edf5; }
.home-radar-list i::after { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--progress); border-radius: inherit; background: linear-gradient(90deg, var(--hl-blue), var(--hl-green)); }
.home-radar-list em { color: var(--hl-blue); font-size: .78rem; font-style: normal; font-weight: 950; }

.home-waiting-list > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .8rem;
    padding: .82rem .2rem;
    border-bottom: 1px solid rgba(95,114,138,.12);
    color: var(--hl-ink);
    text-decoration: none;
}

.home-waiting-list > a > span { display: grid; grid-template-columns: 14px 1fr; column-gap: .55rem; align-items: center; }
.home-waiting-list i { grid-row: 1 / 3; width: 9px; height: 9px; border-radius: 50%; background: var(--hl-coral); box-shadow: 0 0 0 5px rgba(255,118,95,.10); }
.home-waiting-list b { font-size: .84rem; }
.home-waiting-list small { color: var(--hl-muted); font-size: .66rem; }
.home-waiting-list em { color: var(--hl-coral); font-size: .72rem; font-style: normal; font-weight: 950; white-space: nowrap; }

.home-radar-card > .home-inline-cta,
.home-waiting-card > .home-inline-cta {
    margin: .45rem 1.2rem 1.2rem;
    color: var(--hl-blue);
}

.home-empty-copy { padding: 1rem .2rem; color: var(--hl-muted); }

/* Testimonial */
.home-testimonials-section {
    color: #fff;
    background:
        radial-gradient(circle at 12% 24%, rgba(255,118,95,.20), transparent 30%),
        radial-gradient(circle at 88% 70%, rgba(41,199,232,.18), transparent 30%),
        linear-gradient(135deg, #10244a, #0b1b36 55%, #132b59);
}

.home-testimonial-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem;
}

.home-testimonial-card {
    display: grid;
    grid-template-columns: minmax(260px, .95fr) 1.05fr;
    min-height: 440px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 26px;
    background: rgba(255,255,255,.07);
    box-shadow: 0 24px 65px rgba(0,0,0,.18);
}

.home-testimonial-media {
    position: relative;
    min-height: 350px;
    overflow: hidden;
    background: #071426;
}

.home-testimonial-media img,
.home-testimonial-media iframe {
    width: 100%;
    height: 100%;
    min-height: 440px;
    border: 0;
    object-fit: cover;
}

.home-testimonial-media::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to top, rgba(5,17,35,.45), transparent 45%);
}

.home-testimonial-media > button {
    position: absolute;
    z-index: 2;
    left: 50%;
    top: 50%;
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    transform: translate(-50%, -50%);
    border: 1px solid rgba(255,255,255,.64);
    border-radius: 50%;
    color: #fff;
    background: rgba(7,24,47,.72);
    box-shadow: 0 0 0 12px rgba(255,255,255,.07), 0 18px 45px rgba(0,0,0,.3);
    backdrop-filter: blur(10px);
}

.home-testimonial-media > button:hover,
.home-testimonial-media > button:focus { transform: translate(-50%, -50%) scale(1.08); background: var(--hl-coral); }
.home-testimonial-card--enotrio .home-testimonial-media > button:hover,
.home-testimonial-card--enotrio .home-testimonial-media > button:focus { background: var(--hl-blue); }

.home-testimonial-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(1.5rem, 3vw, 2.5rem);
}

.home-testimonial-copy > span { color: var(--hl-yellow); }
.home-testimonial-copy h3 { margin: .55rem 0 0; color: #fff; font-size: clamp(2.1rem, 4vw, 4.1rem); line-height: .95; letter-spacing: -.05em; }
.home-testimonial-copy h4 { margin: 1rem 0 .6rem; color: #fff; font-size: 1.15rem; line-height: 1.22; }
.home-testimonial-copy p { color: rgba(255,255,255,.68); line-height: 1.52; }
.home-testimonial-copy > div { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: auto; }
.home-testimonial-copy a { display: inline-flex; padding: .68rem .85rem; border: 1px solid rgba(255,255,255,.18); border-radius: 11px; color: #fff; background: rgba(255,255,255,.07); font-size: .75rem; font-weight: 900; text-decoration: none; }
.home-testimonial-copy a:first-child { color: var(--hl-navy); border-color: transparent; background: var(--hl-yellow); }
.home-testimonial-copy a:hover { transform: translateY(-2px); }

.home-testimonial-placeholder {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 440px;
    overflow: hidden;
    background: radial-gradient(circle, rgba(255,118,95,.22), transparent 52%), #071426;
}

.home-testimonial-card--enotrio .home-testimonial-placeholder { background: radial-gradient(circle, rgba(41,199,232,.22), transparent 52%), #071426; }
.home-testimonial-placeholder span { position: relative; z-index: 2; font-size: 2.2rem; font-weight: 950; }
.home-testimonial-placeholder i { position: absolute; width: 250px; height: 250px; border: 1px dashed rgba(255,255,255,.2); border-radius: 50%; animation: home-spin 18s linear infinite; }

/* Finale */
.home-final-action {
    position: relative;
    overflow: hidden;
    padding: clamp(4.5rem, 9vw, 8.5rem) 0;
    color: #fff;
    background:
        radial-gradient(circle at 18% 45%, rgba(53,211,155,.18), transparent 28%),
        radial-gradient(circle at 82% 45%, rgba(29,94,216,.30), transparent 32%),
        linear-gradient(135deg, #06162c, #0c3970 62%, #175bc0);
}

.home-final-action .app-shell {
    display: grid;
    grid-template-columns: .55fr 1.45fr;
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
}

.home-final-action__core {
    position: relative;
    display: grid;
    place-items: center;
    width: min(390px, 78vw);
    aspect-ratio: 1;
    margin: auto;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 50%;
    box-shadow: inset 0 0 80px rgba(41,199,232,.10), 0 0 80px rgba(41,199,232,.12);
}

.home-final-action__core::before,
.home-final-action__core::after {
    content: "";
    position: absolute;
    border-radius: 50%;
}

.home-final-action__core::before { inset: 16%; border: 1px dashed rgba(255,255,255,.24); animation: home-spin 18s linear infinite; }
.home-final-action__core::after { inset: 32%; background: radial-gradient(circle, rgba(95,224,178,.5), rgba(29,94,216,.3) 58%, transparent 70%); box-shadow: 0 0 55px rgba(95,224,178,.25); }
.home-final-action__core > span { position: relative; z-index: 2; font-size: 4rem; font-weight: 950; letter-spacing: -.08em; }
.home-final-action__core > i { position: absolute; width: 13px; height: 13px; border-radius: 50%; background: var(--hl-yellow); box-shadow: 0 0 18px var(--hl-yellow); }
.home-final-action__core > i:nth-of-type(1) { top: 12%; left: 49%; }
.home-final-action__core > i:nth-of-type(2) { right: 13%; bottom: 28%; background: var(--hl-green); box-shadow: 0 0 18px var(--hl-green); }
.home-final-action__core > i:nth-of-type(3) { left: 14%; bottom: 24%; background: var(--hl-coral); box-shadow: 0 0 18px var(--hl-coral); }

.home-final-actions {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .75rem;
    margin-top: 2rem;
}

.home-final-actions a {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: .25rem .5rem;
    align-items: center;
    padding: 1.1rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 16px;
    color: #fff;
    background: rgba(255,255,255,.08);
    text-decoration: none;
    backdrop-filter: blur(12px);
    transition: transform .2s ease, background .2s ease, border-color .2s ease;
}

.home-final-actions a:hover,
.home-final-actions a:focus { transform: translateY(-3px); border-color: var(--hl-green); background: rgba(95,224,178,.12); }
.home-final-actions strong { font-size: .9rem; }
.home-final-actions small { grid-column: 1 / 2; color: rgba(255,255,255,.62); font-size: .68rem; }
.home-final-actions span { grid-column: 2; grid-row: 1 / 3; font-size: 1.25rem; }

/* Reveal */
.home-live [data-reveal] .app-shell,
.home-live [data-reveal] > .container-fluid {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .8s ease, transform .8s ease;
}

.home-live [data-reveal].is-visible .app-shell,
.home-live [data-reveal].is-visible > .container-fluid {
    opacity: 1;
    transform: none;
}

@keyframes home-signal-pulse {
    0%, 100% { opacity: .55; transform: translateY(-50%) scale(.78); }
    50% { opacity: 1; transform: translateY(-50%) scale(1.15); }
}

@keyframes home-data-scan {
    0%, 100% { transform: scaleX(.14); opacity: .45; }
    50% { transform: scaleX(1); opacity: 1; }
}

@keyframes home-stars-drift {
    from { background-position: 0 0, 0 0, 0 0, 0 0; }
    to { background-position: 84px 84px, -132px 132px, 176px -176px, -112px -112px; }
}

@keyframes home-spin { to { transform: rotate(360deg); } }
@keyframes home-spin-reverse { to { transform: rotate(-360deg); } }
@keyframes home-wave { from { height: 28%; } to { height: 100%; } }

@media (max-width: 1199px) {
    .home-space-head { align-items: flex-start; flex-direction: column; }
    .home-space-head__actions { justify-content: flex-start; }
    .home-signal-grid { grid-template-columns: repeat(3, 1fr); }
    .home-signal-grid article:nth-child(4), .home-signal-grid article:nth-child(5) { min-height: 120px; }
    .home-book-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-company-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .home-testimonial-card { grid-template-columns: 1fr; }
    .home-testimonial-media, .home-testimonial-media img, .home-testimonial-media iframe { min-height: 330px; }
    .home-final-action .app-shell { grid-template-columns: .7fr 1.3fr; }
    .home-final-actions { grid-template-columns: 1fr; }
}

@media (max-width: 991px) {
    .home-space-section { padding: 4.5rem 0; }
    .home-map-layout { grid-template-columns: 1fr; }
    .home-map-stage, .home-live-map { min-height: 520px; }
    .home-company-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-challenge-grid { grid-template-columns: 1fr; }
    .home-testimonial-grid { grid-template-columns: 1fr; }
    .home-testimonial-card { grid-template-columns: minmax(240px, .9fr) 1.1fr; }
    .home-final-action .app-shell { grid-template-columns: 1fr; }
    .home-final-action__core { width: min(300px, 70vw); }
}

@media (max-width: 767px) {
    .home-space-head h2, .home-map-copy h2, .home-final-action h2 { font-size: clamp(2.35rem, 12vw, 4rem); }
    .home-space-head__actions, .home-block-actions { width: 100%; display: grid; grid-template-columns: 1fr; }
    .home-btn { width: 100%; }
    .home-signal-grid { grid-template-columns: 1fr 1fr; border-radius: 18px; }
    .home-signal-grid article { min-height: 116px; padding: 1rem; }
    .home-signal-grid article:last-child { grid-column: 1 / -1; }
    .home-data-lane > header, .home-data-lane > footer { align-items: flex-start; flex-direction: column; }
    .home-lane-tools { width: 100%; }
    .home-lane-tools a { margin-left: auto; }
    .home-data-track { grid-auto-columns: minmax(82vw, 1fr); padding-inline: 1rem; }
    .home-audio-card { grid-template-columns: 70px 1fr; }
    .home-audio-play { width: 64px; height: 64px; }
    .home-map-stats { grid-template-columns: 1fr 1fr; }
    .home-map-stage, .home-live-map { min-height: 455px; }
    .home-map-legend { left: 18px; right: 18px; bottom: 18px; justify-content: center; }
    .home-book-grid, .home-company-grid { grid-template-columns: 1fr; }
    .home-book-card { grid-template-columns: .9fr 1.1fr; min-height: 280px; }
    .home-testimonial-card { grid-template-columns: 1fr; }
    .home-testimonial-media, .home-testimonial-media img, .home-testimonial-media iframe, .home-testimonial-placeholder { min-height: 300px; }
    .home-radar-card > header, .home-waiting-card > header { align-items: flex-start; flex-direction: column; }
    .home-final-actions { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
    .home-space-section { padding: 3.8rem 0; }
    .home-signal-grid { grid-template-columns: 1fr; }
    .home-signal-grid article:last-child { grid-column: auto; }
    .home-book-card { grid-template-columns: 1fr; }
    .home-book-cover { min-height: 250px; }
    .home-map-stats { grid-template-columns: 1fr; }
    .home-map-stage, .home-live-map { min-height: 410px; }
    .home-company-metrics { grid-template-columns: repeat(3, 1fr); }
    .home-radar-list > a { grid-template-columns: 30px 1fr; }
    .home-radar-list em { grid-column: 2; }
    .home-waiting-list > a { align-items: flex-start; flex-direction: column; }
    .home-testimonial-copy { padding: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
    .home-live *, .home-live *::before, .home-live *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }
    .home-live [data-reveal] .app-shell,
    .home-live [data-reveal] > .container-fluid { opacity: 1; transform: none; }
}

/* ================================================================
   Rifinitura home: più bianco, testi più leggibili, territori misti
   e maggiore evidenza per audio, stemmi e call to action finali.
   ================================================================ */

.home-live {
    background: #fff;
}

/* Movimento dati: mantiene il linguaggio spaziale, ma su superfici chiare. */
.home-movement {
    color: var(--hl-ink);
    background:
        radial-gradient(circle at 88% 10%, rgba(41,199,232,.13), transparent 29%),
        radial-gradient(circle at 8% 72%, rgba(139,118,255,.11), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, #f5f9fe 100%);
}

.home-movement::after {
    opacity: .48;
    background-image:
        linear-gradient(rgba(29,94,216,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(29,94,216,.045) 1px, transparent 1px);
    mask-image: linear-gradient(to bottom, #000, transparent 96%);
}

.home-movement .home-space-stars {
    opacity: .52;
    background-image:
        radial-gradient(circle at 15% 20%, rgba(29,94,216,.62) 0 1px, transparent 1.8px),
        radial-gradient(circle at 76% 31%, rgba(53,211,155,.72) 0 1px, transparent 2px),
        radial-gradient(circle at 42% 72%, rgba(242,199,92,.76) 0 1px, transparent 2px),
        radial-gradient(circle at 91% 79%, rgba(139,118,255,.58) 0 1px, transparent 1.8px);
}

.home-movement .home-space-head p:not(.home-space-kicker),
.home-testimonials-section .home-space-head p:not(.home-space-kicker),
.home-companies-section .home-space-head p:not(.home-space-kicker) {
    color: var(--hl-muted);
}

.home-signal-grid {
    border-color: rgba(41,102,166,.14);
    background: #fff;
    box-shadow: 0 24px 65px rgba(29,73,117,.10);
}

.home-signal-grid article {
    background: rgba(255,255,255,.96);
    backdrop-filter: none;
}

.home-signal-grid article + article {
    border-left: 1px solid rgba(67,111,159,.11);
}

.home-signal-grid span,
.home-movement .home-data-lane > header span,
.home-movement .home-data-card__type,
.home-movement .home-audio-card > div > span,
.home-movement .home-variant-card > span {
    color: #64758a;
}

.home-signal-grid strong {
    color: var(--hl-ink);
}

.home-signal-grid small {
    color: var(--hl-muted);
}

.home-data-lane {
    border-color: rgba(44,94,146,.15);
    background: rgba(255,255,255,.96);
    box-shadow: 0 22px 58px rgba(27,71,116,.10);
    backdrop-filter: none;
}

.home-data-lane--new {
    border-top: 4px solid var(--hl-cyan);
}

.home-data-lane--audio {
    border-top: 4px solid var(--hl-green);
    box-shadow: 0 24px 65px rgba(28,139,100,.13);
}

.home-data-lane--variants {
    border-top: 4px solid var(--hl-violet);
}

.home-data-lane > header {
    border-bottom-color: rgba(52,95,139,.12);
    background: linear-gradient(90deg, rgba(240,247,254,.92), #fff 62%);
}

.home-data-lane > header h3 {
    color: var(--hl-ink);
}

.home-lane-tools button,
.home-lane-tools a {
    color: var(--hl-ink);
    border-color: rgba(43,91,140,.18);
    background: #fff;
    box-shadow: 0 7px 18px rgba(30,71,111,.07);
}

.home-lane-tools button:hover,
.home-lane-tools button:focus,
.home-lane-tools a:hover,
.home-lane-tools a:focus {
    color: #fff;
    border-color: var(--hl-blue);
    background: var(--hl-blue);
}

.home-data-track {
    scrollbar-color: rgba(35,94,151,.28) transparent;
}

.home-data-card,
.home-audio-card,
.home-variant-card {
    border-color: rgba(49,100,153,.14);
    background: #fff;
    box-shadow: 0 12px 34px rgba(29,68,108,.08);
}

.home-data-card {
    background:
        radial-gradient(circle at 100% 0, rgba(41,199,232,.13), transparent 35%),
        #fff;
}

.home-variant-card {
    background:
        radial-gradient(circle at 100% 0, rgba(139,118,255,.13), transparent 38%),
        #fff;
}

.home-data-card h4,
.home-audio-card h4,
.home-variant-card h4 {
    color: var(--hl-ink);
}

.home-data-card p,
.home-audio-card p,
.home-variant-card p {
    color: var(--hl-muted);
}

.home-data-card > a,
.home-audio-card > div > a,
.home-variant-card a {
    color: var(--hl-blue);
}

.home-data-card > a small {
    color: #11865a;
}

.home-data-card--empty {
    background: linear-gradient(145deg, rgba(255,118,95,.07), #fff);
}

.home-audio-card {
    grid-template-columns: 100px 1fr;
    min-height: 240px;
    background:
        radial-gradient(circle at 0 50%, rgba(53,211,155,.15), transparent 42%),
        #fff;
}

.home-audio-card__copy {
    min-width: 0;
}

.home-audio-play {
    display: flex;
    flex-direction: column;
    gap: .18rem;
    width: 92px;
    height: 92px;
    color: #0a4f37;
    border: 2px solid rgba(31,171,119,.42);
    background: radial-gradient(circle, rgba(101,231,181,.46), rgba(53,211,155,.10) 70%);
    box-shadow: 0 0 0 9px rgba(53,211,155,.06), 0 13px 32px rgba(19,126,89,.16);
}

.home-audio-play__icon {
    color: #08734c;
    font-size: 1.25rem;
}

.home-audio-play__label {
    position: relative;
    z-index: 2;
    color: #075a3d;
    font-size: .66rem;
    font-weight: 950;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.home-audio-wave {
    inset: auto 13px 8px;
    opacity: .58;
}

.home-audio-play.is-playing .home-audio-play__label {
    color: #063e2d;
}

.home-variant-card b {
    color: #073923;
}

.home-data-lane > footer {
    color: var(--hl-muted);
    border-top-color: rgba(52,95,139,.11);
    background: #fbfdff;
}

.home-data-lane > footer .home-inline-cta {
    color: var(--hl-blue);
}

/* Testimonial più in alto e su superfici bianche. */
.home-testimonials-section {
    color: var(--hl-ink);
    background:
        radial-gradient(circle at 8% 18%, rgba(255,118,95,.12), transparent 29%),
        radial-gradient(circle at 92% 75%, rgba(41,199,232,.11), transparent 30%),
        linear-gradient(180deg, #fff 0%, #f8fbff 100%);
}

.home-testimonial-card {
    border-color: rgba(49,95,143,.15);
    background: #fff;
    box-shadow: 0 24px 65px rgba(25,64,103,.11);
}

.home-testimonial-card--bergamotta {
    border-top: 4px solid var(--hl-coral);
}

.home-testimonial-card--enotrio {
    border-top: 4px solid var(--hl-cyan);
}

.home-testimonial-copy > span {
    color: #ca563f;
}

.home-testimonial-card--enotrio .home-testimonial-copy > span {
    color: #087c99;
}

.home-testimonial-copy h3,
.home-testimonial-copy h4 {
    color: var(--hl-ink);
}

.home-testimonial-copy p {
    color: var(--hl-muted);
}

.home-testimonial-copy a {
    color: var(--hl-ink);
    border-color: rgba(48,93,140,.18);
    background: #f7faff;
}

.home-testimonial-copy a:first-child {
    color: #3b2c06;
    background: var(--hl-yellow);
}

/* Mappa: il contenitore resta chiaro, Leaflet viene inquadrato sui confini calabresi. */
.home-map-stage {
    background: #edf5fb;
}

/* Nomi lunghi dei libri: niente tagli né parole nascoste. */
.home-book-cover {
    min-width: 0;
}

.home-book-cover h3,
.home-book-cover h3 strong {
    max-width: 100%;
    overflow-wrap: anywhere;
    word-break: normal;
    hyphens: auto;
}

.home-book-cover h3 strong.is-long {
    font-size: clamp(1.05rem, 1.55vw, 1.45rem);
    line-height: 1.08;
}

.home-book-cover h3 strong.is-very-long {
    font-size: clamp(.92rem, 1.35vw, 1.22rem);
    line-height: 1.12;
}

/* Compagnie: ancora spaziali, ma con card e testi su bianco. */
.home-companies-section {
    color: var(--hl-ink);
    background:
        radial-gradient(circle at 12% 14%, rgba(139,118,255,.13), transparent 31%),
        radial-gradient(circle at 90% 75%, rgba(41,199,232,.12), transparent 30%),
        linear-gradient(180deg, #fff 0%, #f5f8fe 100%);
}

.home-orbit {
    border-color: rgba(39,92,153,.14);
}

.home-orbit::after {
    background: var(--hl-green);
}

.home-company-card {
    border-color: rgba(45,94,144,.15);
    background: rgba(255,255,255,.94);
    box-shadow: 0 22px 55px rgba(28,65,105,.10);
    backdrop-filter: none;
}

.home-company-card:hover {
    border-color: rgba(53,211,155,.58);
    background: #fff;
    box-shadow: 0 28px 65px rgba(30,91,130,.15);
}

.home-company-emblem {
    color: #0a6647;
    border-color: rgba(35,170,119,.34);
    background: radial-gradient(circle, rgba(95,224,178,.28), rgba(95,224,178,.05) 70%);
}

.home-company-emblem i {
    border-color: rgba(29,94,216,.20);
}

.home-company-rank {
    color: #16815d;
}

.home-company-card h3 {
    color: var(--hl-ink);
}

.home-company-card p {
    color: var(--hl-muted);
}

.home-company-metrics span {
    color: var(--hl-muted);
    background: #f1f6fb;
}

.home-company-metrics b {
    color: var(--hl-ink);
}

.home-company-card > a {
    color: var(--hl-blue);
}

/* Sfida: stemmi visibili accanto a posizione e Comune. */
.home-radar-list > a {
    grid-template-columns: 32px 46px minmax(0, 1fr) auto;
}

.home-challenge-position {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #fff;
    background: var(--hl-blue);
    font-size: .75rem;
}

.home-challenge-crest {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    overflow: hidden;
    border: 1px solid rgba(52,96,142,.15);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(27,64,102,.09);
}

.home-challenge-crest img {
    width: 100%;
    height: 100%;
    padding: 4px;
    object-fit: contain;
}

.home-challenge-crest > i {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    color: var(--hl-blue);
    background: #edf4ff;
    font-size: 1rem;
    font-style: normal;
    font-weight: 950;
}

.home-challenge-copy {
    min-width: 0;
}

.home-radar-list .home-challenge-copy > i {
    position: relative;
    display: block;
    height: 4px;
    overflow: hidden;
    margin-top: .42rem;
    border-radius: 99px;
    background: #e6edf5;
}

.home-radar-list .home-challenge-copy > i::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: var(--progress);
    border-radius: inherit;
    background: linear-gradient(90deg, var(--hl-blue), var(--hl-green));
}

.home-waiting-identity {
    display: flex;
    align-items: center;
    gap: .75rem;
    min-width: 0;
}

.home-waiting-identity > span:last-child {
    min-width: 0;
}

.home-waiting-list b,
.home-waiting-list small {
    display: block;
}

/* CTA finale: più movimento, senza appesantire la lettura. */
.home-final-action::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .34;
    background-image:
        radial-gradient(circle at 12% 24%, rgba(255,255,255,.9) 0 1px, transparent 1.8px),
        radial-gradient(circle at 78% 18%, rgba(95,224,178,.95) 0 1px, transparent 2px),
        radial-gradient(circle at 58% 82%, rgba(242,199,92,.9) 0 1px, transparent 2px);
    background-size: 92px 92px, 146px 146px, 178px 178px;
    animation: home-stars-drift 22s linear infinite;
}

.home-final-action::after {
    content: "";
    position: absolute;
    left: -30%;
    right: -30%;
    top: 18%;
    height: 1px;
    pointer-events: none;
    opacity: .65;
    background: linear-gradient(90deg, transparent, rgba(95,224,178,.82), rgba(41,199,232,.76), transparent);
    box-shadow: 0 0 22px rgba(95,224,178,.30);
    animation: home-final-scan 5.4s ease-in-out infinite;
}

.home-final-action .app-shell {
    position: relative;
    z-index: 2;
}

.home-final-action__core {
    animation: home-core-breathe 4.8s ease-in-out infinite;
}

.home-final-action__core > i {
    animation: home-node-glow 2.6s ease-in-out infinite;
}

.home-final-action__core > i:nth-of-type(2) {
    animation-delay: .7s;
}

.home-final-action__core > i:nth-of-type(3) {
    animation-delay: 1.4s;
}

.home-final-action__alert {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    margin: 0 0 1rem;
    padding: .55rem .75rem;
    border: 1px solid rgba(95,224,178,.28);
    border-radius: 999px;
    color: #c9ffe9;
    background: rgba(95,224,178,.09);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.home-final-action__alert i {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--hl-green);
    box-shadow: 0 0 0 0 rgba(95,224,178,.5);
    animation: home-alert-pulse 1.8s ease-out infinite;
}

.home-final-actions a span {
    animation: home-arrow-nudge 1.5s ease-in-out infinite;
}

.home-final-actions a:nth-child(2) span {
    animation-delay: .25s;
}

.home-final-actions a:nth-child(3) span {
    animation-delay: .5s;
}

@keyframes home-core-breathe {
    0%, 100% { transform: translateY(0) scale(1); box-shadow: inset 0 0 80px rgba(41,199,232,.10), 0 0 70px rgba(41,199,232,.10); }
    50% { transform: translateY(-9px) scale(1.025); box-shadow: inset 0 0 95px rgba(41,199,232,.15), 0 0 95px rgba(95,224,178,.18); }
}

@keyframes home-node-glow {
    0%, 100% { transform: scale(.82); opacity: .62; }
    50% { transform: scale(1.35); opacity: 1; }
}

@keyframes home-final-scan {
    0%, 100% { transform: translateY(-80px) rotate(-4deg); opacity: 0; }
    35%, 65% { opacity: .72; }
    50% { transform: translateY(290px) rotate(-4deg); opacity: .9; }
}

@keyframes home-alert-pulse {
    0% { box-shadow: 0 0 0 0 rgba(95,224,178,.48); }
    75%, 100% { box-shadow: 0 0 0 10px rgba(95,224,178,0); }
}

@keyframes home-arrow-nudge {
    0%, 100% { transform: translateX(0); }
    50% { transform: translateX(5px); }
}

@media (max-width: 767px) {
    .home-audio-card {
        grid-template-columns: 82px 1fr;
    }

    .home-audio-play {
        width: 76px;
        height: 76px;
    }

    .home-audio-play__label {
        font-size: .58rem;
    }

    .home-radar-list > a {
        grid-template-columns: 28px 42px minmax(0, 1fr);
    }

    .home-radar-list > a > em {
        grid-column: 3;
        justify-self: start;
    }
}

@media (max-width: 520px) {
    .home-signal-grid article + article {
        border-left: 0;
        border-top: 1px solid rgba(67,111,159,.11);
    }

    .home-book-cover h3 strong.is-long,
    .home-book-cover h3 strong.is-very-long {
        font-size: clamp(1.2rem, 7vw, 1.65rem);
    }

    .home-waiting-identity {
        width: 100%;
    }
}

.home-challenge-crest > i {
    position: static;
    margin: 0;
    overflow: visible;
    border-radius: inherit;
    box-shadow: none;
}

.home-challenge-crest > i::after {
    content: none !important;
}

.home-movement .home-space-head h2 em {
    color: #d96535;
}

.home-movement .home-data-card__orbit::before {
    border-color: rgba(29,94,216,.22);
}

/* ==================================================================
   Riequilibrio cromatico e correzione desktop del blocco audio
   - il blu torna come cornice spaziale, non come superficie dominante;
   - i contenuti restano su card bianche;
   - la corsia audio usa cinque card leggibili su desktop.
   ================================================================== */

.home-movement {
    color: #fff;
    background:
        radial-gradient(circle at 88% 10%, rgba(41,199,232,.28), transparent 29%),
        radial-gradient(circle at 9% 70%, rgba(139,118,255,.22), transparent 34%),
        linear-gradient(145deg, #06162c 0%, #0b2d56 54%, #10569a 100%);
}

.home-movement::after {
    opacity: .56;
    background-image:
        linear-gradient(rgba(255,255,255,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.055) 1px, transparent 1px);
}

.home-movement .home-space-stars {
    opacity: .68;
    background-image:
        radial-gradient(circle at 15% 20%, rgba(255,255,255,.92) 0 1px, transparent 1.8px),
        radial-gradient(circle at 76% 31%, rgba(95,224,178,.94) 0 1px, transparent 2px),
        radial-gradient(circle at 42% 72%, rgba(242,199,92,.92) 0 1px, transparent 2px),
        radial-gradient(circle at 91% 79%, rgba(41,199,232,.88) 0 1px, transparent 1.8px);
}

.home-movement .home-space-head {
    align-items: end;
}

.home-movement .home-space-head > div:first-child {
    max-width: 1030px;
}

.home-movement .home-space-head h2 {
    max-width: 980px;
    color: #fff;
    font-size: clamp(2.7rem, 5vw, 5.45rem);
}

.home-movement .home-space-head h2 em {
    display: inline-block;
    margin-top: .16em;
    color: var(--hl-yellow);
}

.home-movement .home-space-head p:not(.home-space-kicker) {
    max-width: 930px;
    color: rgba(255,255,255,.80);
}

.home-movement .home-space-kicker {
    color: #bcecff;
}

.home-movement .home-space-kicker span {
    background: var(--hl-green);
    box-shadow: 0 0 0 0 rgba(95,224,178,.52);
    animation: home-alert-pulse 1.9s ease-out infinite;
}

.home-movement .home-btn--dark {
    color: #0b2d56;
    border-color: rgba(255,255,255,.72);
    background: #fff;
    box-shadow: 0 15px 34px rgba(2,18,38,.22);
}

.home-movement .home-btn--dark:hover,
.home-movement .home-btn--dark:focus {
    color: #0b2d56;
    background: #edf8ff;
}

/* Il blu incornicia la sezione, mentre testi e dati restano su bianco. */
.home-movement .home-signal-grid,
.home-movement .home-data-lane {
    position: relative;
    z-index: 2;
}

.home-movement .home-signal-grid {
    border-color: rgba(255,255,255,.38);
    box-shadow: 0 26px 70px rgba(0,19,45,.28);
}

.home-movement .home-data-lane {
    border-color: rgba(255,255,255,.34);
    box-shadow: 0 26px 68px rgba(0,19,45,.25);
}

.home-lane-intro {
    margin: .4rem 0 0;
    color: var(--hl-muted);
    font-size: .82rem;
    line-height: 1.35;
}

/* Audio desktop: cinque contenuti in una griglia vera, senza card compresse. */
@media (min-width: 1200px) {
    .home-data-lane--audio > header {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
    }

    .home-data-lane--audio > header > div:first-child {
        min-width: 0;
        max-width: 740px;
    }

    .home-data-lane--audio > header h3 {
        max-width: none;
        font-size: clamp(1.35rem, 1.55vw, 1.72rem);
        line-height: 1.12;
    }

    .home-data-lane--audio .home-data-track {
        grid-auto-flow: initial;
        grid-auto-columns: initial;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        overflow: visible;
        gap: 1rem;
    }

    .home-data-lane--audio .home-audio-card {
        grid-template-columns: 1fr;
        grid-template-rows: auto 1fr;
        align-content: start;
        align-items: start;
        gap: 1rem;
        min-width: 0;
        min-height: 320px;
        padding: 1.15rem;
    }

    .home-data-lane--audio .home-audio-play {
        width: 78px;
        height: 78px;
        margin: .12rem 0 .15rem;
    }

    .home-data-lane--audio .home-audio-card__copy {
        display: flex;
        flex-direction: column;
        min-width: 0;
        height: 100%;
    }

    .home-data-lane--audio .home-audio-card h4 {
        margin-top: .72rem;
        font-size: clamp(1.12rem, 1.3vw, 1.46rem);
        overflow-wrap: anywhere;
    }

    .home-data-lane--audio .home-audio-card p {
        display: -webkit-box;
        overflow: hidden;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
    }

    .home-data-lane--audio .home-audio-card__copy > a {
        margin-top: auto;
        padding-top: .6rem;
    }
}

/* Alternanza cromatica: bianco prevalente, blu nei punti di orientamento. */
.home-testimonials-section {
    background:
        radial-gradient(circle at 8% 18%, rgba(255,118,95,.12), transparent 29%),
        radial-gradient(circle at 92% 75%, rgba(41,199,232,.15), transparent 30%),
        linear-gradient(180deg, #edf5ff 0%, #ffffff 72%);
}

.home-map-section {
    background:
        radial-gradient(circle at 6% 5%, rgba(43,208,154,.13), transparent 32%),
        linear-gradient(180deg, #ffffff 0%, #eef6fd 100%);
}

.home-books-section {
    background:
        radial-gradient(circle at 90% 10%, rgba(242,199,92,.16), transparent 28%),
        linear-gradient(180deg, #ffffff 0%, #f7faff 100%);
}

.home-companies-section {
    background:
        radial-gradient(circle at 12% 14%, rgba(139,118,255,.16), transparent 31%),
        radial-gradient(circle at 90% 75%, rgba(41,199,232,.16), transparent 30%),
        linear-gradient(180deg, #eaf3ff 0%, #ffffff 78%);
}

@media (max-width: 1199px) {
    .home-movement .home-space-head {
        align-items: flex-start;
    }
}

@media (max-width: 767px) {
    .home-movement .home-space-head h2 {
        font-size: clamp(2.35rem, 11vw, 4rem);
    }

    .home-lane-intro {
        font-size: .78rem;
    }
}
