form.default {
  width: 100%;
  margin: 2em auto;

  fieldset {
    border: none;
    margin: 0;
    padding: 1.5em 0;

    legend {
      margin: 0 auto;
      padding: 0;
      color: #555;
    }

    dl {
      margin: 0;
      padding: 0;

      dt {
        width: 10em;
        height: 24px;
        padding: 12px 0;
        line-height: 24px;

        @media (max-width: 640px) { height: auto; padding: 0; line-height: 1.5; }
        @media (max-width: 480px) {  }
      }

      dd {
        min-height: 24px;
        margin: -48px 0 16px 0;
        padding: 0 0 0 11em;

        @media (max-width: 640px) { margin: 2px 0 8px 0; padding: 0; }
        @media (max-width: 480px) {  }
      }
    }
  }

  menu {
    list-style-type: none;
    display: flex;
    margin: 1.5em 0;
    padding: 0;
    justify-content: center;

    @media (max-width: 640px) { margin: 1.2em; }
    @media (max-width: 480px) { margin: 1.0em; }
  }

  samp {
    display: block;
    min-height: 24px;
    padding: 12px 0;
    background-color: #eee;
    border-radius: 8px;
    line-height: 24px;
    font-family: inherit;
    white-space: pre-wrap;
    word-break: break-all;

    @media (max-width: 1024px) { min-height: 20px; padding: 10px 0; border-radius: 6px; }
    @media (max-width: 640px) { min-height: 16px; padding: 8px 0; border-radius: 4px; }
    @media (max-width: 480px) { min-height: 12px; padding: 6px 0; border-radius: 3px; }
  }

  mark {
    display: block;
    margin: 0.3em 0;
    padding: 0;
    line-height: 1.5;
    background-color: transparent;
    color: hsl(0, 50%, 50%);
  }

  input, textarea, select, button {
    border: 2px solid #aaa;
    border-radius: 8px;
    box-sizing: border-box;
    font-family: inherit;
    font-size: 1rem;

    @media (max-width: 1024px) { border-radius: 6px; }
    @media (max-width: 640px) { border-radius: 4px; border-width: 1px; }
    @media (max-width: 480px) { border-radius: 3px; }

    &:hover {
      border-color: #888;
    }

    &:focus {
      border-color:  #488;
      box-shadow: 0 0 4px #4888;

      @media (max-width: 640px) { box-shadow: 0 0 2px #4888; }
    }
  }

  input {
    width: 100%;
    height: 48px;
    padding: 0 12px;
    line-height: 24px;

    @media (max-width: 1024px) { height: 40px; padding: 0 10px; line-height: 20px; }
    @media (max-width: 640px) { height: 32px; padding: 0 8px; line-height: 16px; }
    @media (max-width: 480px) { height: 24px; padding: 0 6px; line-height: 12px; }
  }

  textarea {
    width: 100%;
    padding: 12px;
    min-height: 8em;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
    overflow-y: scroll;
    line-height: 1.8;
    resize: vertical;

    @media (max-width: 1024px) { padding: 10px; }
    @media (max-width: 640px) { padding: 8px; }
    @media (max-width: 480px) { padding: 6px; }
  }

  button {
    min-width: 120px;
    min-height: 48px;
    background: #eee linear-gradient(0, #0003, #fff3);
    font-size: 0.9rem;
    cursor: pointer;

    @media (max-width: 1024px) { min-width: 108px; min-height: 40px; }
    @media (max-width: 640px) { min-width: 90px; min-height: 32px; }
    @media (max-width: 480px) { min-width: 72px; min-height: 24px; }

    &:hover {
      background-color: #f8f8f8;
    }
  }
}