/* Mobilità · estensione del sistema grafico michelebusce.it */
.mobilita-site{--mobility:#3f6281;--mobility-dark:#16232d;--mobility-soft:#dfe8ef;--mobility-signal:#c40018;--mobility-ok:#246844;--mobility-warn:#8d651f;--mobility-high:#9a3838;background:var(--mb-paper)}
.mobilita-site main{max-width:var(--mb-content);background:var(--mb-paper)}
.mobilita-site .site-breadcrumb{border-bottom:1px solid var(--mb-line)}
.mobilita-site .mobilita-hero{position:relative;min-height:min(760px,calc(100svh - 84px));display:grid;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:stretch;border-bottom:1px solid var(--mb-line);overflow:hidden;background:var(--mb-paper)}
.mobilita-site .mobilita-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(32,43,53,.05) 1px,transparent 1px),linear-gradient(rgba(32,43,53,.05) 1px,transparent 1px);background-size:52px 52px;pointer-events:none}
.mobilita-site .mobilita-hero-copy{position:relative;z-index:1;padding:clamp(4rem,8vw,8rem) var(--mb-gutter);display:flex;flex-direction:column;justify-content:center}
.mobilita-site .mobilita-kicker{display:flex;align-items:center;gap:.75rem;margin:0 0 1.25rem;color:var(--mobility);font-size:.72rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}
.mobilita-site .mobilita-kicker::before{content:"";width:2.7rem;height:3px;background:currentColor}
.mobilita-site .mobilita-hero h1,.mobilita-site .data-hero h1{max-width:11ch;margin:0;font-family:var(--mb-font-display);font-size:clamp(3.6rem,8vw,8.7rem);font-weight:900;letter-spacing:-.06em;line-height:.84;text-transform:uppercase;text-wrap:balance}
.mobilita-site .mobilita-hero h1 em,.mobilita-site .data-hero h1 em{display:block;color:var(--mobility);font-style:normal}
.mobilita-site .mobilita-hero-lead{max-width:66ch;margin:2rem 0 0;font-size:clamp(1.1rem,1.55vw,1.42rem);line-height:1.62}
.mobilita-site .hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2.2rem}
.mobilita-site .button.is-accent{border-color:var(--mobility);background:var(--mobility);color:#fff}
.mobilita-site .button.is-accent:hover{background:var(--mobility-dark)}
.mobilita-site .mobilita-hero-panel{position:relative;z-index:1;display:grid;grid-template-rows:1fr auto;background:var(--mobility-dark);color:#fff}
.mobilita-site .hero-map{position:relative;min-height:480px;overflow:hidden;background:radial-gradient(circle at 42% 44%,rgba(90,143,194,.36),transparent 33%),linear-gradient(135deg,#172731,#0d161c)}
.mobilita-site .hero-map::before,.mobilita-site .hero-map::after{content:"";position:absolute;inset:10% -20%;border:1px solid rgba(255,255,255,.17);transform:rotate(-18deg)}
.mobilita-site .hero-map::after{inset:-15% 18%;transform:rotate(26deg)}
.mobilita-site .road-line{position:absolute;height:4px;background:#fff;transform-origin:left center;box-shadow:0 0 24px rgba(255,255,255,.2)}
.mobilita-site .road-line.one{width:78%;left:5%;top:22%;transform:rotate(31deg)}
.mobilita-site .road-line.two{width:64%;left:28%;top:70%;transform:rotate(-42deg)}
.mobilita-site .road-line.three{width:58%;left:14%;top:56%;transform:rotate(-8deg)}
.mobilita-site .road-line.four{width:45%;left:52%;top:18%;transform:rotate(81deg)}
.mobilita-site .map-point{position:absolute;width:18px;height:18px;border:4px solid #fff;background:var(--mobility-signal);box-shadow:0 0 0 9px rgba(196,0,24,.18)}
.mobilita-site .map-point.p1{left:26%;top:31%}.mobilita-site .map-point.p2{left:58%;top:53%}.mobilita-site .map-point.p3{left:70%;top:26%}.mobilita-site .map-point.p4{left:39%;top:68%}
.mobilita-site .map-caption{position:absolute;left:clamp(1.2rem,4vw,3rem);right:clamp(1.2rem,4vw,3rem);bottom:clamp(1.2rem,4vw,3rem);display:grid;gap:.4rem;padding:1rem 1.1rem;border-left:5px solid var(--mobility-signal);background:rgba(9,16,20,.82);backdrop-filter:blur(8px)}
.mobilita-site .map-caption span{color:#b9c8d1;font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.mobilita-site .map-caption strong{font-family:var(--mb-font-display);font-size:clamp(1.7rem,3vw,3rem);line-height:.95;text-transform:uppercase}
.mobilita-site .hero-panel-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(255,255,255,.18)}
.mobilita-site .hero-panel-meta div{padding:1.2rem;border-right:1px solid rgba(255,255,255,.18)}.mobilita-site .hero-panel-meta div:last-child{border-right:0}.mobilita-site .hero-panel-meta span{display:block;color:#aebdc5;font-size:.68rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.mobilita-site .hero-panel-meta strong{display:block;margin-top:.35rem;font-size:1.05rem}
.mobilita-site .mobility-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--mb-line);background:var(--mb-paper-2)}
.mobilita-site .mobility-strip article{min-height:145px;padding:1.25rem var(--mb-gutter);border-right:1px solid var(--mb-line)}.mobilita-site .mobility-strip article:last-child{border-right:0}.mobilita-site .mobility-strip span{display:block;color:var(--mb-muted);font-size:.7rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.mobilita-site .mobility-strip strong{display:block;margin-top:.65rem;font-family:var(--mb-font-display);font-size:clamp(1.45rem,2.3vw,2.25rem);line-height:1;text-transform:uppercase}
.mobilita-site .mobility-section{padding:clamp(3.5rem,7vw,7.5rem) var(--mb-gutter);border-bottom:1px solid var(--mb-line)}
.mobilita-site .mobility-section.is-white{background:#fff}.mobilita-site .mobility-section.is-dark{background:var(--mobility-dark);color:#fff}.mobilita-site .mobility-section.is-blue{background:var(--mobility);color:#fff}
.mobilita-site .section-intro{display:grid;grid-template-columns:minmax(180px,.36fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,5rem);align-items:start;margin-bottom:clamp(2rem,5vw,4rem)}
.mobilita-site .section-index{display:grid;gap:.5rem;color:var(--mobility);font-size:.72rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.mobilita-site .section-index::after{content:"";width:64px;height:4px;background:currentColor}.mobilita-site .is-dark .section-index,.mobilita-site .is-blue .section-index{color:#fff}
.mobilita-site .section-intro h2{max-width:15ch;margin:0;font-family:var(--mb-font-display);font-size:clamp(2.6rem,5.6vw,6rem);font-weight:900;letter-spacing:-.045em;line-height:.9;text-transform:uppercase;text-wrap:balance}
.mobilita-site .section-intro p{max-width:68ch;margin:1.3rem 0 0;color:var(--mb-muted);font-size:clamp(1.05rem,1.35vw,1.25rem);line-height:1.7}.mobilita-site .is-dark .section-intro p,.mobilita-site .is-blue .section-intro p{color:#d5dfe4}
.mobilita-site .service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--mb-line);border-left:1px solid var(--mb-line)}
.mobilita-site .service-card{position:relative;min-height:310px;padding:1.5rem;display:flex;flex-direction:column;border-right:1px solid var(--mb-line);border-bottom:1px solid var(--mb-line);background:#fff;color:var(--mb-ink,#202b35)}
.mobilita-site .service-card .number{color:var(--mobility);font-family:var(--font-mono);font-size:.75rem;font-weight:900}.mobilita-site .service-card h3{margin:auto 0 1rem;color:var(--mb-ink,#202b35);font-family:var(--mb-font-display);font-size:clamp(1.8rem,3vw,3.1rem);line-height:.95;text-transform:uppercase;text-shadow:none}.mobilita-site .service-card p{margin:0;color:var(--mb-muted);line-height:1.65}.mobilita-site .service-card::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:5px;background:var(--mobility);transition:right .25s ease}.mobilita-site .service-card:hover::after{right:0}
.mobilita-site .deliverables{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,6vw,6rem);align-items:start}.mobilita-site .deliverable-list{display:grid;border-top:1px solid rgba(255,255,255,.25)}.mobilita-site .deliverable-row{display:grid;grid-template-columns:70px 1fr;gap:1rem;padding:1.25rem 0;border-bottom:1px solid rgba(255,255,255,.25)}.mobilita-site .deliverable-row span{color:#adc2cf;font-family:var(--font-mono);font-size:.78rem}.mobilita-site .deliverable-row strong{display:block;font-size:1.12rem}.mobilita-site .deliverable-row p{margin:.4rem 0 0;color:#c9d4da;line-height:1.55}
.mobilita-site .case-card{position:relative;min-height:540px;padding:clamp(1.5rem,4vw,3rem);display:flex;flex-direction:column;justify-content:flex-end;background:#fff;color:var(--mb-ink);overflow:hidden;box-shadow:var(--mb-shadow)}.mobilita-site .case-card::before{content:"ANGRI";position:absolute;right:-.04em;top:-.06em;color:rgba(63,98,129,.08);font-family:var(--mb-font-display);font-size:clamp(7rem,18vw,16rem);font-weight:900;line-height:.8;letter-spacing:-.08em}.mobilita-site .case-card>*{position:relative;z-index:1}.mobilita-site .case-card .case-label{color:var(--mobility);font-size:.7rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.mobilita-site .case-card h3{max-width:9ch;margin:.8rem 0 1.2rem;font-family:var(--mb-font-display);font-size:clamp(3rem,6vw,6.6rem);line-height:.84;text-transform:uppercase}.mobilita-site .case-card p{max-width:56ch;margin:0 0 1.5rem;font-size:1.06rem;line-height:1.65}
.mobilita-site .method-steps{counter-reset:method;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--mb-line);border-left:1px solid var(--mb-line)}.mobilita-site .method-step{counter-increment:method;min-height:260px;padding:1.35rem;border-right:1px solid var(--mb-line);border-bottom:1px solid var(--mb-line);background:var(--mb-paper-2)}.mobilita-site .method-step::before{content:"0" counter(method);display:block;margin-bottom:3rem;color:var(--mobility);font-family:var(--font-mono);font-weight:900}.mobilita-site .method-step h3{margin:0;font-family:var(--mb-font-display);font-size:1.8rem;text-transform:uppercase}.mobilita-site .method-step p{margin:.8rem 0 0;color:var(--mb-muted);line-height:1.6}
.mobilita-site .plain-note{padding:1.2rem 1.3rem;border-left:5px solid var(--mobility-signal);background:color-mix(in srgb,var(--mobility-signal) 6%,#fff)}.mobilita-site .plain-note p{margin:.35rem 0 0}.mobilita-site .is-dark .plain-note{background:rgba(255,255,255,.07)}
.mobilita-site .contact-block{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end}.mobilita-site .contact-block h2{max-width:14ch;margin:0;font-family:var(--mb-font-display);font-size:clamp(2.8rem,6vw,6.5rem);line-height:.88;text-transform:uppercase}.mobilita-site .contact-block p{max-width:64ch;margin:1.4rem 0 0;color:#d5dfe4;font-size:1.12rem;line-height:1.65}
/* Angri e dati */
.mobilita-site .data-hero{position:relative;padding:clamp(3.8rem,7vw,7rem) var(--mb-gutter) clamp(2rem,5vw,4rem);border-bottom:1px solid var(--mb-line);background:linear-gradient(90deg,rgba(32,43,53,.05) 1px,transparent 1px),linear-gradient(rgba(32,43,53,.05) 1px,transparent 1px),var(--mb-paper);background-size:52px 52px}
.mobilita-site .data-hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:clamp(2rem,6vw,6rem);align-items:end}.mobilita-site .data-hero h1{font-size:clamp(3.4rem,7.4vw,8rem)}.mobilita-site .data-hero-copy>p:last-child{max-width:65ch;margin:1.6rem 0 0;font-size:clamp(1.08rem,1.45vw,1.3rem);line-height:1.65}.mobilita-site .data-side-note{padding:1.35rem;border-top:5px solid var(--mobility);background:#fff;box-shadow:var(--mb-shadow-small)}.mobilita-site .data-side-note span{color:var(--mb-muted);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mobilita-site .data-side-note strong{display:block;margin:.55rem 0;font-size:1.22rem}.mobilita-site .data-side-note p{margin:0;color:var(--mb-muted)}
.mobilita-site .live-bar{display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;align-items:center;margin-top:2.4rem;padding:1rem 0;border-top:1px solid var(--mb-line);border-bottom:1px solid var(--mb-line);font-size:.88rem}.mobilita-site .live-bar strong{font-weight:850}.mobilita-site .status-badge,.mobilita-site .table-status{display:inline-flex;align-items:center;gap:.45rem;font-size:.7rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.mobilita-site .status-badge::before,.mobilita-site .table-status::before{content:"";width:10px;height:10px;background:currentColor}.mobilita-site .status-low{color:var(--mobility-ok)}.mobilita-site .status-medium{color:var(--mobility-warn)}.mobilita-site .status-high{color:var(--mobility-high)}.mobilita-site .status-off{color:var(--mb-muted)}
.mobilita-site .kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--mb-line);border-left:1px solid var(--mb-line)}.mobilita-site .kpi{min-height:170px;padding:1.3rem;background:#fff;border-right:1px solid var(--mb-line);border-bottom:1px solid var(--mb-line)}.mobilita-site .kpi span{display:block;color:var(--mb-muted);font-size:.7rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.mobilita-site .kpi strong{display:block;margin:1rem 0 .45rem;font-family:var(--mb-font-display);font-size:clamp(2.3rem,4.5vw,4.5rem);line-height:.84}.mobilita-site .kpi small{color:var(--mb-muted)}
.mobilita-site .data-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:1px;background:var(--mb-line);border:1px solid var(--mb-line)}.mobilita-site .data-card{min-width:0;padding:clamp(1.2rem,3vw,2.2rem);background:#fff}.mobilita-site .data-card.is-dark{background:var(--mobility-dark);color:#fff}.mobilita-site .data-card h2,.mobilita-site .data-card h3{margin:0;font-family:var(--mb-font-display);text-transform:uppercase}.mobilita-site .data-card h2{font-size:clamp(2.3rem,4vw,4.3rem);line-height:.9}.mobilita-site .data-card h3{font-size:1.65rem}.mobilita-site .data-card>p{color:var(--mb-muted);line-height:1.65}.mobilita-site .data-card.is-dark>p{color:#cbd5da}
.mobilita-site .table-wrap{overflow:auto;border:1px solid var(--mb-line)}.mobilita-site .data-table{width:100%;border-collapse:collapse;background:#fff}.mobilita-site .data-table th,.mobilita-site .data-table td{padding:.9rem .85rem;border-bottom:1px solid var(--mb-line);text-align:left;white-space:nowrap}.mobilita-site .data-table thead th{position:sticky;top:0;background:var(--mobility-dark);color:#fff;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.mobilita-site .data-table tbody th{font-weight:850}.mobilita-site .data-table tbody tr:hover{background:var(--mobility-soft)}
.mobilita-site .bar-chart{display:grid;gap:.7rem}.mobilita-site .bar-row{display:grid;grid-template-columns:minmax(110px,.8fr) minmax(100px,1.4fr) 60px;gap:.8rem;align-items:center}.mobilita-site .bar-row>span:first-child{font-size:.82rem;font-weight:760;overflow-wrap:anywhere}.mobilita-site .bar-track{height:13px;background:var(--mobility-soft);overflow:hidden}.mobilita-site .bar-fill{display:block;height:100%;background:linear-gradient(90deg,var(--mobility),var(--mobility-signal))}.mobilita-site .bar-value{font-family:var(--font-mono);font-size:.78rem;text-align:right}
.mobilita-site .road-ranking{list-style:none;margin:0;padding:0;counter-reset:roads}.mobilita-site .road-ranking li{counter-increment:roads;display:grid;grid-template-columns:48px 1fr auto;gap:.8rem;align-items:center;padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.18)}.mobilita-site .road-ranking li::before{content:"0" counter(roads);color:#aebfc9;font-family:var(--font-mono);font-size:.75rem}.mobilita-site .road-ranking strong{font-size:.95rem}.mobilita-site .road-ranking span{font-family:var(--font-mono);font-size:.8rem}
.mobilita-site .report-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;align-items:center;min-height:0;padding:clamp(1.35rem,2.6vw,2.15rem);border:1px solid var(--mb-line);background:#fff;color:var(--mb-ink,#202b35);text-decoration:none;box-shadow:var(--mb-shadow-small);box-sizing:border-box}.mobilita-site .report-link:visited{color:var(--mb-ink,#202b35)}.mobilita-site .report-link>div{min-width:0;display:grid;gap:.45rem}.mobilita-site .report-link span{display:block;color:var(--mb-muted,#5f6d76);font-size:.72rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.mobilita-site .report-link strong{display:block;margin:0;color:var(--mb-ink,#202b35);font-family:var(--mb-font-display);font-size:clamp(1.8rem,3vw,3rem);line-height:.95;text-transform:uppercase;overflow-wrap:anywhere}.mobilita-site .report-link p{margin:0;max-width:68ch;color:var(--mb-muted,#5f6d76);line-height:1.6}.mobilita-site .report-link i{align-self:center;font-size:2rem;font-style:normal;color:var(--mobility)}.mobilita-site .report-link:hover,.mobilita-site .report-link:focus-visible{border-color:var(--mobility);box-shadow:0 14px 34px rgba(22,35,45,.16)}.mobilita-site .mobility-section.is-dark .report-link,.mobilita-site .mobility-section.is-dark .report-link strong{color:var(--mb-ink,#202b35)}.mobilita-site .mobility-section.is-dark .report-link p,.mobilita-site .mobility-section.is-dark .report-link span{color:var(--mb-muted,#5f6d76)}
/* Pagine testuali e rapporti */
.mobilita-site .text-hero{padding:clamp(3.5rem,7vw,7rem) var(--mb-gutter);border-bottom:1px solid var(--mb-line);background:linear-gradient(90deg,rgba(32,43,53,.05) 1px,transparent 1px),linear-gradient(rgba(32,43,53,.05) 1px,transparent 1px),var(--mb-paper);background-size:52px 52px}.mobilita-site .text-hero h1{max-width:12ch;margin:0;font-family:var(--mb-font-display);font-size:clamp(3rem,6.4vw,7rem);line-height:.87;text-transform:uppercase}.mobilita-site .text-hero p:last-child{max-width:68ch;margin:1.4rem 0 0;font-size:clamp(1.08rem,1.4vw,1.28rem);line-height:1.65}
.mobilita-site .prose-shell{display:grid;grid-template-columns:minmax(180px,.35fr) minmax(0,1fr);gap:clamp(2rem,6vw,6rem);padding:clamp(3rem,7vw,7rem) var(--mb-gutter);background:#fff}.mobilita-site .prose-nav{position:sticky;top:110px;align-self:start;display:grid;gap:.7rem;border-top:4px solid var(--mobility);padding-top:1rem}.mobilita-site .prose-nav strong{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}.mobilita-site .prose-nav a{color:var(--mb-muted);font-size:.9rem}.mobilita-site .prose{max-width:78ch}.mobilita-site .prose h2{margin:3.2rem 0 1rem;padding-top:1rem;border-top:1px solid var(--mb-line);font-family:var(--mb-font-display);font-size:clamp(2rem,3.6vw,3.7rem);line-height:.95;text-transform:uppercase}.mobilita-site .prose h2:first-child{margin-top:0}.mobilita-site .prose h3{margin:2rem 0 .7rem;font-size:1.25rem}.mobilita-site .prose p,.mobilita-site .prose li{font-size:var(--mb-text-body);line-height:1.75}.mobilita-site .prose li+li{margin-top:.55rem}
.mobilita-site .report-shell{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1.5rem;padding:clamp(2rem,5vw,5rem) var(--mb-gutter);align-items:start}.mobilita-site .report-paper{min-width:0;padding:clamp(1.4rem,4vw,3.5rem);background:#fff;box-shadow:var(--mb-shadow)}.mobilita-site .report-kicker{color:var(--mobility);font-size:.72rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.mobilita-site .report-paper>h1{margin:.5rem 0 1rem;font-family:var(--mb-font-display);font-size:clamp(3rem,6vw,6rem);line-height:.87;text-transform:uppercase}.mobilita-site .report-paper>h2{margin:3rem 0 1rem;padding-top:1.1rem;border-top:1px solid var(--mb-line);font-family:var(--mb-font-display);font-size:clamp(2rem,3.5vw,3.5rem);line-height:.95;text-transform:uppercase}.mobilita-site .report-paper>p{font-size:1.03rem;line-height:1.72}.mobilita-site .report-meta{display:flex;flex-wrap:wrap;gap:.45rem 1.2rem;margin-bottom:2rem;padding:1rem 0;border-top:1px solid var(--mb-line);border-bottom:1px solid var(--mb-line);color:var(--mb-muted);font-size:.78rem}.mobilita-site .report-sidebar{position:sticky;top:110px;display:grid;gap:1rem}.mobilita-site .report-controls{display:grid;gap:.75rem;padding:1rem;border:1px solid var(--mb-line);background:#fff}.mobilita-site .report-controls label,.mobilita-site .report-controls>strong{font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.mobilita-site .report-controls select{width:100%;min-height:48px;padding:.7rem;border:1px solid var(--mb-line);background:#fff;color:var(--mb-ink)}
.mobilita-site .empty-state{padding:2rem;border-left:5px solid var(--mb-muted);background:var(--mb-paper-2)}.mobilita-site .empty-state h2{margin:0;font-family:var(--mb-font-display);text-transform:uppercase}.mobilita-fallback-footer{padding:2rem;background:var(--mobility-dark);color:#fff}
@media(max-width:1100px){.mobilita-site .mobilita-hero,.mobilita-site .data-hero-grid{grid-template-columns:1fr}.mobilita-site .mobilita-hero-panel{min-height:560px}.mobilita-site .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobilita-site .method-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.mobilita-site .data-layout{grid-template-columns:1fr}.mobilita-site .report-shell{grid-template-columns:1fr}.mobilita-site .report-sidebar{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.mobilita-site .deliverables{grid-template-columns:1fr}.mobilita-site .case-card{min-height:440px}}
@media(max-width:760px){.mobilita-site .mobilita-hero{min-height:auto}.mobilita-site .mobilita-hero-copy{padding:3.2rem 1rem 3.8rem}.mobilita-site .mobilita-hero h1,.mobilita-site .data-hero h1{font-size:clamp(3.2rem,15vw,5.6rem)}.mobilita-site .mobilita-hero-panel{min-height:500px}.mobilita-site .hero-map{min-height:400px}.mobilita-site .hero-panel-meta{grid-template-columns:1fr}.mobilita-site .hero-panel-meta div{border-right:0;border-bottom:1px solid rgba(255,255,255,.18)}.mobilita-site .mobility-strip{grid-template-columns:1fr 1fr}.mobilita-site .mobility-strip article:nth-child(2){border-right:0}.mobilita-site .mobility-strip article:nth-child(-n+2){border-bottom:1px solid var(--mb-line)}.mobilita-site .mobility-section,.mobilita-site .data-hero,.mobilita-site .text-hero,.mobilita-site .prose-shell,.mobilita-site .report-shell{padding-left:1rem;padding-right:1rem}.mobilita-site .section-intro,.mobilita-site .prose-shell{grid-template-columns:1fr}.mobilita-site .service-grid,.mobilita-site .method-steps,.mobilita-site .kpi-grid{grid-template-columns:1fr}.mobilita-site .service-card{min-height:240px}.mobilita-site .contact-block{grid-template-columns:1fr;align-items:start}.mobilita-site .report-sidebar{grid-template-columns:1fr}.mobilita-site .prose-nav{position:static}.mobilita-site .bar-row{grid-template-columns:95px 1fr 48px;gap:.45rem}.mobilita-site .report-link{grid-template-columns:1fr auto}.mobilita-site .data-table th,.mobilita-site .data-table td{padding:.75rem .65rem}.mobilita-site .case-card h3{font-size:clamp(3rem,14vw,5rem)}}
@media(max-width:560px){.mobilita-site .report-link{grid-template-columns:1fr;gap:1rem}.mobilita-site .report-link i{justify-self:end}.mobilita-site .report-link strong{font-size:clamp(1.65rem,10vw,2.5rem)}}
@media(max-width:420px){.mobilita-site .mobility-strip{grid-template-columns:1fr}.mobilita-site .mobility-strip article{border-right:0;border-bottom:1px solid var(--mb-line)}.mobilita-site .hero-actions{display:grid}.mobilita-site .hero-actions .button{width:100%}.mobilita-site .deliverable-row{grid-template-columns:42px 1fr}.mobilita-site .bar-row{grid-template-columns:1fr 46px}.mobilita-site .bar-track{grid-column:1/-1;grid-row:2}.mobilita-site .bar-value{grid-column:2;grid-row:1}}
@media print{.mobilita-site .preview-header,.mobilita-site .site-breadcrumb,.mobilita-site .site-footer,.mobilita-site .no-print{display:none!important}.mobilita-site body,.mobilita-site main{background:#fff}.mobilita-site .report-shell{display:block;padding:0}.mobilita-site .report-paper{box-shadow:none;padding:0}.mobilita-site .data-table thead th{position:static;color:#000;background:#eee}.mobilita-site .kpi{break-inside:avoid}.mobilita-site .report-paper h2{break-after:avoid}}

/* Mobilità Angri · confronto periodi e qualità archivio */
.mobilita-site .comparison-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--mb-line);border:1px solid var(--mb-line)}
.mobilita-site .comparison-card{position:relative;min-width:0;padding:1.35rem;background:#fff}
.mobilita-site .comparison-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--mb-muted)}
.mobilita-site .comparison-card.is-better::before{background:var(--mobility-ok)}
.mobilita-site .comparison-card.is-worse::before{background:var(--mobility-signal)}
.mobilita-site .comparison-card>span{display:block;color:var(--mb-muted);font-size:.7rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
.mobilita-site .comparison-card>strong{display:block;margin:.7rem 0 .45rem;color:var(--mb-ink);font-family:var(--mb-font-display);font-size:clamp(1.8rem,3vw,3.2rem);line-height:.9;text-transform:uppercase;overflow-wrap:anywhere}
.mobilita-site .comparison-card p{margin:0;color:var(--mb-muted);font-size:.82rem;line-height:1.5}
.mobilita-site .comparison-card small{display:inline-block;margin-top:.75rem;padding:.28rem .45rem;background:var(--mb-paper-2);color:var(--mb-ink);font-family:var(--font-mono);font-size:.72rem;font-weight:750}
.mobilita-site .report-comparison{grid-template-columns:repeat(2,minmax(0,1fr));margin:1.3rem 0 2rem}
.mobilita-site .health-panel{border:1px solid var(--mb-line);background:#fff;box-shadow:var(--mb-shadow-small)}
.mobilita-site .health-heading{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.2rem;border-bottom:1px solid var(--mb-line);background:var(--mb-paper-2)}
.mobilita-site .health-heading>a{font-size:.8rem;font-weight:800}
.mobilita-site .health-heading>span:last-child{color:var(--mb-muted);font-size:.78rem}
.mobilita-site .health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.mobilita-site .health-grid article{min-width:0;padding:1.35rem;border-right:1px solid var(--mb-line)}
.mobilita-site .health-grid article:last-child{border-right:0}
.mobilita-site .health-grid span{display:block;color:var(--mb-muted);font-size:.7rem;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
.mobilita-site .health-grid strong{display:block;margin-top:.75rem;color:var(--mb-ink);font-size:clamp(1rem,1.7vw,1.35rem);line-height:1.25;overflow-wrap:anywhere}
.mobilita-site .missing-dates{display:flex;flex-wrap:wrap;gap:.55rem;padding:1.2rem;border:1px solid var(--mb-line);background:#fff}
.mobilita-site .missing-dates span{padding:.45rem .6rem;border:1px solid var(--mb-line);background:var(--mb-paper-2);font-family:var(--font-mono);font-size:.75rem}
.mobilita-site .data-card h3{margin:0 0 1rem;font-family:var(--mb-font-display);font-size:clamp(1.8rem,3vw,3rem);line-height:.95;text-transform:uppercase}
@media(max-width:980px){.mobilita-site .comparison-grid,.mobilita-site .health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobilita-site .health-grid article:nth-child(2){border-right:0}.mobilita-site .health-grid article:nth-child(-n+2){border-bottom:1px solid var(--mb-line)}}
@media(max-width:620px){.mobilita-site .comparison-grid,.mobilita-site .report-comparison,.mobilita-site .health-grid{grid-template-columns:1fr}.mobilita-site .health-heading{align-items:flex-start;flex-direction:column}.mobilita-site .health-grid article{border-right:0;border-bottom:1px solid var(--mb-line)}.mobilita-site .health-grid article:last-child{border-bottom:0}}

/* Mobilità Angri · archivio rapporti e sintesi operativa */
.mobilita-site .section-after-link{margin:1.2rem 0 0;color:rgba(255,255,255,.78)}
.mobilita-site .section-after-link a{color:#fff;font-weight:800;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
.mobilita-site .report-executive{margin:1.5rem 0 2rem;padding:clamp(1.2rem,3vw,2rem);border-left:6px solid var(--mobility);background:var(--mb-paper-2)}
.mobilita-site .report-executive>h2{margin:.45rem 0 .8rem;padding:0;border:0;color:var(--mb-ink);font-family:var(--mb-font-display);font-size:clamp(2rem,4vw,4rem);line-height:.92;text-transform:uppercase}
.mobilita-site .report-executive>p:last-child{margin:0;font-size:1.05rem;line-height:1.65}
.mobilita-site .report-findings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:1.2rem 0 2rem;border:1px solid var(--mb-line);background:var(--mb-line)}
.mobilita-site .report-findings article{min-width:0;padding:1.35rem;background:#fff}
.mobilita-site .report-findings span{display:block;color:var(--mobility);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.mobilita-site .report-findings p{margin:.65rem 0 0;line-height:1.62}
.mobilita-site .report-checks{margin:1.2rem 0 2rem;padding:1.3rem 1.4rem 1.3rem 3rem;border-left:6px solid var(--mobility);background:var(--mb-paper-2)}
.mobilita-site .report-checks li{padding-left:.35rem;line-height:1.65}
.mobilita-site .report-checks li+li{margin-top:.65rem}
.mobilita-site .report-trace{padding:1.2rem;border:1px solid var(--mb-line);background:#fff}
.mobilita-site .report-trace span{display:block;color:var(--mb-muted);font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.mobilita-site .report-trace strong{display:block;margin:.5rem 0;color:var(--mb-ink);font-family:var(--font-mono);font-size:clamp(1.3rem,2.5vw,2rem);letter-spacing:.06em;overflow-wrap:anywhere}
.mobilita-site .report-trace p{margin:0;color:var(--mb-muted);font-size:.86rem;line-height:1.55}
.mobilita-site .reports-list{display:grid;border-top:1px solid var(--mb-line)}
.mobilita-site .report-row{display:grid;grid-template-columns:minmax(210px,1.1fr) minmax(130px,.55fr) minmax(130px,.55fr) auto;gap:1px;border-right:1px solid var(--mb-line);border-bottom:1px solid var(--mb-line);border-left:1px solid var(--mb-line);background:var(--mb-line)}
.mobilita-site .report-row>div{min-width:0;padding:1.2rem;background:#fff}
.mobilita-site .report-row-date span,.mobilita-site .report-row-data span{display:block;color:var(--mb-muted);font-size:.68rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.mobilita-site .report-row-date strong{display:block;margin:.55rem 0 .25rem;font-family:var(--mb-font-display);font-size:clamp(1.7rem,3vw,2.8rem);line-height:.92;text-transform:uppercase}
.mobilita-site .report-row-date small,.mobilita-site .report-row-data small{color:var(--mb-muted);font-family:var(--font-mono);font-size:.72rem}
.mobilita-site .report-row-data strong{display:block;margin:.55rem 0 .25rem;font-size:1.5rem}
.mobilita-site .report-row-actions{display:flex;flex-wrap:wrap;gap:.55rem;align-content:center;justify-content:flex-end}
.mobilita-site .report-row-actions .button{min-width:76px;padding:.7rem .85rem}
@media(max-width:980px){.mobilita-site .report-row{grid-template-columns:1fr 1fr}.mobilita-site .report-row-actions{grid-column:1/-1;justify-content:flex-start}.mobilita-site .report-findings{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.mobilita-site .report-findings,.mobilita-site .report-row{grid-template-columns:1fr}.mobilita-site .report-row-actions{grid-column:auto}.mobilita-site .report-row-actions .button{flex:1}.mobilita-site .section-after-link{font-size:.92rem}}

/* Mobilità Angri · rapporti mensili, trimestrali e annuali */
.mobilita-site .period-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--mb-line);background:var(--mb-line)}
.mobilita-site .period-card{min-width:0;padding:clamp(1.3rem,3vw,2rem);background:#fff}
.mobilita-site .period-card>span{display:block;color:var(--mobility);font-size:.72rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.mobilita-site .period-card>strong{display:block;margin:.7rem 0 .45rem;color:var(--mb-ink);font-family:var(--mb-font-display);font-size:clamp(3rem,6vw,5.5rem);line-height:.85;text-transform:uppercase}
.mobilita-site .period-card p{margin:0 0 1rem;color:var(--mb-muted);line-height:1.6}
.mobilita-site .period-card a{font-weight:850;text-underline-offset:.22em}
.mobilita-site .report-link.is-on-light{border-color:var(--mb-line);background:var(--mb-ink);color:#fff}
.mobilita-site .report-link.is-on-light span,.mobilita-site .report-link.is-on-light p{color:rgba(255,255,255,.76)}
.mobilita-site .report-controls select{width:100%;min-height:46px;padding:.7rem .8rem;border:1px solid var(--mb-line);background:#fff;color:var(--mb-ink);font:inherit}
.mobilita-site .report-controls label{display:block;margin:.3rem 0 .4rem;color:var(--mb-muted);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:860px){.mobilita-site .period-card-grid{grid-template-columns:1fr}}


/* Patch 019 · contrasto definitivo della sezione Qualità dei dati.
   Colori letterali e !important evitano eredità dal tema scuro o da cache parziali. */
.mobilita-site .quality-rules-section .service-card,
.mobilita-site .quality-rules-section .service-card h3,
.mobilita-site .quality-rules-section .service-card p {
  color:#202b35 !important;
  -webkit-text-fill-color:#202b35 !important;
  opacity:1 !important;
  visibility:visible !important;
  text-shadow:none !important;
}
.mobilita-site .quality-rules-section .service-card .number {
  color:#3f6281 !important;
  -webkit-text-fill-color:#3f6281 !important;
}
.mobilita-site .quality-rules-section .quality-action,
.mobilita-site .quality-rules-section .quality-action:link,
.mobilita-site .quality-rules-section .quality-action:visited {
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  border-color:rgba(255,255,255,.72) !important;
  background:transparent !important;
  opacity:1 !important;
  visibility:visible !important;
  text-shadow:none !important;
}
.mobilita-site .quality-rules-section .quality-action:hover,
.mobilita-site .quality-rules-section .quality-action:focus-visible {
  background:#ffffff !important;
  color:#16232d !important;
  -webkit-text-fill-color:#16232d !important;
}
