@charset "utf-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700;900&display=swap');

html { 
	font-size: 62.5%;
	scroll-padding-top: 110px;
	scroll-behavior: smooth;
}

body {
	inline-size: 100%;
	-webkit-text-size-adjust: 100%;
	margin: 0;
	color: #464646;
	font-size: 16px;
  font-optical-sizing: auto;
  font-family: "Zen Old Mincho", serif;
  font-style: normal;
	font-weight: 500;
	line-height: 1.5;
	background: #fff;
}

img {
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}

* {box-sizing: border-box;}

a {	transition: .2s ease-in-out;}

h1, h2, h3, h4 {
    text-wrap: auto;
}

.pc { display: block !important;}
.sp { display: none !important;}
.sp_menu { display: none !important }

.dsp_li { display: inline-block !important;}

@media screen and (max-width:768px) {
.pc { display: none !important }
.sp { display: block !important }
img { max-width: 100%; height: auto; width: auto; }
html {	scroll-padding-top: 80px;}
body { min-width: auto !important; overflow: inherit !important; font-size: 4.5vw; }
div, p, dd, dl, dt, th, td, span, li { box-sizing: border-box; }
}


/* --------------------
レイアウト
--------------------*/
.inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

.column {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin: 0 auto;
}

/* --------------------
余白
--------------------*/
.m_1 {margin-bottom: 1em !important;}



/* --------------------
見出し
--------------------*/
/* .headline_01（三角：水色） */
.headline_01 {
	margin: 0 0 1em 0;
	padding: 0 0 0.5em 2em;
	font-size: 26px;
	font-weight: 400;
	background: url("../images/mark_triangle_01.svg") no-repeat left 0.2em top / auto 1em, url("../images/line_01.svg") repeat-x left bottom;
}

/* .headline_02（三角：白） */
.headline_02 {
	margin: 0 0 1em 0;
	padding: 0 0 0.5em 2em;
	font-size: 26px;
	font-weight: 400;
	background: url("../images/mark_triangle_02.svg") no-repeat left 0.2em top / auto 1em, url("../images/line_02.svg") repeat-x left bottom;
}

/* .headline_03（三角：オレンジ） */
.headline_03 {
	margin: 0 0 1em 0;
	padding: 0 0 0.5em 2em;
	font-size: 26px;
	font-weight: 400;
	background: url("../images/mark_triangle_03.svg") no-repeat left 0.2em top / auto 1em, url("../images/line_03.svg") repeat-x left bottom;
}

/* .headline_04（三角：ピンク） */
.headline_04 {
	margin: 0 0 1em 0;
	padding: 0 0 0.5em 2em;
	font-size: 26px;
	font-weight: 400;
	background: url("../images/mark_triangle_04.svg") no-repeat left 0.2em top / auto 1em, url("../images/line_04.svg") repeat-x left bottom;
}

/* .headline_05（円：ピンク） */
.headline_05 {
	position: relative;
	margin: 0 0 1em 0;
	padding: 0 0 0 1.2em;
	color: #ff508c;
	font-size: 20px;
	font-weight: 700;
}

.headline_05::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.1em;
	width: 1em;
	height: 1em;
	border-radius: 50%;
	background: #ff508c;
}


/* --------------------
背景
--------------------*/
.bgbox_01,
.bgbox_02,
.bgbox_03 {
	margin: 40px auto;
	padding: 30px 50px;
	border-radius: 20px;
}

/* 水色 */
.bgbox_01 {
	background: #c3e5ee;
}

/* オレンジ */
.bgbox_02 {
	background: #faeae2;
}

/* 白 */
.bgbox_03 {
	background: #fff;
}

@media screen and (max-width:768px) {
	
.bgbox_01,
.bgbox_02,
.bgbox_03 {
	margin: 8vw auto;
	padding: 5vw;
	border-radius: 5vw;
}

}

/* --------------------
リスト
--------------------*/
/* .list_circle */
.list_circle {
	margin: 0;
	padding: 0;
	list-style: none;
}

.list_circle li {
	position: relative;
	margin: 0.3em 0 0 0;
	padding: 0 0 0 1.2em;
	font-size: 18px;
}

.list_circle li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1em;
	height: 1em;
	border-radius: 50%;
	background: #464646;
}

/* .list_note */
.list_note {
	margin: 0;
	padding: 0;
	list-style: none;
}

.list_note li {
	margin-left: 1em;
	text-indent: -1em;
}

.list_note li::before {
	content: "※";
}

/* --------------------
表組み
--------------------*/
.table_01 {
	width: 100%;
	margin: 1em 0;
	border-spacing: 4px;
}

.table_01 th,
.table_01 td {
	padding: 0.2em;
	text-align: left;
	font-weight: 500;
	background: #fae79d;
}


/* --------------------

header

--------------------*/
header {
	position: fixed;
	z-index: 1000;
	width: 100%;
	padding: 20px 5vw;
	background: rgba(255,255,255,0.85);
	transition: all 0.3s ease;
}

header .inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
}

header h1 {
	margin: 0;
}

header h1 img {
	width: 273px;
	transition: all 0.2s ease;
}

header.scrolled h1 img {
	width: 165px;
}

header nav ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 30px 0 0 0;
}

header nav li {
	padding: 0 1em;
	border-left: 1px solid #000;
}

header nav li:first-child {
	border-left: none;
}

header nav a {
	padding: 0 0.5em;
	color: #000;
	text-decoration: none;
	letter-spacing: 0.2em;
	border-radius: 1em;
}

header nav a:hover {
	color: #000;
	background: #f3d26d;
}

header nav .contact {
	padding: 0;
	border-left: none;	
}

header nav .contact a {
	padding: 0 1em;
	color: #fff;
	background: #f39800;
}

header nav .contact a:hover {
	color: #000;
	background: #f3d26d;
}

@media screen and (min-width:769px) and (max-width:1160px) {
	
header h1 img {
	width: 23.53vw;
}

header.scrolled h1 img {
	width: 14.22vw;
}
	
header nav li {
	padding: 0 1.3vw;
}
	
header nav a {
	font-size: 1.379vw;
}

header nav .contact a {
	padding: 0 1.3vw;
}

	
}

@media screen and (max-width:768px) {
	
header {
	padding: 2vw 5vw;
}
	
header h1 img {
	width: 35vw;
}
	
header.scrolled h1 img {
	width: 35vw;
}
	
.sp_menu {
  display: flex !important;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 2vw;
  right: 3.2vw;
  z-index: 1000;
  width: 14vw;
  height: 14vw;
	padding: 4vw;
  text-align: center;
  cursor: pointer;
  background: #f39800;
	border-radius: 50%;
}

.sp_menu span {
  display: block;
  width: 8vw;
  height: 1vw;
  background: #fff;
	border-radius: 1vw;
}

header nav {
  z-index: 99999;
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  display: none;
  overflow: scroll;
  padding: 0;
	background: #f39800;
  box-sizing: border-box;
}
	
header nav ul {
	display: block;
	margin: 0;
	padding: 20vw 0 0 0;
	list-style: none;
}

header nav li {
	width: 100%;
	padding: 0.5em;
	border: none;
}

header nav li a {
	display: block;
	padding: 0.5em;
	color: #fff !important;
	text-align: center;
	text-decoration: none;
}

header nav .contact {
	padding: 0.5em;
	color: #fff;
	background: #f39800;
}

header nav .contact a {
	padding: 0.5em;
	color: #fff;
	background: #f39800;
}

header nav .sp {
  display: block !important;
}

header nav .closebtn {
  display: block;
  position: fixed;
  top: 2vw;
  right: 3.2vw;
  z-index: 1000;
  width: 14vw;
  height: 14vw;
	margin: 0;
	padding: 4vw;
  text-align: center;
  cursor: pointer;
  background: #fff;
	border-radius: 50%;
}

header nav .closebtn span {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
  display: block;
  width: 8vw;
  height: 1vw;
  background: #f39800;
	border-radius: 1vw;
}

header nav .closebtn span:first-child {
	transform:rotate(30deg); 
}

header nav .closebtn span:last-child {
	transform:rotate(-30deg); 
}

}

/* --------------------

footer

--------------------*/
footer {
	padding: 0;
	color: #fff;
	background: #f39800;
}

footer .inner {
	padding: 40px 5vw 0;
}

footer .column {
	max-width: 900px;
	margin-bottom: 3em;
	align-items: center;
}

footer .logo {
	padding: 0 3em 0 0;
}

footer .information {
	flex: 1;
	display: flex;
	flex-wrap: wrap;
	margin: 0;
	font-size: 18px;
	border-top: 1px solid #fff;
}

footer .information dt {
	width: 6em;
	padding: 0.5em;
	text-align-last: justify;
	border-bottom: 1px solid #fff;
}

footer .information dd {
	width: calc(100% - 6em);
	margin: 0;
	padding: 0.5em;
	border-bottom: 1px solid #fff;
}

footer .information dd a {
	color: #fff;
	text-decoration: none;
}

footer .menu {
	margin: 0;
	padding: 1em 0;
	list-style: none;
	text-align: center;
}

footer .menu li {
	display: inline-block;
	padding: 0 1em;
	border-left: 1px solid #fff;
}

footer .menu li:first-child {
	border-left: none;
}

footer .menu li a {
	text-decoration: none;
}

footer small {
	display: block;
	padding: 0.5em;
	font-size: 16px;
	text-align: center;
	background: #f39800;
	border-top: 1px solid #fff;
}

@media screen and (max-width:768px) {
	
footer .logo {
	width: 100%;
	text-align: center;
	padding: 0 0 10vw 0;
}

footer .logo img {
	width: 70%;
}

footer .information {
	flex: none;
	width: 100%;
}
	
footer .menu {
	display: none;
}


}

/* --------------------

main

--------------------*/
main {
	display: block;
	padding-top: 150px;
}

main section {
	padding: 0 5vw;
}

@media screen and (max-width:768px) {
main {
	padding-top: 20vw;
}
}

/* --------------------
#mv
--------------------*/
#mv {
	padding: 30px 0 50px;
}

#mv .inner {
	position: relative;
	min-height: 350px;
}

#mv .copy {
	position: absolute;
	left: 85px;
	top: 80px;
	z-index: 1;
	margin: 0;
	color: #e66b20;
	font-size: 36px;
	font-weight: 600;
	line-height: 1.5;
}

#mv .img {
	position: absolute;
	right: 85px;
	top: 0;	
}

#mv .img img {
	clip-path: url(#mv_mask);
}

@media screen and (min-width:768px) and (max-width:1200px) {
	
#mv .inner {
	min-height: 29vw;
}

#mv .copy {
	left: 7.083vw;
	top: 0;
}

#mv .img {
	right: 7.083vw;
	width: 57.5vw;
}

}

@media screen and (max-width:768px) {
	
#mv {
	padding: 30px 0 0;
}

#mv .copy {
	position: static;
	padding: 0 5vw;
	font-size: min(36px, 6vw);
	text-align: center;
}

#mv .img {
	position: static;
	width: 100%;
	padding: 2vw 5vw 0;
	text-align: center;
}
	
}


/* --------------------
#thanks
--------------------*/
#thanks {
	margin: 30px 0 0 0;
	background: #f39800;
}

#thanks .headline {
	position: relative;
	height: 80px;
	text-align: center;
}

#thanks .headline h2 {
	position: absolute;
	left: 0;
	right: 0;
	top: -30px;
	display: inline-flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	width: 372px;
	height: 110px;
	margin: 0 auto;
	color: #fff;
	font-size: 36px;
	font-weight: 600;
	text-align: center;
	background: url("../images/headline_thanks_bg.svg") no-repeat center center / 100% 100%;
}

#thanks .headline span {
	display: block;
	font-size: 16px;
	font-weight: 500;
}

#thanks .slide {
	max-width: 920px;
	margin: auto;
	padding-bottom: 20px;
}

#thanks .slide-items {
  width: 100%;
  height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

#thanks .slide-items li {
	padding: 0 2px;
}

#thanks .slide-items img {
	margin: auto;
  border-radius: 20px;
}

@media screen and (max-width:768px) {
	
#thanks {
	padding: 0 25px;
}
	
}

@media screen and (max-width:450px) {
	
#thanks .headline {
	height: 17.77vw;
}

#thanks .headline h2 {
	top: -6.66vw;
	width: 82.66vw;
	height: 24.44vw;
	font-size: 8vw;
}

#thanks .headline span {
	font-size: 3.55vw;
}


}

/* --------------------
#about
--------------------*/
#about {
	margin: 80px auto;
}

#about .inner {
	max-width: 1040px;
}

#about .headline_about {
	text-align: center;
}

#about .headline_about h2 {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 336px;
	height: 142px;
	margin: 0 0 1em 0;
	font-size: 36px;
	font-weight: 600;
	text-align: center;
	letter-spacing: 0.2em;
	background: url("../images/headline_about_bg.svg") no-repeat center center / 100% 100%;
}

#about .headline_about h2::after {
	content: "";
	position: absolute;
	right: -120px;
	top: 10px;
	width: 103px;
	height: 112px;
	background: url("../images/pic_01.svg") no-repeat center center / 100% 100%;
}

#about .column .text {
	flex: 1;
	padding: 0 0 0 60px;
}

#about .column .text p {
	font-size: 18px;
}

#about .column .img {
	margin: 0;
	padding: 0 35px 0 30px;
	font-size: 18px;
	text-align: center;
}

#about .column .img img {
	clip-path: url(#about_mask);
	margin-bottom: 1em;
}

#about .column .img .pc {
	display: inline-block !important;
}

#about .philosophy .headline {
	margin: 0 0 1em 0;
	padding: 0 0 0.5em 0;
	text-align: center;
	font-size: 26px;
	font-weight: 400;
	background: url("../images/line_02.svg") repeat-x left bottom;
}

#about .philosophy .headline span {
	padding: 0 0 0 1.8em;
	background: url("../images/mark_triangle_02.svg") no-repeat left center / auto 1em;
}

#about .philosophy .copy {
	margin: 0 0 1em 0;
	font-size: 18px;
	text-align: center;
}

#about .philosophy .copy span {
	display: inline-block;
}

#about .philosophy ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#about .philosophy li {
	position: relative;
	margin: 0.3em 0 0 0;
	padding: 0 0 0 1.2em;
	font-size: 18px;
}

#about .philosophy li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.2em;
	width: 1em;
	height: 1em;
	border-radius: 50%;
	background: #464646;
}

#about .history .headline {
	margin: 0;
	padding: 0 0 0.5em 0;
	text-align: center;
	font-size: 26px;
	font-weight: 400;
	border-bottom: 3px solid #c3e5ee;
}

#about .history .headline span {
	padding: 0 0 0 1.8em;
	background: url("../images/mark_triangle_01.svg") no-repeat left center / auto 1em;
}

#about .history ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

#about .history li {
	display: flex;
	flex-wrap: wrap;
	padding: 1em;
	font-size: 18px;
	line-height: 1.7;
	background: url("../images/line_01.svg") repeat-x left bottom;
}

#about .history li .day {
	width: 8em;
}

#about .history li .text {
	flex: 1;
}

@media screen and (min-width:769px) and (max-width:900px) {
	
#about .column .text {
	padding: 0;
}

#about .column .img {
	padding: 0 0 0 30px;
}

}

@media screen and (max-width:768px) {
	
#about .headline_about h2 {
	margin: 80px 0 1em 0;
}

#about .headline_about h2::after {
	left: -10px;
	right: 0;
	top: -80px;
}	

#about .column .text {
	flex: initial;
	width: 100%;
	padding: 0 0 5vw 0;
}
	
#about .column .img {
	width: 100%;
	margin: 0;
	padding: 0 5vw;
	text-align: center;
}
	
#about .column .img .pc {
	display: none !important;
}
	
#about .history li .day {
	width: 100%;
}

#about .history li .text {
	flex: initial;
}
	
	
}

/* --------------------
#project
--------------------*/
#project {
	margin: 80px auto;
}

#project .inner {
	max-width: 1040px;
}

#project .headline_project {
	text-align: center;
}

#project .headline_project h2 {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 219px;
	height: 158px;
	margin: 0 0 1em 0;
	font-size: 36px;
	font-weight: 600;
	text-align: center;
	letter-spacing: 0.2em;
	background: url("../images/headline_project_bg.svg") no-repeat center center / 100% 100%;
}

#project .headline_project h2::after {
	content: "";
	position: absolute;
	right: -200px;
	top: 10px;
	width: 163px;
	height: 124px;
	background: url("../images/pic_02.svg") no-repeat center center / 100% 100%;
}

#project .detail .headline {
	display: flex;
	align-items: center;
	margin: -0.5em 0 1em -1.5em;
}

#project .detail .headline .number {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 67px;
	height: 71px;
	margin-right: 0.3em;
	color: #fff;
	font-size: 50px;
	font-weight: 500;
	line-height: 1;
	background: url("../images/mark_circle.svg") no-repeat center center / 67px 71px;
}

#project .detail .headline .title {
	flex: 1;
	font-size: 26px;
	font-weight: 500;
	line-height: 1;
}

#project .detail p {
	font-size: 18px;
}

#project .column {
	flex-direction: row-reverse;
}

#project .column .text {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	flex: 1;
	padding: 0 60px 0 25px;
}

#project .column .text p {
	margin: 0;
	font-size: 18px;
}

#project .column .text .link {
	margin-top: auto;
	text-align: right;
}

#project .column .text .link a {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 140px;
	height: 40px;
	color: #fff;
	font-size: 13px;
	text-decoration: none;
	background: url("../images/link_bg.svg") no-repeat center center;
}

#project .column .text .link a:hover {
	opacity: 0.7;
}

#project .column .img {
	margin: 0;
	padding-left: 40px;
}

#project .column .img img {
	clip-path: url(#project_mask);
}

@media screen and (min-width:769px) and (max-width:900px) {
	
#project .column .text {
	padding: 0 0 0 25px;
}
	
#project .column .img {
	padding-left: 0;
}

}


@media screen and (max-width:768px) {
	
#project .headline_project h2 {
	margin: 50px 0 0.5em 0;
}

#project .headline_project h2::after {
	left: -50px;
	right: 0;
	top: -70px;
}

#project .detail .headline {
	margin: 0 0 0.5em 0;
}

#project .column .text {
	flex: none;
	width: 100%;
	padding: 5vw 0;
}

#project .column .img {
	width: 100%;
	padding: 0 5vw;
	text-align: center;
}
	
	
}

/* --------------------
#support
--------------------*/
#support {
	margin: 80px auto 0;
	padding: 50px 5vw 90px;
	background: #fae7ff;
}

#support .inner {
	max-width: 1040px;
}

#support .headline_support {
	text-align: center;
}

#support .headline_support h2 {
	position: relative;
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 312px;
	height: 138px;
	margin: 0 0 1em 0;
	font-size: 36px;
	font-weight: 600;
	text-align: center;
	letter-spacing: 0.2em;
	background: url("../images/headline_support_bg.svg") no-repeat center center / 100% 100%;
}

#support .headline_support h2::after {
	content: "";
	position: absolute;
	right: -80px;
	bottom: 15px;
	width: 58px;
	height: 59px;
	background: url("../images/pic_03.svg") no-repeat center center / 100% 100%;
}

#support .intro .text {
	flex: 1;
	padding-left: 60px;
}

#support .intro .text p {
	font-size: 18px;
}

#support .intro .img {
	margin: 0;
	padding: 0 60px 0 40px;
}

#support .intro .img {
	margin: 0;
}

#support .intro .img img {
	clip-path: url(#support_mask);
}

#support .use {
	padding: 40px 60px;
}

#support .use .headline {
	margin: 0 0 1em 0;
	padding: 0 0 0.5em 0;
	text-align: center;
	font-size: 26px;
	font-weight: 400;
	background: url("../images/line_04.svg") repeat-x left bottom;
}

#support .use .headline span {
	padding: 0 0 0 1.8em;
	background: url("../images/mark_triangle_04.svg") no-repeat left center / auto 1em;
}

#support .use p {
	margin: 0;
	font-size: 18px;
}

#support .use .note {
	margin: 1em 0 0 0;
	font-size: 16px;
}

#support .use .headline_05 {
	margin: 0.2em 0;
}

#support .detail {
	display: flex;
	flex-wrap: wrap;
	flex-direction: column;
	justify-content: space-between;
	width: 49%;
}

#support .detail .headline {
	margin: 1em 0 0.5em;
	padding: 0 0 0 2.8em;
	font-size: 25px;
	background: url("../images/mark_triangle_04.svg") no-repeat left 1em top / auto 1em;
}

#support .detail .bgbox_03 {
	margin: 0;
	padding: 20px;
}

#support .detail p {
	margin: 0;
	font-size: 18px;
}

#support .detail .note {
	font-size: 16px;
}

#support .detail a {
	color: #464646;
	text-decoration: none;
}

@media screen and (min-width:769px) and (max-width:900px) {
	
#support .intro .text {
	padding-left: 0;
}

#support .intro .img {
	padding: 0 0 0 40px;
}

}

@media screen and (max-width:768px) {
	
#support .headline_support h2 {
	margin: 30px 0 0.5em 0;
}

#support .headline_support h2::after {
	right: -20px;
	top: -50px;
	bottom: 0;
}

#support .intro .text {
	flex: none;
	width: 100%;
	padding: 0 0 5vw 0;
}

#support .intro .img {
	width: 100%;
	margin: 0;
	padding: 0 5vw;
	text-align: center;
}

#support .use {
	padding: 5vw;
}

#support .detail .bgbox_03 {
	padding: 5vw;
}

#support .detail {
	width: 100%;
}

#support .detail .headline {
	padding: 0 0 0 1.8em;
	background: url("../images/mark_triangle_04.svg") no-repeat left top / auto 1em;
}

	
}