.screen-reader-text {
      position: absolute !important;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
}

.early-booking-field {
      position: relative;
}

.early-booking-field--villa::after {
      content: "\f107";
      position: absolute;
      right: 0.85rem;
      top: 50%;
      color: var(--blue);
      font-family: var(--fontawesome);
      font-size: 0.9rem;
      pointer-events: none;
      transform: translateY(-50%);
}

select.price_calc {
      width: 15rem;
      font-family: var(--font);
      font-size: 1rem;
      padding: 15px 40px 15px 32px;
      position: relative;
      border-radius: 3px;
      border: none;
      cursor: pointer;
      background-color: #fff;
      color: var(--grey);
      appearance: none;
      -webkit-appearance: none;
}

.early-booking-payment-plan {
      margin-top: 2rem;
      padding: 2rem;
      color: #102d67;
      background-color: #fff;
      border-radius: 3px;
}

.early-booking-payment-plan h2 {
      margin: 0 0 1.5rem;
      color: #102d67;
      font-size: 2.25rem;
      font-weight: 600;
      line-height: 1.2;
      text-align: center;
}

.early-booking-payment-total {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 0.75rem;
      max-width: 54rem;
      margin: 0 auto 2rem;
      padding: 1.1rem 1.5rem;
      color: #fff;
      background-color: #898989;
      font-size: 1.5rem;
      line-height: 1.3;
}

.early-booking-payment-total strong {
      font-size: 1.8rem;
}

.early-booking-installment-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 1.5rem;
}

.early-booking-installment {
      min-width: 0;
      text-align: center;
}

.early-booking-installment-date,
.early-booking-installment-label {
      margin: 0;
      color: #102d67;
      font-size: 1.1rem;
      font-weight: 400;
      line-height: 1.35;
}

.early-booking-installment-date {
      display: flex;
      min-height: 3.7rem;
      padding: 0 0.25rem 0.65rem;
      align-items: flex-end;
      justify-content: center;
}

.early-booking-installment-label {
      padding-top: 0.65rem;
}

.early-booking-installment-card {
      display: flex;
      min-height: 9.5rem;
      padding: 1.25rem;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      background-color: #ededed;
}

.early-booking-installment-card strong {
      margin-top: 1.1rem;
      color: #102d67;
      font-size: 1.75rem;
      line-height: 1;
}

.early-booking-installment-percent {
      display: inline-block;
      padding: 0.5rem 0.85rem;
      color: #102d67;
      background-color: #fff56b;
      font-size: 1.2rem;
      font-weight: 500;
      line-height: 1;
}

.early-booking-payment-note {
      max-width: 58rem;
      margin: 2.1rem auto 0 !important;
      padding: 1rem 1.25rem;
      color: #102d67;
      background-color: #fff56b;
      font-size: 1.15rem !important;
      font-weight: 600 !important;
      line-height: 1.35 !important;
      text-align: center;
}

@media screen and (max-width: 920px) {
      .early-booking-calculator-fields {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
            align-items: stretch;
      }

      .early-booking-calculator-fields select.price_calc,
      .early-booking-calculator-fields input.price_calc,
      .early-booking-calculator-fields button.price_calc {
            width: 100%;
      }

      .early-booking-calculator-button {
            grid-column: 1 / -1;
      }

      .early-booking-installment-grid {
            grid-template-columns: repeat(2, minmax(0, 1fr));
      }
}

@media screen and (max-width: 599px) {
      select.price_calc {
            width: 100%;
      }

      .early-booking-calculator-fields {
            display: flex;
            flex-direction: column;
            gap: 0.75rem;
      }

      .early-booking-calculator-fields > div {
            width: 100%;
      }

      .early-booking-payment-plan {
            margin-top: 1.4rem;
            padding: 1.4rem 1rem;
      }

      .early-booking-payment-plan h2 {
            margin-bottom: 1.1rem;
            font-size: 1.7rem;
      }

      .early-booking-payment-total {
            display: block;
            margin-bottom: 1.5rem;
            padding: 0.9rem;
            font-size: 1.05rem;
            text-align: center;
      }

      .early-booking-payment-total strong {
            display: block;
            margin-top: 0.25rem;
            font-size: 1.45rem;
      }

      .early-booking-installment-grid {
            grid-template-columns: 1fr;
            gap: 0.9rem;
      }

      .early-booking-installment {
            display: grid;
            grid-template-columns: minmax(0, 1fr) minmax(8.2rem, 1fr);
            grid-template-areas:
                  "date card"
                  "label card";
            align-items: center;
            border: 1px solid #e1e1e1;
      }

      .early-booking-installment-date {
            grid-area: date;
            min-height: 0;
            padding: 0.75rem 0.5rem 0.2rem;
            align-items: center;
            font-size: 0.95rem;
      }

      .early-booking-installment-label {
            grid-area: label;
            padding: 0.2rem 0.5rem 0.75rem;
            font-size: 1rem;
            font-weight: 600;
      }

      .early-booking-installment-card {
            grid-area: card;
            min-height: 7.3rem;
            padding: 0.9rem 0.5rem;
      }

      .early-booking-installment-card strong {
            margin-top: 0.75rem;
            font-size: 1.35rem;
      }

      .early-booking-installment-percent {
            padding: 0.45rem 0.7rem;
            font-size: 1rem;
      }

      .early-booking-payment-note {
            margin-top: 1.4rem !important;
            padding: 0.85rem 0.75rem;
            font-size: 0.95rem !important;
      }
}
