body {
  color: #151514;
  font-size: 16px;
  line-height: 1.75;
}

a {
  color: #a59aca;
}

.container {
	max-width: 100%;
	width: 70%;
	border: 0;
}

.help-block {
  font-size: 0.75em;
}

.form-column {
  padding-bottom: 20px;
  margin-bottom: 20px;
}

input,
button,
textarea,
select {
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  font-size: 1em;
}

.form-column-heading h2 {
	font-size: 24px;
	font-weight: bold;
	color: #000;
	display: block;
	position: relative;
}
.form-column-heading h2::before {
	z-index: 1;
	position: absolute;
	content: " ";
	display: block;
	border-bottom: solid 5px #c4003a;
	bottom: -3px;
	width: 30px;
	height: 0;
	top: auto;
}
.form-column-heading h2::after {
	position: absolute;
	content: " ";
	display: block;
	border-bottom: solid 5px #0c5ba8;
	bottom: -3px;
	width: 100%;
}


label h3 {
  font-size: 1em;
  display: inline-block;
  margin: 0 0 0.5em;
  font-weight: bold;
}

label .badge-optional {
  display: none;
}

label .badge-required {
	width: auto;
	display: inline-block;
	margin-left: 8px;
	padding: 4px 8px;
	line-height: 1;
	font-size: 0.75em;
	color: #fff;
	background-color: #c73b3b;
	border-radius: 4px;
}

.description-block {
  color: #151514;
  margin-top: 0.5em;
}

.button-group {
	margin-top: 1em;
	text-align: center;
}
.button-group .help-block {
  margin-top: 0.5em;
  font-size: 0.75em;
}

button {
  display: inline-block;
  padding: 0.5em 1em;
  text-align: center;
  cursor: pointer;
  border: 1px solid #6a767d;
  border-radius: 4px;
  margin: 0 0.5em 0 0;
  background-color: #fff;
}

button.button-submit {
  background-color: #316a8b;
  border: 1px solid #316a8b;
  color: #fff;
}
button.button-submit span.fa {
  margin-right: 4px;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
textarea {
	width: 60%;
	min-width: 500px;
	max-width: 100%;
	line-height: 1.75em;
	padding: 10px;
	border: 1px solid #ccc;
	transition: all 0.3s;
	border-radius: 4px;
}
input::-webkit-input-placeholder {
color: #bababa;
}
input:-moz-placeholder {
color: #bababa;
}
input::-moz-placeholder {
color: #bababa;
}
input:-ms-input-placeholder {
color: #bababa;
}



textarea {
	width: 100%;
	height: 10em;
	border-radius: 4px;
}

input[type="file"] {
  display: block;
  line-height: 1.75;
}

input[type="password"] {
  height: 1.75em;
  width: 100%;
  border: 1px solid #6a767d;
  transition: all 0.3s;
}

input[readonly],
textarea[readonly] {
  border-color: transparent;
  padding-left: 0;
  padding-right: 0;
}

.form-column-date .input-group select {
  width: auto;
  display: inline-block;
}

.form-column-calendar input {
  width: auto;
}

.form-column-zip-code-jp .input-group input {
  width: auto;
  min-width: auto;
  display: inline-block;
}

.form-column-zip-code-autofill.form-column {
  border-bottom: 0;
  margin-bottom: 0;
}

.form-column-checkbox label,
.form-column-radio label {
  margin-right: 1em;
}

select {
	width: auto;
	display: block;
	border: 1px solid #ccc;
	border-radius: 4px;
	padding: 10px;
}

.message-block-complete {
	border: 2px solid #316a8b;
	padding: 20px;
	text-align: center;
}

.form-column.form-column-select,
.form-column.form-column-textarea,
.form-column.form-column-name,
.form-column.form-column-email,
.form-column.form-column-tel,
.form-column.form-column-text,
.form-column.form-column-zip-code-jp,
.form-column.form-column-prefecture-jp {
	display: flex;
}
.form-column.form-column-select .label,
.form-column.form-column-textarea .label,
.form-column.form-column-name .label,
.form-column.form-column-email .label,
.form-column.form-column-tel .label,
.form-column.form-column-text .label,
.form-column.form-column-zip-code-jp .label,
.form-column.form-column-prefecture-jp .label {
	width: 28%;
	padding-left: 10px;
	padding-right: 40px;
}
.form-column.form-column-select select,
.form-column.form-column-textarea textarea,
.form-column.form-column-name input,
.form-column.form-column-email input,
.form-column.form-column-tel input,
.form-column.form-column-text input,
.form-column.form-column-zip-code-jp input,
.form-column.form-column-prefecture-jp select {
	width: 70%
}

.form-column.form-column-radio .input-group {
	display: flex;
}
.form-column.form-column-radio input[type=radio] {
	display: none;
}
.form-column.form-column-radio .input-group label {
	display: inline-block;
	min-height: 20px;
	position: relative;
	padding: 15px 15px 15px 40px;
	margin-bottom: 0;
	cursor: pointer;
	vertical-align: bottom;
	color: #999;
	background: #eee;
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	cursor: pointer;
	transition: all 0.2s linear;
}
.form-column.form-column-radio .input-group label:before,
.form-column.form-column-radio .input-group label:after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	margin: auto;
	border-radius: 50%;
	transition: all 0.3s ease;
	transition-property: transform, border-color;
}
.form-column.form-column-radio .input-group label:before {
	left: 10px;
	width: 20px;
	height: 20px;
	border: 2px solid rgba(182, 182, 182, 0.54);
}
.form-column.form-column-radio .input-group label:after {
	left: 15px;
	width: 10px;
	height: 10px;
	transform: scale(0);
	background: #fff;
}
.form-column.form-column-radio .input-group label:has(input[type="radio"]:checked) {
	background: #0a5ba8;
	color: #fff;
}
.form-column.form-column-radio .input-group label:has(input[type="radio"]:checked)::before {
	transform: scale(1);
	background: #fff;
}

.form-column.form-column-checkbox input[type="checkbox"] {
	display: none;
}
.form-column.form-column-checkbox label {
	position: relative;
}
.form-column.form-column-checkbox label .option-text {
	padding-left: 28px;
}
.form-column.form-column-checkbox label:before {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	border: 1px solid #000;
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	opacity: .6;
	-webkit-transition: all .12s, border-color .08s;
	transition: all .12s, border-color .08s;
}
.form-column.form-column-checkbox label:has(input[type="checkbox"]:checked):before {
	width: 10px;
	top: -5px;
	left: 5px;
	border-radius: 0;
	border: 3px solid #3197EE;
	opacity: 1;
	border-top-color: transparent;
	border-left-color: transparent;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

@media (max-width: 680px) {
  input[type="text"],
  input[type="email"],
  input[type="tel"],
  input[type="url"],
  textarea {
    width: 100%;
    min-width: 100%;
  }
  select {
    width: 100%;
  }
	.container {
		width: 100%;
	}
  .form-column-calendar input {
    width: auto;
    min-width: auto;
  }
  .form-column-heading h2 {
    font-size: 1.25em;
  }
	.form-column.form-column-radio .input-group,
	.form-column.form-column-select,
	.form-column.form-column-textarea,
	.form-column.form-column-name,
	.form-column.form-column-email,
	.form-column.form-column-tel,
	.form-column.form-column-text,
	.form-column.form-column-zip-code-jp,
	.form-column.form-column-prefecture-jp {
		flex-direction: column;
	}
	.form-column.form-column-select .label,
	.form-column.form-column-textarea .label,
	.form-column.form-column-name .label,
	.form-column.form-column-email .label,
	.form-column.form-column-tel .label,
	.form-column.form-column-text .label,
	.form-column.form-column-zip-code-jp .label,
	.form-column.form-column-prefecture-jp .label,
	.form-column.form-column-select select,
	.form-column.form-column-textarea textarea,
	.form-column.form-column-name input,
	.form-column.form-column-email input,
	.form-column.form-column-tel input,
	.form-column.form-column-text input,
	.form-column.form-column-zip-code-jp input,
	.form-column.form-column-prefecture-jp select {
		width: 100%;
	}
	.form-column.form-column-select .label,
	.form-column.form-column-textarea .label,
	.form-column.form-column-name .label,
	.form-column.form-column-email .label,
	.form-column.form-column-tel .label,
	.form-column.form-column-text .label,
	.form-column.form-column-zip-code-jp .label,
	.form-column.form-column-prefecture-jp .label {
		padding-left: 0;
		padding-right: 0;
	}

}
