/* Finestra «Primo colloquio» con il modulo contatti (components/layout/contact_modal.inc.php) */

.finestra {
  width: min(100% - 2rem, 46rem);
  max-height: min(100% - 2rem, 54rem);
  padding: 0; border: 0;
  background: var(--carta); color: var(--su-carta);
  box-shadow: 0 40px 80px -30px rgba(0, 0, 0, .55);
  overflow: auto;
  overscroll-behavior: contain;
}
.finestra::backdrop { background: rgba(0, 18, 47, .72); backdrop-filter: blur(6px); }
.finestra[open] { animation: apri .55s var(--esce); }
.finestra[open]::backdrop { animation: sfuma .45s var(--esce); }
@keyframes apri { from { opacity: 0; transform: translateY(24px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes sfuma { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .finestra[open], .finestra[open]::backdrop { animation: none; } }
.finestra__testa { background: var(--blu); color: var(--bianco); padding: 1.75rem clamp(1.25rem, 4vw, 2.5rem); display: flex; justify-content: space-between; align-items: start; gap: 1.5rem; }
.finestra__testa h2 { font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); font-stretch: 118%; letter-spacing: -.02em; }
.finestra__testa p { margin: .6rem 0 0; color: var(--su-blu-2); font-size: .9375rem; }
.finestra__chiudi { flex: none; background: none; border: 1px solid var(--filo-blu); color: var(--bianco); width: 2.75rem; height: 2.75rem; display: grid; place-items: center; cursor: pointer; transition: background-color .3s, color .3s; }
.finestra__chiudi:hover { background: var(--bianco); color: var(--blu); }
.finestra__chiudi svg { width: 1.2rem; height: 1.2rem; }
.finestra__vie { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--filo-carta); }
.finestra__vie a { padding: 1.25rem clamp(1.25rem, 4vw, 2.5rem); text-decoration: none; display: flex; flex-direction: column; gap: .2rem; transition: background-color .3s; }
.finestra__vie a + a { border-left: 1px solid var(--filo-carta); }
.finestra__vie a:hover { background: var(--carta-2); }
.finestra__vie small { color: var(--su-carta-2); font-size: .8125rem; }
.finestra__vie strong { font-size: 1.0625rem; font-stretch: 108%; word-break: break-word; font-variant-numeric: tabular-nums; }
.finestra__corpo { padding: 1.75rem clamp(1.25rem, 4vw, 2.5rem) 2rem; }
.modulo { display: grid; gap: 1.1rem; }
.modulo fieldset { border: 0; margin: 0; padding: 0; }
.modulo legend, .modulo label.l { display: block; font-size: .875rem; font-weight: 700; margin-bottom: .45rem; }
.scelta { display: grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--blu); }
.scelta label { position: relative; cursor: pointer; }
.scelta input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.scelta span { display: block; padding: .8rem 1rem; text-align: center; font-weight: 650; font-size: .9375rem; transition: background-color .3s var(--esce), color .3s; }
.scelta label + label span { border-left: 1px solid var(--blu); }
.scelta input:checked + span { background: var(--blu); color: var(--bianco); }
.scelta input:focus-visible + span { outline: 2px solid var(--blu); outline-offset: 2px; }
.campo-m input, .campo-m textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--su-carta);
  background: var(--bianco); border: 1px solid rgba(0, 26, 68, .35); border-radius: 0;
  padding: .85rem 1rem; transition: border-color .3s, box-shadow .3s;
  caret-color: var(--blu);
}
.campo-m textarea { resize: vertical; min-height: 8rem; }
.campo-m input::placeholder, .campo-m textarea::placeholder { color: #5f7090; }
.campo-m input:focus, .campo-m textarea:focus { outline: none; border-color: var(--blu); box-shadow: 0 0 0 3px rgba(0, 26, 68, .14); }
.campo-m.errore input, .campo-m.errore textarea { border-color: #b3261e; }
.campo-m .msg { display: none; margin-top: .4rem; font-size: .8125rem; color: #b3261e; font-weight: 600; }
.campo-m.errore .msg { display: block; }
.consenso { display: grid; grid-template-columns: auto 1fr; gap: .75rem; align-items: start; font-size: .875rem; line-height: 1.5; color: var(--su-carta-2); }
.consenso input { width: 1.25rem; height: 1.25rem; margin: .1rem 0 0; accent-color: var(--blu); }
.consenso.errore { color: #b3261e; }
.esca { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.modulo .azione { justify-self: start; }
.modulo .azione[aria-busy="true"] { opacity: .7; pointer-events: none; }
.esito { display: none; padding: 1.25rem; border: 1px solid var(--blu); background: var(--bianco); }
.esito.visibile { display: block; }
.esito strong { display: block; font-size: 1.125rem; font-stretch: 108%; margin-bottom: .25rem; }
.esito p { margin: 0; color: var(--su-carta-2); font-size: .9375rem; }
.esito--errore { border-color: #b3261e; }
.esito--errore strong { color: #b3261e; }
@media (max-width: 560px) {
  .finestra { width: 100%; max-width: 100%; max-height: 100%; height: 100%; }
  .finestra__vie { grid-template-columns: 1fr; }
  .finestra__vie a + a { border-left: 0; border-top: 1px solid var(--filo-carta); }
}
