/* Reset e impostazioni di base */
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    font-family: Arial, sans-serif;
}

body {
    background-color: #f6f8fb;
    padding: 20px;
    color: #333;
}

/* Layout generale */
.formTitle {
    text-align: center ;
}

:root{
  --bg:#f6f8fb;
  --card:#ffffff;
  --accent:#2b7cff;
  --muted:#6b7280;
  --success:#16a34a;
  --danger:#dc2626;
  --radius:8px;
  --max-width:720px;
}

*{box-sizing:border-box;font-family:Inter, "Helvetica Neue", Arial, sans-serif}

body{
  margin:0;
  padding:32px;
  background:linear-gradient(180deg,#eef2ff 0%,var(--bg) 100%);
  color:#0f172a;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  min-height:100vh;
}

/* Card contenitore */
.form-card{
  width:100%;
  max-width:var(--max-width);
  background:var(--card);
  border-radius:var(--radius);
  box-shadow:0 6px 24px rgba(15,23,42,0.08);
  padding:28px;
  border:1px solid rgba(15,23,42,0.04);
}

/* Titoli */
h1{margin:0 0 16px;font-size:1.25rem}
h2{margin:0 0 8px;color:var(--success)}

/* Messaggi */
.success-message{
  border-left:4px solid var(--success);
  background:#ecfdf5;
  color:#064e3b;
  padding:12px 16px;
  border-radius:6px;
  margin-bottom:16px;
}

.errors{
  border-left:4px solid var(--danger);
  background:#fff1f2;
  color:#991b1b;
  padding:12px 16px;
  border-radius:6px;
  margin-bottom:16px;
}
.errors ul{margin:8px 0 0;padding-left:20px}

/* Form */
form#contattaci24form{display:block}
label{display:inline-block;margin-bottom:6px;font-weight:600;color:var(--muted)}
input[type="text"],
input[type="email"],
select,
textarea{
  width:100%;
  padding:10px 12px;
  margin-top:6px;
  margin-bottom:12px;
  border:1px solid #e6e9ef;
  border-radius:6px;
  background:#fff;
  font-size:0.95rem;
  transition:box-shadow .12s, border-color .12s;
}
input:focus, textarea:focus, select:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 4px 12px rgba(43,124,255,0.08);
}

/* Checkbox inline */
label input[type="checkbox"]{margin-right:8px;vertical-align:middle}

/* Pulsante reCAPTCHA/stampa */
button.g-recaptcha{
  display:inline-block;
  background:var(--accent);
  color:#fff;
  border:none;
  padding:10px 18px;
  border-radius:6px;
  font-weight:600;
  cursor:pointer;
  box-shadow:0 8px 20px rgba(43,124,255,0.18);
  transition:transform .06s ease, box-shadow .12s;
}
button.g-recaptcha:hover{transform:translateY(-2px)}
button.g-recaptcha:active{transform:translateY(0)}

/* Piccoli dettagli */
small.muted{color:var(--muted);display:block;margin-top:8px}

/* Responsive - ottimizzazioni per mobile: rendere il form grande e leggibile */
@media (max-width: 640px) {
  /* riduco i padding della pagina e allineo il contenitore in cima */
  body{
    padding:12px;
    align-items:flex-start; /* evita centrare verticalmente su mobile */
  }

  /* il form-card occupa tutta la larghezza disponibile e si presenta più grande */
  .form-card{
    width:100%;
    max-width:100%;
    margin:0;
    padding:20px;
    border-radius:12px;
    min-height:78vh; /* fa apparire il form dominante sullo schermo */
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  /* titoli più grandi e con più respiro */
  h1{font-size:1.6rem;margin-bottom:12px}
  h2{font-size:1.15rem;margin-bottom:10px}

  /* campi di input più grandi per tocco comodo */
  input[type="text"],
  input[type="email"],
  select,
  textarea{
    padding:14px 16px;
    font-size:1rem;
    border-radius:10px;
  }
  textarea{min-height:140px}

  /* rendi i bottoni a larghezza piena per maggiore usabilità su mobile */
  button.g-recaptcha{
    width:100%;
    padding:14px 16px;
    font-size:1rem;
    border-radius:10px;
    box-shadow:0 12px 30px rgba(43,124,255,0.22);
  }

  /* messaggi e testi leggermente più grandi */
  .success-message, .errors{font-size:0.98rem;padding:14px}
  small.muted{font-size:0.95rem}
}
