/* ============================================================================
   Modale "Prenota una demo" — condiviso fra landing e pricing.
   Una fonte di verità: le due pagine hanno CSS diversi e incompatibili, quindi
   qui tutto è prefissato .dm- e non eredita niente da loro.
   Palette Domus: pompeiano #9B3329, crema #F7EDE2, ink #0D1117.
   ============================================================================ */

.dm-bg{
  --dm-pomp:#9B3329; --dm-pomp-dk:#812A22; --dm-crema:#F7EDE2; --dm-ink:#0D1117;
  --dm-line:#E6E3DE; --dm-muted:#6E6A64;
  --dm-sans:-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',Roboto,sans-serif;
  position:fixed; inset:0; z-index:9999;
  background:rgba(13,17,23,.55); backdrop-filter:blur(3px);
  display:none; align-items:center; justify-content:center; padding:20px;
  font-family:var(--dm-sans);
}
.dm-bg.dm-open{display:flex}

.dm-panel{
  background:#fff; border-radius:16px; width:100%; max-width:520px;
  max-height:calc(100vh - 40px); overflow-y:auto;
  box-shadow:0 24px 70px rgba(0,0,0,.3); position:relative;
  padding:30px 30px 26px; color:var(--dm-ink);
  animation:dm-in .18s ease-out;
}
@keyframes dm-in{from{opacity:0; transform:translateY(10px) scale(.99)}to{opacity:1; transform:none}}

.dm-x{
  position:absolute; top:14px; right:14px; width:34px; height:34px;
  border:none; background:transparent; border-radius:9px; cursor:pointer;
  font-size:22px; line-height:1; color:var(--dm-muted);
}
.dm-x:hover{background:#f1efec; color:var(--dm-ink)}

.dm-mark{display:block; height:26px; width:auto; margin-bottom:14px}
.dm-panel h2{margin:0 0 6px; font-size:22px; font-weight:800; letter-spacing:-.02em; line-height:1.2}
.dm-sub{margin:0 0 20px; font-size:14px; color:var(--dm-muted); line-height:1.55}

.dm-campo{margin-bottom:13px}
.dm-campo label{display:block; font-size:12.5px; font-weight:600; margin-bottom:5px}
.dm-campo .dm-opt{color:var(--dm-muted); font-weight:500}
.dm-campo input{
  width:100%; box-sizing:border-box; padding:11px 13px; font-size:14.5px;
  font-family:inherit; color:var(--dm-ink);
  border:1px solid var(--dm-line); border-radius:9px; background:#fff;
}
.dm-campo input:focus{outline:none; border-color:var(--dm-pomp); box-shadow:0 0 0 3px rgba(155,51,41,.12)}
.dm-campo input.dm-err{border-color:#C0392B; background:#fdf6f5}
.dm-msg-err{display:none; font-size:12px; color:#C0392B; margin-top:4px}
.dm-campo.dm-ko .dm-msg-err{display:block}

.dm-due{display:grid; grid-template-columns:1fr 1fr; gap:13px}
@media (max-width:520px){ .dm-due{grid-template-columns:1fr; gap:0} .dm-panel{padding:26px 20px 22px} }

.dm-consenso{
  display:flex; gap:9px; align-items:flex-start; margin:16px 0 18px;
  font-size:12.5px; color:var(--dm-muted); line-height:1.5;
}
.dm-consenso input{margin-top:2px; flex:none; accent-color:var(--dm-pomp); width:15px; height:15px}
.dm-consenso a{color:var(--dm-pomp); font-weight:600}

.dm-invia{
  width:100%; padding:13px; border:none; border-radius:10px; cursor:pointer;
  background:var(--dm-pomp); color:var(--dm-crema);
  font-family:inherit; font-size:15px; font-weight:700; letter-spacing:-.01em;
}
.dm-invia:hover:not(:disabled){background:var(--dm-pomp-dk)}
.dm-invia:disabled{opacity:.6; cursor:default}

.dm-errore{
  display:none; margin-top:13px; padding:11px 13px; border-radius:9px;
  background:#fdf2f0; border:1px solid #f0c8c1; color:#8c2f22;
  font-size:13.5px; line-height:1.5;
}
.dm-errore.dm-on{display:block}

/* stato di successo: sostituisce il form */
.dm-fatto{display:none; text-align:center; padding:14px 0 6px}
.dm-fatto.dm-on{display:block}
.dm-fatto .dm-tick{
  width:52px; height:52px; border-radius:50%; background:#E8F3EC; color:#1D7A4D;
  display:flex; align-items:center; justify-content:center; margin:0 auto 16px;
  font-size:26px; font-weight:700;
}
.dm-fatto h3{margin:0 0 8px; font-size:19px; font-weight:800}
.dm-fatto p{margin:0 0 20px; font-size:14px; color:var(--dm-muted); line-height:1.6}
