/**
 * Moduli (form) creati dal pannello "Moduli".
 */

.dmf-modulo-section {
  padding: 60px 24px;
}

.dmf-modulo-section__inner {
  margin: 0 auto;
  max-width: var(--dmf-container, 980px);
}

.dmf-modulo-section--narrow .dmf-modulo-section__inner { max-width: 720px; }
.dmf-modulo-section--wide .dmf-modulo-section__inner { max-width: var(--dmf-container-wide, 1200px); }

/* Riquadro */

.dmf-modulo--light {
  background: var(--dmf-bg, #fff);
  border: 1px solid var(--dmf-border, #d2d2d7);
  border-radius: var(--dmf-radius-card, 18px);
  padding: 32px;
}

.dmf-modulo--dark {
  background: #1d1d1f;
  border-radius: var(--dmf-radius-card, 18px);
  padding: 32px;
  color: #f5f5f7;
}

.dmf-modulo__hp {
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.dmf-modulo__title {
  font-family: var(--dmf-font-display);
  font-size: 28px;
  line-height: 1.14;
  letter-spacing: -0.015em;
  margin: 0 0 8px;
  color: var(--dmf-text);
}

.dmf-modulo--dark .dmf-modulo__title { color: #fff; }

.dmf-modulo__intro {
  color: var(--dmf-text-secondary);
  margin-bottom: 24px;
}

.dmf-modulo--dark .dmf-modulo__intro { color: #c7c7cc; }

/* Campi */

.dmf-modulo__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-bottom: 24px;
}

.dmf-modulo__field--full { grid-column: 1 / -1; }

.dmf-modulo__heading h3 {
  font-family: var(--dmf-font-display);
  font-size: 19px;
  margin: 12px 0 0;
  color: var(--dmf-text);
}

.dmf-modulo--dark .dmf-modulo__heading h3 { color: #fff; }

.dmf-modulo__label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 6px;
  color: var(--dmf-text);
}

.dmf-modulo--dark .dmf-modulo__label { color: #f5f5f7; }

.dmf-modulo__input {
  width: 100%;
  padding: 12px 14px;
  font-family: var(--dmf-font-text);
  font-size: 16px;
  color: var(--dmf-text);
  background: var(--dmf-bg, #fff);
  border: 1px solid var(--dmf-border, #d2d2d7);
  border-radius: 12px;
  transition: border-color 0.15s ease-in-out;
}

.dmf-modulo__input:focus {
  outline: none;
  border-color: var(--dmf-primary);
}

.dmf-modulo__textarea { resize: vertical; }

.dmf-modulo--dark .dmf-modulo__input {
  background: #2c2c2e;
  border-color: #3a3a3c;
  color: #fff;
}

.dmf-modulo__choices {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.dmf-modulo__choice,
.dmf-modulo__consent {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid var(--dmf-border, #d2d2d7);
  border-radius: 12px;
  cursor: pointer;
  font-size: 15px;
  color: var(--dmf-text);
}

.dmf-modulo__consent {
  align-items: flex-start;
  font-size: 13px;
  color: var(--dmf-text-secondary);
}

.dmf-modulo--dark .dmf-modulo__choice,
.dmf-modulo--dark .dmf-modulo__consent {
  border-color: #3a3a3c;
  color: #f5f5f7;
}

.dmf-modulo__choice input,
.dmf-modulo__consent input {
  accent-color: var(--dmf-primary);
  width: 16px;
  height: 16px;
  flex: none;
}

.dmf-modulo__help {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--dmf-text-muted);
}

/* Invio */

.dmf-modulo__submit {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.dmf-modulo__spinner {
  width: 18px;
  height: 18px;
  border: 3px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: dmf-modulo-spin 0.8s linear infinite;
}

@keyframes dmf-modulo-spin {
  to { transform: rotate(360deg); }
}

.dmf-modulo__privacy {
  margin: 14px 0 0;
  text-align: center;
  font-size: 12px;
  color: var(--dmf-text-muted);
}

.dmf-modulo__privacy a { color: var(--dmf-primary); }

/* Esito */

.dmf-modulo__state {
  text-align: center;
  padding: 40px 10px;
}

.dmf-modulo__state h2 {
  font-family: var(--dmf-font-display);
  font-size: 26px;
  margin: 0 0 8px;
  color: var(--dmf-text);
}

.dmf-modulo--dark .dmf-modulo__state h2 { color: #fff; }

.dmf-modulo__state p {
  color: var(--dmf-text-secondary);
  margin: 0 0 24px;
}

.dmf-modulo__state-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 20px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dmf-modulo__state-icon svg { width: 30px; height: 30px; }

.dmf-modulo__state-icon--ok { background: #e3f5e9; color: #1a7f42; }
.dmf-modulo__state-icon--ko { background: #fdeceb; color: #b32d2e; }

.dmf-modulo__state-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

@media (max-width: 767px) {
  .dmf-modulo-section { padding: 40px 20px; }
  .dmf-modulo--light,
  .dmf-modulo--dark { padding: 22px; }
  .dmf-modulo__grid { grid-template-columns: minmax(0, 1fr); }
  .dmf-modulo__field--half { grid-column: 1 / -1; }
}
