  /* Impaginato da quotidiano: testata, filetti, rubriche colorate per profilo */
  :root{
    --paper:#FCFCFA;
    --paper-dim:#F0F0EC;
    --ink:#111111;
    --muted:#555555;
    --line:#C8C8C4;
    --accent:#111111;
    --sez-studia:#FF8A3D;
    --sez-famiglia:#7FD1AE;
    --sez-docente:#9DBBFF;
    /* alias usati nel codice esistente */
    --stone:#2A2A2A; --stone-dark:#111111; --sea:#111111; --sea-dark:#000000; --ochre:#555555; --coral:#B3121F;
    --f-testata:'Barlow Condensed', 'Arial Narrow', sans-serif;
    --f-titoli:'Barlow Condensed', 'Arial Narrow', sans-serif;
    --f-serif:'Source Serif 4', Georgia, 'Times New Roman', serif;
    --f-sans:'Barlow', 'Helvetica Neue', Arial, sans-serif;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{ background:var(--paper); color:var(--ink); font-family:var(--f-serif); line-height:1.5; }
  h1,h2,h3,h4,.display{ font-family:var(--f-titoli); font-weight:700; letter-spacing:-0.005em; line-height:1.05; margin:0; text-wrap:balance; }
  a{color:inherit;}
  :focus-visible{outline:2px solid var(--accent); outline-offset:2px;}

  /* Testata */
  header{ background:var(--paper); color:var(--ink); padding-block:0.9rem 0; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px)); }
  .header-inner{max-width:920px; margin:0 auto; display:flex; flex-direction:column; align-items:stretch; gap:0.35rem;}
  .testata-top{width:100%; display:flex; justify-content:space-between; gap:1rem; font-family:var(--f-sans); font-size:0.68rem; font-weight:600; letter-spacing:0.06em; text-transform:uppercase;}
  .testata{font-family:var(--f-testata); font-weight:800; font-size:clamp(5.5rem, 38vw, 13rem); line-height:0.8; letter-spacing:-0.04em; text-transform:uppercase; margin:0.15rem 0 0 -0.03em;}
  a.testata{display:block; color:inherit; text-decoration:none; width:max-content; max-width:100%;}
  a.testata:hover{opacity:0.85;}
  .testata-sigla{font-family:var(--f-sans); font-size:0.7rem; font-weight:800; letter-spacing:0.14em; text-transform:uppercase; margin:0.25rem 0 0.1rem;}
  .testata-band{width:100%; background:var(--ink); color:#FFFFFF; padding:0.2rem 0.5rem; display:flex; justify-content:space-between; align-items:center; gap:0.4rem; flex-wrap:nowrap; font-family:var(--f-titoli); font-size:0.9rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase;}
  .testata-tre{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); height:8px;}
  .testata-tre span:nth-child(1){background:var(--sez-studia);} .testata-tre span:nth-child(2){background:var(--sez-famiglia);} .testata-tre span:nth-child(3){background:var(--sez-docente);}
  .testata-band select option, .testata-band select optgroup{color:var(--ink); background:#FFFFFF;}
  .testata-band select{min-width:0; flex:none; border:none; background:transparent; padding:0.2rem 0.2rem; font-family:var(--f-titoli); font-size:0.95rem; font-weight:800; letter-spacing:0.04em; text-transform:uppercase; color:#FFFFFF; cursor:pointer; min-height:36px; width:7.2rem;}
  .edizione{display:flex; align-items:center; gap:0.3rem;}
  .edizione label{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap;}
  .testata-band > span:first-child{white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .eyebrow{font-family:var(--f-sans); font-size:0.7rem; font-weight:800; letter-spacing:0.07em; text-transform:uppercase; color:var(--accent); margin-bottom:0.4rem;}

  /* Rubriche (navigazione) */
  nav.tabs{ display:flex; gap:0; max-width:920px; margin:0 auto; border-bottom:1px solid var(--ink); overflow-x:auto; scrollbar-width:none; }
  nav.tabs::-webkit-scrollbar{display:none;}
  nav.tabs button{ flex:none; background:none; border:none; color:var(--muted); font-family:var(--f-sans); font-size:0.78rem; font-weight:600; letter-spacing:0.03em; text-transform:uppercase; padding:0.8rem 0.75rem 0.65rem; cursor:pointer; border-bottom:4px solid transparent; white-space:nowrap; min-height:44px; }
  nav.tabs button:first-child{padding-left:0;}
  nav.tabs button.active{color:var(--ink); border-bottom-color:var(--ink);}
  nav.tabs button:hover{color:var(--ink);}

  main{max-width:920px; margin:0 auto; padding-block:1.4rem 4rem; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px));}
  section.view{display:none;}
  section.view.active{display:block;}

  /* Apertura */
  .apertura{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:1.2rem; border-bottom:1px solid var(--ink); padding-bottom:1.2rem; margin-bottom:1.4rem;}
  .apertura h2{font-size:clamp(1.5rem, 4.5vw, 2.1rem); line-height:1.05;}
  .apertura .sommario{font-style:italic; font-size:1rem; margin:0.5rem 0 0; line-height:1.4;}
  .apertura figure{margin:0; display:flex; flex-direction:column; gap:0.3rem;}
  .apertura img{display:block; width:100%; max-width:100%; aspect-ratio:3/2; object-fit:cover;}
  .apertura figcaption, .didascalia{font-family:var(--f-sans); font-size:0.7rem; color:var(--muted); line-height:1.35;}
  @media (max-width:640px){ .apertura{grid-template-columns:minmax(0,1fr);} }

  /* Ricerca e controlli */
  .search-row{display:flex; gap:0.6rem; flex-wrap:wrap; margin-bottom:1.2rem;}
  input[type="text"], select, textarea{ font-family:var(--f-sans); font-size:0.95rem; padding:0.65rem 0.8rem; border:1px solid var(--ink); border-radius:0; background:#FFFFFF; color:var(--ink); }
  .search-row input[type="text"], .search-row select, .filter-bar select{flex:1; min-width:min(180px, 100%);}
  #profSearch{font-family:var(--f-serif); font-style:italic; font-size:1.05rem;}
  button.primary{ background:var(--ink); color:var(--paper); border:none; border-radius:0; padding:0.75rem 1.3rem; font-size:0.85rem; font-weight:800; letter-spacing:0.02em; cursor:pointer; font-family:var(--f-sans); min-height:44px; }
  button.primary:hover{background:#000;}
  .chips{display:flex; gap:0.45rem; flex-wrap:wrap; margin-bottom:1.2rem;}
  .chip{ font-size:0.78rem; padding:0.4rem 0.75rem; border-radius:0; border:1px solid var(--ink); background:#FFFFFF; cursor:pointer; font-family:var(--f-sans); font-weight:600; min-height:36px; }
  .chip.active{background:var(--ink); color:var(--paper);}

  /* Schede professione */
  .prof-card{ background:transparent; border:none; border-top:1px solid var(--ink); border-radius:0; padding:0.9rem 0 1rem; margin:0; cursor:pointer; }
  .prof-card:hover h3{text-decoration:underline; text-underline-offset:3px;}
  .prof-card h3{font-size:1.25rem; margin-bottom:0.25rem;}
  .prof-card .tags{font-family:var(--f-sans); font-size:0.68rem; font-weight:800; letter-spacing:0.06em; text-transform:uppercase; color:var(--accent); margin-bottom:0.3rem;}
  .prof-card p{font-size:0.95rem; color:#2A2A2A; margin:0;}

  /* Percorsi a tappe */
  .pathway-block{ background:#FFFFFF; border:none; border-top:3px solid var(--ink); border-radius:0; padding:1rem 0 1.2rem; margin-bottom:1.2rem; background:transparent; }
  .pathway-title{font-family:var(--f-serif); font-weight:700; font-size:1.2rem; line-height:1.15; margin-bottom:0.9rem; color:var(--ink);}
  .waymarkers{display:flex; flex-direction:column; gap:0; margin-bottom:1rem;}
  .waymarker{display:flex; gap:0.9rem; position:relative; padding-bottom:1.1rem;}
  .waymarker:last-child{padding-bottom:0;}
  .waymarker::before{ content:""; position:absolute; left:15px; top:34px; bottom:0; width:1px; background:var(--ink); }
  .waymarker:last-child::before{display:none;}
  .marker-num{ flex:none; width:32px; height:32px; border-radius:0; background:var(--ink); color:var(--paper); display:flex; align-items:center; justify-content:center; font-family:var(--f-testata); font-size:1.1rem; z-index:1; }
  .marker-body{padding-top:0.05rem;}
  .marker-body .stage-type{font-family:var(--f-sans); font-size:0.68rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--accent); font-weight:800;}
  .marker-body h4{font-family:var(--f-serif); font-weight:700; font-size:1.02rem; margin:0.15rem 0 0.1rem;}
  .marker-body .meta{font-family:var(--f-sans); font-size:0.8rem; color:var(--muted);}
  .pathway-meta{display:flex; gap:1.4rem; flex-wrap:wrap; font-size:0.9rem; border-top:1px solid var(--line); padding-top:0.7rem; margin-top:0.2rem;}
  .pathway-meta strong{display:block; font-family:var(--f-sans); font-size:0.66rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--muted); font-weight:800;}
  .alt-note{font-size:0.92rem; color:#2A2A2A; margin-top:0.6rem; font-style:italic;}
  .btn-locate{ margin-top:0.9rem; background:none; border:1px solid var(--ink); color:var(--ink); padding:0.6rem 1rem; border-radius:0; font-size:0.8rem; font-weight:800; cursor:pointer; font-family:var(--f-sans); min-height:44px; }
  .btn-locate:hover{background:var(--ink); color:var(--paper);}

  /* Schede istituto */
  .inst-card{ background:transparent; border:none; border-top:1px solid var(--ink); border-radius:0; padding:0.9rem 0 1rem 0.9rem; margin:0; }
  .inst-card .inst-top{display:flex; justify-content:space-between; align-items:flex-start; gap:0.6rem; flex-wrap:wrap;}
  .inst-card h4{font-family:var(--f-serif); font-size:1.1rem; font-weight:700;}
  .badge{ font-family:var(--f-sans); font-size:0.64rem; text-transform:uppercase; letter-spacing:0.06em; font-weight:800; padding:0.2rem 0.5rem; border-radius:0; white-space:nowrap; }
  .badge.pubblica{background:var(--ink); color:var(--paper);}
  .badge.privata{background:transparent; color:var(--ink); border:1px dashed var(--ink);}
  .inst-card .loc{font-family:var(--f-sans); font-size:0.8rem; color:var(--muted); margin:0.25rem 0 0.5rem;}
  .cost-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:0.6rem; font-family:var(--f-sans); font-size:0.8rem; background:var(--paper-dim); border-radius:0; padding:0.7rem 0.8rem; margin-top:0.5rem;}
  .cost-grid div strong{display:block; font-size:0.64rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--muted); font-weight:800; margin-bottom:0.15rem;}
  .cost-note{font-family:var(--f-sans); font-size:0.74rem; color:var(--muted); margin-top:0.5rem; line-height:1.45;}

  /* Mappa */
  .mappa-comuni{margin:0.6rem 0 0.4rem; max-width:520px;}
  .mappa-comuni svg{display:block; width:100%; height:auto; touch-action:manipulation;}
  .mappa-comuni path.mm-c{stroke:#A9A69E; stroke-width:0.35; cursor:pointer; transition:fill .15s;}
  .mappa-comuni path.mm-c:hover{stroke:#111111; stroke-width:0.8;}
  .mappa-comuni path.mm-c:focus{outline:none; stroke:#111111; stroke-width:1.4;}
  .mappa-comuni text{font-family:var(--f-titoli); font-weight:700; font-size:13px; letter-spacing:0.3px; fill:#111111; paint-order:stroke; stroke:#FFFFFF; stroke-width:3px; pointer-events:none;}
  .mappa-legenda{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0.4rem 0.8rem; flex-direction:unset;}
  .mappa-legenda > span{display:flex; align-items:center; gap:0.4rem;}
  .mappa-legenda .mm-cat{grid-column:1 / -1; display:block;}
  .mm-sw{display:inline-block; width:18px; height:13px; box-sizing:border-box;}
  .mappa-titolo{font-family:var(--f-testata); font-weight:800; text-transform:uppercase; font-size:1.8rem; letter-spacing:-0.01em; border-top:3px solid var(--ink); padding-top:0.5rem; margin:0.4rem 0 0.6rem;}
  .mappa-azioni{min-height:0;}
  .filter-bar{display:flex; gap:0.6rem; flex-wrap:wrap; margin-bottom:1rem;}
  .legend{display:flex; flex-direction:column; gap:0.5rem; font-family:var(--f-sans); font-size:0.76rem; color:#2A2A2A; margin-bottom:1.3rem; border-top:1px solid var(--ink); padding-top:0.6rem;}
  .legend-group{display:flex; align-items:center; gap:0.4rem; flex-wrap:wrap;}
  .map-pin{width:24px; height:24px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:var(--f-sans); font-weight:800; font-size:11px; box-sizing:border-box;}

  .empty{font-family:var(--f-sans); color:var(--muted); font-size:0.88rem; padding:1.5rem 0; text-align:center;}

  /* Simulazione */
  .sim-picker{display:flex; flex-direction:column; gap:0; margin-bottom:1.4rem; border-bottom:1px solid var(--ink);}
  .sim-option{display:flex; align-items:flex-start; gap:0.7rem; background:transparent; border:none; border-top:1px solid var(--line); border-radius:0; padding:0.75rem 0; cursor:pointer;}
  .sim-option.checked{box-shadow:none;}
  .sim-option.checked .sim-opt-name{text-decoration:underline; text-decoration-thickness:2px; text-underline-offset:3px;}
  .sim-option input{margin-top:0.3rem; accent-color:var(--ink);}
  .sim-option .sim-opt-name{font-family:var(--f-serif); font-weight:700; font-size:1rem;}
  .sim-option .sim-opt-meta{font-family:var(--f-sans); font-size:0.74rem; color:var(--muted); margin-top:0.1rem;}
  .sim-swatch{width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:0.4rem;}
  .sim-subtitle{font-family:var(--f-sans); font-weight:800; font-size:0.7rem; letter-spacing:0.07em; text-transform:uppercase; color:var(--accent); margin:0.6rem 0 0.4rem;}
  .table-wrap{overflow-x:auto; margin-bottom:0.9rem;}
  .cost-table{width:100%; border-collapse:collapse; font-family:var(--f-sans); font-size:0.86rem; font-variant-numeric:tabular-nums;}
  .cost-table th, .cost-table td{text-align:left; padding:0.55rem 0.5rem 0.55rem 0; border-bottom:1px solid var(--line); vertical-align:top;}
  .cost-table thead th{font-size:0.66rem; text-transform:uppercase; letter-spacing:0.06em; color:var(--ink); font-weight:800; border-bottom:2px solid var(--ink);}
  .cost-table tbody th{font-family:var(--f-serif); font-weight:400; font-size:0.92rem;}
  .cost-table td strong{display:block; font-weight:800;}
  .cost-table td.net{background:#DDF3EA; padding-left:0.5rem;}
  .cost-range{display:block; font-family:var(--f-sans); font-size:0.72rem; color:var(--muted); font-weight:400;}
  .cat-dot{display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:0.4rem; vertical-align:middle;}
  .download-row{display:flex; flex-wrap:wrap; align-items:center; gap:0.8rem; margin-top:0.4rem;}
  .sim-control{display:flex; flex-direction:column; gap:0.3rem; font-family:var(--f-sans); font-size:0.8rem; font-weight:600; margin-bottom:0.4rem;}
  .sim-control select{max-width:100%;}
  .info-box{background:var(--paper-dim); padding:0.9rem 1rem; margin-bottom:1.2rem; border-top:3px solid var(--sez-famiglia);}
  .info-box h3{font-family:var(--f-sans); font-size:0.7rem; font-weight:800; letter-spacing:0.07em; text-transform:uppercase; margin-bottom:0.5rem;}
  .info-box p{font-size:0.9rem; margin:0 0 0.5rem;}

  /* Percorso guidato: rubriche per profilo */
  .persona-cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:1rem;}
  .persona-card{background:transparent; border:none; border-radius:0; padding:0; cursor:pointer; text-align:left; font-family:var(--f-serif); color:var(--ink); display:flex; flex-direction:column;}
  .persona-card .persona-band{padding:0.6rem 0.8rem 0.7rem; display:flex; flex-direction:column; gap:0.1rem;}
  .persona-card[data-persona="studente"] .persona-band, .persona-card[data-persona-home="studente"] .persona-band{background:var(--sez-studia);}
  .persona-card[data-persona="genitore"] .persona-band, .persona-card[data-persona-home="genitore"] .persona-band{background:var(--sez-famiglia);}
  .persona-card[data-persona="docente"] .persona-band, .persona-card[data-persona-home="docente"] .persona-band{background:var(--sez-docente);}
  .ingressi{border-bottom:1px solid var(--ink); padding-bottom:1.4rem; margin-bottom:1.4rem;}
  .ingressi-titolo{font-size:1.35rem; margin-bottom:0.9rem;}
  .ingressi .persona-card img{aspect-ratio:3/2;}
  .persona-card img{display:block; width:100%; max-width:100%; aspect-ratio:4/3; object-fit:cover;}
  .persona-card:hover .persona-card-title{text-decoration:underline; text-underline-offset:4px;}
  .persona-kicker{font-family:var(--f-sans); font-size:0.64rem; font-weight:800; letter-spacing:0.08em; text-transform:uppercase;}
  .persona-card-title{font-family:var(--f-testata); font-weight:400; font-size:2rem; line-height:1;}
  .persona-card-sub{font-family:var(--f-serif); font-style:italic; font-size:0.95rem; padding:0.5rem 0 0; color:#2A2A2A;}
  .form-field{margin-bottom:1.1rem;}
  .form-field label, .form-field > label{display:block; font-family:var(--f-sans); font-size:0.78rem; font-weight:800; margin-bottom:0.4rem;}
  .radio-group{display:flex; flex-direction:column; gap:0.4rem;}
  .radio-group label{display:flex; align-items:flex-start; gap:0.5rem; font-family:var(--f-serif); font-weight:400; font-size:0.95rem; cursor:pointer;}
  .radio-group input{accent-color:var(--ink);}
  .back-link{background:none; border:none; color:var(--ink); font-size:0.8rem; font-weight:800; cursor:pointer; padding:0; margin-bottom:1rem; font-family:var(--f-sans); min-height:44px;}
  .persona-note{background:var(--paper-dim); border-radius:0; padding:0.8rem 1rem; font-size:0.92rem; font-style:italic; margin-top:0.6rem; color:#2A2A2A;}

  footer{max-width:920px; margin:0 auto; padding-block:1rem 3rem; padding-left:max(16px, env(safe-area-inset-left, 0px)); padding-right:max(16px, env(safe-area-inset-right, 0px)); font-family:var(--f-sans); font-size:0.74rem; color:var(--muted); border-top:3px solid var(--ink);}
  footer strong{color:var(--ink);}
  @media (prefers-reduced-motion: reduce){ *{transition:none !important;} }
  /* MENTA: titoli in condensato, testo in graziato */
  .domanda, .form-field > label:not(:has(input)){font-family:var(--f-titoli); font-size:1.35rem; font-weight:700; line-height:1.1; letter-spacing:0; margin-bottom:0.6rem; padding:0;}
  .domanda span, .form-field > label:not(:has(input)) span{font-family:var(--f-sans); font-size:0.8rem; font-weight:400; color:var(--muted);}
  .form-field{margin-bottom:1.4rem;}
  .manifesto{max-width:640px;}
  .manifesto-titolo{font-family:var(--f-testata); font-weight:800; text-transform:uppercase; font-size:clamp(3.5rem, 18vw, 6rem); line-height:0.85; letter-spacing:-0.03em; margin:0.2rem 0 0.8rem;}
  .manifesto-lead{font-size:1.15rem; line-height:1.45; margin:0 0 1.2rem; padding-bottom:1rem; border-bottom:3px solid var(--ink);}
  .manifesto-punti{list-style:none; padding:0; margin:0; counter-reset:punto;}
  .manifesto-punti li{counter-increment:punto; display:grid; grid-template-columns:2.4rem minmax(0,1fr); column-gap:0.6rem; padding:0.9rem 0; border-bottom:1px solid var(--line);}
  .manifesto-punti li::before{content:counter(punto); grid-row:1 / span 2; font-family:var(--f-testata); font-weight:800; font-size:2.2rem; line-height:0.9;}
  .manifesto-punti li:nth-child(3n+1)::before{color:#B8430F;} .manifesto-punti li:nth-child(3n+2)::before{color:#1C6E4F;} .manifesto-punti li:nth-child(3n)::before{color:#2348C4;}
  .manifesto-punti h2{font-size:1.35rem; margin:0 0 0.3rem;}
  .manifesto-punti p{margin:0; line-height:1.5;}
  .manifesto-firma{font-family:var(--f-sans); font-size:0.85rem; color:var(--muted); margin:1.2rem 0 1rem;}
  .footer-link{margin:0 0 0.7rem;} .footer-link a{font-family:var(--f-titoli); font-weight:700; font-size:1rem; text-transform:uppercase; letter-spacing:0.03em; color:var(--ink);}
  .b-hint{font-family:var(--f-serif); font-style:italic; font-size:1rem; color:var(--muted); margin:0 0 1rem; border-top:1px solid var(--line); padding-top:0.8rem;}
  .scelta-b{border-bottom:3px solid var(--ink); margin-bottom:0.6rem;}
  .form-field select, .form-field input[type="text"]{width:100%; max-width:100%;}
  .pathway-title, .marker-body h4, .inst-card h4, .sim-option .sim-opt-name{font-family:var(--f-titoli); font-weight:700; letter-spacing:0;}
  .pathway-title{font-size:1.45rem; line-height:1.02;}
  .marker-body h4, .inst-card h4{font-size:1.2rem; line-height:1.05;}
  .persona-card-title{font-weight:800; text-transform:uppercase; letter-spacing:-0.01em;}
  .eyebrow, .marker-body .stage-type, .prof-card .tags, .sim-subtitle{font-family:var(--f-titoli); font-size:0.85rem; letter-spacing:0.03em;}
