/* solo la home */
.apertura { padding: 40px 0px 10px; text-align: center; }
.apertura h1 { font-family: var(--carattere-titoli); font-weight: 300; color: var(--blu-notte); font-size: 2.3rem; line-height: 1.15; }
.apertura h1 strong { font-weight: 600; }
.apertura__sotto { margin: 26px auto 0px; max-width: 62rem; font-size: 1.25rem; color: var(--blu-notte); }
.apertura .pulsante { margin-top: 40px; }
.apertura__testo { max-width: 56rem; margin: 30px auto 0px; text-align: left; color: #555; }
.apertura__testo p + p { margin-top: 1.4em; }

.calendario { max-width: 56rem; margin: 40px auto 0px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.calendario li { list-style: none; border: 1px solid var(--blu-acciaio); border-radius: 3px; padding: 14px 16px; text-align: left; }
.calendario b { display: inline-block; background: var(--blu-acciaio); color: #fff; font-weight: 400; font-size: 14px; padding: 2px 10px; }
.calendario span { display: block; margin-top: 8px; font-family: var(--carattere-titoli); color: var(--blu-notte); font-size: 1.1rem; line-height: 1.3; }
.calendario-lista { padding: 0px; }

.servizi { padding: 50px 0px 10px; }
.servizi h2 { font-family: var(--carattere-titoli); font-weight: 400; color: #222; font-size: 2rem; text-align: center; margin-bottom: 18px; }
.servizi__griglia { display: grid; grid-template-columns: 1fr; gap: 32px; max-width: 56rem; margin: 0px auto; }
.tessera-foto { position: relative; min-height: 400px; overflow: hidden; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; text-decoration: none; }
.tessera-foto img { position: absolute; inset: 0px; width: 100%; height: 100%; object-fit: cover; }
.tessera-foto::after { content: ""; position: absolute; inset: 0px; background: rgba(0, 40, 86, .62); transition: background .3s; }
.tessera-foto:hover::after { background: rgba(0, 40, 86, .74); }
.tessera-foto__testo { position: relative; z-index: 1; padding: 0px 20px; }
.tessera-foto h3 { font-family: var(--carattere-titoli); font-weight: 600; font-size: 1.55rem; line-height: 1.25; }
.tessera-foto p { margin-top: 10px; font-size: 1.05rem; line-height: 1.5; }
.tessera-foto--larga h3 { font-size: 2.6rem; font-weight: 400; }
.servizi__nota { text-align: center; color: #666; font-size: 15px; margin-top: 10px; }

.frase-oro { background: #fafafa; padding: 60px 0px; margin-top: 40px; }
.frase-oro__riga { display: grid; gap: 30px; }
.frase-oro .frase-oro__grande { font-size: 4.2rem; line-height: 1; color: var(--oro); }
.frase-oro__grande small { font-size: .45em; }
.frase-oro p { font-size: 1.85rem; line-height: 1.5; color: var(--blu-acciaio); }
.frase-oro__lato { font-size: 1.85rem; line-height: 1.5; color: var(--blu-acciaio); }

.chi { background: var(--blu-acciaio); color: #fff; padding: 50px 0px 60px; }
.chi h2 { font-family: var(--carattere-titoli); font-weight: 400; font-size: 2.1rem; }
.chi__intro { margin-top: 18px; }
.chi__riga { display: grid; gap: 30px; margin-top: 26px; align-items: center; }
.chi__foto img { border: 8px solid #111; width: 100%; max-width: 470px; aspect-ratio: 1; object-fit: cover; filter: grayscale(1); }
.chi__testo h3 { font-family: var(--carattere-titoli); font-weight: 400; font-size: 2rem; }
.chi__testo b { display: block; margin-top: 18px; }
.chi__testo p { margin-top: 18px; }
.chi a { color: #fff; font-weight: 700; }

.biblioteca { padding: 40px 0px 20px; }
.biblioteca__testa { background: #f4f4f4; padding: 40px 20px; text-align: center; }
.biblioteca__testa h2 { font-family: var(--carattere-titoli); font-weight: 400; font-size: 2rem; color: #222; }
.biblioteca__testa p { margin-top: 18px; }
.schede-articoli { display: grid; gap: 32px; margin-top: 12px; }
.scheda-articolo { border: 2px solid var(--blu-acciaio); padding: 30px; text-decoration: none; color: var(--colore-testo); display: block; }
.scheda-articolo__data { display: inline-block; background: var(--blu-acciaio); color: #fff; font-size: 14px; padding: 4px 12px; }
.scheda-articolo h3 { font-family: var(--carattere-titoli); font-weight: 400; font-size: 1.45rem; line-height: 1.3; color: #222; margin-top: 16px; }
.scheda-articolo p { margin-top: 14px; font-size: 14px; color: #64748b; }
.scheda-articolo__cat { display: block; margin-top: 18px; border-left: 3px solid var(--blu-acciaio); padding-left: 15px; font-size: 11px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: #222; }
.scheda-articolo:hover h3 { color: var(--blu-acciaio); }

.richiesta { padding: 30px 0px 60px; }
.richiesta h2 { font-family: var(--carattere-titoli); font-weight: 400; font-size: 2.1rem; color: #222; }
.richiesta .avvertenza { margin-top: 30px; }

.domande-lista { padding: 10px 0px 60px; }
.domande-lista h2 { font-family: var(--carattere-titoli); font-weight: 400; font-size: 2.1rem; color: #222; margin-bottom: 14px; }
.domande-lista details { border-bottom: 1px solid #e2e8f0; }
.domande-lista summary { cursor: pointer; padding: 16px 30px 16px 0px; font-family: var(--carattere-titoli); font-size: 1.15rem; color: var(--blu-notte); list-style: none; position: relative; }
.domande-lista summary::-webkit-details-marker { display: none; }
.domande-lista summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 1.4rem; color: var(--blu-acciaio); }
.domande-lista details[open] summary::after { content: "–"; }
.domande-lista details p { padding: 0px 0px 18px; }

.guide { padding: 0px 0px 60px; }
.guide h2 { font-family: var(--carattere-titoli); font-weight: 400; font-size: 2.1rem; color: #222; }
.guide ul { margin-top: 16px; padding-left: 20px; }
.guide li { margin-top: 8px; }

@media all and (min-width: 600px) {
    .apertura h1 { font-size: 3.4rem; }
    .calendario { grid-template-columns: repeat(4, 1fr); }
    .servizi__griglia { grid-template-columns: repeat(3, 1fr); }
    .servizi__griglia .tessera-foto--larga { grid-column: span 3; }
    .schede-articoli { grid-template-columns: repeat(2, 1fr); }
}
@media all and (min-width: 1025px) {
    .apertura h1 { font-size: 4rem; }
    .servizi__griglia { grid-template-columns: repeat(6, 1fr); max-width: 900px; }
    .servizi__griglia .tessera-foto { grid-column: span 2; }
    .servizi__griglia .tessera-foto--larga { grid-column: span 3; }
    .frase-oro__riga { grid-template-columns: 1fr 1fr; }
    .chi__riga { grid-template-columns: 470px 1fr; gap: 60px; }
    .schede-articoli { grid-template-columns: repeat(3, 1fr); }
}
.tessera-foto__testo { text-shadow: 0 1px 8px rgba(0, 0, 0, .45); }
.apertura h1 { font-size: clamp(2.1rem, 5vw, 4rem); text-wrap: balance; }
.apertura__testo p, .chi__testo p { text-wrap: pretty; }

/* cosa vede l'assistente */
.occhio-ia { padding: 56px 0px 50px; }
.occhio-ia__riga { display: grid; gap: 30px; align-items: center; }
.occhio-ia__foto img { width: 100%; height: 420px; object-fit: cover; border-radius: 6px; }
.occhio-ia h2 { font-family: var(--carattere-titoli); font-weight: 400; color: #222; font-size: 2rem; line-height: 1.25; }
.occhio-ia__testo > p { margin-top: 12px; font-size: 1.1rem; }
.occhio-ia__passi { margin: 22px 0px 0px; padding: 0px; list-style: none; counter-reset: passo; }
.occhio-ia__passi li { counter-increment: passo; position: relative; padding: 14px 0px 14px 52px; border-top: 1px solid #e2e8f0; }
.occhio-ia__passi li::before { content: counter(passo); position: absolute; left: 0px; top: 12px; width: 34px; height: 34px; border-radius: 50%; background: var(--blu-acciaio); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; }
.occhio-ia__passi b { display: block; }
.occhio-ia__passi span { display: block; margin-top: 4px; color: #475569; }

/* cartella prima e dopo */
.prima-dopo { background: #fafafa; padding: 50px 0px; }
.prima-dopo h2 { font-family: var(--carattere-titoli); font-weight: 400; color: #222; font-size: 2rem; text-align: center; }
.prima-dopo__interruttore { display: flex; justify-content: center; gap: 0px; margin: 20px auto 26px; }
.prima-dopo__interruttore button { border: 1px solid var(--blu-acciaio); background: #fff; color: var(--blu-acciaio); padding: 9px 26px; font: inherit; cursor: pointer; }
.prima-dopo__interruttore button[aria-selected="true"] { background: var(--blu-acciaio); color: #fff; }
.prima-dopo__pannello { max-width: 760px; margin: 0px auto; }
.cartelle { list-style: none; margin: 0px; padding: 0px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.cartelle li { background: #fff; border: 1px solid #e2e8f0; padding: 12px 14px 12px 42px; position: relative; font-size: 15px; }
.cartelle li::before { content: ""; position: absolute; left: 14px; top: 15px; width: 18px; height: 13px; border-radius: 2px; background: #f4c76b; }
.cartelle li.file::before { width: 13px; height: 17px; top: 13px; background: #cbd5e1; }
.prima-dopo__pannello p { margin-top: 16px; text-align: center; color: #475569; }
@media all and (min-width: 782px) {
    .occhio-ia__riga { grid-template-columns: 2fr 3fr; gap: 50px; }
}
@media all and (max-width: 599px) {
    .cartelle { grid-template-columns: 1fr; }
}
.cartelle li { min-width: 0; overflow-wrap: anywhere; }

/* due righe da Federica */
.biglietto { padding: 54px 0px; }
.biglietto__foglio { max-width: 680px; margin: 0px auto; background: #fff; border: 1px solid #e2e8f0; border-top: 4px solid var(--oro); padding: 36px 40px; }
.biglietto h2 { font-family: var(--carattere-titoli); font-weight: 400; color: #222; font-size: 1.75rem; }
.biglietto p { margin-top: 14px; line-height: 1.7; }
.biglietto__firma { font-family: var(--carattere-titoli); font-style: italic; font-size: 1.4rem; text-align: right; color: var(--blu-acciaio); }
@media all and (max-width: 600px) {
    .biglietto__foglio { padding: 26px 20px; }
}
