/* ==========================================
   Maschio Gaspardo - EIMA 2026
   ========================================== */

:root {
  --rosso: #d0111b;
  --rosso-btn: #ec1c24;
  --rosso-scuro: #7a0a0f;
  --grigio-bg: #f3f3f3;
  --grigio-txt: #444;
  --bordo: #cfcfcf;
}

body {
  font-family: 'Montserrat', Arial, sans-serif;
  font-size: 15px;
  color: #222;
}

a { color: inherit; }

/* Header */
.topbar { background: #fff; }
.logo { height: 44px; width: auto; max-width: 100%; }
.logo-sm { height: 32px; }

/* Hero */
.hero { line-height: 0; }
.hero-img {
  display: block;
  width: 100%;
  height: auto;
}

/* Banda evento */
.evento {
  background: var(--rosso);
  padding: 36px 0 34px;
}
.evento-titolo {
  font-size: 34px;
  font-weight: 700;
}
.evento-data {
  font-size: 22px;
  font-weight: 500;
}

/* Intro */
.intro { padding: 42px 0 56px; }
.intro-txt {
  max-width: 690px;
  line-height: 1.65;
  margin-bottom: 36px;
}

/* Bottoni */
.btn-mg {
  background: var(--rosso-btn);
  color: #fff;
  font-weight: 700;
  font-size: 16px;
  border: 0;
  border-radius: 0;
  padding: 14px 20px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, .2);
}
.btn-mg:hover,
.btn-mg:focus-visible {
  background: var(--rosso);
  color: #fff;
}
.btn-mg:focus-visible {
  outline: 3px solid var(--rosso-scuro);
  outline-offset: 2px;
}

/* Sezione richiesta */
.richiesta {
  background: var(--grigio-bg);
  padding: 90px 0 100px;
  border-bottom: 16px solid var(--rosso-btn);
}
.richiesta-titolo {
  color: var(--rosso);
  font-size: 32px;
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: 40px;
}
.richiesta-nota {
  color: var(--rosso-scuro);
  font-weight: 700;
}

/* Passaggi */
.passo {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-bottom: 50px;
}
.passo p {
  margin: 0;
  font-size: 18px;
  font-weight: 600;
  color: var(--grigio-txt);
  line-height: 1.4;
}
.passo-img {
  flex: 0 0 auto;
  width: 90px;
  height: 90px;
}

/* Nota bene */
.nb { margin-top: 30px; }
.nb-titolo {
  color: var(--rosso);
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 4px;
}
.nb-lista {
  padding-left: 22px;
  margin: 0;
  line-height: 1.6;
}

/* Box form */
.box-form {
  background: #fff;
  border: 1px solid var(--rosso);
  border-radius: 14px;
  padding: 60px 60px 56px;
}
.campo {
  height: 48px;
  border: 1px solid var(--bordo);
  border-radius: 0;
  font-size: 15px;
  color: #222;
}
.campo::placeholder { color: #333; }
.campo:focus {
  border-color: var(--rosso);
  box-shadow: 0 0 0 .2rem rgba(208, 17, 27, .15);
}
select.campo:invalid { color: #333; }

.check-mg { font-size: 12px; line-height: 1.35; }
.check-mg .form-check-input {
  border-radius: 0;
  border-color: var(--bordo);
}
.check-mg .form-check-input:checked {
  background-color: var(--rosso);
  border-color: var(--rosso);
}
.check-mg a { text-decoration: underline; }

.obbligatori {
  font-size: 10px;
  margin-bottom: 26px;
}
.btn-invia {
  font-size: 18px;
  padding: 15px;
}

/* Footer */
.footer { padding: 30px 0 60px; }
.footer-top { margin-bottom: 40px; }
.footer-link {
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}
.footer-link:hover { color: var(--rosso); }
.social .bi {
  color: var(--rosso-btn);
  font-size: 24px;
}
.social .list-inline-item:not(:last-child) { margin-right: 22px; }
.copy {
  font-size: 11px;
  color: #777;
}

/* Responsive */
@media (max-width: 991.98px) {
  .evento-titolo { font-size: 26px; }
  .evento-data { font-size: 18px; }
  .richiesta { padding: 60px 0 70px; }
  .richiesta-titolo { font-size: 24px; }
  .box-form { padding: 36px 24px; }
}

@media (max-width: 575.98px) {
  .evento-titolo { font-size: 21px; }
  .evento-data { font-size: 15px; }
  .passo p { font-size: 16px; }
  .passo-img { width: 76px; height: 76px; }
}

/* ==========================================
   Validazione form + AJAX
   ========================================== */
.honeypot {
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.campo.is-invalid,
.form-check-input.is-invalid {
  border-color: var(--rosso);
}
.campo.is-invalid:focus {
  box-shadow: 0 0 0 .2rem rgba(208, 17, 27, .2);
}
.invalid-feedback {
  color: var(--rosso);
  font-size: 12px;
  font-weight: 600;
  margin-top: 4px;
}
.check-mg .invalid-feedback { margin-top: 2px; }
.check-mg .form-check-input.is-invalid ~ .form-check-label { color: inherit; }

.form-alert {
  border-radius: 0;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 20px;
}
.form-alert.alert-danger {
  background: #fdeced;
  border-color: var(--rosso);
  color: var(--rosso-scuro);
}

.btn-invia[disabled] { opacity: .75; cursor: wait; }
.btn-invia .spinner-border { width: 1.1rem; height: 1.1rem; border-width: .15em; }

.form-success { text-align: center; padding: 20px 0; }
.form-success .bi {
  font-size: 56px;
  color: var(--rosso-btn);
}
.form-success h3 {
  font-size: 22px;
  font-weight: 700;
  color: var(--rosso);
  margin: 12px 0;
}

.recaptcha-note {
  font-size: 10px;
  color: #777;
  margin: 14px 0 0;
  text-align: center;
  line-height: 1.4;
}
.recaptcha-note a { text-decoration: underline; }
