@charset "utf-8";
#contents_header {
	width: 100%;
	text-align: center;
	background-size: cover;
}
#contents_header .header_content {
	position: relative;
}
#contents_header h1 {
	font-family: 'Playfair Display', serif;
	font-weight: 400;
}
p {
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	text-align: justify;
	line-height: inherit;
}
table.profile caption, .flow h2, .flow .cell dt, .process h2 {
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
}
.bio {
	background-color: #0d0d0d;
	color: #fff;
}
.bio a {
	color: #fff;
}
.main a, .sub_navigation a, .process a {
	color: #0d0d0d;
}
.sub_navigation span {
	color: #003f75;
}

@media screen and (max-width: 480px) {
}
@media screen and (max-width: 768px) {
	main {
		width: 100%;
		overflow: hidden;
	}
	p {
		font-size: 1.5rem;
		line-height: 2.8rem;
	}
	#contents_header .header_title {
		text-align: left;
		border-bottom : 1px solid #ddd;
		padding-bottom: 2.4vw;
		margin-bottom: 9.6vw;
	}
	#contents_header h1 {
		width: calc(100% - 32px);
		margin: 0 auto;
		font-size: 20vw;
	}
	#contents_header h1 span {
		display: block;
		font-size: 4vw;
		padding: 2vw 0;
	}
	.intro {
		width: calc(100% - 32px);
		margin: 0 auto 12vw auto;
	}
	.intro p {
		margin-bottom : 9.6vw;
	}
	table.profile {
		width: 100%;
		font-size: 1.4rem;
		line-height: 2.6rem;
	}
	table.profile caption {
		width: calc(100% - 32px);
		margin: 0 auto;
		text-align: center;
		font-size: 2.2rem;
		padding-bottom : 4.8vw;
		border-bottom: 1px solid #000;
	}
	table.profile caption h2 {
		font-size: inherit;
		font-weight: normal;
	}
	table.profile {
		width: calc(100% + 32px);
		margin: 0 0 0 -16px;
		border-collapse: separate;
		border-spacing: 16px 0;
	}
	table.profile th {
		width: 28%;
		font-weight: normal;
		text-align: right;
		padding : 3.2vw 1.4vw 3.2vw 0;
		border-bottom : 1px solid #ddd;
	}
	table.profile td {
		padding : 3.2vw 0 3.2vw 1.4vw;
		border-bottom : 1px solid #ddd;
	}
	.bio {
		padding-bottom: 8.4vw;
	}
	.bio .content {
		width: calc(100% - 32px);
		margin: 0 auto;
		padding: 12vw 0;
	}
	.bio .content .textblock {
		width : 100%;
	}
	.bio .content .logo {
		width: 26vw;
		margin-bottom: 0.2vw;
	}
	.bio .content h2 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 2.8rem;
		margin-bottom: 2.4vw;
	}
	.bio .content h3 {
		font-weight: normal;
		margin-bottom: 8.4vw;
	}
	.bio .content .description p {
		font-size: 1.5rem;
		line-height: 2.8rem;
		margin-bottom : 8.4vw;
	}
	.bio .content .photo {
		width : 100%;
		margin-left: 16px;
	}
	.bio .content .photo img {
		width: 100%;
	}
	.main h2 {
		text-align: center;
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		border-bottom: 1px solid #ddd;
		font-size: 2.8rem;
		padding-bottom : 4.0vw;
	}
	.story_body {
		background-color: #fcfcfc;
		margin-bottom : 16vw;
	}
	.story_body li {
		padding: 4vw 0;
		border-bottom: 1px solid #ddd;
	}
	.story_body li .cell {
		width: calc(100% - 32px);
		margin: 0 auto;
		display: table;
	}
	.story_body li .cell .text-block {
		width: 100%;
		vertical-align: top;
	}
	.story_body li .cell .image {
		width: 100;
		vertical-align: top;
		padding: 2.4vw 0;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}
	.story_body li .cell .image img {
		width: calc(50% - 1vw);
	}
	.story_body li .cell .image img:first-child {
		margin-right: 1vw;
	}
	.story_body li .cell .image img:last-child {
		margin-left: 1vw;
	}
	.story_body li h3 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 12vw;
		padding-bottom: 2vw;
	}
	.story_body li p {
		margin-right: 2.4vw;
	}
	.sub_navigation {
		width: calc(100% - 32px);
		margin: 0 auto 9.6vw auto;
		font-size: 1.3rem;
	}
	.sub_navigation span {
		font-size: 1.2rem;
		margin : 0.5rem -0.7rem 0 0;
	}
	.sub_navigation li {
		width: 50%;
		margin-bottom: 1.2rem;
		float: left;
	}
	.sub_navigation li:last-child {
		width: 100%;
		margin-right: 0;
	}
	.flow h2 {
		text-align: center;
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 2.4rem;
		padding-bottom : 4.0vw;
	}
	.flow .content {
		width: 100%;
		margin: 0 auto 16vw auto;
		padding-bottom: 16px;
		background-color: #f5f5f5;
	}
	.flow .description {
		width: calc(100% - 32px);
		padding: 16px;
		margin-bottom: 32px;
		background-color: #fff;
	}
	.flow .description p {
		margin-bottom : 2.4vw;
	}
	.flow .cell {
		width: calc(100% - 32px - 8vw);
		padding: 4vw;
		margin: 0 auto 16px auto;
		background-color: #fff;
		border: 1px solid #ddd;
	}
	.flow dt {
		font-size: 2.0rem;
		margin-bottom: 4vw;;
	}
	.flow dd p {
		font-size: 1.4rem;
		line-height: 2.6rem;
	}
	.process {
		margin-bottom : 3.2vw;
	}
	.process h2 {
		text-align: center;
		width: 100%;
		margin: 0 auto 1.4vw auto;
		padding-bottom: 12px;
		font-size: 2.0rem;
		line-height: 4vw;
		font-weight: normal;
		border-bottom: 1px solid #ddd;
	}
	.process .content {
		width: calc(100% - 32px);
		margin: 0 auto 9.6vw auto;
	}
	.process .description p {
		line-height: 3.2rem;
		margin-bottom : 32px;
	}
	.process .cell {
		width: calc(100% - 6.4vw);
		border: 1px solid #ddd;
		padding: 3.2vw;
		margin: 0 auto;
		text-align : center;
	}
	.process .process_next {
		width: 100%;
		text-align: center;
		margin-bottom: 2.4vw;
	}
	.process .process_next img {
		width: 14.0vw;
	}
	.process dt {
		display : inline-block;
		font-size: 1.6rem;
		margin-bottom: 3.2vw;
		padding-bottom: 3.2vw;
		border-bottom: 1px solid #ddd;
	}
	.process dd h3 {
		font-size: 1.4rem;
		font-weight: normal;
		padding: 2.4vw 0;
		margin-bottom: 2.4vw;
	}
	.process dd p {
		margin: 0 auto;
		padding: 2.4vw 0;
	}
	.process .cell .figure1 {
		width: 25vw;
	}
	.process .cell .figure2 {
		width: 28vw;
	}
	.process .cell .figure3 {
		width: 70vw;
	}
	.process .cell .figure4 {
		width: 25vw;
	}
	.entry {
		width: calc(100% - 32px);
		margin : 0 auto 4.8vw auto;
	}
	.entry h2 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 8vw;
		padding-bottom: 9.6vw;
		text-align: center;
	}
	.entry form {
		padding: 0;
	}
	.entry form dt {
		font-size: 1.6rem;
		margin-bottom: 12px;
	}
	.entry form input[type="text"] {
		width: 100%;
		font-size: 2.2rem;
		padding: 4px;
		margin-bottom: 32px;
	}
	.entry form .form_navi {
		text-align: center;
		margin-top: 12px;
	}
	button[type="button"] {
		appearance: none;
		outline: none;
		border: none;
		font-size: 1.8rem;
		color: #fff;
		background-color: #0d0d0d;
		padding: 12px 48px;
	}
}
@media screen and (min-width: 769px) {
	#contents_header h1 span {
		font-size: 1.6rem;
		line-height: 4.6rem;
		vertical-align: bottom;
	}
	table.profile {
		width: 560px;
		margin: 0 auto;
		border-collapse: separate;
		border-spacing: 20px 0;
	}
	table.profile caption {
		text-align : center;
		border-bottom: 1px solid #000;
	}
	table.profile th {
		width: 140px;
		font-weight: normal;
		text-align: right;
		padding : 16px 16px 16px 0;
		border-bottom : 1px solid #ddd;
		border-spacing: 20px 0;
	}
	table.profile td {
		padding : 16px 0 16px 16px;
		border-bottom : 1px solid #ddd;
	}
	.bio .content .textblock {
		width : 50%;
		display: table-cell;
	}
	.bio .content .photo {
		width : 50%;
		display: table-cell;
	}
	.bio .content .photo img {
		width: 100%;
	}
	.main h2 {
		text-align: center;
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		border-bottom: 1px solid #ddd;
	}
	.story_body li .cell .text-block {
		width: 50%;
		display: table-cell;
		vertical-align: top;
	}
}
@media screen and (min-width: 769px) and (max-width: 1280px) {
	p {
		font-size: min(1.5rem, 1.5vw);
		line-height: min(3.2rem, 2.8vw);
	}
	#contents_header {
		padding: 0 0 64px 0;
	}
	#contents_header .header_title {
		padding-top: 3.2vw;
		text-align: left;
		border-bottom: 1px solid #ddd;
		margin-bottom: 3.2vw;
	}
	#contents_header h1 {
		width: min(920px , 80vw);
		margin: 0 auto;
		font-size: min(16rem, 12vw);
		line-height: min(13.6rem, 10.4vw);
	}
	.intro {
		width: min(920px , 80vw);
		margin: 0 auto 9.6vw auto;
		font-size: min(1.5rem, 1.5vw);
	}
	.intro p {
		margin-bottom : 4.8vw;
	}
	table.profile {
		font-size: min(1.5rem, 1.5vw);
	}
	table.profile caption {
		font-size: 2.8vw;
		line-height: 4rem;
		padding-bottom : 2.4vw;
		margin: 0 20px;
	}
	table.profile caption h2 {
		font-size: inherit;
		font-weight: normal;
	}
	.bio {
		padding-bottom: 8.4vw;
	}
	.bio .content {
		width: calc(100% - 64px);
		display: table;
		margin: 0 auto;
		padding: 8.4vw 0;
	}
	.bio .content .logo {
		width: 10vw;
		margin-bottom: 0.2vw;
	}
	.bio .content h2 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 2.6vw;
		margin-bottom: 1.4vw;
	}
	.bio .content h3 {
		font-weight: normal;
		margin-bottom: 2.8vw;
	}
	.bio .content .description {
		font-size: min(1.5rem, 1.5vw);
		line-height: min(3.2rem, 2.8vw);
	}
	.bio .content .description p {
		margin-right : 3.2vw;
		line-height: inherit;
	}
	.main {
		margin-bottom : 3.2vw;
	}
	.main h2 {
		font-size: 3.2vw;
		padding-bottom: 1.4vw;
	}
	.story_body {
		background-color: #fcfcfc;
		margin-bottom : 3.2vw;
	}
	.story_body li {
		padding: 1.6vw;
		border-bottom: 1px solid #ddd;
	}
	.story_body li .cell {
		width: calc(100% - 64px);
		margin: 0 auto;
		display: table;
	}
	.story_body li .cell .image {
		width: 50%;
		display: table-cell;
		vertical-align: top;
		padding: 2.4vw 0;
	}
	.story_body li .cell .image img {
		width: calc(50% - 1.5vw);
		float: left;
	}
	.story_body li .cell .image img:first-child {
		margin: 0 1vw;
	}
	.story_body li .cell .image img:last-child {
		margin-left: 1vw;
	}
	.story_body li h3 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 5.2vw;
		padding-bottom: 2vw;
	}
	.story_body li p {
		margin-right: 2.4vw;
	}
	.sub_navigation {
		width: min(920px , 80vw);
		margin: 0 auto 3.2vw auto;
		font-size: min(1.2rem, 1.2vw);
	}
	.sub_navigation span {
		font-size: min(1.0rem, 1.0vw);
		margin-top : min(0.1rem, 0.1vw);
	}
	.sub_navigation li {
		margin-right: 2.4vw;
		float: left;
	}
	.sub_navigation li:last-child {
		margin-right: 0;
	}
	.flow h2 {
		font-size: 2.4vw;
		text-align: center;
		line-height: 4vw;
		font-weight: normal;
		margin-bottom: 1.4vw;
	}
	.flow .content {
		width: min(920px , calc(75.2vw));
		padding: 4.8vw 6.4vw;
		margin: 0 auto 6.4vw auto;
		background-color: #f5f5f5;
	}
	.flow .description p {
		margin-bottom : 2.4vw;
	}
	.flow .cell {
		background-color: #fff;
		border: 1px solid #ddd;
		padding: 2.8vw;
		margin-bottom: 2.8vw;
	}
	.flow dt {
		font-size: min(2.4rem, 2.4vw);
		margin-bottom: 1.6vw;
	}
	.flow dd p {
		font-size: min(1.5rem, 1.5vw);
		line-height: min(3.2rem, 2.8vw);
	}
	.process {
		margin-bottom : 3.2vw;
	}
	.process h2 {
		text-align: center;
		width: min(calc(920px + 12.8vw) , calc(88vw));
		margin: 0 auto 1.4vw auto;
		padding-bottom: 12px;
		font-size: 2.4vw;
		line-height: 4vw;
		font-weight: normal;
		border-bottom: 1px solid #ddd;
	}
	.process .content {
		width: min(920px , 75.2vw);
		margin: 0 auto 96px auto;
	}
	.process .description p {
		line-height: 3.2rem;
		margin-bottom : 32px;
	}
	.process .cell {
		width: min(calc(920px - 16vw), 50vw);
		border: 1px solid #ddd;
		padding: 2.4vw 8vw;
		margin: 0 auto;
		text-align : center;
	}
	.process .process_next {
		width: 100%;
		text-align: center;
		margin-bottom: 16px;
	}
	.process .process_next img {
		width: 4.0vw;
	}
	.process dt {
		display : inline-block;
		font-size: 2.0rem;
		margin-bottom: 16px;
		padding-bottom: 16px;
		border-bottom: 1px solid #ddd;
	}
	.process dd h3 {
		font-size: 1.6rem;
		font-weight: normal;
		padding: 16px 0;
	}
	.process dd p {
		width: 33vw;
		margin: 0 auto;
		padding : 16px 0;
	}
	.process .cell .figure1 {
		width : 12vw;
	}
	.process .cell .figure2 {
		width : 14vw;
	}
	.process .cell .figure3 {
		width : 28vw;
	}
	.process .cell .figure4 {
		width : 14vw;
	}	
	.entry {
		width: 720px;
		margin : 0 auto 64px auto;
	}
	.entry h2 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 6.4rem;
		padding-bottom: 16px;
		text-align: center;
	}
	.entry form {
		padding: 48px 96px;
	}
	.entry form dt {
		font-size: 1.6rem;
		margin-bottom: 12px;
	}
	.entry form input[type="text"] {
		width: 100%;
		font-size: 2.4rem;
		padding: 4px;
		margin-bottom: 32px;
	}
	.entry form .form_navi {
		text-align: center;
		margin-top: 12px;
	}
	button[type="button"] {
		appearance: none;
		outline: none;
		border: none;
		font-size: 1.8rem;
		color: #fff;
		background-color: #0d0d0d;
		padding: 12px 48px;
	}
}
@media screen and (min-width: 1281px) {
	p {
		font-size: 1.6rem;
		line-height: 3.2rem;
	}
	#contents_header {
		padding: 0 0 64px 0;
	}
	#contents_header .header_title {
		padding-top: 48px;
		text-align: left;
		border-bottom: 1px solid #ddd;
		margin-bottom: 48px;
	}
	#contents_header h1 {
		width: 920px;
		margin: 0 auto;
		font-size: 16rem;
		line-height: 13.6rem;
	}
	.intro {
		width: 920px;
		margin: 0 auto 128px auto;
	}
	.intro p {
		margin-bottom : 64px;
	}
	table.profile {
		font-size: 1.4rem;
	}
	table.profile caption {
		font-size: 3.2rem;
		line-height: 4rem;
		padding-bottom : 28px;
		margin: 0 20px;
	}
	table.profile caption h2 {
		font-size: inherit;
		font-weight: normal;
	}
	.bio {
		padding-bottom: 112px;
	}
	.bio .content {
		width: 1200px;
		display: table;
		margin: 0 auto;
		padding: 112px 0;
	}
	.bio .content .logo {
		width: 140px;
		margin-bottom: 4px;
	}
	.bio .content h2 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 3.2rem;
		margin-bottom: 16px;
	}
	.bio .content h3 {
		font-weight: normal;
		margin-bottom: 32px;
	}
	.bio .content .description {
		line-height: 3.2rem;
	}
	.bio .content .description p {
		margin-right : 64px;
		line-height: inherit;
	}
	.main {
		margin-bottom : 64px;
	}
	.main h2 {
		font-size: 4.0rem;
		padding-bottom: 16px;
	}
	.story_body {
		background-color: #fcfcfc;
		margin-bottom : 64px;
	}
	.story_body li {
		padding: 24px;
		border-bottom: 1px solid #ddd;
	}
	.story_body li .cell {
		width: 1200px;
		margin: 0 auto;
		display: table;
	}
	.story_body li .cell .image {
		width: 50%;
		display: table-cell;
		vertical-align: top;
		padding: 32px 0;
	}
	.story_body li .cell .image img {
		width: calc(50% - 18px);
		float: left;
	}
	.story_body li .cell .image img:first-child {
		margin: 0 12px;
	}
	.story_body li .cell .image img:last-child {
		margin-left: 12px;
	}
	.story_body li h3 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 6.4rem;
		padding-bottom: 20px;
	}
	.story_body li p {
		margin-right: 48px;
	}
	.sub_navigation {
		width: 920px;
		margin: 0 auto 48px auto;
		font-size: 1.2rem;
	}
	.sub_navigation span {
		font-size: 1.0rem;
		margin-top : 0.1rem;
	}
	.sub_navigation li {
		margin-right: 32px;
		float: left;
	}
	.sub_navigation li:last-child {
		margin-right: 0;
	}
	.flow h2 {
		text-align: center;
		font-size: 3.2rem;
		line-height: 4rem;
		font-weight: normal;
		margin-bottom : 32px;
	}
	.flow .content {
		width: 920px;
		padding: 64px 140px;
		margin: 0 auto 96px auto;
		background-color: #f5f5f5;
	}
	.flow .description p {
		margin-bottom : 32px;
	}
	.flow .cell {
		background-color: #fff;
		border: 1px solid #ddd;
		padding: 32px;
		margin-bottom: 32px;
	}
	.flow dt {
		font-size: 2.4rem;
		margin-bottom: 20px;
	}
	.process {
		margin-bottom: 64px;
	}
	.process h2 {
		text-align: center;
		width: 1200px;
		margin: 0 auto 32px auto;
		padding-bottom: 12px;
		font-size: 3.2rem;
		line-height: 4rem;
		font-weight: normal;
		border-bottom: 1px solid #ddd;
	}
	.process .content {
		width: 920px;
		padding: 64px 140px 32px 140px;
		margin: 0 auto 96px auto;
	}
	.process .description p {
		line-height: 3.2rem;
		margin-bottom : 32px;
	}
	.process .cell {
		width : 780px;
		border: 1px solid #ddd;
		padding: 28px 32px;
		margin: 0 auto;
		text-align : center;
	}
	.process .process_next {
		width: 100%;
		text-align: center;
		margin-bottom: 16px;
	}
	.process .process_next img {
		width: 48px;
	}
	.process dt {
		display : inline-block;
		font-size: 2.0rem;
		margin-bottom: 16px;
		padding-bottom: 16px;
		border-bottom: 1px solid #ddd;
	}
	.process dd h3 {
		font-size: 1.6rem;
		font-weight: normal;
		padding: 16px 0;
	}
	.process dd p {
		padding : 16px 168px;
	}
	.process .cell .figure1 {
		width : 132px;
	}
	.process .cell .figure2 {
		width : 145px;
	}
	.process .cell .figure3 {
		width : 366px;
	}
	.process .cell .figure4 {
		width : 156px;
	}
	.entry {
		width: 800px;
		margin : 0 auto 64px auto;
	}
	.entry h2 {
		font-family: 'Playfair Display', serif;
		font-weight: 500;
		font-size: 6.4rem;
		padding-bottom: 16px;
		text-align: center;
	}
	.entry form {
		padding: 48px 96px;
	}
	.entry form dt {
		font-size: 1.6rem;
		margin-bottom: 12px;
	}
	.entry form input[type="text"] {
		width: 100%;
		font-size: 2.4rem;
		padding: 4px;
		margin-bottom: 32px;
	}
	.entry form .form_navi {
		text-align: center;
		margin-top: 12px;
	}
	button[type="button"] {
		appearance: none;
		outline: none;
		border: none;
		font-size: 1.8rem;
		color: #fff;
		background-color: #0d0d0d;
		padding: 12px 48px;
	}
}