html {
	-ms-text-size-adjust: 100%;
	-webkit-text-size-adjust: 100%;
	font-family: sans-serif;
}

body {
	margin: 0;
}

a {
	background-color: transparent;
}

a:active,
a:hover {
	outline: 0;
}

img {
	border: 0;
}

hr {
	box-sizing: content-box;
	height: 0;
}

button,
input,
optgroup,
select,
textarea {
	margin: 0;
	color: inherit;
	font: inherit;
}

button {
	overflow: visible;
}

button,
select {
	text-transform: none;
}

button,
html input[type='button'],
input[type='reset'],
input[type='submit'] {
	cursor: pointer;
	-webkit-appearance: button;
}

button[disabled],
html input[disabled] {
	cursor: default;
}

button::-moz-focus-inner,
input::-moz-focus-inner {
	padding: 0;
	border: 0;
}

input {
	line-height: normal;
}

input[type='checkbox'],
input[type='radio'] {
	box-sizing: border-box;
	padding: 0;
}

input[type='number']::-webkit-inner-spin-button,
input[type='number']::-webkit-outer-spin-button {
	height: auto;
}

input[type='search'] {
	box-sizing: content-box;
	-webkit-appearance: textfield;
}

input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
	-webkit-appearance: none;
}

fieldset {
	margin: 0;
	padding: 0;
	border: none;
}

legend {
	padding: 0;
	border: 0;
}

textarea {
	overflow: auto;
}

optgroup {
	font-weight: bold;
}

*,
*:before,
*:after {
	box-sizing: border-box;
}

/* normalize overwrite */
html {
	position: relative;
	min-height: 100%;
	font-family: 'Noto Sans Japanese', Helvetica, Arial, '\30E1\30A4\30EA\30AA', Meiryo, '\30D2\30E9\30AE\30CE\89D2\30B4\20\50\72\6F\20\57\33', 'Hiragino Kaku Gothic Pro', sans-serif;
	font-size: 62.5%;
}

body {
	height: 100%;
	margin: 0;
	padding: 0;
	background: #fff;
	color: #333;
	font-size: 1.6rem;
	line-height: 1.22;
}

a {
	color: #0077c1;
}

a:hover {
	text-decoration: none;
}

a:active,
a:focus,
a:visited {
	color: #0077c1;
}

.container {
	max-width: none;
	padding: 0;
	border: none;
}

.content-form,
.content-confirmation,
.content-complete {
	padding: 0;
	background-color: #fff;
}

.content-form .message-block,
.content-confirmation .message-block,
.content-complete .message-block {
	margin: 4vw 0;
	font-size: 3.73333vw;
	line-height: 1.5;
}

.content-form .message-block:first-child,
.content-confirmation .message-block:first-child,
.content-complete .message-block:first-child {
	margin-top: 0;
}

.content-form .message-block:last-child,
.content-confirmation .message-block:last-child,
.content-complete .message-block:last-child {
	margin-bottom: 0;
}

.form-column {
	display: flex;
	flex-direction: column;
	width: 100%;
	margin: 0;
	padding: 4vw 0;
	gap: 0.4vw;
	border-top: 1px solid #ededed;
	font-size: 3.2vw;
}

.form-column:first-child {
	border: none;
}

.form-column[data-column='dept'] {
	display: none;
}

.form-column .preview-block {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 1.33333vw 2.66667vw;
	background-color: #fff;
	color: #333;
}

.form-column.form-column-zip-code-autofill .input-group {
	margin: 0;
}

.form-column.form-column-zip-code-autofill .form-column:first-child {
	border-top: none;
}

.form-column.form-column-zip-code-autofill .form-column:last-child {
	border-bottom: none;
}

.form-column .label {
	display: inline-block;
	padding: 0;
	font-weight: bold;
}

.form-column .badge {
	display: inline-block;
	margin: 0 0 0 1.33333vw;
	padding: 0.4vw 1.33333vw 0.26667vw;
	font-size: 2.66667vw;
	font-weight: normal;
	vertical-align: top;
}

.form-column .badge.badge-required {
	background-color: #c00;
	color: #fff;
}

.form-column .badge.badge-optional {
	background-color: #ededed;
}

.form-column .input-group {
	margin: 0;
	border: none;
}

.form-column .input-group label {
	display: inline-block;
	margin: 4vw 0 0;
	padding: 0 8vw 0 0;
}

.form-column input,
.form-column select,
.form-column textarea,
.form-column button {
	outline: none;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: none transparent;
	background-clip: padding-box;
	color: inherit;
	font-size: inherit;
	vertical-align: middle;
	appearance: none;
	-moz-appearance: none;
	-webkit-appearance: none;
}

.form-column input::-ms-clear,
.form-column select::-ms-clear,
.form-column textarea::-ms-clear,
.form-column button::-ms-clear {
	display: none;
}

.form-column input::-ms-reveal,
.form-column select::-ms-reveal,
.form-column textarea::-ms-reveal,
.form-column button::-ms-reveal {
	display: none;
}

.form-column input::-ms-expand,
.form-column select::-ms-expand,
.form-column textarea::-ms-expand,
.form-column button::-ms-expand {
	display: none;
}

.form-column input[type='text'],
.form-column input[type='tel'],
.form-column input[type='email'],
.form-column input[type='url'] {
	max-width: none;
	height: 8vw;
	padding: 0 2vw;
	border: 1px solid #ccc;
	background-color: #fff;
	font-size: 3.2vw;
}

.form-column input[type='text']:placeholder-shown,
.form-column input[type='tel']:placeholder-shown,
.form-column input[type='email']:placeholder-shown,
.form-column input[type='url']:placeholder-shown {
	color: #666;
}

.form-column input[type='text']::-webkit-input-placeholder,
.form-column input[type='tel']::-webkit-input-placeholder,
.form-column input[type='email']::-webkit-input-placeholder,
.form-column input[type='url']::-webkit-input-placeholder {
	color: #666;
}

.form-column input[type='text']:-moz-placeholder,
.form-column input[type='tel']:-moz-placeholder,
.form-column input[type='email']:-moz-placeholder,
.form-column input[type='url']:-moz-placeholder {
	opacity: 1;
	color: #666;
}

.form-column input[type='text']::-moz-placeholder,
.form-column input[type='tel']::-moz-placeholder,
.form-column input[type='email']::-moz-placeholder,
.form-column input[type='url']::-moz-placeholder {
	opacity: 1;
	color: #666;
}

.form-column input[type='text']:-ms-input-placeholder,
.form-column input[type='tel']:-ms-input-placeholder,
.form-column input[type='email']:-ms-input-placeholder,
.form-column input[type='url']:-ms-input-placeholder {
	color: #666;
}

.form-column input[type='text'],
.form-column input[type='email'],
.form-column input[type='url'] {
	width: 100%;
}

.form-column input[type='tel'] {
	width: 100%;
}

.form-column select {
	position: relative;
	width: 100%;
	height: 8vw;
	padding: 0 2vw;
	border: 1px solid #ccc;
	background: url(https://www.k2.keio.ac.jp/assets/images/contact/bg_select_01.png) no-repeat 100% 0;
	background-color: #fff;
	background-size: contain;
	font-size: 3.2vw;
}

.form-column select::-ms-expand {
	display: none;
}

.form-column textarea {
	resize: none;
	width: 100%;
	height: 40vw;
	padding: 1.33333vw 2vw;
	border: 1px solid #ccc;
	background-color: #fff;
}

.form-column textarea:placeholder-shown {
	color: #666;
}

.form-column textarea::-webkit-input-placeholder {
	color: #666;
}

.form-column textarea:-moz-placeholder {
	opacity: 1;
	color: #666;
}

.form-column textarea::-moz-placeholder {
	opacity: 1;
	color: #666;
}

.form-column textarea:-ms-input-placeholder {
	color: #666;
}

.form-column input[type='checkbox'],
.form-column input[type='radio'] {
	display: none;
}

.form-column input[type='checkbox']+.option-text,
.form-column input[type='radio']+.option-text {
	position: relative;
	padding: 0 0 0 5.33333vw;
}

.form-column input[type='checkbox']+.option-text:before,
.form-column input[type='radio']+.option-text:before {
	content: '';
	display: block;
	position: absolute;
	top: -0.1em;
	left: 0;
	width: 4vw;
	height: 4vw;
	border: 1px solid #ccc;
	background-color: #fff;
}

.form-column input[type='checkbox']:checked+.option-text:after,
.form-column input[type='radio']:checked+.option-text:after {
	content: '';
	display: block;
	position: absolute;
	top: -0.1em;
	left: 0;
}

.form-column input[type='checkbox']:checked+.option-text:after {
	width: 2.66667vw;
	height: 2.66667vw;
	margin: 0.66667vw 0 0 0.66667vw;
	background: url(https://www.k2.keio.ac.jp/assets/images/contact/ico_align_bottom_01.png) no-repeat 50% 50%;
	background-size: contain;
}

.form-column input[type='radio']+.option-text:before {
	border-radius: 50%;
}

.form-column input[type='radio']:checked+.option-text:after {
	width: 2vw;
	height: 2vw;
	margin: 1.06667vw 0 0 1.06667vw;
	border-radius: 50%;
	background: #0077c1;
}

.button-group {
	margin: 5.33333vw 0 0;
	text-align: center;
}

.button {
	display: flex;
	position: relative;
	justify-content: center;
	align-items: center;
	width: 73.33333vw;
	height: 13.33333vw;
	margin: 2.66667vw auto 0;
	padding: 0 10.66667vw;
	border: none;
	border-radius: 0;
	box-shadow: 0.53333vw 0.53333vw 1.6vw rgba(0, 0, 0, 0.3);
	color: #fff;
	font-size: 3.2vw;
	font-weight: bold;
	text-decoration: none;
	letter-spacing: 0.1em;
}

.button.button-confirm {
	background: linear-gradient(135deg, #0077c1 50%, #002f7c 100%) 100% 50%;
	background-size: 200% 100%;
}

.button.button-submit {
	background: linear-gradient(135deg, #f88500 50%, #fa6000 100%) 100% 50%;
	background-size: 200% 100%;
}

.button.button-back {
	color: #333;
}

.help-block {
	margin: 5.33333vw 0 0;
	font-size: 3.46667vw;
	letter-spacing: 0.05em;
}

.message-block-error {
	margin: 4vw 0;
	font-size: 3.73333vw;
	line-height: 1.5;
}

.form-column-recaptcha div {
	margin: 0 auto;
}

@media screen and (min-width: 724px) {
	.message-block-error {
		margin: 20px 0;
		font-size: 1.4rem;
		line-height: 1.5;
	}

	.content-form .message-block,
	.content-confirmation .message-block,
	.content-complete .message-block {
		margin: 20px 0;
		font-size: 1.4rem;
		line-height: 1.5;
	}

	.form-column {
		padding: 20px 0;
		gap: 5px;
		font-size: 1.4rem;
	}

	.form-column .preview-block {
		padding: 10px 15px;
	}

	.form-column-textarea .preview-block {
		width: 100%;
	}

	.form-column.form-column-zip-code-autofill {
		display: block;
		padding: 0;
	}

	.form-column.form-column-zip-code-autofill .input-group {
		margin: 0;
	}

	.form-column .form-column-zip-code-jp .input-group input.zip-code-jp {
		width: 250px;
	}

	.form-column .label {
		white-space: nowrap;
	}

	.form-column .badge {
		margin: 0 0 0 10px;
		padding: 3px 10px 2px;
		font-size: 1.2rem;
	}

	.form-column .input-group {
		margin: -10px 0 0;
	}

	.form-column .input-group label {
		margin: 20px 0 0;
		padding: 0 30px 0 0;
	}

	.form-column input[type='text'],
	.form-column input[type='tel'],
	.form-column input[type='email'],
	.form-column input[type='url'] {
		height: 40px;
		padding: 0 15px;
		font-size: 1.4rem;
	}

	.form-column input[type='tel'] {
		width: 250px;
	}

	.form-column select {
		width: 250px;
		height: 40px;
		padding: 0 15px;
		font-size: 1.4rem;
	}

	.form-column select:hover:after {
		background-position: 0 50%;
	}

	.form-column textarea {
		height: 160px;
		padding: 10px 15px;
	}

	.form-column input[type='checkbox']+.option-text,
	.form-column input[type='radio']+.option-text {
		padding: 0 0 0 35px;
	}

	.form-column input[type='checkbox']+.option-text:before,
	.form-column input[type='radio']+.option-text:before {
		width: 20px;
		height: 20px;
	}

	.form-column input[type='checkbox']:checked+.option-text:after {
		width: 14px;
		height: 14px;
		margin: 3px 0 0 3px;
	}

	.form-column input[type='radio']:checked+.option-text:after {
		width: 10px;
		height: 10px;
		margin: 5px 0 0 5px;
	}

	.button-group {
		margin: 40px 0 0;
	}

	.button {
		display: inline-flex;
		width: 270px;
		height: 50px;
		margin: 0 6px;
		padding: 0 35px;
		box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.3);
		font-size: 1.4rem;
		transition: background-position 0.3s ease-in-out;
	}

	.button:hover {
		background-position: 0 50%;
	}

	.button.button-back {
		transition: color 0.3s ease-in-out;
	}

	.button.button-back:hover {
		color: rgba(51, 51, 51, 0.7);
	}

	.button:not(.hidden)+.button {
		margin: 0 6px;
	}

	.help-block {
		margin: 20px 0 0;
		font-size: 1.4rem;
	}
}

@media screen and (max-width: 723px) {
	.form-column.form-column-zip-code-autofill {
		padding: 0;
	}

	.form-column .label {
		display: block;
	}

	.button:not(.hidden)+.button {
		margin: 2.66667vw auto 0;
	}
}
