@charset "UTF-8";
/*! sanitize.css | CC0 Public Domain | github.com/jonathantneal/sanitize.css */
/* These browsers currently include
** Android 4.3-4.4+,
** Chrome 39-40+,
** Firefox 34-35+,
** Internet Explorer 10-11+,
** iOS 7-8+,
** Safari 7-8+,
** Windows Phone 8.1+.
*/
/*
 * Normalization
 */
:root {
		-ms-overflow-style: -ms-autohiding-scrollbar;
		-webkit-text-size-adjust: 100%;
		        text-size-adjust: 100%;
}

audio:not([controls]) {
		display: none;
}

details {
		display: block;
}

input[type=number] {
		width: auto;
}
input[type=search] {
		-webkit-appearance: textfield;
}
input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration {
		-webkit-appearance: none;
}

main {
		display: block;
}

summary {
		display: block;
}

pre {
		overflow: auto;
}

progress {
		display: inline-block;
}

small {
		font-size: 75%;
}

template {
		display: none;
}

textarea {
		overflow: auto;
}

[hidden] {
		display: none;
}

[unselectable] {
		-webkit-user-select: none;
		        user-select: none;
}

/*
 * Universal inheritance
 */
*,
::before,
::after {
		box-sizing: inherit;
}

* {
		font-size: inherit;
		line-height: inherit;
}

::before,
::after {
		text-decoration: inherit;
		vertical-align: inherit;
}

/*
 * Opinionated defaults
 */
*,
::before,
::after {
		border-style: solid;
		border-width: 0;
}

* {
		margin: 0;
		padding: 0;
}

:root {
		box-sizing: border-box;
		cursor: default;
		font: 62.5%/1em sans-serif;
		text-rendering: optimizeLegibility;
}
@media screen and (min-width: 769px) {
		:root {
				font: 0.78125vw/1em sans-serif;
		}
}
@media screen and (min-width: 1600px) {
		:root {
				font: 78.125%/1em sans-serif;
		}
}

html {
		background-color: #FFFFFF;
}

a {
		text-decoration: none;
}

audio,
canvas,
iframe,
img,
svg,
video {
		vertical-align: middle;
}

button,
input:not([type=radio]),
select,
textarea {
		background-color: transparent;
}

button,
input:not([type=radio]),
select,
textarea {
		color: inherit;
		font-family: inherit;
		font-style: inherit;
		font-weight: inherit;
}

button,
[type=button],
[type=date],
[type=datetime],
[type=datetime-local],
[type=email],
[type=month],
[type=number],
[type=password],
[type=reset],
[type=search],
[type=submit],
[type=tel],
[type=text],
[type=time],
[type=url],
[type=week],
select,
textarea {
		min-height: 1em;
}

input[type=submit],
input[type=button] {
		border-radius: 0;
		appearance: button;
		border: none;
		box-sizing: border-box;
		cursor: pointer;
}

input[type=submit]::-webkit-search-decoration,
input[type=button]::-webkit-search-decoration {
		display: none;
}

input[type=submit]::focus,
input[type=button]::focus {
		outline-offset: -2px;
}

code,
kbd,
pre,
samp {
		font-family: monospace, monospace;
}

nav ol,
nav ul {
		list-style: none;
}

select {
		-moz-appearance: none;
		-webkit-appearance: none;
}
select::-ms-expand {
		display: none;
}
select::-ms-value {
		color: currentColor;
}

table {
		border-collapse: collapse;
		border-spacing: 0;
}

textarea {
		resize: vertical;
}

::selection {
		color: #FFFFFF;
		background-color: #000000;
		text-shadow: none;
}

@media screen {
		[hidden~=screen] {
				display: inherit;
		}
		[hidden~=screen]:not(:active):not(:focus):not(:target) {
				clip: rect(0 0 0 0) !important;
				position: absolute !important;
		}
}
* {
		margin: 0;
		padding: 0;
		outline: 0;
}

/* general params
--------------------*/
h1, h2, h3, h4, h5, h6,
div, p, pre, ul, ol, dl, dt, dd,
address, form, blockquote {
		margin: 0;
		padding: 0; /* margin&padding reset */
		font-style: normal;
}

h1, h2, h3, h4, h5, h6, dt {
		font-weight: 700;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
		display: block;
		margin: 0;
}

table {
		border-collapse: collapse;
		font-size: small;
		margin: 0;
		empty-cells: show;
}

hr, .areaAnchor, .anchor {
		display: none;
}

img {
		vertical-align: bottom;
		border: none; /* img do not want a border */
}

li {
		list-style: none;
}

blockquote, q {
		quotes: none;
}

blockquote:before, blockquote:after,
q:before, q:after {
		content: "";
		content: none;
}

ins {
		text-decoration: none;
		color: #000;
}

small, sub, sup {
		font-size: 0.83em;
}

sub {
		display: inline-block;
		vertical-align: middle;
		transform: translateY(15%);
}

sup {
		display: inline-block;
		vertical-align: middle;
		transform: translateY(-15%);
}

mark {
		font-weight: bold;
		font-style: italic;
		color: #000;
}

del {
		text-decoration: line-through;
}

abbr[title], dfn[title] {
		cursor: help;
		border-bottom: 1px dotted;
}

table {
		border-spacing: 0;
		border-collapse: collapse;
}

/* acronyms and abbreviations styles
-------------------------------------*/
acronym, abbr {
		cursor: help;
}

/* word break
-------------------------------------*/
p {
		word-break: normal;
}

/* image position
-------------------------------------*/
img {
		vertical-align: bottom;
}

/*
===== 2: form setting ===========================
*/
option {
		padding-right: 10px;
}

input, select {
		vertical-align: middle;
}

/*-------------------------------------------> html / body style */
html {
		height: 100%;
}

body {
		width: 100%;
		min-width: 100%;
		height: 100%;
		color: #000;
		font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
		font-weight: 400;
		overflow-y: scroll;
		overflow-x: hidden;
		position: relative;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
}
body > * {
		font-feature-settings: "palt";
}
body img {
		max-width: 100%;
		height: auto;
}
@media screen and (min-width: 768px) {
		body .pc {
				display: block;
		}
		body .sp {
				display: none;
		}
		body img.pc, body .svg.pc {
				display: inline;
		}
		body > * {
				font-feature-settings: "palt";
		}
}
@media screen and (max-width: 767px) {
		body {
				height: 100%;
		}
		body .pc {
				display: none;
		}
		body .sp {
				display: block;
		}
		body img.pc {
				display: none;
		}
		body img.sp, body .svg.sp {
				display: inline;
		}
		body img {
				max-width: 100%;
				height: auto;
		}
		body > * {
				font-feature-settings: "palt";
		}
}

.hide {
		display: none;
}

/*-------------------------------------------> link style */
a {
		outline: none;
		cursor: pointer;
}
a:link {
		text-decoration: none;
}
a:visited {
		text-decoration: none;
}
a:hover {
		text-decoration: none;
}
a:active {
		text-decoration: none;
}

.OverOpacity,
.OverOpacityGroup a {
		opacity: 1;
		transition: opacity 0.3s ease-out;
}
.OverOpacity:hover,
.OverOpacityGroup a:hover {
		opacity: 0.3;
}

/*-------------------------------------------> Common style */
/*-------------------------------------------> Header */
#Header {
		height: 80px;
}
#Header .inner {
		max-width: 1280px;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding-left: 80px;
		padding-right: 80px;
		box-sizing: border-box;
}
@media screen and (max-width: 767px) {
		#Header .inner {
				max-width: initial;
				width: 100%;
				margin-left: 0;
				margin-right: 0;
				padding-left: 4.6666666667vw;
				padding-right: 4.6666666667vw;
		}
}
#Header .fix {
		width: 100%;
		height: 80px;
		display: flex;
		align-items: center;
		background: rgba(255, 255, 255, 0);
		transition: transform 0.3s ease-out;
}
#Header.fixed .fix {
		position: fixed;
		top: 0;
		left: 0;
		z-index: 999;
		background: rgb(255, 255, 255);
		transform: translate3d(0, 0, 0);
}
#Header.fixed.footerFixed .fix {
		transform: translate3d(0, -100%, 0);
}
@media screen and (max-width: 767px) {
		#Header {
				height: 70px;
		}
		#Header .fix {
				height: 70px;
		}
}

#Header #Navi {
		width: 100%;
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-left: auto;
		margin-right: auto;
}
#Header #Navi .logo {
		width: 248px;
		margin-right: auto;
}
#Header #Navi .logo a {
		display: block;
}
#Header #Navi .logo img {
		max-width: initial;
		width: 248px;
		height: auto;
}
#Header #Navi .logo img.pc {
		display: inline;
}
#Header #Navi .logo img.sp {
		display: none;
}
#Header #Navi .link {
		font-size: 15px;
		line-height: 1;
		letter-spacing: 0.02em;
		font-family: serif;
}
#Header #Navi .link + .link {
		margin-left: 2em;
}
#Header #Navi .link a {
		color: #000;
		position: relative;
		display: inline-block;
}
#Header #Navi .link a::after {
		content: "";
		display: block;
		width: 100%;
		height: 1px;
		position: absolute;
		left: 0;
		bottom: -10px;
		background: #000;
}
@media screen and (max-width: 767px) {
		#Header #Navi .logo {
				width: 44.5333333333vw;
				height: auto;
		}
		#Header #Navi .logo a img {
				width: 44.5333333333vw;
				height: auto;
		}
		#Header #Navi .logo a img.pc {
				display: none;
		}
		#Header #Navi .logo a img.sp {
				display: inline;
		}
		#Header #Navi .link {
				display: none;
		}
		#Header #Navi .link.contact {
				display: block;
				font-size: 12px; /* legacy */
				font-size: 3.2vw;
				line-height: 1.6666666667;
				letter-spacing: 0.02em;
		}
		#Header #Navi .link.contact a {
				display: block;
				border: solid 0.1333333333vw #000;
				padding: 0 0.5em;
		}
		#Header #Navi .link.contact a::after {
				display: none;
		}
}

/*-------------------------------------------> Footer */
#Footer .inner {
		max-width: 1280px;
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		padding-left: 80px;
		padding-right: 80px;
		box-sizing: border-box;
}
#Footer .inner {
		margin-top: 95px;
}
#Footer .inner .flex {
		height: 200px;
		display: flex;
		justify-content: space-between;
		align-items: center;
}
#Footer .inner .copyright {
		position: relative;
		font-size: 12px;
		line-height: 1;
		letter-spacing: 0.1em;
		display: flex;
		align-items: center;
}
#Footer .inner .copyright a.logo {
		display: block;
		width: 64px;
		height: 39px;
		background: url(../../../assets/images/logomark.svg) no-repeat left top/100% 100%;
		margin-right: 55px;
		text-indent: -9999px;
		cursor: pointer;
}
#Footer .inner .sns {
		margin-left: auto;
		display: flex;
}
#Footer .inner .sns .privacy {
		font-size: 12px;
		line-height: 1;
		letter-spacing: 0.1em;
}
#Footer .inner .sns .privacy a {
		color: #000;
		transition: all 0.3s ease-out;
}
#Footer .inner .sns .privacy a:hover {
		color: #666;
}
#Footer .inner .sns .privacy a.logo {
		display: none;
}
#Footer .inner .sns .icon {
		margin-left: 20px;
}
#Footer .inner .sns .icon:first-child {
		margin-left: 55px;
}
#Footer .inner .sns .icon a .svg {
		width: 21px;
		height: 21px;
}
#Footer .inner .sns .icon a .svg .fill-snsicon {
		fill: #7d7d7d;
		transition: all 0.3s ease-out;
}
#Footer .inner .sns .icon a:hover .svg .fill-snsicon {
		fill: #000;
}
@media screen and (max-width: 767px) {
		#Footer {
				margin-top: 12.6666666667vw;
				padding-bottom: 9.3333333333vw;
		}
		#Footer .inner {
				position: relative;
				margin-top: 0;
				max-width: initial;
				width: 100%;
				margin-left: 0;
				margin-right: 0;
				padding-left: 4.6666666667vw;
				padding-right: 4.6666666667vw;
				padding-top: 20.6666666667vw;
		}
		#Footer .inner > .flex {
				height: 100px;
				height: auto;
				flex-direction: column-reverse;
		}
		#Footer .inner .copyright {
				position: inherit;
				margin-top: 10.6666666667vw;
		}
		#Footer .inner .copyright a.logo {
				margin-right: 0;
				position: absolute;
				top: 0;
				left: 50%;
				translate: -50% 0;
				width: 14.2666666667vw;
				height: 8.5333333333vw;
		}
		#Footer .inner .sns {
				height: auto;
				justify-content: center;
				margin-left: auto;
				margin-right: auto;
		}
		#Footer .inner .sns .icon {
				margin-left: 2.6666666667vw;
				margin-right: 2.6666666667vw;
		}
		#Footer .inner .sns .icon a img, #Footer .inner .sns .icon a .svg {
				width: 5.3333333333vw;
				height: 5.3333333333vw;
		}
		#Footer .inner .sns .icon:first-child {
				margin-left: 2.6666666667vw;
		}
}

/* modal movie */
.mod_movieBtn .mod_linkButton {
		text-align: center;
		margin-left: auto;
		margin-right: auto;
}

.mod_modal {
		display: none;
		width: 100%;
		height: 100vh;
		z-index: 9999;
		position: fixed;
		top: 0;
		left: 0;
		background: rgba(255, 255, 255, 0.9);
}
.mod_modal .frame {
		width: clamp(750px, 90%, 800px);
		height: 100vh;
		margin: auto;
		display: flex;
		justify-content: center;
		align-items: center;
}
.mod_modal .frame .video {
		position: relative;
		width: 100%;
		height: 0;
		padding-top: 56.25%;
}
.mod_modal .frame video {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
}
.mod_modal .frame .btnClose {
		position: absolute;
		top: -50px;
		right: 0;
		display: block;
		width: 40px;
		height: 40px;
}
.mod_modal .frame .btnClose a {
		display: block;
		cursor: pointer;
		width: 40px;
		height: 40px;
		text-indent: -9999px;
}
.mod_modal .frame .btnClose a::before, .mod_modal .frame .btnClose a::after {
		content: "";
		width: 40px;
		height: 1px;
		background: #000;
		position: absolute;
		top: 20px;
		left: 0;
}
.mod_modal .frame .btnClose a::before {
		transform: rotate(-45deg);
}
.mod_modal .frame .btnClose a::after {
		transform: rotate(45deg);
}
@media screen and (max-width: 767px) {
		.mod_modal .frame {
				width: 95%;
		}
}

body {
		color: #323232;
		font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Hiragino Kaku Gothic Pro", "Yu Gothic", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "メイリオ", sans-serif;
		font-optical-sizing: auto;
}

.en {
		font-family: "Inter", sans-serif;
		font-optical-sizing: auto;
		font-variation-settings: "slnt" 0;
}

#Main {
		box-sizing: border-box;
}
#Main .inner {
		width: 100%;
		max-width: 1120px;
		margin-left: auto;
		margin-right: auto;
}
#Main .inner.narrow {
		width: clamp(750px, 90%, 1020px);
}
#Main .inner.wide {
		width: 100%;
		max-width: initial;
		padding-left: 0;
		padding-right: 0;
}
#Main .narrow, #Main .innerBlock {
		width: clamp(750px, 100%, 1020px);
		margin-left: auto;
		margin-right: auto;
}
#Main .innerBlock {
		display: flex;
		justify-content: space-between;
}
#Main .innerBlock .halfBlock {
		flex: 0 0 46.0784313725%;
}
@media screen and (max-width: 767px) {
		#Main .inner {
				width: 100%;
				max-width: initial;
		}
		#Main .inner.narrow {
				width: 100%;
				padding-left: 5.3333333333vw;
				padding-right: 5.3333333333vw;
		}
		#Main .inner.wide {
				width: 100%;
		}
		#Main .narrow, #Main .innerBlock {
				width: 100%;
		}
		#Main .innerBlock {
				display: block;
		}
}

.anim_slide {
		transition: all 1s ease-out;
		clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
}

.inView .anim_slide {
		clip-path: polygon(0% 0%, 120% 0%, 100% 100%, 0% 100%);
}

/*------------------------------------------- */
#Cover h1 {
		width: 100%;
		height: auto;
		overflow: hidden;
		margin: 0;
}
#Cover h1 img {
		width: 100%;
		height: auto;
		object-fit: cover;
}
@media screen and (max-width: 767px) {
		#Cover h1 {
				height: auto;
		}
		#Cover h1 img {
				height: auto;
		}
}

.readBlock {
		text-align: left;
		margin-top: -30px;
}
.readBlock .text dt span {
		display: block;
}
.readBlock .text dt img {
		width: 417px;
}
.readBlock .text dd {
		font-size: 18px;
		line-height: 2;
		letter-spacing: 0.1em;
		font-weight: bold;
		margin-top: 60px;
}
.readBlock .image {
		margin-top: 160px;
}
.readBlock .image img {
		width: 137.3913043478%;
		max-width: initial;
}
.readBlock .scroll {
		position: relative;
		text-align: center;
		margin-top: 160px;
		height: 290px;
}
.readBlock .scroll span {
		position: absolute;
		top: -35px;
		left: 50%;
		display: inline-block;
		transform: translateX(-50%) rotate(90deg);
		transform-origin: center center;
		font-size: 13px;
		line-height: 1;
		letter-spacing: 0.05em;
		font-weight: 600;
		color: #00aa8c;
}
.readBlock .scroll::after {
		content: "";
		/*描画位置*/
		position: absolute;
		top: 70px;
		left: 50%;
		/*線の形状*/
		width: 2px;
		height: 220px;
		background: #00aa8c;
		/*線の動き1.4秒かけて動く。永遠にループ*/
		animation: pathmove 3s ease-in-out infinite;
		opacity: 0;
}
@keyframes pathmove {
		0% {
				height: 0;
				top: 0;
				opacity: 0;
		}
		30% {
				height: 110px;
				opacity: 1;
		}
		100% {
				height: 0;
				top: 220px;
				opacity: 0;
		}
}
@media screen and (max-width: 767px) {
		.readBlock {
				margin-top: -4.6666666667vw;
		}
		.readBlock .innerBlock {
				display: block;
		}
		.readBlock .text dt img {
				width: 64.8vw;
		}
		.readBlock .text dd {
				font-size: 18px; /* legacy */
				font-size: 4.8vw;
				line-height: 2;
				letter-spacing: 0em;
				margin-top: 13.3333333333vw;
		}
		.readBlock .image {
				margin-top: 17.3333333333vw;
				margin-left: -5.3333333333vw;
		}
		.readBlock .image img {
				width: 100%;
		}
		.readBlock .scroll {
				position: relative;
				text-align: center;
				margin-top: 16vw;
				height: 56vw;
		}
		.readBlock .scroll span {
				position: absolute;
				top: 0;
				left: 50%;
				font-size: 9px; /* legacy */
				font-size: 2.4vw;
				line-height: 1;
				letter-spacing: 0.05em;
				font-weight: 600;
				color: #00aa8c;
		}
		.readBlock .scroll::after {
				top: 13.3333333333vw;
				width: 0.2666666667vw;
				height: 41.3333333333vw;
				animation: pathmoveSP 3s ease-in-out infinite;
		}
		@keyframes pathmoveSP {
				0% {
						height: 0;
						top: 13.3333333333vw;
						opacity: 0;
				}
				30% {
						height: 20.6666666667vw;
						opacity: 1;
				}
				100% {
						height: 0;
						top: 41.3333333333vw;
						opacity: 0;
				}
		}
}

.sectionTitle {
		font-size: 28px;
		line-height: 1.9285714286;
		letter-spacing: 0em;
		font-weight: bold;
}
.sectionTitle strong {
		color: #00aa8c;
		font-weight: bold;
}
@media screen and (max-width: 767px) {
		.sectionTitle {
				font-size: 23px; /* legacy */
				font-size: 6.1333333333vw;
				line-height: 1.7391304348;
				letter-spacing: 0.1em;
		}
}

.linkButton {
		text-align: center;
}
.linkButton a span {
		display: inline-block;
		font-size: 28px;
		line-height: 2.1428571429;
		letter-spacing: 0em;
		font-weight: bold;
		color: #FFF;
		background: #00aa8c;
		padding-left: 1em;
		padding-right: 1em;
		border-radius: 100px;
}
@media screen and (max-width: 767px) {
		.linkButton a span {
				font-size: 20px; /* legacy */
				font-size: 5.3333333333vw;
				line-height: 2.5;
				letter-spacing: 0.05em;
		}
}

.category {
		margin-bottom: 140px;
}
.category .text {
		font-size: 15px;
		line-height: 2.3333333333;
		letter-spacing: 0em;
		font-weight: bold;
		margin-top: 60px;
}
.category .logo {
		margin-top: 150px;
}
.category .icon.isAnim.inView ul li {
		opacity: 1;
}
.category .icon.isAnim.inView ul li:nth-child(1) {
		transition-delay: 0s;
}
.category .icon.isAnim.inView ul li:nth-child(1) .circle {
		animation: 1s demo_kururi ease 0s 1;
}
.category .icon.isAnim.inView ul li:nth-child(2) {
		transition-delay: 0.2s;
}
.category .icon.isAnim.inView ul li:nth-child(2) .circle {
		animation: 1s demo_kururi ease 0.2s 1;
}
.category .icon.isAnim.inView ul li:nth-child(3) {
		transition-delay: 0.4s;
}
.category .icon.isAnim.inView ul li:nth-child(3) .circle {
		animation: 1s demo_kururi ease 0.4s 1;
}
.category .icon.isAnim.inView ul li:nth-child(4) {
		transition-delay: 0.6s;
}
.category .icon.isAnim.inView ul li:nth-child(4) .circle {
		animation: 1s demo_kururi ease 0.6s 1;
}
.category .icon.isAnim.inView ul li:nth-child(5) {
		transition-delay: 0.8s;
}
.category .icon.isAnim.inView ul li:nth-child(5) .circle {
		animation: 1s demo_kururi ease 0.8s 1;
}
.category .icon.isAnim.inView ul li:nth-child(6) {
		transition-delay: 1s;
}
.category .icon.isAnim.inView ul li:nth-child(6) .circle {
		animation: 1s demo_kururi ease 1s 1;
}
.category .icon.isAnim.inView li .circle {
		opacity: 1;
		animation: demo_kururi ease 5s 1;
}
.category .icon ul {
		width: 428px;
		width: 93.0434782609%;
		display: flex;
		flex-wrap: wrap;
		display: block;
}
.category .icon ul li {
		display: block;
		float: left;
		position: relative;
		width: 50%;
		height: 0;
		padding-top: 50%;
		opacity: 0;
		transition: opacity 0.3s linear;
		overflow: hidden;
}
.category .icon ul li .frame {
		display: block;
		width: 100%;
		height: 100%;
}
.category .icon ul li .circle {
		fill: none;
		stroke: #00aa8c;
		stroke-width: 2px;
		stroke-dasharray: 672;
		opacity: 0;
}
@keyframes demo_kururi {
		from {
				stroke-dashoffset: 672;
		}
		to {
				stroke-dashoffset: 0;
		}
}
.category .icon ul li span {
		position: absolute;
		z-index: 10;
		top: 0;
		left: 0;
		display: flex;
		justify-content: center;
		align-items: center;
		width: 100%;
		height: 100%;
		font-size: 22px;
		line-height: 1.3636363636;
		letter-spacing: 0.05em;
		color: #00aa8c;
		font-weight: bold;
		text-align: center;
}
.category .icon ul li span.line {
		display: block;
}
.category .icon ul li:nth-child(even) {
		margin-left: -20px;
}
.category .icon ul li:nth-child(n+3) {
		margin-top: -20px;
}
@media screen and (max-width: 767px) {
		.category {
				margin-bottom: 18.6666666667vw;
		}
		.category .text {
				font-size: 13px; /* legacy */
				font-size: 3.4666666667vw;
				line-height: 2;
				letter-spacing: 0.05em;
				margin-top: 8vw;
		}
		.category .logo {
				margin-top: 25.3333333333vw;
				width: 100vw;
				margin-left: -5.3333333333vw;
		}
		.category .icon {
				width: 93.3333333333vw;
				margin-top: 18.6666666667vw;
		}
		.category .icon ul {
				width: 93.3333333333vw;
				height: 132vw;
		}
		.category .icon ul li {
				width: 46.6666666667vw;
		}
		.category .icon ul li span {
				font-size: 18px; /* legacy */
				font-size: 4.8vw;
				line-height: 1.3888888889;
				letter-spacing: 0.05em;
		}
		.category .icon ul li:nth-child(even) {
				margin-left: -4vw;
		}
		.category .icon ul li:nth-child(n+3) {
				margin-top: -4vw;
		}
}

.slideBlock {
		background: #ebf0f0;
		padding-top: 150px;
		padding-bottom: 120px;
		margin-bottom: 200px;
}
.slideBlock .slideWrap {
		position: relative;
		width: 1550px;
		width: clamp(750px, 100%, 1550px);
		margin-top: 90px;
		margin-left: auto;
		margin-right: auto;
}
.slideBlock .slideWrap::before, .slideBlock .slideWrap::after {
		content: "";
		display: block;
		width: 304px;
		height: 100%;
		position: absolute;
		top: 0;
		z-index: 2;
		background: linear-gradient(90deg, rgb(235, 240, 240) 0%, rgb(235, 240, 240) 30%, rgba(235, 240, 240, 0) 100%);
}
.slideBlock .slideWrap::before {
		left: 0;
}
.slideBlock .slideWrap::after {
		right: 0;
		transform: rotate(180deg);
}
.slideBlock .slideWrap .slide {
		padding-left: 30px;
		padding-right: 30px;
		padding-bottom: 30px;
}
.slideBlock .slideWrap .slide img {
		width: 344px;
		filter: drop-shadow(5px 5px 5px rgba(0, 0, 0, 0.3));
}
@media screen and (max-width: 767px) {
		.slideBlock {
				padding-top: 13.3333333333vw;
				padding-bottom: 10.6666666667vw;
				margin-bottom: 26.6666666667vw;
		}
		.slideBlock .slideWrap {
				width: 100vw;
				margin-top: 20vw;
				margin-left: 0;
				margin-right: 0;
		}
		.slideBlock .slideWrap::before, .slideBlock .slideWrap::after {
				display: none;
		}
		.slideBlock .slideWrap .slide {
				padding-left: 1.6vw;
				padding-right: 1.6vw;
				padding-bottom: 0;
		}
		.slideBlock .slideWrap .slide img {
				width: 77.3333333333vw;
				filter: none;
		}
}

.works {
		margin-bottom: 160px;
}
.works .en {
		font-family: "Urbanist", sans-serif;
		font-optical-sizing: auto;
}
.works .sectionTitle {
		margin-bottom: 130px;
}
.works .worksBlock {
		margin-bottom: 150px;
}
.works .worksBlock:nth-child(odd) .worksMeta {
		flex-direction: row-reverse;
}
.works .worksBlock:nth-child(odd) .worksMeta .image {
		text-align: right;
		margin-left: -44.1176470588%;
}
.works .worksMeta {
		margin-bottom: 100px;
}
.works .worksMeta .meta {
		padding-top: 40px;
}
.works .worksMeta .meta .num {
		font-size: 100px;
		line-height: 1;
		letter-spacing: 0em;
		color: #00aa8c;
		font-weight: bold;
		margin-bottom: 80px;
}
.works .worksMeta .meta dl dt {
		font-weight: bold;
}
.works .worksMeta .meta dl dt small {
		display: block;
		font-size: 15px;
		line-height: 1;
		letter-spacing: 0em;
		color: #afb4b4;
}
.works .worksMeta .meta dl dt strong {
		font-size: 36px;
		line-height: 1;
		letter-spacing: 0em;
		color: #00aa8c;
		margin-top: 20px;
		position: relative;
		display: inline-block;
		padding-bottom: 15px;
}
.works .worksMeta .meta dl dt strong.en {
		font-size: 45px;
		line-height: 1;
		letter-spacing: 0.05em;
}
.works .worksMeta .meta dl dt strong::after {
		content: "";
		display: block;
		width: 100%;
		height: 3px;
		background: #00aa8c;
		position: absolute;
		left: 0;
		bottom: 0;
}
.works .worksMeta .meta dl dd {
		font-weight: bold;
}
.works .worksMeta .meta dl dd .copy {
		font-size: 28px;
		line-height: 2;
		letter-spacing: 0em;
		margin-top: 50px;
}
.works .worksMeta .meta dl dd .text {
		font-size: 15px;
		line-height: 2.3333333333;
		letter-spacing: 0em;
		margin-top: 50px;
}
.works .worksMeta .image img {
		width: 197.8260869565%;
		max-width: initial;
}
.works .point .text {
		position: relative;
		margin-top: 15px;
		margin-left: 1.5em;
		font-size: 15px;
		line-height: 2.3333333333;
		letter-spacing: 0em;
		font-weight: bold;
}
.works .point .text strong {
		position: absolute;
		left: -1.5em;
		top: 0;
		color: #00aa8c;
		display: inline-block;
		margin-right: 0.5em;
}
@media screen and (max-width: 1279px) {
		.works .worksBlock:nth-child(odd) .worksMeta .image {
				margin-left: 0;
		}
		.works .worksMeta .image img {
				width: 100%;
		}
}
@media screen and (max-width: 767px) {
		.works {
				margin-bottom: 20vw;
		}
		.works .sectionTitle {
				margin-bottom: 18.6666666667vw;
		}
		.works .worksBlock {
				margin-bottom: 24vw;
		}
		.works .worksBlock:nth-child(odd) .worksMeta {
				flex-direction: column-reverse;
		}
		.works .worksBlock:nth-child(odd) .worksMeta .image {
				text-align: left;
				margin-left: -5.3333333333vw;
		}
		.works .worksMeta {
				margin-bottom: 18.6666666667vw;
				display: flex !important;
				flex-direction: column-reverse;
		}
		.works .worksMeta .meta {
				position: relative;
				z-index: 2;
				padding-top: 0;
				margin-top: -8vw;
		}
		.works .worksMeta .meta .num {
				font-size: 60px; /* legacy */
				font-size: 16vw;
				line-height: 1;
				letter-spacing: 0em;
				text-align: right;
				margin-bottom: 0;
		}
		.works .worksMeta .meta dl dt small {
				font-size: 11px; /* legacy */
				font-size: 2.9333333333vw;
				line-height: 1;
				letter-spacing: 0em;
		}
		.works .worksMeta .meta dl dt strong {
				font-size: 26px; /* legacy */
				font-size: 6.9333333333vw;
				line-height: 1;
				letter-spacing: 0.05em;
				margin-top: 2.6666666667vw;
				padding-bottom: 2.6666666667vw;
		}
		.works .worksMeta .meta dl dt strong.en {
				font-size: 30px; /* legacy */
				font-size: 8vw;
				line-height: 1;
				letter-spacing: 0.05em;
		}
		.works .worksMeta .meta dl dt strong::after {
				height: 0.5333333333vw;
		}
		.works .worksMeta .meta dl dd .copy {
				font-size: 18px; /* legacy */
				font-size: 4.8vw;
				line-height: 1.7222222222;
				letter-spacing: 0.05em;
				margin-top: 8vw;
		}
		.works .worksMeta .meta dl dd .text {
				font-size: 13px; /* legacy */
				font-size: 3.4666666667vw;
				line-height: 2;
				letter-spacing: 0em;
				margin-top: 8vw;
		}
		.works .worksMeta .image {
				position: relative;
				z-index: 1;
				margin-left: -5.3333333333vw;
		}
		.works .worksMeta .image img {
				width: 100vw;
		}
		.works .point + .point {
				margin-top: 13.3333333333vw;
		}
		.works .point .text {
				margin-top: 2.6666666667vw;
				font-size: 11px; /* legacy */
				font-size: 2.9333333333vw;
				line-height: 2;
				letter-spacing: 0em;
		}
}

.flow {
		color: #FFF;
		background: #00aa8c;
		padding-top: 180px;
		padding-bottom: 180px;
}
.flow .sectionTitle {
		margin-bottom: 100px;
}
.flow .sectionTitle strong {
		color: #FFF;
}
.flow ol > li {
		position: relative;
		padding-right: 130px;
		min-height: 180px;
}
.flow ol > li:last-child {
		min-height: auto;
}
.flow ol > li .icon {
		width: 116px;
		position: absolute;
		top: -18px;
		right: 0;
		z-index: 10;
}
.flow ol > li .line {
		display: block;
		/*線の位置*/
		position: absolute;
		top: 0;
		right: 55px;
		width: 5px; /*線の太さ*/
		height: 0; /*はじめは高さを0に*/
		background: #FFF;
}
.flow dl dt {
		font-size: 28px;
		line-height: 1;
		letter-spacing: 0em;
		font-weight: bold;
		margin-bottom: 1em;
}
.flow dl dd {
		font-size: 15px;
		line-height: 2.3333333333;
		letter-spacing: 0em;
		font-weight: bold;
}
@media screen and (max-width: 767px) {
		.flow {
				padding-top: 14.6666666667vw;
				padding-bottom: 14.6666666667vw;
		}
		.flow .sectionTitle {
				margin-bottom: 10.6666666667vw;
		}
		.flow ol > li {
				padding-right: 22.9333333333vw;
				min-height: 38.6666666667vw;
		}
		.flow ol > li .icon {
				width: 19.2vw;
				top: 0;
		}
		.flow ol > li .line {
				right: calc(19.2vw / 2 - 0.5333333333vw);
				width: 1.0666666667vw; /*線の太さ*/
		}
		.flow dl dt {
				font-size: 18px; /* legacy */
				font-size: 4.8vw;
				line-height: 1;
				letter-spacing: 0em;
		}
		.flow dl dd {
				font-size: 13px; /* legacy */
				font-size: 3.4666666667vw;
				line-height: 2;
				letter-spacing: 0em;
		}
}

.company .wideImage {
		margin-bottom: 140px;
}
.company .sectionTitle {
		margin-bottom: 100px;
}
.company .text {
		font-size: 15px;
		line-height: 2.3333333333;
		letter-spacing: 0em;
		font-weight: bold;
}
.company .info {
		margin-top: 90px;
}
.company .info a {
		color: #00aa8c;
}
.company .info .line {
		display: inline-block;
		margin-left: 1em;
		text-indent: -1.2em;
}
.company .point > li {
		font-size: 21px;
		line-height: 2.7142857143;
		letter-spacing: 0em;
		font-weight: bold;
		color: #FFF;
}
.company .point > li span {
		text-align: center;
		display: block;
		background: #00aa8c;
		border-radius: 50px;
}
.company .point > li + li {
		margin-top: 30px;
}
.company .map {
		margin-top: 40px;
}
.company .map a {
		color: #00aa8c;
		font-size: 28px;
		line-height: 1;
		letter-spacing: 0.04em;
		font-weight: bold;
		display: inline-block;
		position: relative;
}
.company .map a::after {
		content: "";
		display: block;
		width: 100%;
		height: 2px;
		background: #00aa8c;
		position: absolute;
		left: 0;
		bottom: -10px;
}
.company .movie {
		margin-top: 140px;
		margin-bottom: 160px;
		text-align: center;
}
.company .movie dl dt {
		font-size: 28px;
		line-height: 1;
		letter-spacing: 0.05em;
		font-weight: bold;
		color: #00aa8c;
		margin-bottom: 40px;
}
.company .movie dl dd a {
		position: relative;
		display: block;
}
.company .movie dl dd a::after {
		content: "";
		display: block;
		width: 48px;
		height: 48px;
		background: url(../images/icon_play.svg) no-repeat left top;
		background-size: 100% 100%;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
}
.company .tel {
		text-align: center;
		font-size: 20px;
		line-height: 1;
		letter-spacing: 0.05em;
		font-weight: bold;
		margin-top: 20px;
}
.company .tel .telLink {
		pointer-events: none;
		color: #00aa8c;
}
@media screen and (max-width: 767px) {
		.company .wideImage {
				margin-bottom: 10.6666666667vw;
		}
		.company .sectionTitle {
				margin-bottom: 9.3333333333vw;
		}
		.company .text {
				font-size: 13px; /* legacy */
				font-size: 3.4666666667vw;
				line-height: 2.1538461538;
				letter-spacing: 0em;
		}
		.company .info {
				margin-top: 24vw;
		}
		.company .point {
				margin-top: 13.3333333333vw;
		}
		.company .point > li {
				font-size: 18px; /* legacy */
				font-size: 4.8vw;
				line-height: 2.0833333333;
				letter-spacing: 0em;
		}
		.company .point > li + li {
				margin-top: 6.6666666667vw;
		}
		.company .map {
				margin-top: 5.3333333333vw;
		}
		.company .map a {
				color: #00aa8c;
				font-size: 23px; /* legacy */
				font-size: 6.1333333333vw;
				line-height: 1;
				letter-spacing: 0.05em;
		}
		.company .map a::after {
				height: 0.2666666667vw;
				bottom: -2.6666666667vw;
		}
		.company .movie {
				margin-top: 17.3333333333vw;
				margin-bottom: 20vw;
		}
		.company .movie .halfBlock + .halfBlock {
				margin-top: 17.3333333333vw;
		}
		.company .movie dl dt {
				font-size: 18px; /* legacy */
				font-size: 4.8vw;
				line-height: 1;
				letter-spacing: 0.05em;
				margin-bottom: 2.6666666667vw;
		}
		.company .movie dl dd a::after {
				width: 9.3333333333vw;
				height: 9.3333333333vw;
		}
		.company .tel {
				text-align: center;
				font-size: 13px; /* legacy */
				font-size: 3.4666666667vw;
				line-height: 1;
				letter-spacing: 0.05em;
				margin-top: 4vw;
		}
		.company .tel .telLink {
				pointer-events: auto;
		}
}

/*-------------------------------------------> plugin style */
/* Slick */
.slick-slider {
		position: relative;
		display: block;
		box-sizing: border-box;
		-webkit-touch-callout: none;
		-webkit-user-select: none;
		user-select: none;
		touch-action: pan-y;
		-webkit-tap-highlight-color: transparent;
}

.slick-list {
		position: relative;
		overflow: hidden;
		display: block;
		margin: 0;
		padding: 0;
}
.slick-list:focus {
		outline: none;
}
.slick-list.dragging {
		cursor: pointer;
		cursor: hand;
}

.slick-slider .slick-track,
.slick-slider .slick-list {
		transform: translate3d(0, 0, 0);
}

.slick-track {
		position: relative;
		left: 0;
		top: 0;
		display: block;
		margin-left: auto;
		margin-right: auto;
}
.slick-track:before, .slick-track:after {
		content: "";
		display: table;
}
.slick-track:after {
		clear: both;
}
.slick-loading .slick-track {
		visibility: hidden;
}

.slick-slide {
		float: left;
		min-height: 1px;
		display: none;
}
[dir=rtl] .slick-slide {
		float: right;
}
.slick-slide img {
		display: block;
}
.slick-slide.slick-loading img {
		display: none;
}
.slick-slide.dragging img {
		pointer-events: none;
}
.slick-initialized .slick-slide {
		display: block;
}
.slick-loading .slick-slide {
		visibility: hidden;
}
.slick-vertical .slick-slide {
		display: block;
		height: auto;
		border: 1px solid transparent;
}

.slick-arrow.slick-hidden {
		display: none;
}

/* Arrows */
.slick-prev,
.slick-next {
		position: absolute;
		z-index: 10;
		display: block;
		height: 60px;
		width: 60px;
		line-height: 0px;
		font-size: 0px;
		cursor: pointer;
		color: transparent;
		top: calc(50% - 30px);
		padding: 0;
		border: none;
		outline: none;
}
.slick-prev:hover, .slick-prev:focus,
.slick-next:hover,
.slick-next:focus {
		outline: none;
}
.slick-prev:hover:before, .slick-prev:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
		opacity: 1;
}
.slick-prev.slick-disabled:before,
.slick-next.slick-disabled:before {
		opacity: 0.25;
}

.slick-prev:before, .slick-next:before {
		content: "";
		display: block;
		width: 100%;
		height: 100%;
		background-repeat: no-repeat;
		background-position: left top;
		background-size: cover;
		transition: all 0.15s ease-out;
}

.slick-prev {
		left: 0;
}
[dir=rtl] .slick-prev {
		left: auto;
		right: 0;
}
.slick-prev:before {
		background-image: url(../images/icon_prev.svg);
}
.slick-prev:hover:before {
		margin-left: -5px;
}

.slick-next {
		right: 0;
}
[dir=rtl] .slick-next {
		left: 0;
		right: auto;
}
.slick-next:before {
		background-image: url(../images/icon_next.svg);
}
.slick-next:hover:before {
		margin-left: 5px;
}

@media screen and (max-width: 767px) {
		.slick-prev,
		.slick-next {
				width: 10.1333333333vw;
				height: 10.1333333333vw;
				top: calp(50%-5.0666666667vw);
		}
		.slick-prev {
				left: 5.3333333333vw;
		}
		.slick-prev:hover:before {
				margin-left: 0;
		}
		.slick-next {
				right: 5.3333333333vw;
		}
		.slick-next:hover:before {
				margin-left: 0;
		}
}
/* Dots */
.slick-dotted.slick-slider {
		padding-bottom: 40px;
}

.slick-dots {
		position: absolute;
		bottom: 0;
		list-style: none;
		display: block;
		text-align: center;
		padding: 0;
		margin: 0;
		width: 100%;
}
.slick-dots li {
		position: relative;
		display: inline-block;
		height: 40px;
		width: 40px;
		margin: 0 6px;
		padding: 0;
		cursor: pointer;
}
.slick-dots li button {
		border: 0;
		background: transparent;
		display: block;
		height: 40px;
		width: 40px;
		outline: none;
		line-height: 0px;
		font-size: 0px;
		color: transparent;
		padding: 0px;
		cursor: pointer;
		border: none;
		border-radius: 0px;
}
.slick-dots li button:hover, .slick-dots li button:focus {
		outline: none;
}
.slick-dots li button:hover:before, .slick-dots li button:focus:before {
		opacity: 1;
}
.slick-dots li button:before {
		position: absolute;
		top: 20px;
		left: 0;
		content: "";
		text-indent: -9999px;
		width: 40px;
		height: 1px;
		border-radius: 0;
		background: #a8a8a8;
		font-family: "slick";
		font-size: 6px;
		line-height: 1px;
		text-align: center;
		color: #a8a8a8;
		opacity: 1;
		-webkit-font-smoothing: antialiased;
		-moz-osx-font-smoothing: grayscale;
}
.slick-dots li.slick-active button:before {
		color: #000;
		opacity: 0.75;
		border: none;
		background: #000;
		border-radius: 0;
}

@media screen and (max-width: 767px) {
		.slick-dots li {
				width: 10%;
				margin: 0;
		}
		.slick-dots li button {
				width: 100%;
				background: #FFF;
		}
		.slick-dots li button:before {
				width: calc(100% - 8px);
				margin: 0 4px;
		}
}