button { -webkit-appearance: button; background: none; border: none; color: inherit; cursor: pointer; font: inherit; margin: 0; max-width: 100%; overflow: visible; padding: 0; text-transform: none; vertical-align: middle; }
button[disabled] { cursor: default; }
button::-moz-focus-inner { border: 0; padding: 0; }

fieldset { border: 1px solid #333; padding: 20px; }

input { border: none; color: inherit; font: inherit; max-width: 100%; margin: 0; }
input[type="text"], input[type="email"], input[type="tel"] { -webkit-appearance: none; border: 1px solid #ddd; padding: 1em 1.5em; width: 100%; border-radius: 5px; }
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus { border-color: #aaaaaa; }
input[type="button"] { -webkit-appearance: button; cursor: pointer; }
input[type="checkbox"] { border: none; cursor: pointer; padding: 0; }
input[type="color"] { background: none; border: none; cursor: pointer; padding: 0; }
input[type="file"] { background: none; border: none; padding: 0; }
input[type="image"] { background: none; border: none; padding: 0; }
input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; }
input[type="password"] { ime-mode: disabled; }
input[type="radio"] { border: none; cursor: pointer; padding: 0; margin-right: .25em; }
input[type="range"] { border: none; padding: 0; background: none; cursor: pointer; }
input[type="reset"] { -webkit-appearance: button; cursor: pointer; }
input[type="search"] { -webkit-appearance: textfield; box-sizing: content-box; }
input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; }
input[type="submit"] { -webkit-appearance: button; cursor: pointer; }
input[disabled], input[readonly] { cursor: default; }
input::-moz-focus-inner { border: 0; padding: 0; }

label { vertical-align: middle; }

legend { white-space: normal; }

optgroup { color: inherit; font: inherit; font-weight: bold; margin: 0; }

select { border: 1px solid #ddd; color: inherit; cursor: pointer; font: inherit; margin: 0; max-width: 100%; text-transform: none; width: 100%; padding: .25em .5em; position: relative; border-radius: 5px; }

textarea { border: 1px solid #ddd; color: inherit; font: inherit; max-width: 100%; margin: 0; overflow: auto; resize: vertical; vertical-align: middle; -webkit-appearance: none; width: 100%; padding: 1em 1.5em; border-radius: 5px; }
textarea:focus { border-color: #aaaaaa; }

#mail_form span.required, #mail_form span.optional { line-height: 1; font-size: 1.2rem; padding: .25em .5em; white-space: nowrap; font-weight: 500; border-radius: 5px; }
#mail_form span.required { background: #f44336; color: #fff; border: 1px solid #f44336; }
#mail_form span.optional { border: 1px solid #333; }
#mail_form dt { display: flex; align-items: center; font-weight: bold; }
#mail_form dt span.required, #mail_form dt span.optional { margin-right: 10px; }
#mail_form .error_blank, #mail_form .error_format, #mail_form .error_match { color: #f44336; font-size: 1.3rem; font-weight: bold; }
#mail_form .loading { width: 50px; height: 50px; border-radius: 50%; border-top: 5px solid rgba(255, 255, 255, 0.2); border-right: 5px solid rgba(255, 255, 255, 0.2); border-bottom: 5px solid rgba(255, 255, 255, 0.2); border-left: 5px solid #fff; -webkit-transform: translateZ(0); -ms-transform: translateZ(0); transform: translateZ(0); -webkit-animation: load-circle 1.0s linear infinite; animation: load-circle 1.0s linear infinite; position: absolute; top: 50%; left: 50%; margin-top: -30px; margin-left: -30px; }
@-webkit-keyframes load-circle { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
@keyframes load-circle { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); }
  100% { -webkit-transform: rotate(360deg); transform: rotate(360deg); } }
