/* Stile editoriale 'Apple': pagina a tutta larghezza, vetro, comparse a scorrimento, parallasse. */
@layer osv {
html { scroll-behavior: smooth; }
@media (min-width: 1100px) {
  html body .wrap, html body .shell, html body .osv-quick, html body .osv-key, html body .osv-evid, html body .osv-cities,
  html body .page-hero, html body .report-workspace-head, html body .illustrated-heading {
    width: min(1760px, calc(100% - 2 * clamp(28px, 4vw, 96px))) !important; max-width: none !important; margin-left: auto !important; margin-right: auto !important;
  }
  html body .shell .shell, html body .wrap .wrap, html body .wrap .shell, html body .shell .wrap, html body .shell .page-hero { width: 100% !important; }
}
html body header.site { background: rgba(255,255,255,.74) !important; -webkit-backdrop-filter: saturate(180%) blur(22px); backdrop-filter: saturate(180%) blur(22px); border-bottom-color: rgba(11,42,69,.08) !important; }
html body .topline { background: rgba(255,255,255,.9) !important; }
/* titoli grandi, stile editoriale */
html body[data-page="home"] .hero h1 { font-size: clamp(40px, 5.4vw, 88px) !important; letter-spacing: -.045em !important; line-height: 1.01 !important; }
html body .page-hero h1 { font-size: clamp(36px, 4.6vw, 76px) !important; letter-spacing: -.04em !important; line-height: 1.03 !important; }
html body main h2 { letter-spacing: -.035em !important; }
/* ingresso a comparsa */
.nx-rv { opacity: 0; }
.nx-rv.in { opacity: 1; animation: nxRise 1s cubic-bezier(.2,.75,.2,1) backwards; animation-delay: var(--d, 0s); }
@keyframes nxRise { from { opacity: 0; transform: translate3d(0, 34px, 0) scale(.985); } to { opacity: 1; transform: none; } }
/* parallasse sulle testate */
html body .hero .hero-art, html body .page-hero::before, html body .report-workspace-head::before { transform: translate3d(0, var(--py, 0px), 0) scale(1.08); will-change: transform; }
/* card: sollevamento e zoom morbido */
html body .ocard, html body .rcard, html body .pcard, html body .osv-key li, html body .osv-cities article { transition: transform .5s cubic-bezier(.2,.75,.2,1), box-shadow .5s ease !important; }
html body .ocard:hover, html body .rcard:hover, html body .pcard:hover, html body .osv-cities article:hover { transform: translateY(-8px) !important; box-shadow: 0 30px 60px -30px rgba(8,38,58,.24) !important; }
html body .ocard img, html body .rcard img, html body .osv-cities img { transition: transform .9s cubic-bezier(.2,.75,.2,1); }
html body .ocard:hover img, html body .rcard:hover img, html body .osv-cities article:hover img { transform: scale(1.06); }
html body .ocard .oc-art, html body .rcard .rc-art, html body .osv-cities article { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .nx-rv { opacity: 1 !important; animation: none !important; } html body .hero .hero-art, html body .page-hero::before, html body .report-workspace-head::before { transform: none !important; } }

:root { --nx-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Inter, system-ui, sans-serif; }
html body, html body *:not(svg):not(svg *):not(code):not(pre) { font-family: var(--nx-font) !important; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html body { background: #fbfbfd !important; color: #1d1d1f; }
/* barra sottile: via la riga di servizio, navigazione leggera */
html body .topline { display: none !important; }
html body header.site .head-row { padding-top: 8px !important; padding-bottom: 8px !important; }
html body header.site .logo img { height: 40px !important; }
html body header.site .search input { height: 38px !important; font-size: 13.5px !important; background: rgba(0,0,0,.045) !important; border-color: transparent !important; }
html body header.site nav.nav a { font-size: 13px !important; font-weight: 400 !important; letter-spacing: -.005em; }
html body header.site nav.nav a.active { font-weight: 500 !important; }
/* testate al centro, tipografia grande */
html body[data-page="home"] .hero { min-height: min(70vh, 640px); display: grid; align-content: center; row-gap: 30px; border-radius: 34px !important; }
html body[data-page="home"] .hero-copy { text-align: center; margin-inline: auto; max-width: 980px; align-items: center; }
html body[data-page="home"] .hero .lead { margin-inline: auto; max-width: 60ch; font-size: clamp(17px, 1.5vw, 24px) !important; }
html body[data-page="home"] .hero-pills { justify-content: center !important; }




/* sezioni ariose e titoli editoriali */
html body main h2 { font-size: clamp(30px, 3.6vw, 60px) !important; line-height: 1.06 !important; font-weight: 700 !important; }
html body main section { scroll-margin-top: 90px; }
html body .section, html body main > section.shell { padding-top: clamp(40px, 6vw, 96px) !important; padding-bottom: clamp(40px, 6vw, 96px) !important; }
html body main p { color: #424245; }
/* card: bianche, senza bordo, grandi raggi, ombra morbida */
html body .ocard, html body .rcard, html body .pcard, html body .osv-key li, html body .osv-quick article, html body .osv-cities article, html body .osv-evid > * {
  background: #fff !important; border: 0 !important; border-radius: 28px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 48px -18px rgba(0,0,0,.14) !important;
}
html body .ocard img, html body .rcard img { border-radius: 0; }
html body .ocard .oc-art, html body .rcard .rc-art { border-radius: 28px 28px 0 0; }
/* pulsanti a pillola, link "scopri" */
html body .btn-white, html body .btn, html body a.btn-primary { border-radius: 999px !important; font-weight: 600 !important; letter-spacing: -.01em; padding-inline: 24px !important; }
html body .rc-link, html body .pc-link, html body .go { font-weight: 500 !important; }
html body .rc-link::after { content: ""; }
/* la testata si rimpicciolisce leggermente mentre si scorre */
html body .hero, html body .page-hero { transform: scale(var(--sc, 1)); transform-origin: 50% 0; transition: border-radius .3s; will-change: transform; }
@media (max-width: 680px) { html body[data-page="home"] .hero { min-height: auto; } html body header.site nav.nav a { font-size: 13.5px !important; } }
@media (prefers-reduced-motion: reduce) { html body .hero, html body .page-hero { transform: none !important; } }

/* immagini delle card: proporzione 16:10, a filo del bordo, ritaglio centrato */
html body .research-illustration, html body .product-card > img, html body .product-card .research-illustration {
  display: block !important; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; object-fit: cover !important; object-position: center !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: #06202f;
}
html body .product-card { overflow: hidden !important; padding-top: 0 !important; }
html body .rcard .rc-art, html body .ocard .oc-art { display: block !important; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; overflow: hidden !important; border-radius: 0 !important; }
html body .rcard .rc-art img, html body .ocard .oc-art img { width: 100% !important; height: 100% !important; aspect-ratio: auto !important; object-fit: cover !important; object-position: center !important; }
html body .rcard, html body .ocard { overflow: hidden !important; }
html body .osv-cities article img { width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; object-fit: cover !important; }
html body header.site { background: rgba(255,255,255,.88) !important; }

html body .page-hero { border-radius: 34px !important; }
/* ===== Passata "Apple" completa ===== */
:root { --ap-blue: #0071e3; --ap-blue-h: #0077ed; --ap-link: #0066cc; --ap-gray: #f5f5f7; --ap-ink: #1d1d1f; --ap-mute: #6e6e73; }
@media (min-width: 900px) {
  html body header.site .head-row { flex-wrap: nowrap !important; gap: 24px !important; min-height: 52px; }
  html body header.site .head-right { flex-direction: row !important; align-items: center !important; justify-content: flex-end !important; gap: 20px !important; flex: 1 1 auto !important; }
  html body header.site nav.nav { order: 1; flex: 0 1 auto; justify-content: center !important; gap: clamp(14px, 1.8vw, 30px) !important; }
  html body header.site .search { order: 2; flex: 0 0 auto; width: 210px; transition: width .35s cubic-bezier(.2,.75,.2,1); }
  html body header.site .search:focus-within { width: min(380px, 30vw); }
}
html body header.site { border-bottom: 1px solid rgba(0,0,0,.08) !important; }
html body[data-page="home"] #ricerche { background: var(--ap-gray); box-shadow: 0 0 0 100vmax var(--ap-gray); clip-path: inset(0 -100vmax); padding-top: clamp(48px, 6vw, 96px); padding-bottom: clamp(48px, 6vw, 96px); margin-top: clamp(40px, 5vw, 80px); }
html body[data-page="home"] #osservatori, html body[data-page="home"] #rassegna-stampa { padding-top: clamp(48px, 6vw, 96px); padding-bottom: clamp(24px, 4vw, 64px); }
html body[data-page="home"] #osservatori > h2, html body[data-page="home"] #rassegna-stampa > h2, html body[data-page="home"] #rassegna-stampa > .sub { text-align: center; margin-inline: auto; }
html body[data-page="home"] #rassegna-stampa > .sub { color: var(--ap-mute) !important; font-size: clamp(16px, 1.4vw, 21px) !important; max-width: 52ch; }
html body[data-page="home"] #ricerche .row-head h2 { font-size: clamp(32px, 4vw, 64px) !important; }
html body main h2 { font-weight: 700 !important; color: var(--ap-ink); }
html body main p { color: var(--ap-mute); }
html body main .rc-link, html body main .pc-link, html body main a.go { color: var(--ap-link) !important; font-weight: 400 !important; }
html body main .rc-link:hover, html body main .pc-link:hover { text-decoration: underline; }
html body main .btn-dark, html body main a.btn-primary, html body main .report-actions a, html body main .product-card .btn {
  background: var(--ap-blue) !important; color: #fff !important; border: 0 !important; border-radius: 980px !important; font-weight: 400 !important; padding: 11px 22px !important; font-size: 15px !important;
}
html body main .btn-dark:hover, html body main .product-card .btn:hover { background: var(--ap-blue-h) !important; }
html body .filters button, html body .filters a { background: var(--ap-gray) !important; border: 0 !important; color: var(--ap-ink) !important; border-radius: 980px !important; font-weight: 400 !important; }
html body .filters button.on, html body .filters button[aria-pressed="true"], html body .filters .active { background: var(--ap-ink) !important; color: #fff !important; }
html body .ocard, html body .rcard, html body .pcard, html body .product-card, html body .osv-key li, html body .osv-quick article, html body .osv-cities article { border-radius: 28px !important; }
html body .product-card { background: #fff !important; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 48px -18px rgba(0,0,0,.14) !important; border: 0 !important; }
html body[data-page="home"] .hero h1 { font-size: clamp(44px, 6vw, 96px) !important; font-weight: 700 !important; }
html body .page-hero h1 { font-weight: 700 !important; }
html body .osv-key li b, html body .osv-key li strong { font-size: clamp(36px, 3.6vw, 60px) !important; letter-spacing: -.04em; font-weight: 700; }
html body .osv-key li span { color: var(--ap-mute) !important; font-weight: 400 !important; }

html body[data-page="home"] #ricerche .filters button, html body[data-page="home"] #ricerche .filters a { background: #fff !important; }
html body[data-page="home"] #ricerche .filters button.on, html body[data-page="home"] #ricerche .filters .active { background: var(--ap-ink) !important; }

/* header più sottile e footer chiaro in stile Apple */
html body header.site .head-row { min-height: 48px !important; padding-top: 6px !important; padding-bottom: 6px !important; }
html body header.site .logo img { height: 34px !important; width: auto !important; }
html body header.site nav.nav a { font-size: 12.5px !important; color: #1d1d1f !important; -webkit-text-fill-color: #1d1d1f !important; opacity: .82; transition: opacity .2s; }
html body header.site nav.nav a:hover, html body header.site nav.nav a.active { opacity: 1; }
html body header.site nav.nav a.active { border-bottom-color: transparent !important; font-weight: 600 !important; }
html body header.site .search input { height: 34px !important; font-size: 13px !important; }
html body .site-foot { background: #f5f5f7 !important; color: #6e6e73 !important; margin-top: clamp(56px, 7vw, 110px) !important; border-top: 1px solid rgba(0,0,0,.08) !important; }
html body .site-foot .foot-row { grid-template-columns: auto 1fr auto !important; padding: 34px 0 30px !important; gap: 28px !important; }
html body .site-foot .logo img { height: 32px !important; width: auto !important;  filter: none !important; }
html body .site-foot .foot-nav { gap: 6px 22px !important; }
html body .site-foot .foot-nav a { border: 0 !important; padding: 0 !important; color: #424245 !important; -webkit-text-fill-color: #424245 !important; font-size: 12px !important; font-weight: 400 !important; }
html body .site-foot .foot-nav a:hover { color: #1d1d1f !important; -webkit-text-fill-color: #1d1d1f !important; text-decoration: underline; }
html body .site-foot .foot-copy { color: #6e6e73 !important; font-size: 12px !important; }
@media (max-width: 980px) { html body .site-foot .foot-row { grid-template-columns: 1fr !important; text-align: center; justify-items: center; } html body .site-foot .foot-nav { justify-content: center; } }

/* rassegna stampa: tessere editoriali, logo piccolo, titolo in evidenza */
html body[data-page="home"] .press-grid { gap: clamp(14px, 1.6vw, 24px) !important; }
html body[data-page="home"] .pcard { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 18px !important; padding: clamp(22px, 2vw, 32px) !important; background: var(--ap-gray) !important; box-shadow: none !important; border-radius: 28px !important; min-height: 280px; transition: background .35s ease, transform .5s cubic-bezier(.2,.75,.2,1) !important; }
html body[data-page="home"] .pcard:hover { background: #fff !important; box-shadow: 0 24px 54px -24px rgba(0,0,0,.25) !important; transform: translateY(-4px) !important; }
html body[data-page="home"] .pcard .pc-thumb { width: auto !important; height: 34px !important; padding: 0 !important; margin: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; display: flex !important; align-items: center !important; }
html body[data-page="home"] .pcard .pc-thumb img { height: 30px !important; width: auto !important; max-width: 150px !important; object-fit: contain !important; object-position: left center !important; filter: grayscale(1) contrast(1.15); opacity: .92; transition: filter .35s, opacity .35s; }
html body[data-page="home"] .pcard:hover .pc-thumb img { filter: none; opacity: 1; }
html body[data-page="home"] .pcard .pc-noimg { display: none !important; }
html body[data-page="home"] .pcard .pc-thumb:has(img) + .pc-body .pc-outlet { display: none !important; }
html body[data-page="home"] .pcard .pc-body { display: flex !important; flex-direction: column !important; gap: 10px !important; flex: 1; width: 100%; padding: 0 !important; }
html body[data-page="home"] .pcard .pc-outlet { font-size: 13px !important; font-weight: 600 !important; color: var(--ap-ink) !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 !important; }
html body[data-page="home"] .pcard h3 { font-size: clamp(18px, 1.5vw, 22px) !important; line-height: 1.25 !important; letter-spacing: -.02em !important; font-weight: 600 !important; color: var(--ap-ink) !important; margin: 0 !important; display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; }
html body[data-page="home"] .pcard .pc-date { font-size: 13px !important; color: var(--ap-mute) !important; margin: 0 !important; }
html body[data-page="home"] .pcard .pc-link, html body[data-page="home"] .pcard .pc-note { margin-top: auto !important; padding-top: 6px; font-size: 14px !important; color: var(--ap-link) !important; }
html body[data-page="home"] .pcard .pc-note { color: var(--ap-mute) !important; }

html body[data-page="home"] .pcard .pc-thumb img { mix-blend-mode: multiply; background: transparent !important; }
html body[data-page="home"] .pcard:hover .pc-thumb img { mix-blend-mode: multiply; }

/* freccia degli osservatori: niente disco scuro all'hover */
html body[data-page="home"] .ocard .oc-go { transition: transform .35s cubic-bezier(.2,.75,.2,1), background .3s, border-color .3s; }
html body[data-page="home"] .ocard:hover .oc-go { background: var(--ap-gray) !important; color: var(--ap-ink) !important; border-color: rgba(0,0,0,.18) !important; transform: translateX(4px); }
html body[data-page="home"] .ocard:hover .oc-go svg { color: var(--ap-ink) !important; stroke: var(--ap-ink) !important; }
/* filtro attivo sempre scuro */
html body[data-page="home"] #ricerche .filters button[aria-pressed="true"] { background: var(--ap-ink) !important; color: #fff !important; }
/* mobile: tessere e testate più compatte */
@media (max-width: 680px) {
  html body[data-page="home"] .hero h1 { font-size: clamp(34px, 10vw, 46px) !important; }
  html body[data-page="home"] .pcard { min-height: 0 !important; padding: 20px !important; }
  html body[data-page="home"] #osservatori, html body[data-page="home"] #rassegna-stampa, html body[data-page="home"] #ricerche { padding-top: 40px !important; padding-bottom: 28px !important; }
  html body main h2 { font-size: clamp(26px, 7.4vw, 34px) !important; }
  html body .site-foot .foot-row { padding: 26px 0 !important; }
}

/* menu a hamburger su mobile e tablet */
.nx-burger { display: none; }
@media (max-width: 899px) {
  html body header.site { position: relative !important; top: auto !important; }
  html body header.site .head-row { flex-wrap: nowrap !important; justify-content: space-between !important; align-items: center !important; min-height: 56px !important; gap: 12px !important; position: relative; }
  html body header.site .logo img { height: 32px !important; width: auto !important; }
  html body header.site .nx-burger { display: inline-flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; border: 0; background: transparent; cursor: pointer; padding: 0; -webkit-tap-highlight-color: transparent; }
  html body header.site .nx-burger span { position: relative; display: block; width: 22px; height: 2px; background: #1d1d1f; border-radius: 2px; transition: background .2s; }
  html body header.site .nx-burger span::before, html body header.site .nx-burger span::after { content: ""; position: absolute; left: 0; width: 22px; height: 2px; background: #1d1d1f; border-radius: 2px; transition: transform .3s cubic-bezier(.2,.75,.2,1), top .3s; }
  html body header.site .nx-burger span::before { top: -7px; }
  html body header.site .nx-burger span::after { top: 7px; }
  html body header.site.nx-open .nx-burger span { background: transparent; }
  html body header.site.nx-open .nx-burger span::before { top: 0; transform: rotate(45deg); }
  html body header.site.nx-open .nx-burger span::after { top: 0; transform: rotate(-45deg); }
  html body header.site .head-right { display: none !important; position: absolute; left: 0; right: 0; top: 100%; z-index: 80; flex-direction: column !important; align-items: stretch !important; gap: 10px !important;
    padding: 10px clamp(20px, 5vw, 32px) 24px !important; background: #fff;
    border-bottom: 1px solid rgba(0,0,0,.1); box-shadow: 0 30px 50px -30px rgba(0,0,0,.35); max-height: calc(100vh - 60px); overflow-y: auto; }
  html body header.site.nx-open .head-right { display: flex !important; animation: nxMenu .35s cubic-bezier(.2,.75,.2,1); }
  html body header.site .head-right .search { order: -1; width: 100% !important; }
  html body header.site nav.nav { flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; gap: 0 !important; overflow: visible !important; }
  html body header.site nav.nav a { font-size: 22px !important; font-weight: 600 !important; padding: 14px 2px !important; border-bottom: 1px solid rgba(0,0,0,.08) !important; opacity: 1 !important; white-space: normal; }
  html body header.site nav.nav a.active { color: var(--ap-blue) !important; -webkit-text-fill-color: var(--ap-blue) !important; }
}
@keyframes nxMenu { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }


/* icone e frecce in stile SF Symbols: tratto sottile e arrotondato, chevron al posto delle frecce */
html body .oc-go svg, html body .oc-kick svg, html body .hero-pills svg, html body .s-ico svg, html body header.site svg, html body .btn-white svg, html body .row-head svg, html body .more-row svg, html body .rc-link svg, html body .pc-link svg { stroke-width: 1.7 !important; stroke-linecap: round !important; stroke-linejoin: round !important; }
html body .oc-go { width: 36px !important; height: 36px !important; border: 0 !important; background: var(--ap-gray) !important; color: var(--ap-ink) !important; }
html body .oc-go svg { width: 16px !important; height: 16px !important; }
html body .rc-link, html body .pc-link, html body .go { display: inline-flex; align-items: baseline; gap: 4px; }
html body .rc-link span, html body .pc-link span, html body .go span { font-size: 1.25em; line-height: 1; font-weight: 300; transition: transform .25s cubic-bezier(.2,.75,.2,1); display: inline-block; }
html body .rc-link:hover span, html body .pc-link:hover span { transform: translateX(3px); }
html body .hero-pills a svg:last-child { width: 14px !important; height: 14px !important; opacity: .85; }
html body .oc-kick i svg { width: 18px !important; height: 18px !important; }

/* anteprime: immagine intera 2:1 (nessun taglio) e badge sotto l'immagine */
html body .rcard .rc-badge { position: static !important; margin: 18px 22px 0 !important; transform: none !important; display: inline-block; }
html body .rcard .rc-art img, html body .research-illustration, html body .osv-cities article img { object-fit: cover !important; object-position: center !important; }


html body .oc-kick i { display: inline-grid !important; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(0,113,227,.1); color: #0071e3 !important; margin-right: 8px; }
html body .oc-kick i svg { width: 17px !important; height: 17px !important; }
html body .hero-pills a svg:first-child { width: 18px !important; height: 18px !important; }

/* card con immagine: sempre a filo, senza riquadri interni */
html body .osv-city { overflow: hidden !important; padding: 0 !important; border-radius: 28px !important; }
html body .osv-city > img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; object-fit: cover !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; }
html body .osv-city-body { padding: 22px 24px 26px !important; }

/* ===== Sistema unico di superfici =====
   fondo pagina #fbfbfd · fasce grigie #f5f5f7 (raggio 34) · card bianche (raggio 28, ombra morbida) · blocchi interni (raggio 22) */
html body .page-hero, html body .report-workspace-head, html body .explore .intro, html body .hero { border-radius: 34px !important; }
/* fasce */
html body .report-quick, html body .osv-quick, html body .osv-key, html body .mx-band, html body .topic-context, html body .topic, html body .youth-map-wrap, html body .publication-explorer {
  background: #f5f5f7 !important; border: 0 !important; border-radius: 34px !important; box-shadow: none !important;
}
html body .publication-explorer.topic-dashboard { background: transparent !important; border-radius: 28px !important; }
/* card (sempre bianche) */
html body .mx-card, html body .mx-card-soft, html body .osv-key-item, html body .guide-card, html body .osv-city, html body .product-card, html body .region-panel, html body .youth-region-panel, html body .youth-city-detail, html body .ocard, html body .rcard {
  background: #fff !important; border: 0 !important; border-radius: 28px !important; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 48px -22px rgba(0,0,0,.16) !important;
}
/* accordion: righe bianche, raggio 22 */
html body details, html body .essential-details { background: #fff !important; border: 0 !important; border-radius: 22px !important; box-shadow: 0 1px 2px rgba(0,0,0,.04) !important; }
/* blocchi interni e note */
html body .adm-table-wrap, html body .guide-note, html body .card-live-data { background: #f5f5f7 !important; border: 0 !important; border-radius: 22px !important; box-shadow: none !important; }
html body .osv-key .osv-key-item, html body .report-quick .mx-card { background: #fff !important; }
html body .press-banner, html body iframe { border-radius: 28px !important; }
html body .topic-context .mx-card { background: #fff !important; }

html body .osv-key::before, html body .osv-key::after, html body .osv-quick::before, html body .osv-evid::before, html body .report-quick::before, html body .topic-context::before { content: none !important; display: none !important; }
html body .osv-key { padding: clamp(24px, 3vw, 44px) !important; margin-block: clamp(24px, 3vw, 48px) !important; }

html body[data-page="home"] .pcard .pc-thumb { height: 56px !important; }
html body[data-page="home"] .pcard .pc-thumb img { height: 52px !important; max-width: 240px !important; filter: none !important; opacity: 1 !important; }

/* dissolvenza sotto l'immagine degli osservatori: resta anche all'hover (nessuna linea scura) */
html body .ocard .oc-art { isolation: isolate; position: relative; }
html body .ocard .oc-art img { position: relative; z-index: 0; }
html body .ocard .oc-art::after { z-index: 2 !important; pointer-events: none; height: 55% !important; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.92) 78%, #fff 100%) !important; }
html body .ocard:hover .oc-art img { transform: scale(1.04); }

/* osservatori: stessa struttura delle card dei report (immagine 2:1 a filo, nessuna dissolvenza) */
html body .ocard .oc-art::after, html body .ocard .oc-art::before { content: none !important; display: none !important; }
html body .ocard .oc-art { display: block !important; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; overflow: hidden !important; border-radius: 0 !important; background: #06202f; }
html body .ocard .oc-art img { display: block; width: 100% !important; height: 100% !important; object-fit: cover !important; transform: none; transition: transform .9s cubic-bezier(.2,.75,.2,1); }
html body .ocard:hover .oc-art img { transform: scale(1.05); }
html body .ocard { min-height: 0 !important; overflow: hidden !important; padding-bottom: 22px !important; }
html body .ocard .oc-kick { margin: 18px 22px 0 !important; }
html body .ocard h3 { margin: 10px 22px 8px !important; }

/* Disagio giovanile: stessa impostazione di Dipendenze (testata, mappa, fascia report) */
html body[data-page="giovani"] .osv-quick, html body[data-page="giovani"] .osv-key, html body[data-page="giovani"] .osv-evid { display: none !important; }
html body .osv-cities.mx-band { padding: clamp(28px, 3.5vw, 56px) !important; }
html body .osv-cities .product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(16px, 2vw, 28px); }
html body .osv-city.product-card .osv-soon { display: inline-block; margin-top: auto; color: var(--ap-mute); font-size: 14px; }

html body .osv-cities .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (max-width: 760px) { html body .osv-cities .product-grid { grid-template-columns: 1fr !important; } }
html body .osv-city.product-card { display: flex !important; flex-direction: column !important; gap: 14px !important; padding: 0 0 26px !important; }
html body .osv-city.product-card > :not(img) { margin-inline: clamp(20px, 2vw, 28px) !important; }
html body .osv-city.product-card > .meta { align-self: flex-start; margin-top: 4px !important; }
html body .osv-city.product-card > h3 { margin-top: 0 !important; margin-bottom: 0 !important; font-size: clamp(22px, 2vw, 28px) !important; }
html body .osv-city.product-card > p { margin-top: 0 !important; margin-bottom: 0 !important; }


.nx-backmap { display: none; }
@media (max-width: 900px) {
  html body .nx-backmap { display: inline-flex; align-items: center; margin-top: 14px; padding: 10px 16px; border: 0; border-radius: 980px; background: #f5f5f7; color: #0066cc; font: 500 14px/1 inherit; cursor: pointer; }
  html body .region-panel, html body .youth-region-panel { scroll-margin-top: 70px; }
}

/* pagina incorporata (mappa dentro Dipendenze): nessuna intestazione, nessun menu, nessun piè di pagina */
html.embedded body header.site, html.embedded body .topline, html.embedded body .site-foot, html.embedded body .nx-burger, html.embedded-atlas body header.site, html.embedded-atlas body .topline, html.embedded-atlas body .site-foot, html.embedded-atlas body footer { display: none !important; }

/* Dipendenze su mobile: mappa e schede incorporate a tutta larghezza, senza cornici annidate */
@media (max-width: 680px) {
  html body[data-page="dipendenze"] .atlas-section { padding: 16px 0 !important; }
  html body[data-page="dipendenze"] #atlas-frame { border-radius: 0 !important; box-shadow: none !important; background: transparent !important; width: calc(100% + 16px) !important; max-width: none !important; margin-left: -8px !important; }
  html.embedded-atlas .explore { padding: 0 !important; }
  html.embedded-atlas .atlas-layout { gap: 14px !important; }
  html.embedded-atlas .map-wrap, html.embedded-atlas .region-panel { border-radius: 24px !important; }
  html.embedded-atlas .osv-key, html.embedded-atlas .report-quick, html.embedded-atlas .topic-context, html.embedded-atlas .osv-evid { padding: 14px !important; margin-inline: 0 !important; border-radius: 24px !important; }
  html.embedded-atlas .data-section { padding: 28px 12px 20px !important; }
  html.embedded-atlas details { border-radius: 18px !important; }
}

/* Disagio giovanile: mappa identica a quella di Dipendenze (palette blu, scheda, proporzioni) */
html body .youth-map-wrap { background: radial-gradient(70% 60% at 50% 45%, rgba(10,132,255,.09), transparent 75%) !important; }
html body .youth-map-bottom i, html body .youth-map-bottom span:first-child i { background: #0a84ff !important; }
html body #youth-open-city { background: #0a84ff !important; color: #fff !important; border-radius: 980px !important; font-weight: 500 !important; }
html body .youth-region-panel .nx-picker { border-radius: 14px !important; }
html body .youth-kicker, html body .youth-status, html body .youth-atlas-intro .kicker { color: #0a84ff !important; }
@media (max-width: 760px) {
  html body .youth-atlas-intro p { display: none !important; }
  html body .youth-atlas-intro { margin-bottom: 4px !important; }
  html body .youth-map-wrap #youth-map { height: 480px !important; }
  html body .youth-region-panel, html body .youth-city-detail { border-radius: 28px !important; padding: 20px !important; }
}

}
html { scroll-behavior: smooth; }
@media (min-width: 1100px) {
  html body .wrap, html body .shell, html body .osv-quick, html body .osv-key, html body .osv-evid, html body .osv-cities,
  html body .page-hero, html body .report-workspace-head, html body .illustrated-heading {
    width: min(1760px, calc(100% - 2 * clamp(28px, 4vw, 96px))) !important; max-width: none !important; margin-left: auto !important; margin-right: auto !important;
  }
  html body .shell .shell, html body .wrap .wrap, html body .wrap .shell, html body .shell .wrap, html body .shell .page-hero { width: 100% !important; }
}
html body header.site { background: rgba(255,255,255,.74) !important; -webkit-backdrop-filter: saturate(180%) blur(22px); backdrop-filter: saturate(180%) blur(22px); border-bottom-color: rgba(11,42,69,.08) !important; }
html body .topline { background: rgba(255,255,255,.9) !important; }
/* titoli grandi, stile editoriale */
html body[data-page="home"] .hero h1 { font-size: clamp(40px, 5.4vw, 88px) !important; letter-spacing: -.045em !important; line-height: 1.01 !important; }
html body .page-hero h1 { font-size: clamp(36px, 4.6vw, 76px) !important; letter-spacing: -.04em !important; line-height: 1.03 !important; }
html body main h2 { letter-spacing: -.035em !important; }
/* ingresso a comparsa */
.nx-rv { opacity: 0; }
.nx-rv.in { opacity: 1; animation: nxRise 1s cubic-bezier(.2,.75,.2,1) backwards; animation-delay: var(--d, 0s); }
@keyframes nxRise { from { opacity: 0; transform: translate3d(0, 34px, 0) scale(.985); } to { opacity: 1; transform: none; } }
/* parallasse sulle testate */
html body .hero .hero-art, html body .page-hero::before, html body .report-workspace-head::before { transform: translate3d(0, var(--py, 0px), 0) scale(1.08); will-change: transform; }
/* card: sollevamento e zoom morbido */
html body .ocard, html body .rcard, html body .pcard, html body .osv-key li, html body .osv-cities article { transition: transform .5s cubic-bezier(.2,.75,.2,1), box-shadow .5s ease !important; }
html body .ocard:hover, html body .rcard:hover, html body .pcard:hover, html body .osv-cities article:hover { transform: translateY(-8px) !important; box-shadow: 0 30px 60px -30px rgba(8,38,58,.24) !important; }
html body .ocard img, html body .rcard img, html body .osv-cities img { transition: transform .9s cubic-bezier(.2,.75,.2,1); }
html body .ocard:hover img, html body .rcard:hover img, html body .osv-cities article:hover img { transform: scale(1.06); }
html body .ocard .oc-art, html body .rcard .rc-art, html body .osv-cities article { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .nx-rv { opacity: 1 !important; animation: none !important; } html body .hero .hero-art, html body .page-hero::before, html body .report-workspace-head::before { transform: none !important; } }

:root { --nx-font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Helvetica Neue", Inter, system-ui, sans-serif; }
html body, html body *:not(svg):not(svg *):not(code):not(pre) { font-family: var(--nx-font) !important; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
html body { background: #fbfbfd !important; color: #1d1d1f; }
/* barra sottile: via la riga di servizio, navigazione leggera */
html body .topline { display: none !important; }
html body header.site .head-row { padding-top: 8px !important; padding-bottom: 8px !important; }
html body header.site .logo img { height: 40px !important; }
html body header.site .search input { height: 38px !important; font-size: 13.5px !important; background: rgba(0,0,0,.045) !important; border-color: transparent !important; }
html body header.site nav.nav a { font-size: 13px !important; font-weight: 400 !important; letter-spacing: -.005em; }
html body header.site nav.nav a.active { font-weight: 500 !important; }
/* testate al centro, tipografia grande */
html body[data-page="home"] .hero { min-height: min(70vh, 640px); display: grid; align-content: center; row-gap: 30px; border-radius: 34px !important; }
html body[data-page="home"] .hero-copy { text-align: center; margin-inline: auto; max-width: 980px; align-items: center; }
html body[data-page="home"] .hero .lead { margin-inline: auto; max-width: 60ch; font-size: clamp(17px, 1.5vw, 24px) !important; }
html body[data-page="home"] .hero-pills { justify-content: center !important; }




/* sezioni ariose e titoli editoriali */
html body main h2 { font-size: clamp(30px, 3.6vw, 60px) !important; line-height: 1.06 !important; font-weight: 700 !important; }
html body main section { scroll-margin-top: 90px; }
html body .section, html body main > section.shell { padding-top: clamp(40px, 6vw, 96px) !important; padding-bottom: clamp(40px, 6vw, 96px) !important; }
html body main p { color: #424245; }
/* card: bianche, senza bordo, grandi raggi, ombra morbida */
html body .ocard, html body .rcard, html body .pcard, html body .osv-key li, html body .osv-quick article, html body .osv-cities article, html body .osv-evid > * {
  background: #fff !important; border: 0 !important; border-radius: 28px !important;
  box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 48px -18px rgba(0,0,0,.14) !important;
}
html body .ocard img, html body .rcard img { border-radius: 0; }
html body .ocard .oc-art, html body .rcard .rc-art { border-radius: 28px 28px 0 0; }
/* pulsanti a pillola, link "scopri" */
html body .btn-white, html body .btn, html body a.btn-primary { border-radius: 999px !important; font-weight: 600 !important; letter-spacing: -.01em; padding-inline: 24px !important; }
html body .rc-link, html body .pc-link, html body .go { font-weight: 500 !important; }
html body .rc-link::after { content: ""; }
/* la testata si rimpicciolisce leggermente mentre si scorre */
html body .hero, html body .page-hero { transform: scale(var(--sc, 1)); transform-origin: 50% 0; transition: border-radius .3s; will-change: transform; }
@media (max-width: 680px) { html body[data-page="home"] .hero { min-height: auto; } html body header.site nav.nav a { font-size: 13.5px !important; } }
@media (prefers-reduced-motion: reduce) { html body .hero, html body .page-hero { transform: none !important; } }

/* immagini delle card: proporzione 16:10, a filo del bordo, ritaglio centrato */
html body .research-illustration, html body .product-card > img, html body .product-card .research-illustration {
  display: block !important; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; object-fit: cover !important; object-position: center !important;
  padding: 0 !important; margin: 0 !important; border: 0 !important; border-radius: 0 !important; background: #06202f;
}
html body .product-card { overflow: hidden !important; padding-top: 0 !important; }
html body .rcard .rc-art, html body .ocard .oc-art { display: block !important; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; overflow: hidden !important; border-radius: 0 !important; }
html body .rcard .rc-art img, html body .ocard .oc-art img { width: 100% !important; height: 100% !important; aspect-ratio: auto !important; object-fit: cover !important; object-position: center !important; }
html body .rcard, html body .ocard { overflow: hidden !important; }
html body .osv-cities article img { width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; object-fit: cover !important; }
html body header.site { background: rgba(255,255,255,.88) !important; }

html body .page-hero { border-radius: 34px !important; }

/* ===== Passata "Apple" completa ===== */
:root { --ap-blue: #0071e3; --ap-blue-h: #0077ed; --ap-link: #0066cc; --ap-gray: #f5f5f7; --ap-ink: #1d1d1f; --ap-mute: #6e6e73; }
@media (min-width: 900px) {
  html body header.site .head-row { flex-wrap: nowrap !important; gap: 24px !important; min-height: 52px; }
  html body header.site .head-right { flex-direction: row !important; align-items: center !important; justify-content: flex-end !important; gap: 20px !important; flex: 1 1 auto !important; }
  html body header.site nav.nav { order: 1; flex: 0 1 auto; justify-content: center !important; gap: clamp(14px, 1.8vw, 30px) !important; }
  html body header.site .search { order: 2; flex: 0 0 auto; width: 210px; transition: width .35s cubic-bezier(.2,.75,.2,1); }
  html body header.site .search:focus-within { width: min(380px, 30vw); }
}
html body header.site { border-bottom: 1px solid rgba(0,0,0,.08) !important; }
html body[data-page="home"] #ricerche { background: var(--ap-gray); box-shadow: 0 0 0 100vmax var(--ap-gray); clip-path: inset(0 -100vmax); padding-top: clamp(48px, 6vw, 96px); padding-bottom: clamp(48px, 6vw, 96px); margin-top: clamp(40px, 5vw, 80px); }
html body[data-page="home"] #osservatori, html body[data-page="home"] #rassegna-stampa { padding-top: clamp(48px, 6vw, 96px); padding-bottom: clamp(24px, 4vw, 64px); }
html body[data-page="home"] #osservatori > h2, html body[data-page="home"] #rassegna-stampa > h2, html body[data-page="home"] #rassegna-stampa > .sub { text-align: center; margin-inline: auto; }
html body[data-page="home"] #rassegna-stampa > .sub { color: var(--ap-mute) !important; font-size: clamp(16px, 1.4vw, 21px) !important; max-width: 52ch; }
html body[data-page="home"] #ricerche .row-head h2 { font-size: clamp(32px, 4vw, 64px) !important; }
html body main h2 { font-weight: 700 !important; color: var(--ap-ink); }
html body main p { color: var(--ap-mute); }
html body main .rc-link, html body main .pc-link, html body main a.go { color: var(--ap-link) !important; font-weight: 400 !important; }
html body main .rc-link:hover, html body main .pc-link:hover { text-decoration: underline; }
html body main .btn-dark, html body main a.btn-primary, html body main .report-actions a, html body main .product-card .btn {
  background: var(--ap-blue) !important; color: #fff !important; border: 0 !important; border-radius: 980px !important; font-weight: 400 !important; padding: 11px 22px !important; font-size: 15px !important;
}
html body main .btn-dark:hover, html body main .product-card .btn:hover { background: var(--ap-blue-h) !important; }
html body .filters button, html body .filters a { background: var(--ap-gray) !important; border: 0 !important; color: var(--ap-ink) !important; border-radius: 980px !important; font-weight: 400 !important; }
html body .filters button.on, html body .filters button[aria-pressed="true"], html body .filters .active { background: var(--ap-ink) !important; color: #fff !important; }
html body .ocard, html body .rcard, html body .pcard, html body .product-card, html body .osv-key li, html body .osv-quick article, html body .osv-cities article { border-radius: 28px !important; }
html body .product-card { background: #fff !important; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 48px -18px rgba(0,0,0,.14) !important; border: 0 !important; }
html body[data-page="home"] .hero h1 { font-size: clamp(44px, 6vw, 96px) !important; font-weight: 700 !important; }
html body .page-hero h1 { font-weight: 700 !important; }
html body .osv-key li b, html body .osv-key li strong { font-size: clamp(36px, 3.6vw, 60px) !important; letter-spacing: -.04em; font-weight: 700; }
html body .osv-key li span { color: var(--ap-mute) !important; font-weight: 400 !important; }

html body[data-page="home"] #ricerche .filters button, html body[data-page="home"] #ricerche .filters a { background: #fff !important; }
html body[data-page="home"] #ricerche .filters button.on, html body[data-page="home"] #ricerche .filters .active { background: var(--ap-ink) !important; }

/* header più sottile e footer chiaro in stile Apple */
html body header.site .head-row { min-height: 48px !important; padding-top: 6px !important; padding-bottom: 6px !important; }
html body header.site .logo img { height: 34px !important; width: auto !important; }
html body header.site nav.nav a { font-size: 12.5px !important; color: #1d1d1f !important; -webkit-text-fill-color: #1d1d1f !important; opacity: .82; transition: opacity .2s; }
html body header.site nav.nav a:hover, html body header.site nav.nav a.active { opacity: 1; }
html body header.site nav.nav a.active { border-bottom-color: transparent !important; font-weight: 600 !important; }
html body header.site .search input { height: 34px !important; font-size: 13px !important; }
html body .site-foot { background: #f5f5f7 !important; color: #6e6e73 !important; margin-top: clamp(56px, 7vw, 110px) !important; border-top: 1px solid rgba(0,0,0,.08) !important; }
html body .site-foot .foot-row { grid-template-columns: auto 1fr auto !important; padding: 34px 0 30px !important; gap: 28px !important; }
html body .site-foot .logo img { height: 32px !important; width: auto !important;  filter: none !important; }
html body .site-foot .foot-nav { gap: 6px 22px !important; }
html body .site-foot .foot-nav a { border: 0 !important; padding: 0 !important; color: #424245 !important; -webkit-text-fill-color: #424245 !important; font-size: 12px !important; font-weight: 400 !important; }
html body .site-foot .foot-nav a:hover { color: #1d1d1f !important; -webkit-text-fill-color: #1d1d1f !important; text-decoration: underline; }
html body .site-foot .foot-copy { color: #6e6e73 !important; font-size: 12px !important; }
@media (max-width: 980px) { html body .site-foot .foot-row { grid-template-columns: 1fr !important; text-align: center; justify-items: center; } html body .site-foot .foot-nav { justify-content: center; } }

/* rassegna stampa: tessere editoriali, logo piccolo, titolo in evidenza */
html body[data-page="home"] .press-grid { gap: clamp(14px, 1.6vw, 24px) !important; }
html body[data-page="home"] .pcard { display: flex !important; flex-direction: column !important; align-items: flex-start !important; gap: 18px !important; padding: clamp(22px, 2vw, 32px) !important; background: var(--ap-gray) !important; box-shadow: none !important; border-radius: 28px !important; min-height: 280px; transition: background .35s ease, transform .5s cubic-bezier(.2,.75,.2,1) !important; }
html body[data-page="home"] .pcard:hover { background: #fff !important; box-shadow: 0 24px 54px -24px rgba(0,0,0,.25) !important; transform: translateY(-4px) !important; }
html body[data-page="home"] .pcard .pc-thumb { width: auto !important; height: 34px !important; padding: 0 !important; margin: 0 !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; display: flex !important; align-items: center !important; }
html body[data-page="home"] .pcard .pc-thumb img { height: 30px !important; width: auto !important; max-width: 150px !important; object-fit: contain !important; object-position: left center !important; filter: grayscale(1) contrast(1.15); opacity: .92; transition: filter .35s, opacity .35s; }
html body[data-page="home"] .pcard:hover .pc-thumb img { filter: none; opacity: 1; }
html body[data-page="home"] .pcard .pc-noimg { display: none !important; }
html body[data-page="home"] .pcard .pc-thumb:has(img) + .pc-body .pc-outlet { display: none !important; }
html body[data-page="home"] .pcard .pc-body { display: flex !important; flex-direction: column !important; gap: 10px !important; flex: 1; width: 100%; padding: 0 !important; }
html body[data-page="home"] .pcard .pc-outlet { font-size: 13px !important; font-weight: 600 !important; color: var(--ap-ink) !important; text-transform: none !important; letter-spacing: 0 !important; margin: 0 !important; }
html body[data-page="home"] .pcard h3 { font-size: clamp(18px, 1.5vw, 22px) !important; line-height: 1.25 !important; letter-spacing: -.02em !important; font-weight: 600 !important; color: var(--ap-ink) !important; margin: 0 !important; display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; }
html body[data-page="home"] .pcard .pc-date { font-size: 13px !important; color: var(--ap-mute) !important; margin: 0 !important; }
html body[data-page="home"] .pcard .pc-link, html body[data-page="home"] .pcard .pc-note { margin-top: auto !important; padding-top: 6px; font-size: 14px !important; color: var(--ap-link) !important; }
html body[data-page="home"] .pcard .pc-note { color: var(--ap-mute) !important; }

html body[data-page="home"] .pcard .pc-thumb img { mix-blend-mode: multiply; background: transparent !important; }
html body[data-page="home"] .pcard:hover .pc-thumb img { mix-blend-mode: multiply; }

/* freccia degli osservatori: niente disco scuro all'hover */
html body[data-page="home"] .ocard .oc-go { transition: transform .35s cubic-bezier(.2,.75,.2,1), background .3s, border-color .3s; }
html body[data-page="home"] .ocard:hover .oc-go { background: var(--ap-gray) !important; color: var(--ap-ink) !important; border-color: rgba(0,0,0,.18) !important; transform: translateX(4px); }
html body[data-page="home"] .ocard:hover .oc-go svg { color: var(--ap-ink) !important; stroke: var(--ap-ink) !important; }
/* filtro attivo sempre scuro */
html body[data-page="home"] #ricerche .filters button[aria-pressed="true"] { background: var(--ap-ink) !important; color: #fff !important; }
/* mobile: tessere e testate più compatte */
@media (max-width: 680px) {
  html body[data-page="home"] .hero h1 { font-size: clamp(34px, 10vw, 46px) !important; }
  html body[data-page="home"] .pcard { min-height: 0 !important; padding: 20px !important; }
  html body[data-page="home"] #osservatori, html body[data-page="home"] #rassegna-stampa, html body[data-page="home"] #ricerche { padding-top: 40px !important; padding-bottom: 28px !important; }
  html body main h2 { font-size: clamp(26px, 7.4vw, 34px) !important; }
  html body .site-foot .foot-row { padding: 26px 0 !important; }
}

/* menu a hamburger su mobile e tablet */
.nx-burger { display: none; }
@media (max-width: 899px) {
  html body header.site { position: relative !important; top: auto !important; }
  html body header.site .head-row { flex-wrap: nowrap !important; justify-content: space-between !important; align-items: center !important; min-height: 56px !important; gap: 12px !important; position: relative; }
  html body header.site .logo img { height: 32px !important; width: auto !important; }
  html body header.site .nx-burger { display: inline-flex !important; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: -10px; border: 0; background: transparent; cursor: pointer; padding: 0; -webkit-tap-highlight-color: transparent; }
  html body header.site .nx-burger span { position: relative; display: block; width: 22px; height: 2px; background: #1d1d1f; border-radius: 2px; transition: background .2s; }
  html body header.site .nx-burger span::before, html body header.site .nx-burger span::after { content: ""; position: absolute; left: 0; width: 22px; height: 2px; background: #1d1d1f; border-radius: 2px; transition: transform .3s cubic-bezier(.2,.75,.2,1), top .3s; }
  html body header.site .nx-burger span::before { top: -7px; }
  html body header.site .nx-burger span::after { top: 7px; }
  html body header.site.nx-open .nx-burger span { background: transparent; }
  html body header.site.nx-open .nx-burger span::before { top: 0; transform: rotate(45deg); }
  html body header.site.nx-open .nx-burger span::after { top: 0; transform: rotate(-45deg); }
  html body header.site .head-right { display: none !important; position: absolute; left: 0; right: 0; top: 100%; z-index: 80; flex-direction: column !important; align-items: stretch !important; gap: 10px !important;
    padding: 10px clamp(20px, 5vw, 32px) 24px !important; background: #fff;
    border-bottom: 1px solid rgba(0,0,0,.1); box-shadow: 0 30px 50px -30px rgba(0,0,0,.35); max-height: calc(100vh - 60px); overflow-y: auto; }
  html body header.site.nx-open .head-right { display: flex !important; animation: nxMenu .35s cubic-bezier(.2,.75,.2,1); }
  html body header.site .head-right .search { order: -1; width: 100% !important; }
  html body header.site nav.nav { flex-direction: column !important; align-items: stretch !important; justify-content: flex-start !important; gap: 0 !important; overflow: visible !important; }
  html body header.site nav.nav a { font-size: 22px !important; font-weight: 600 !important; padding: 14px 2px !important; border-bottom: 1px solid rgba(0,0,0,.08) !important; opacity: 1 !important; white-space: normal; }
  html body header.site nav.nav a.active { color: var(--ap-blue) !important; -webkit-text-fill-color: var(--ap-blue) !important; }
}
@keyframes nxMenu { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }


/* icone e frecce in stile SF Symbols: tratto sottile e arrotondato, chevron al posto delle frecce */
html body .oc-go svg, html body .oc-kick svg, html body .hero-pills svg, html body .s-ico svg, html body header.site svg, html body .btn-white svg, html body .row-head svg, html body .more-row svg, html body .rc-link svg, html body .pc-link svg { stroke-width: 1.7 !important; stroke-linecap: round !important; stroke-linejoin: round !important; }
html body .oc-go { width: 36px !important; height: 36px !important; border: 0 !important; background: var(--ap-gray) !important; color: var(--ap-ink) !important; }
html body .oc-go svg { width: 16px !important; height: 16px !important; }
html body .rc-link, html body .pc-link, html body .go { display: inline-flex; align-items: baseline; gap: 4px; }
html body .rc-link span, html body .pc-link span, html body .go span { font-size: 1.25em; line-height: 1; font-weight: 300; transition: transform .25s cubic-bezier(.2,.75,.2,1); display: inline-block; }
html body .rc-link:hover span, html body .pc-link:hover span { transform: translateX(3px); }
html body .hero-pills a svg:last-child { width: 14px !important; height: 14px !important; opacity: .85; }
html body .oc-kick i svg { width: 18px !important; height: 18px !important; }

/* anteprime: immagine intera 2:1 (nessun taglio) e badge sotto l'immagine */
html body .rcard .rc-badge { position: static !important; margin: 18px 22px 0 !important; transform: none !important; display: inline-block; }
html body .rcard .rc-art img, html body .research-illustration, html body .osv-cities article img { object-fit: cover !important; object-position: center !important; }


html body .oc-kick i { display: inline-grid !important; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(0,113,227,.1); color: #0071e3 !important; margin-right: 8px; }
html body .oc-kick i svg { width: 17px !important; height: 17px !important; }
html body .hero-pills a svg:first-child { width: 18px !important; height: 18px !important; }

/* card con immagine: sempre a filo, senza riquadri interni */
html body .osv-city { overflow: hidden !important; padding: 0 !important; border-radius: 28px !important; }
html body .osv-city > img { display: block; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; object-fit: cover !important; border-radius: 0 !important; margin: 0 !important; padding: 0 !important; }
html body .osv-city-body { padding: 22px 24px 26px !important; }

/* ===== Sistema unico di superfici =====
   fondo pagina #fbfbfd · fasce grigie #f5f5f7 (raggio 34) · card bianche (raggio 28, ombra morbida) · blocchi interni (raggio 22) */
html body .page-hero, html body .report-workspace-head, html body .explore .intro, html body .hero { border-radius: 34px !important; }
/* fasce */
html body .report-quick, html body .osv-quick, html body .osv-key, html body .mx-band, html body .topic-context, html body .topic, html body .youth-map-wrap, html body .publication-explorer {
  background: #f5f5f7 !important; border: 0 !important; border-radius: 34px !important; box-shadow: none !important;
}
html body .publication-explorer.topic-dashboard { background: transparent !important; border-radius: 28px !important; }
/* card (sempre bianche) */
html body .mx-card, html body .mx-card-soft, html body .osv-key-item, html body .guide-card, html body .osv-city, html body .product-card, html body .region-panel, html body .youth-region-panel, html body .youth-city-detail, html body .ocard, html body .rcard {
  background: #fff !important; border: 0 !important; border-radius: 28px !important; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 18px 48px -22px rgba(0,0,0,.16) !important;
}
/* accordion: righe bianche, raggio 22 */
html body details, html body .essential-details { background: #fff !important; border: 0 !important; border-radius: 22px !important; box-shadow: 0 1px 2px rgba(0,0,0,.04) !important; }
/* blocchi interni e note */
html body .adm-table-wrap, html body .guide-note, html body .card-live-data { background: #f5f5f7 !important; border: 0 !important; border-radius: 22px !important; box-shadow: none !important; }
html body .osv-key .osv-key-item, html body .report-quick .mx-card { background: #fff !important; }
html body .press-banner, html body iframe { border-radius: 28px !important; }
html body .topic-context .mx-card { background: #fff !important; }

html body .osv-key::before, html body .osv-key::after, html body .osv-quick::before, html body .osv-evid::before, html body .report-quick::before, html body .topic-context::before { content: none !important; display: none !important; }
html body .osv-key { padding: clamp(24px, 3vw, 44px) !important; margin-block: clamp(24px, 3vw, 48px) !important; }

html body[data-page="home"] .pcard .pc-thumb { height: 56px !important; }
html body[data-page="home"] .pcard .pc-thumb img { height: 52px !important; max-width: 240px !important; filter: none !important; opacity: 1 !important; }

/* dissolvenza sotto l'immagine degli osservatori: resta anche all'hover (nessuna linea scura) */
html body .ocard .oc-art { isolation: isolate; position: relative; }
html body .ocard .oc-art img { position: relative; z-index: 0; }
html body .ocard .oc-art::after { z-index: 2 !important; pointer-events: none; height: 55% !important; background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.92) 78%, #fff 100%) !important; }
html body .ocard:hover .oc-art img { transform: scale(1.04); }

/* osservatori: stessa struttura delle card dei report (immagine 2:1 a filo, nessuna dissolvenza) */
html body .ocard .oc-art::after, html body .ocard .oc-art::before { content: none !important; display: none !important; }
html body .ocard .oc-art { display: block !important; width: 100% !important; height: auto !important; aspect-ratio: 2 / 1 !important; overflow: hidden !important; border-radius: 0 !important; background: #06202f; }
html body .ocard .oc-art img { display: block; width: 100% !important; height: 100% !important; object-fit: cover !important; transform: none; transition: transform .9s cubic-bezier(.2,.75,.2,1); }
html body .ocard:hover .oc-art img { transform: scale(1.05); }
html body .ocard { min-height: 0 !important; overflow: hidden !important; padding-bottom: 22px !important; }
html body .ocard .oc-kick { margin: 18px 22px 0 !important; }
html body .ocard h3 { margin: 10px 22px 8px !important; }

/* Disagio giovanile: stessa impostazione di Dipendenze (testata, mappa, fascia report) */
html body[data-page="giovani"] .osv-quick, html body[data-page="giovani"] .osv-key, html body[data-page="giovani"] .osv-evid { display: none !important; }
html body .osv-cities.mx-band { padding: clamp(28px, 3.5vw, 56px) !important; }
html body .osv-cities .product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(16px, 2vw, 28px); }
html body .osv-city.product-card .osv-soon { display: inline-block; margin-top: auto; color: var(--ap-mute); font-size: 14px; }

html body .osv-cities .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
@media (max-width: 760px) { html body .osv-cities .product-grid { grid-template-columns: 1fr !important; } }
html body .osv-city.product-card { display: flex !important; flex-direction: column !important; gap: 14px !important; padding: 0 0 26px !important; }
html body .osv-city.product-card > :not(img) { margin-inline: clamp(20px, 2vw, 28px) !important; }
html body .osv-city.product-card > .meta { align-self: flex-start; margin-top: 4px !important; }
html body .osv-city.product-card > h3 { margin-top: 0 !important; margin-bottom: 0 !important; font-size: clamp(22px, 2vw, 28px) !important; }
html body .osv-city.product-card > p { margin-top: 0 !important; margin-bottom: 0 !important; }


.nx-backmap { display: none; }
@media (max-width: 900px) {
  html body .nx-backmap { display: inline-flex; align-items: center; margin-top: 14px; padding: 10px 16px; border: 0; border-radius: 980px; background: #f5f5f7; color: #0066cc; font: 500 14px/1 inherit; cursor: pointer; }
  html body .region-panel, html body .youth-region-panel { scroll-margin-top: 70px; }
}

/* pagina incorporata (mappa dentro Dipendenze): nessuna intestazione, nessun menu, nessun piè di pagina */
html.embedded body header.site, html.embedded body .topline, html.embedded body .site-foot, html.embedded body .nx-burger, html.embedded-atlas body header.site, html.embedded-atlas body .topline, html.embedded-atlas body .site-foot, html.embedded-atlas body footer { display: none !important; }

/* Dipendenze su mobile: mappa e schede incorporate a tutta larghezza, senza cornici annidate */
@media (max-width: 680px) {
  html body[data-page="dipendenze"] .atlas-section { padding: 16px 0 !important; }
  html body[data-page="dipendenze"] #atlas-frame { border-radius: 0 !important; box-shadow: none !important; background: transparent !important; width: calc(100% + 16px) !important; max-width: none !important; margin-left: -8px !important; }
  html.embedded-atlas .explore { padding: 0 !important; }
  html.embedded-atlas .atlas-layout { gap: 14px !important; }
  html.embedded-atlas .map-wrap, html.embedded-atlas .region-panel { border-radius: 24px !important; }
  html.embedded-atlas .osv-key, html.embedded-atlas .report-quick, html.embedded-atlas .topic-context, html.embedded-atlas .osv-evid { padding: 14px !important; margin-inline: 0 !important; border-radius: 24px !important; }
  html.embedded-atlas .data-section { padding: 28px 12px 20px !important; }
  html.embedded-atlas details { border-radius: 18px !important; }
}

/* Disagio giovanile: mappa identica a quella di Dipendenze (palette blu, scheda, proporzioni) */
html body .youth-map-wrap { background: radial-gradient(70% 60% at 50% 45%, rgba(10,132,255,.09), transparent 75%) !important; }
html body .youth-map-bottom i, html body .youth-map-bottom span:first-child i { background: #0a84ff !important; }
html body #youth-open-city { background: #0a84ff !important; color: #fff !important; border-radius: 980px !important; font-weight: 500 !important; }
html body .youth-region-panel .nx-picker { border-radius: 14px !important; }
html body .youth-kicker, html body .youth-status, html body .youth-atlas-intro .kicker { color: #0a84ff !important; }
@media (max-width: 760px) {
  html body .youth-atlas-intro p { display: none !important; }
  html body .youth-atlas-intro { margin-bottom: 4px !important; }
  html body .youth-map-wrap #youth-map { height: 480px !important; }
  html body .youth-region-panel, html body .youth-city-detail { border-radius: 28px !important; padding: 20px !important; }
}
