@import url("https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;1,400&family=Poppins:wght@400;500;600&display=swap");

:root {
  /* Tema: verde salvia, oro e bianco */
  --carta: #FCFBF7;
  --inchiostro: #26332A;
  --prugna: #5B7A5E;          /* salvia scuro: pulsanti e accenti */
  --prugna-scura: #46624A;
  --confetto: #E4ECE0;        /* salvia chiaro */
  --pistacchio: #F3EAD3;      /* oro chiaro */
  --pistacchio-scuro: #8A6B22;
  --oro: #B8953F;
  --oro-scuro: #8A6B22;
  --linea: #E5E2D6;
  --tenue: #6A7468;
  --bianco: #FFFFFF;
  --errore: #A3283A;
  --serif: "Lora", Georgia, "Times New Roman", serif;
  --sans: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--carta);
  color: var(--inchiostro);
  font: 16px/1.5 var(--sans);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
img { max-width: 100%; display: block; }
h1, h2, h3 { font-family: var(--serif); font-weight: 400; line-height: 1.15; margin: 0; }
p { margin: 0; }

button, input, textarea, select { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--prugna); outline-offset: 2px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
  min-height: 48px; padding: .7rem 1.2rem;
  border: 0; border-radius: 999px;
  background: var(--prugna); color: var(--bianco);
  font-weight: 600; text-decoration: none;
}
.btn:active { background: var(--prugna-scura); }
.btn[disabled] { opacity: .5; cursor: default; }
.btn-chiaro { background: var(--bianco); color: var(--prugna); border: 1.5px solid var(--prugna); }
.btn-testo { background: none; color: var(--prugna); padding: .5rem .25rem; min-height: 40px; text-decoration: underline; text-underline-offset: 3px; }
.btn-largo { width: 100%; }

.campo { display: grid; gap: .35rem; }
.campo label { font-weight: 600; font-size: .95rem; }
.campo input, .campo textarea, .campo select {
  width: 100%; padding: .75rem .9rem;
  border: 1.5px solid var(--linea); border-radius: 12px;
  background: var(--bianco);
}
.campo textarea { min-height: 110px; resize: vertical; }
.campo input:focus, .campo textarea:focus { border-color: var(--prugna); outline: none; }
.nota { color: var(--tenue); font-size: .9rem; }

.avviso {
  position: fixed; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%) translateY(20px); opacity: 0;
  max-width: calc(100% - 2rem); padding: .8rem 1.1rem;
  background: var(--inchiostro); color: var(--bianco); border-radius: 14px;
  transition: opacity .25s, transform .25s; z-index: 50; pointer-events: none;
}
.avviso.visibile { opacity: 1; transform: translateX(-50%) translateY(0); }
.avviso.errore { background: var(--errore); }

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
[hidden] { display: none !important; }
