/* territori (10/10/2026; docs/sito.md «Il CAP e il negozio proposto», «Le pagine delle città»): il campo CAP con il negozio proposto, e le pagine delle città.
   Sopra sito.css e sito-negozi.css; curato a 390 px (una colonna, tocchi da 44 px, niente scroll laterale). */
.nz-cap { margin-top: 1.25rem; max-width: 34rem; }
.nz-cap label { display: block; font-weight: 800; letter-spacing: -.01em; margin-bottom: .35rem; }
.nz-cap-riga { display: flex; gap: .5rem; align-items: stretch; }
.nz-cap-riga input { flex: 0 1 9rem; min-width: 0; min-height: 2.9rem; font: inherit; font-size: 1.15rem; letter-spacing: .14em; font-variant-numeric: tabular-nums; text-align: center;
  color: var(--testo, #fff); background: rgba(27, 22, 38, .9); border: 1px solid var(--bordo, rgba(255, 255, 255, .14)); border-radius: 14px; padding: 0 .8rem; }
.nz-cap-riga input:focus { border-color: var(--viola, #8B5CF6); outline: none; box-shadow: 0 0 0 3px rgba(139, 92, 246, .25); }
.nz-cap-riga input::placeholder { color: var(--grigio, #9a93ad); letter-spacing: .02em; }
.nz-cap-riga .bottone { min-height: 2.9rem; }
.nz-cap-aiuto { margin: .35rem 0 0; }
.nz-cap-esito { margin: .55rem 0 0; min-height: 1.4em; }
.nz-cap-proposta { display: inline-block; padding: .55rem .85rem; border-radius: 14px; background: linear-gradient(90deg, rgba(139, 92, 246, .22), rgba(245, 165, 36, .14)); border: 1px solid rgba(139, 92, 246, .45); }
.nz-cap-proposta b { color: var(--ambra, #F5A524); }
.nz-cap-proposta small { display: block; color: var(--testo-2, #cfc8e3); margin-top: .15rem; }
.nz-cap-nuova { animation: nz-cap-entra .45s cubic-bezier(.2, .7, .2, 1) both; }
@keyframes nz-cap-entra { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.nz-cap-cambia { display: block; color: var(--grigio, #9a93ad); font-size: .88rem; margin-top: .35rem; }
.nz-cap-errore { color: #FCA5A5; }
.nz-cap-modulo { margin: 0; }
.nz-start-cap .nz-cap { margin: 1.25rem auto 0; text-align: left; }
.nz-cap-modulo .nz-cap { margin-top: 0; }
.nz-vicino.nz-tuo, em.nz-tuo { background: var(--ambra, #F5A524); color: #2a1d00; }
.nz-contatto-va { margin: .4rem 0 0; }
.nz-carta.evidenzia { border-color: rgba(245, 165, 36, .8); }

/* la presentazione del negozio (approvata dalla sede) nella sua pagina */
.nz-descrizione { max-width: 36rem; margin: .9rem 0 1.1rem; color: var(--testo-2, #cfc8e3); font-size: 1.05rem; line-height: 1.55; }

/* le pagine delle città */
.cz-hero { position: relative; overflow: hidden; padding: 2.5rem 0 2rem; }
.cz-hero h1 { margin: .4rem 0 .7rem; }
.cz-griglia { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.cz-negozio { display: grid; gap: .75rem; }
.cz-vicino-titolo { font-size: .78rem; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; color: var(--grigio, #9a93ad); margin: 0; }
.cz-negozio h2 { margin: 0; font-size: 1.6rem; letter-spacing: -.03em; }
.cz-km { display: inline-flex; align-items: center; gap: .4rem; padding: .25rem .7rem; border-radius: 99px; border: 1px solid rgba(245, 165, 36, .5); color: var(--ambra, #F5A524); font-weight: 800; font-size: .9rem; width: fit-content; }
.cz-territorio { margin: 0; color: var(--testo-2, #cfc8e3); }
.cz-azioni { display: flex; flex-wrap: wrap; gap: .5rem; }
.cz-azioni .bottone { min-height: 2.75rem; }
.cz-cosa { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cz-cosa article { padding: 1.2rem 1.25rem; }
.cz-cosa h3 { margin: 0 0 .35rem; font-size: 1.15rem; }
.cz-cosa p { margin: 0; }
.cz-altre { display: flex; flex-wrap: wrap; gap: .45rem; list-style: none; margin: 0; padding: 0; }
.cz-altre a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0 1rem; border-radius: 99px; border: 1px solid var(--bordo, rgba(255, 255, 255, .12)); color: var(--testo, #fff); text-decoration: none; background: rgba(27, 22, 38, .6); }
.cz-altre a:hover { border-color: rgba(139, 92, 246, .7); color: var(--ambra, #F5A524); }
.cz-cantoni { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }
.cz-cantone h2 { font-size: 1.05rem; margin: 0 0 .6rem; }
@media (max-width: 860px) { .cz-griglia, .cz-cosa { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 520px) { .nz-cap-riga input { flex-basis: 7.5rem; } .cz-hero { padding: 1.75rem 0 1.25rem; } }
@media (prefers-reduced-motion: reduce) { .nz-cap-nuova { animation: none; } }
