/* ==================== base.css ==================== */

html {
	font-family: 'Hiragino Kaku Gothic Pro', 'Meiryo', sans-serif;
	-webkit-font-smoothing: antialiased;
	font-smoothing: antialiased;
	line-height: 1.7;
	text-align: center;
}

body {
	margin: 0 auto;
	max-width: 1000px;
}

@media (max-width: 567px) {
	body {
		font-size: 70%;
	}
}

@media (min-width: 568px) {
	body {
		font-size: 65%;
	}
}

h1, h2, h3, h4, h5, h6,
p,
ul, ol, dl,
figure {
	margin: 0;
}

img {
	max-width: 100%;
	vertical-align: bottom;
}

button,
label {
	cursor: pointer;
}


/* ==================== cmp.css ==================== */

.Cmp {
  padding: 0 3% 2rem;
  background-color: #fffdf3;
}

.Cmp .body {
  background-color: #fff;
  border: 1px solid #ccc;
	padding: 1rem;
	text-align: left;
}

.Cmp .body > div {
	margin-top: 2rem;
}

.Cmp h2 {
	background: #f59239;
	color: white;
	font-size: 140%;
	line-height: 2.25;
}

.Cmp h3 {
	border-bottom: 1px solid black;
	margin-bottom: 0.5em;
	font-size: 120%;
}

.Cmp ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
}

.Cmp .present li {
	position: relative;
	padding-left: 1em;
}

.Cmp .present li::before {
	content: '・';
	position: absolute;
	left: 0;
}

.Cmp .entry {
	text-align: center;
}

.Cmp .entry button {
	border: none;
	margin: 0;
	padding: 0;
	background: none;
}

.Cmp .entry p {
	margin-top: 1em;
	font-size: 80%;
}


@media (max-width: 567px) {
	.Cmp dd {
		margin-left: 1em;
	}
}


@media (min-width: 568px) {
	.Cmp dl {
		position: relative;
	}
	.Cmp dt {
		position: absolute;
		left: 0;
	}
	.Cmp dd {
		margin-left: 4.5em;
	}
}


/* ==================== entry.css ==================== */

.Entry {
	padding: 1.5rem 0;
	background: #e5e5e5;
}

.Entry fieldset {
	box-sizing: border-box;
	border: none;
	margin: 1rem auto;
	padding: 1rem;
	background: white;
	font-size: 75%;
	text-align: left;
}

.Entry input,
.Entry select {
	outline: none;
}


.Entry .labels {
	display: flex;
	justify-content: space-between;
	flex-wrap: wrap;
}

.Entry .labels label {
	position: relative;
	box-sizing: border-box;
	width: calc(50% - 0.25rem);
	border: 1px solid #ccc;
	border-radius: 0.25em;
	margin-top: 0.5rem;
	padding: 0.5rem;
	padding-left: 1.5rem;
	line-height: 1.4;
}
.Unquete .q3 label {
	width: 100%;
}
.Form .labels label {
	line-height: 1;
}

.Entry .labels label input {
	position: absolute;
	left: 0.5rem;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
}


.Entry button {
	border: none;
	margin: 0;
	padding: 0;
	background: none;
}


@media (max-width: 567px) {
	.Entry fieldset {
		width: 94%;
	}
}


@media (min-width: 568px) {
	.Entry fieldset {
		width: 20rem;
	}
	.Entry .labels label input {
		font-size: 200%;
	}
}


/* ==================== form.css ==================== */

.Form h4 {
	display: flex;
	align-items: center;
	margin-bottom: 0.5em;
	font-size: inherit;
	font-weight: normal;
}

.Form h4:nth-of-type(n+2) {
	margin-top: 1rem;
}

.Form h4:nth-of-type(2) {
	margin-bottom: 0;
}

.Form h4.required::after {
	content: '必須';
	border-radius: 0.25em;
	margin-left: 0.5em;
	padding: 0 0.25em;
	background: #d9534f;
	color: white;
	font-size: 80%;
}

.Form input[type="text"],
.Form input[type="email"] {
	box-sizing: border-box;
	width: 100%;
	border: 1px solid #ccc;
	border-radius: 0.25em;
	padding: 0 0.5em;
	font-size: inherit;
	font-family: inherit;
	height: 2.5em;
}

.Form label.select {
	display: inline-flex;
	position: relative;
	align-items: center;
	height: 2.5em;
	border: 1px solid #ccc;
	border-radius: 0.25em;
}

.Form label.select::after {
	content: 'arrow_drop_down';
	content: '▼';
	position: absolute;
	right: 0.5em;
	top: 50%;
	transform: translateY(-50%) scale(0.7,0.5);
  color: #999;
  pointer-events: none;
}
.Form label.select select {
  width: 100%;
  height: 2.5em;
  padding: 0 1em;
	-moz-appearance: none;
	-webkit-appearance: none;
	appearance: none;
	border: none;
	margin-left: 0;
	/* width: calc(100% - 3em); */
	font-size: inherit;
  font-family: inherit;
  cursor: pointer;
}
/* for IE */
select::-ms-expand {
	display: none;
}

/* birthday */

.Form .birthday label {
	width: 30%;
	margin-right: 0.5em;
}

.Form .birthday label:nth-of-type(n+2) {
	width: 25%;
}

/* address */

.Form .address dl {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

.Form .address dt,
.Form .address dd {
	order: 2;
	width: 100%;
	display: flex;
	align-items: center;
}

.Form .address dt:nth-of-type(-n+2),
.Form .address dd:nth-of-type(-n+2) {
	width: 48%;
}

.Form .address dd {
	margin: 0;
}

.Form .address dt:nth-of-type(-n+2) {
	order: 1;
}

.Form .address dt:nth-of-type(n+3) {
	margin-top: 0.5em;
}

.Form .address label.select {
	width: 100%;
}


/* ==================== header.css ==================== */

header {
	border-bottom: 1px solid #ccc;
}


/* ==================== link.css ==================== */

.Link {
	margin: 2rem auto;
}

.Link ul {
	display: table;
	margin: 0 auto;
	padding: 0;
	list-style-type: none;
}

.Link li {
	display: table-cell;
	vertical-align: top;
}


/* ==================== outline.css ==================== */

.Outline {
	margin: 2rem 0;
}

.Outline h2 {
	font-size: 100%;
}

.Outline table {
	border-collapse: collapse;
	margin: 1rem auto;
	width: 94%;
	font-size: 75%;
}

.Outline th,
.Outline td {
	border: 1px solid #ccc;
	padding: 1em;
	vertical-align: middle;
}

.Outline th {
	background: #e5e5e5;
}
.Outline td {
	text-align: left;
}


@media (max-width: 567px) {
	.Outline table {
	}
}

@media (min-width: 568px) {
	.Outline table {
	}
}


/* ==================== unquete.css ==================== */

.Unquete {
	padding: 1px 0;
}

.Unquete fieldset h3 {
	width: 100%;
	border-bottom: 1px solid #ccc;
	margin-bottom: 0.5rem;
	padding-bottom: 0.5em;
	font-weight: normal;
	font-size: inherit;
}

.Unquete .q3 label:nth-of-type(8) small {
	display: block;
}

/* ==================== confirm.css ==================== */
.applicationEssentialPoint th {
	width: 200px;
}

.confirm-wrapper {
  margin-bottom: 30px;
}

#confirm {
	text-align: center;
  font-size: 20px;
  line-height: 20px;
}

@media (max-width: 567px) {
  #confirm {
    font-size: 12px;
    line-height: 12px;
  }
}

/* SPAのため、読み込み時に一瞬チラつくのを防止する */
[v-cloak] {
  display: none;
}

/* ==================== complete.css ==================== */
.errorMessage,.completeMessage{
	margin: 30px 0;
}

.errorMessage p,.completeMessage p{
	margin: 20px 0;
}

.errorMessageList{
	list-style: none;
	padding: 20px;
	box-sizing: border-box;
	border: 3px solid #F00;
	font-size: 0.8em;
	max-width: 640px;
	margin: 0 auto;
}

@media (min-width: 568px) {
	.EnerrorMessageListtry {
		max-width: 320px;
	}
}

.completeBtn {
	display: block;
	max-width: 320px;
	margin: 35px auto;
	background:  #ea6d5e;
	padding: 15px;
	color: #fff;
	font-size: 0.8em;
	font-weight: bold;
	text-decoration: none;
	border-radius: 10px;
}
