/* --- Link normali (fuori da footer e fuori da bottoni) --- */
a:not(.btn) {
  color: #0d6efd; /* blu bootstrap */
  text-decoration: none;
}

a:not(.btn):hover {
  color: #0a58ca; /* blu più scuro */
  text-decoration: underline;
}

a:not(.btn):visited {
  color: #0d6efd; /* niente viola */
}

a:not(.btn):focus,
a:not(.btn):active {
  color: #0d6efd;
  background-color: transparent;
  outline: none;
}

/* --- Footer --- */
footer {
  color: #fff;
}

footer a,
footer a:visited,
footer a:active,
footer a:focus {
  color: #fff !important;
  text-decoration: none;
}

footer a:hover {
  color: #d8d8d8 !important;
}

.o_footer_copyright {
  color: #fff;
}

/* --- Bottoni (sia <button> che <a class="btn">) --- */
.btn,
a.btn {
  color: #fff !important; /* testo sempre bianco */
  text-decoration: none !important;
}

.btn-outline-primary,
a.btn-outline-primary {
  color: #0d6efd !important;
  background-color: transparent !important;
  border-color: #0d6efd !important;
}

.btn-outline-primary:hover,
a.btn-outline-primary:hover {
  color: #fff !important;
  background-color: #0d6efd !important;
  border-color: #0d6efd !important;
}

.btn-outline-success,
a.btn-outline-success {
  color: #198754 !important;
  background-color: transparent !important;
  border-color: #198754 !important;
}

.btn-outline-success:hover,
a.btn-outline-success:hover {
  color: #fff !important;
  background-color: #198754 !important;
  border-color: #198754 !important;
}

/* --- Font --- */
body {
  font-family: 'Roboto', Arial, sans-serif;
}

/* --- Link location (Google Maps) --- */
a.location-link div {
  transition: font-weight 0.2s ease-in-out, color 0.2s ease-in-out;
}

a.location-link:hover div {
  font-weight: 600; /* grassetto al passaggio del mouse */
}

.privacy-box,
.radio-box {
  background-color: #fafafa;
  border: 2px solid #444;
  border-radius: 6px;
  transition: box-shadow 0.2s, border-color 0.2s, background-color 0.2s;
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
}

.privacy-box:hover,
.radio-box:hover {
  border-color: #222;
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.2);
}

/* Rende cliccabile tutto il testo */
.form-check-label {
  cursor: pointer;
  margin: 0;
}

/* Radio e checkbox più leggibili */
.form-check-input {
  width: 1.2em;
  height: 1.2em;
  margin-right: 8px;
  border: 2px solid #555;
  position: relative;
  top: 0;
}
.form-check-input:checked {
  background-color: #198754; /* verde bootstrap */
  border-color: #198754;
}

/* --- Evidenziazione dell’opzione selezionata --- */
.radio-box.selected {
  border-color: #198754;
  background-color: #e6f4ec;
  box-shadow: 0 0 4px rgba(25, 135, 84, 0.4);
}

/* Gruppo scelte: layout pulito e centrato verticalmente */
.choice-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* “Pill” cliccabile che contiene radio + testo */
.choice-pill {
  display: inline-flex;
  align-items: center;
  gap: 10px;                 /* spazio tra radio e testo */
  padding: 8px 14px;         /* padding uniforme (niente radio attaccato al bordo) */
  border: 2px solid #444;    /* contorno scuro */
  border-radius: 8px;
  background: #fafafa;
  cursor: pointer;           /* tutta l’area è cliccabile */
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.choice-pill:hover {
  border-color: #222;
  box-shadow: 0 0 4px rgba(0,0,0,.2);
}

/* Radio ben visibile e dentro il pill */
.choice-pill input[type="radio"] {
  width: 1.2em;
  height: 1.2em;
  margin: 0;                 /* niente spinta verso sinistra */
  accent-color: #198754;     /* verde bootstrap per lo stato checked (browser moderni) */
}

/* Testo */
.choice-pill .choice-text {
  font-weight: 600;
  line-height: 1;
}

/* Evidenziazione del pill selezionato (niente JS necessario) */
.choice-pill:has(input[type="radio"]:checked) {
  border-color: #198754;
  background-color: #e6f4ec;
  box-shadow: 0 0 4px rgba(25,135,84,.35);
}

/* Fallback per browser senza :has() (opzionale, richiede la classe .selected via JS) */
.choice-pill.selected {
  border-color: #198754;
  background-color: #e6f4ec;
  box-shadow: 0 0 4px rgba(25,135,84,.35);
}


/* Bordi rossi per TomSelect invalidi */
.ts-wrapper.is-invalid .ts-control {
  border-color: #dc3545 !important;
  box-shadow: 0 0 0 0.1rem rgba(220, 53, 69, 0.25);
}

.recaptcha-warning {
  background-color: #fff3cd; /* giallo avviso Bootstrap */
  border: 2px solid #ffc107; /* giallo acceso */
  color: #212529;
  font-weight: 600;
  box-shadow: 0 0 5px rgba(255, 193, 7, 0.5);
  animation: pulseWarning 1.2s infinite alternate;
}

@keyframes pulseWarning {
  from { box-shadow: 0 0 5px rgba(255, 193, 7, 0.5); }
  to { box-shadow: 0 0 15px rgba(255, 193, 7, 0.9); }
}
