div#eaa {
  --color-red: #ff0000;
  --color-primary: #267CB1;
  --color-primary-hover: #0065A3;
  --color-border-gray: #b2b2b2;
  --color-white: #fff;
  --color-notice-background: linear-gradient(220deg, #fff 0%, #e2f4ff 100%);
  --color-green: #00aa00;

  div.content {
    margin-top: 50px;
    padding-top: 50px;
    border-top: 1px solid var(--color-border-gray);

    h1 {
      font-size: 36px;
      font-weight: 700;
      line-height: 44px;
    }

    h2 {
      margin-top: 40px;
      font-size: 28px;
      font-weight: 700;
      line-height: 36px;
      user-select: none;
    }

    p {
      margin: 20px 0;
      font-size: 16px;
      line-height: 24px;
    }

    ul {
      margin: 20px 0 20px 20px;

      li {
        font-size: 16px;
        line-height: 24px;
        list-style-type: disc;

        a {
          overflow-wrap: break-word;
        }
      }
    }
  }

  div.form {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    align-items: start;
    grid-gap: 16px 30px;
    width: 634px;
    margin: 0 auto;
    padding-top: 50px;
    padding-bottom: 50px;

    div.input {
      display: grid;
    }

    div.input label {
      margin-bottom: 3px;
      font-size: 14px;
      line-height: 1;
      grid-area: 1/1/2/2;
    }

    div.input label span.star {
      color: var(--color-red);
    }

    div.input label span.star::after {
      content: ' ';
    }

    div.input input:not([type="hidden"], .hidden),
    div.input select,
    div.input textarea {
      display: block;
      width: 100%;
      height: 42px;
      padding-left: 10px;
      background-color: var(--color-white);
      border: 1px solid var(--color-border-gray);
      border-radius: 4px;
      box-sizing: border-box;
      font-size: 14px;
      line-height: 16px;
      resize: none;
      grid-area: 2/1/3/2;
    }

    div.input span.validate {
      display: none;
      position: static !important;
      color: var(--color-red);
      font-size: 14px;
      line-height: 1;
      grid-area: 3/1/4/2;
    }

    div.input span.validate:has(*),
    div.input span.validate:not(:empty) {
      margin-top: 6px;
    }

    div.input div.additionalElements {
      margin-top: 6px;
      grid-area: 4/1/5/2;
    }

    div.input.required:not(:has(span.star)) label::before {
      content: '* ';
      color: var(--color-red);
    }

    div.input.error span.validate,
    div.input.wrong span.validate {
      display: block;
    }

    div.input.error::after,
    div.input.wrong::after,
    div.input.success::after,
    div.input.correct::after {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 20px;
      height: 20px;
      margin: 10px;
      visibility: unset;
      border-radius: 100%;
      color: var(--color-white);
      font-size: 15px;
      line-height: 1;
      clear: unset;
      grid-area: 2/1/3/2;
      place-self: start end;
    }

    div.input:is(.error, .wrong)::after {
      content: '✘';
      background-color: var(--color-red);
    }

    div.input:is(.success, .correct)::after {
      content: '✔';
      background-color: var(--color-green);
    }

    div.input.error input:not([type="hidden"], .hidden),
    div.input.wrong input:not([type="hidden"], .hidden),
    div.input.success input:not([type="hidden"], .hidden),
    div.input.correct input:not([type="hidden"], .hidden) {
      padding-right: 32px;
    }

    div.input.error:has(.datepicker)::after,
    div.input.error:has(select)::after,
    div.input.wrong:has(.datepicker)::after,
    div.input.wrong:has(select)::after,
    div.input.success:has(.datepicker)::after,
    div.input.success:has(select)::after,
    div.input.correct:has(.datepicker)::after,
    div.input.correct:has(select)::after {
      margin-right: 35px;
    }

    div.input.phone div.prefixSelector {
      align-self: center;
      position: relative;
      inset: unset !important;
      width: max-content;
      border-right: 1px solid var(--color-border-gray);
      grid-area: 2/1/3/2;
    }

    div.input.phone div.prefixSelector div.options {
      display: unset !important;
    }

    div.input.phone div.prefixSelector.visible div.head::after {
      display: none;
    }

    div.input.phone div.prefixSelector.visible div.head::before {
      display: block;
    }

    div.input.phone div.prefixSelector.visible ul {
      display: flex;
      flex-direction: column;
    }

    div.input.phone div.prefixSelector div.head {
      position: relative;
      padding: 0px 23px 1px 12px;
      cursor: pointer;
    }

    div.input.phone div.prefixSelector div.head img {
      width: 23px;
    }

    div.input.phone div.prefixSelector div.head::after,
    div.input.phone div.prefixSelector div.head::before {
      content: ' ';
      display: block;
      position: absolute;
      top: 10px;
      left: 43px;
      width: 0;
      height: 0;
      border-top: 4px solid #555;
      border-right: 4px solid transparent;
      border-left: 4px solid transparent;
      box-sizing: border-box;
    }

    div.input.phone div.prefixSelector div.head::before {
      display: none;
      top: 10px;
      border-top: none;
      border-bottom: 4px solid #555;
    }

    div.input.phone div.prefixSelector ul {
      display: none;
      position: absolute;
      top: 33px;
      left: 0;
      z-index: 5;
      width: 315px;
      margin: 0;
      padding: 0;
      background: var(--color-white);
      border: 0 solid var(--color-border-gray);
      border-width: 0 1px 1px;
    }

    div.input.phone div.prefixSelector ul li {
      order: 2;
      overflow: hidden;
      position: relative;
      padding: 3px 10px;
      cursor: pointer;
      clear: both;
    }

    div.input.phone div.prefixSelector ul li:hover {
      background: #f4f4f4;
    }

    div.input.phone div.prefixSelector ul li img {
      float: left;
      width: 20px;
      margin-top: 2px;
    }

    div.input.phone div.prefixSelector ul li span {
      display: block;
      float: left;
      padding: 5px 0 0 10px;
      font-size: 14px;
    }

    div.input.phone div.prefixSelector ul li span em {
      display: inline-block;
      padding: 0 0 0 10px;
      color: #696969;
    }

    div.input.phone div.prefixSelector ul li.other {
      border-top: 1px solid var(--color-border-gray);
    }

    div.input.phone input {
      text-indent: 65px;
    }

    div.input.blink::before {
      content: '';
      display: block;
      position: relative;
      z-index: 1;
      width: 100%;
      height: 100%;
      border-radius: 4px;
      box-shadow: 0 0 0 2px var(--color-white), 0 0 0 6px var(--color-green);
      animation: blink .65s infinite forwards;
      grid-area: 2/1/3/2;
    }

    label.customCheckbox {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: 14px;
      line-height: 18px;
      grid-column: span 4;

      span.checkbox {
        margin-right: 10px;
      }

      span.star {
        color: var(--color-red);
      }

      input {
        width: 30px;
        height: 30px;
        min-width: 30px;
        min-height: 30px;
        appearance: none;
        -webkit-appearance: none;
        -moz-appearance: none;
        background: var(--color-white);
        border: 1px solid var(--color-border-gray);
        border-radius: 4px;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: border-color 0.2s, background-color 0.2s;
        margin: 0;
      }

      input:checked {
        background: var(--color-primary);
        border-color: var(--color-primary);
      }

      input:checked::after {
        content: '';
        display: block;
        width: 8px;
        height: 14px;
        border: solid var(--color-white);
        border-width: 0 3px 3px 0;
        transform: rotate(45deg);
        margin-top: -5px;
      }

      &.error {
        input {
          border-color: var(--color-red);
        }

        input:checked {
          background: var(--color-red);
          border-color: var(--color-red);
        }
      }
    }

    div.input {
      textarea {
        width: 100%;
        height: 145px;
        padding: 10px;
        border: 1px solid var(--color-border-gray);
        border-radius: 3px;
        box-sizing: border-box;
        font-family: 'Roboto', sans-serif;
        font-size: 14px;
        line-height: 16px;
        resize: none;
      }

      &.place {
        grid-column: span 4;
      }

      &.requiredAccesibility {
        grid-column: span 4;
      }

      &.preferredAccessibility {
        grid-column: span 4;
      }

      &.name {
        grid-column: span 2;
      }

      &.surname {
        grid-column: span 2;
      }

      &.preferredContact {
        grid-column: span 4;
      }

      &.email {
        grid-column: span 4;
      }

      &.phone {
        grid-column: span 4;
      }

      &.postalCode {
        grid-column: span 1;
      }

      &.address {
        grid-column: span 3;
      }

      &.city {
        grid-column: span 4;
      }
    }

    &[data-method="Email"] {
      div.input {

        &.phone,
        &.postalCode,
        &.address,
        &.city {
          display: none;
        }
      }
    }

    &[data-method="Phone"] {
      div.input {

        &.postalCode,
        &.address,
        &.city {
          display: none;
        }

        &.email {
          label {
            &::before {
              content: '';
            }
          }
        }
      }
    }

    &[data-method="TraditionalMail"] {
      div.input {
        &.email {
          label {
            &::before {
              content: '';
            }
          }
        }

        &.phone {
          display: none;
        }
      }
    }
  }

  a.linkButton {
    display: block;
    margin-top: 50px;
    padding: 20px;
    background: var(--color-primary);
    color: var(--color-white);
    font-size: 24px;
    font-weight: 700;
    justify-self: center;
    grid-column: span 4 / span 4;
  }

  a.linkButton:hover {
    background: var(--color-primary-hover);
  }

  div.success {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    padding: 20px 0;

    div.notice {
      padding: 20px;
      background: var(--color-notice-background);
      border: var(--color-primary) 1px solid;
      border-radius: 5px;
      font-size: 16px;
      line-height: 24px;
      text-align: center;
    }

    a {
      display: block;
      margin-top: 20px;
      padding: 10px;
      background: var(--color-primary);
      color: var(--color-white);
      font-size: 14px;
      font-weight: 700;
      line-height: 20px;
    }

    a:hover {
      background: var(--color-primary-hover);
    }
  }
}