@charset "UTF-8";
body {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-weight: 400;
	color: #333333;
}
img {
	width: 100%;
}
.pc-only {
	display: block;
}
.sp-only {
	display: none;
}
@media (max-width: 767px) {
	.pc-only {
		display: none;
	}
	.sp-only {
		display: block;
	}
}
.clearfix:after {
	content: "";
	display: block;
	clear: both;
}

.clearfix:before {
　　　　content: "";
	display: block;
	clear: both;
}

.clearfix {
	display: block;
}
header {
	width: 100%;
	height: 100px;
	padding: 20px 0;
	display: flex;
	justify-content: center;
	align-content: center;
}
@media (max-width: 1199px) {
	header {
		padding: 20px;
	}
}
.headerInner {
	width: 100%;
	max-width: 1200px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
h1 {
	font-weight: 600;
	display: flex;
	align-items: center;
	font-size: 12px;
}
@media (max-width: 1199px) {
	h1 {
		font-size: 10px;
	}
}
h1 #box,
h1 #boxIntro {
	background: #0bd;
	height: 60px;
	width: 60px;
	display: block;
}
h1 #logo,
h1 #logoIntro {
	margin: 0 0 0 10px;
	width: 300px;
}
@media (max-width: 1199px) {
	h1 #logo,
	h1 #logoIntro {
		margin: 0 0 0 10px;
		width: 250px;
	}
}
h1 #logo img,
h1 #logoIntro img {
	margin: 10px 0 0;
	width: 300px;
	display: block;
}
@media (max-width: 1199px) {
	h1 #logo img,
	h1 #logoIntro img {
		width: 250px;
	}
}
@media (max-width: 979px) {
	nav {
		display: none;
	}
}
nav ul {
	display: flex;
	position: relative;
}
nav ul:before {
	content: "｜";
}
nav ul li {
	font-size: 15px;
	font-weight: 500;
	position: relative;
}
@media (max-width: 1199px) {
	nav ul li {
		font-size: 14px;
	}
}
nav ul li:after {
	content: "｜";
}
nav ul li a {
	padding: 0 10px;
}
@media (max-width: 1199px) {
	nav ul li a {
		padding: 0 5px;
	}
}
nav ul li a:hover {
	color: #000000;
	font-weight: 600;
}

#kv {
	background: #f0f0f0;
	padding: 50px 0;
	display: flex;
	justify-content: center;
}
#kv .kvInnner {
	width: 100%;
	max-width: 1200px;
	position: relative;
}
#kv .kvInnner .kv-text01 {
	width: 77%;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text01 {
		width: 92%;
	}
}
#kv .kvInnner .kv-text02 {
	width: 50%;
	margin: 40px 0 0 auto;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text02 {
		width: 80%;
		margin: 25px 0 0 auto;
	}
}
#kv .kvInnner .kv-text03 {
	width: 44%;
	margin: -20px 0 0;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text03 {
		width: 70%;
		margin: 15px 0 0 20px;
	}
}
#kv .kvInnner .kv-text04 {
	width: 27%;
	float: right;
	margin: 0 14% 0 0;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text04 {
		width: 50%;
		margin: 20px 0 0;
	}
}
#kv .kvInnner .kv-text05 {
	width: 72.5%;
	margin: 20px 0 0 6%;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text05 {
		width: 86%;
		margin: 10px auto 0;
	}
}
#kv .kvInnner .kv-text06 {
	width: 41.5%;
	margin: 30px 0 0;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text06 {
		width: 67%;
		margin: 30px 0 0;
	}
}
#kv .kvInnner .kv-text07 {
	width: 39%;
	float: right;
	margin: -30px 15% 0 0;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text07 {
		width: 63%;
		margin: 20px 0 0 8%;
		float: none;
	}
}
#kv .kvInnner .kv-text08 {
	width: 37.5%;
	margin: 0 0 0 3.3%;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text08 {
		width: 60%;
		margin: 10px 0 0;
	}
}
#kv .kvInnner .kv-text09 {
	width: 64%;
	margin: 30px 0 0 19%;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-text09 {
		width: 70%;
		margin: 25px 0 0 15px;
	}
}
#kv .kvInnner .kv-illust {
	width: 14%;
	position: absolute;
	right: 0;
	bottom: 0;
}
@media (max-width: 767px) {
	#kv .kvInnner .kv-illust {
		width: 23%;
	}
}

#aboutKotokata {
	display: flex;
	justify-content: center;
	width: 100%;
	padding: 150px 0;
}
@media (max-width: 767px) {
	#aboutKotokata {
		width: 100%;
		padding: 100px 0;
	}
}
.aboutKotokataInner {
	width: 100%;
	max-width: 1200px;
	display: flex;
	justify-content: space-between;
}
@media (max-width: 767px) {
	.aboutKotokataInner {
		padding: 0 20px;
		position: relative
	}
}
.aboutKotokataImg {
	width: 27.5%;
	display: flex;
	justify-content: center;
}
@media (max-width: 767px) {
    .aboutKotokataImg {
        position: absolute;
        right: 0;
        bottom: 40px;
        width: 30%;
        display: block;
    }
}
.aboutKotokataImg img {
	width: 54.5%;
}
@media (max-width: 767px) {
	.aboutKotokataImg img {
		width: 100%;
	}
}
.aboutKotokataText {
	width: 72.5%;
}
@media (max-width: 767px) {
	.aboutKotokataText {
		width: 100%;
	}
}
.aboutKotokataText h2 {
	font-family: "Zen Old Mincho", serif;
	font-size: 30px;
	line-height: 2;
}
@media (max-width: 767px) {
	.aboutKotokataText h2 {
		font-size: 18px;
	}
}
.aboutKotokataText p {
	font-family: "Zen Old Mincho", serif;
	font-size: 20px;
	line-height: 3;
	margin: 50px 0 0;
}
@media (max-width: 767px) {
	.aboutKotokataText p {
		margin: 20px 0 0;
		font-size: 15px;
		line-height: 3;
	}
}
.aboutKotokataText p span {
	font-size: clamp(30px, 3.4vw, 40px);
	text-align: right;
	display: block;
	margin: 50px 0 0;
	position: relative;
}
@media (max-width: 767px) {
	.aboutKotokataText p span {
        margin: 30px 0 0;
        padding: 30px 0 0;
        font-size: 18px;
        text-align: left;
        line-height: 1;
	}
}
.aboutKotokataText p span:before {
	position: absolute;
	content: "";
	width: 20%;
	height: 1px;
	background: #333333;
	left: 0;
	top: 50%;
}
@media (max-width: 767px) {
	.aboutKotokataText p span:before {
		top: 0;
	}
}

#works {
	display: flex;
	justify-content: center;
	background: #f0f0f0;
	padding: 150px 0 50px;
}
@media (max-width: 767px) {
	#works {
		padding: 100px 0 50px;
	}
}
.worksInner {
	width: 100%;
	max-width: 1200px;
}
@media (max-width: 767px) {
	.worksInner {
		padding: 0 20px;
	}
}
.worksInner h2 {
	font-family: "Zen Old Mincho", serif;
	font-size: 35px;
	line-height: 50px;
	text-align: center;
	position: relative;
}
@media (max-width: 767px) {
	.worksInner h2 {
		font-size: 22px;
		line-height: 1.5;
	}
}
.worksInner img.baloon {
	width: 260px;
	display: block;
	margin: 0 auto 20px;
}
@media (max-width: 767px) {
	.worksInner img.baloon {
		width: 50%;
		margin: 0 auto;
	}
}
.worksInner h2:before {
	content: "";
	display: block;
	width: 135px;
	height: 179px;
	background: url("../img/works-illust01.svg") no-repeat;
	position: absolute;
	bottom: 0;
	left: calc(50% - 310px);
}
@media (max-width: 767px) {
	.worksInner h2:before {
		content: "";
		display: block;
		width: 70px;
		height: 93px;
		background: url("../img/works-illust01.svg") no-repeat;
		position: absolute;
		bottom: 0;
		left: calc(50% - 170px)
	}
}
.worksInner h2:after {
	content: "";
	display: block;
	width: 73px;
	height: 174px;
	background: url("../img/works-illust02.svg") no-repeat;
	position: absolute;
	bottom: 0;
	left: calc(50% + 180px);
}
@media (max-width: 767px) {
    .worksInner h2:after {
        content: "";
        display: block;
        width: 40px;
        height: 93px;
        background: url(../img/works-illust02.svg) no-repeat;
        position: absolute;
        bottom: 0;
        left: calc(50% + 100px);
    }
}
.worksList {
	display: flex;
	justify-content: space-around;
	flex-wrap: wrap;
	margin: 120px 0 0;
}
@media (max-width: 767px) {
	.worksList {
		display: flex;
		justify-content: space-around;
		flex-wrap: wrap;
		margin: 40px 0 0;
	}
}
.worksThunbnail {
	width: calc((100% - 40px) / 2);
	max-width: 270px;
}
p.worksType {
	font-size: 15px;
	margin: 20px 0 0;
}
p.worksClient {
	margin: 5px 0 100px;
	font-size: 12px;
}
@media (max-width: 767px) {
	p.worksClient {
		margin: 5px 0 50px;
		font-size: 12px;
	}
}

#profile {
	display: flex;
	justify-content: center;
	padding: 150px 0;
}
@media (max-width: 767px) {
	#profile {
		display: flex;
		justify-content: center;
		padding: 100px 0 50px;
	}
}
.profileInner {
	width: 100%;
	max-width: 1200px;
}
@media (max-width: 767px) {
	.profileInner {
		width: 100%;
		max-width: 1200px;
		padding: 0 20px;
	}
}
.profileInner h2 {
	font-family: "Zen Old Mincho", serif;
	font-size: 35px;
	line-height: 50px;
	text-align: center;
}
@media (max-width: 767px) {
	.profileInner h2 {
		font-size: 22px;
		line-height: 1.5;
	}
}
.profileInner img.baloon {
	width: 260px;
	display: block;
	margin: 0 auto 20px;
}
@media (max-width: 767px) {
	.profileInner img.baloon {
		width: 50%;
		margin: 0 auto;
	}
}
.profileTextarea {
	width: 440px;
	margin: 100px auto 0;
}
@media (max-width: 999px) {
	.profileTextarea {
		width: 380px;
		margin: 100px auto 0;
	}
}
@media (max-width: 767px) {
	.profileTextarea {
		width: 100%;
		margin: 0 auto 50px;
	}
}
.profileTextarea h3 {
	font-size: 20px;
	font-weight: 600;
	line-height: 40px;
	margin: 0 0 10px;
}
@media (max-width: 767px) {
	.profileTextarea h3 {
		font-size: 18px;
		font-weight: 600;
		line-height: 40px;
		margin: 0 0 10px;
	}
}
.profileTextarea p {
	font-size: 15px;
	line-height: 3;
}
@media (max-width: 767px) {
	.profileTextarea p {
		font-size: 14px;
		line-height: 3;
	}
}
.profileTextarea p span {
	font-weight: 600;
	margin: 10px 0;
	display: block;
}
.gatch {
	position: relative;
}
.gatch:before {
	content: "";
    display: block;
    width: 320px;
    height: 412px;
    background: url(../img/profile-gatch.svg) no-repeat bottom right / contain;
    position: absolute;
    bottom: 0;
    left: -75%;
    z-index: -1;
}
@media (max-width: 999px) {
	.gatch:before {
		content: "";
		display: block;
		width: 204px;
		height: 260px;
		background: url(../img/profile-gatch.svg) no-repeat bottom right / contain;
		position: absolute;
		bottom: 0;
		left: -55%;
		z-index: -1;
	}
}
@media (max-width: 767px) {
	.gatch:before {
		content: none !important;
	}
}
@media (max-width: 767px) {
	.gatch-img {
		width: 50%;
		display: block;
		margin: 40px auto 10px;
	}
}
.chatty {
	position: relative;
}
.chatty:before {
	content: "";
    display: block;
    width: 170px;
    height: 325px;
    background: url(../img/profile-chatty.svg) no-repeat bottom right / contain;
    position: absolute;
    bottom: 0;
    right: -50%;
    z-index: -1;
}
@media (max-width: 999px) {
	.chatty:before {
		content: "";
		display: block;
		width: 119px;
		height: 225px;
		background: url(../img/profile-chatty.svg) no-repeat bottom right / contain;
		position: absolute;
		bottom: 0;
		right: -35%;
		z-index: -1;
	}
}
@media (max-width: 767px) {
	.chatty:before {
		content: none !important;
	}
}
@media (max-width: 767px) {
	.chatty-img {
		width: 30%;
		display: block;
		margin: 40px auto 10px;
	}
}

#policy {
	display: flex;
	justify-content: center;
	padding: 150px 0;
	background: #f0f0f0;
}
@media (max-width: 767px) {
	#policy {
		display: flex;
		justify-content: center;
		padding: 100px 0;
		background: #f0f0f0;
	}
}
.policyInner {
	width: 100%;
	max-width: 540px;
}
@media (max-width: 767px) {
	.policyInner {
		width: 100%;
		max-width: 100%;
		padding: 0 20px;
	}
}
.policyInner p {
	font-family: "Zen Old Mincho", serif;
	font-size: 25px;
}
@media (max-width: 767px) {
	.policyInner p {
		font-family: "Zen Old Mincho", serif;
		font-size: 20px;
	}
}
.policyInner p span.policyMessage01 {
	font-size: 40px;
	line-height: 75px;
	display: block;
	margin: 50px 0 0;
	letter-spacing: 5px;
}
@media (max-width: 767px) {
	.policyInner p span.policyMessage01 {
		font-size: 28px;
		line-height: 75px;
		display: block;
		margin: 30px 0 0;
		letter-spacing: 1px;
	}
}
.policyInner p span.policyMessage02 {
	text-align: right;
	display: block;
	margin: 100px 0 0;
}
@media (max-width: 767px) {
	.policyInner p span.policyMessage02 {
		text-align: left;
		display: block;
		margin: 30px 0 0;
		line-height: 2;
	}
}
.policyInner p span.policyMessage03 {
	text-align: right;
	display: block;
	font-size: 30px;
	margin: 20px 0 0;
	width: 100%;
	position: relative;
}
@media (max-width: 767px) {
	.policyInner p span.policyMessage03 {
		text-align: left;
		display: block;
		font-size: 25px;
		margin: 40px 0 0;
		width: 100%;
		position: relative;
	}
}
.policyInner p span.policyMessage03:before {
	content: "";
    width: 130px;
    height: 1px;
    background: #333;
    position: absolute;
    left: 40px;
    top: 50%;
}
@media (max-width: 767px) {
	.policyInner p span.policyMessage03:before {
		content: "";
		width: 130px;
		height: 1px;
		background: #333;
		position: absolute;
		left: 0;
		top: -20px;
	}
}
.policyInner p span.signature {
	font-family: "Zen Kaku Gothic New", sans-serif;
	font-size: 15px;
	text-align: right;
	display: block;
	margin: 20px 15px 0 0;
}

#contact {
	display: flex;
	justify-content: center;
	padding: 150px 0;
	flex-wrap: wrap;
}
@media (max-width: 767px) {
	#contact {
		display: flex;
		justify-content: center;
		padding: 100px 0;
		flex-wrap: wrap;
	}
}
.contactInner {
	width: 100%;
	max-width: 1200px;
}
@media (max-width: 767px) {
	.contactInner {
		width: 100%;
		max-width: 1200px;
		padding: 0 20px;
	}
}
.contactInner h2 {
	font-family: "Zen Old Mincho", serif;
	font-size: 35px;
	line-height: 50px;
	text-align: center;
}
@media (max-width: 767px) {
	.contactInner h2 {
		font-size: 22px;
		line-height: 1.5;
	}
}
.contactInner img.baloon {
	width: 260px;
	display: block;
	margin: 0 auto 20px;
}
@media (max-width: 767px) {
	.contactInner img.baloon {
		width: 50%;
		margin: 0 auto;
	}
}
.formArea {
	width: 660px;
	display: flex;
	justify-content: space-between;
}
@media (max-width: 767px) {
	.formArea {
		width: 100%;
		padding: 0 20px;
		display: flex;
		justify-content: center;
		flex-wrap: wrap;
	}
}
.contactIllust {
	width: 200px;
	display: flex;
	align-items: flex-start;
	padding: 50px 0 0;
}
@media (max-width: 767px) {
	.contactIllust {
		width: 100%;
		display: flex;
		align-items: flex-start;
		padding: 50px 25% 0;
	}
}
.form {
	width: 400px;
}
@media (max-width: 767px) {
	.form {
		width: 100%;
	}
}
.form p {
	margin: 50px 0 20px;
	font-weight: 500;
}
label {
	font-size: 20px;
    display: block;
    cursor: pointer;
	margin: 0 0 10px;
}
textarea {
    overflow: auto;
    border: 1px solid #cccccc;
    border-radius: 3px;
    padding: 10px;
    width: 100%;
	resize: vertical;
	font-size: 18px;
}
input[type=text] {
    border: 1px solid #cccccc;
    border-radius: 3px;
    padding: 10px;
    width: 100%;
	font-size: 18px;
}
input[type=email] {
    border: 1px solid #cccccc;
    border-radius: 3px;
    padding: 10px;
    width: 100%;
	font-size: 18px;
}
input[type=submit] {
	background: #0081ff;
    border-radius: 3px;
    padding: 20px;
    width: 100%;
	color: #fff;
	text-align: center;
	margin: 50px 0 0;
	font-size: 18px;
}
.require {
	color: #0081ff;
}
footer {
	background: #f0f0f0;
	text-align: center;
	padding: 20px;
	font-size: 12px;
}
input::placeholder {
	opacity: 0.5;
}
input:focus::-webkit-input-placeholder {
	color: transparent;
}
input:focus::-moz-placeholder {
	color: transparent;
}
input:focus::-ms-input-placeholder {
	color: transparent;
}
input:focus::placeholder {
	color: transparent;
}


#confirm {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
}
@media (max-width: 767px) {
	#confirm {
		width: 100%;
		max-width: 600px;
		margin: 0 auto;
		padding: 0 20px;
	}
}
#confirm h2 {
	font-family: "Zen Old Mincho", serif;
	font-size: 30px;
	line-height: 2;
}
#confirm p {
	font-size: 15px;
	line-height: 2;
}
#confirm table {
	margin: 30px 0;
	width: 100%;
}
#confirm th {
	font-weight: 400;
	padding: 20px;
	border: 1px solid #ccc;
	background: #f0f0f0;
}
#confirm td {
	padding: 20px;
	border: 1px solid #ccc;
}
input[type=submit].backbtn {
    background: #f0f0f0;
    border: 1px solid #ccc;
    width: auto;
    font-size: 10px;
    padding: 10px;
    margin: 10px 0 0;
    color: #333;
}
#confirm input[type=submit] {
	margin: 0 0 20px;
}

#thanks {
	width: 100%;
	max-width: 600px;
	margin: 0 auto;
}
@media (max-width: 767px) {
	#thanks {
		width: 100%;
		max-width: 600px;
		margin: 0 auto;
		padding: 0 20px;
	}
}
#thanks h2 {
	font-family: "Zen Old Mincho", serif;
	font-size: 30px;
	line-height: 2;
}
#thanks p {
	font-size: 15px;
	line-height: 2;
}
#thanks a {
	text-decoration: underline;
	margin: 0 0 10px;
	display: block;
}

/*-------入力エラー-------*/
.error {
	color: #cc0000;
	font-weight: 600;
}


/*-------アニメーション処理-------*/
#intro {
	position: fixed;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	z-index: 9999;
	animation: fadeOut 0.5s ease forwards;
	animation-delay: 3s;
}
#boxIntro {
	animation: wobble 1s infinite alternate;
	opacity: 0;
	animation: fadeIn 0.6s ease forwards;
	animation-delay: .3s;
}
#logoIntro {
	opacity: 0;
	animation: fadeIn 0.6s ease forwards;
	animation-delay: 1s;
}
@keyframes fadeIn {
	to { opacity: 1; }
}

@keyframes fadeOut {
	to { opacity: 0; visibility: hidden; }
}

@keyframes wobble {
	0% { border-radius: 60% 40% 70% 30% / 40% 60% 30% 70%; }
	100% { border-radius: 30% 70% 40% 60% / 60% 40% 70% 30%; }
}
.kv-text01, .kv-text02, .kv-text03, .kv-text04,
.kv-text05, .kv-text06, .kv-text07, .kv-text08,
.kv-text09, .kv-illust {
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.3s ease, transform 0.3s ease;
}
.show {
	opacity: 1;
	transform: translateY(0);
}
