.lds-dual-ring {
  display: inline-block;
  width: 64px;
  height: 64px;
}
.lds-dual-ring:after {
  content: " ";
  display: block;
  width: 46px;
  height: 46px;
  margin: 1px;
  border-radius: 50%;
  border: 5px solid #fff;
  border-color: #fff transparent #fff transparent;
  animation: lds-dual-ring 1.2s linear infinite;
}

@keyframes lds-dual-ring {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}


/* Spinner PayPal */

.lds-ellipsis {
  display: inline-block;
  position: relative;
  width: 64px;
  height: 64px;
}
.lds-ellipsis div {
  position: absolute;
  top: 27px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: #cef;
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
}
.lds-ellipsis div:nth-child(1) {
  left: 6px;
  animation: lds-ellipsis1 0.6s infinite;
}
.lds-ellipsis div:nth-child(2) {
  left: 6px;
  animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(3) {
  left: 26px;
  animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(4) {
  left: 45px;
  animation: lds-ellipsis3 0.6s infinite;
}
@keyframes lds-ellipsis1 {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes lds-ellipsis3 {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0);
  }
}
@keyframes lds-ellipsis2 {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(19px, 0);
  }
}

/* Stili per il layout del modulo */
.container {
  margin-right: auto;
  margin-left: auto;
  padding-right: 15px;
  padding-left: 15px;
}

.row {
  margin-right: -15px;
  margin-left: -15px;
}

.col-sm-6 {
  width: 50%;
  float: left;
  position: relative;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
}

/* Stili per il testo e gli input */
.form-group {
  margin-bottom: 15px;
}

.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}

input[type="text"],
input[type="email"] {
  width: 100%;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
}

/* Stili per il testo di aiuto */
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #737373;
}

/* Stili per il testo di avviso */
p {
  float: right;
  font-size: 13px;
}

/* Stili per i campi obbligatori */
p strong {
  color: red;
}


.textfield.error
{
  border: 1px solid red;
}

.textfield.success
{
  border: 1px solid green;

}


.textfield-text
{
  display: block;
  visibility: hidden;
  margin-top: 0.2em;
}

.textfield-text.error
{
  visibility: visible;
  color: red;
}

.textfield-text.success
{
  visibility: visible;
  color: green;
}


#contact-form > fieldset > .container-flex
{
  display: flex;
  flex-direction: row;
  justify-content: center;
  flex-wrap: wrap;
  column-gap: 10px;
  row-gap: 10px;
}

#contact-form > fieldset
{
  display: flex;
  flex-direction: column;
}

#contact-form > fieldset > .container-flex > *.full-line
{
  flex-basis: calc(100% - 10px);
}

#contact-form > fieldset > .container-flex > *
{
  flex-basis: calc(50% - 10px);
}

@media (max-width: 768px)
{
  #contact-form > fieldset > .container-flex 
  {
    flex-direction: column;
  }
}

#contact-form-submit[disabled]
{
  cursor: not-allowed;
  color: #80808096;

}
#contact-form-submit[disabled]:hover
{
  border-color: rgba(68, 68, 68, 0.19);
}
