@charset "utf-8";

@media screen and (max-width: 1199px) {
	:root {
	}
	
	html.touch-device body,
	html.touch-device #page {
		min-width: 0;
	}
	
	.u-show_tablet {
		display: block !important;
	}
	
	.u-hide_tablet {
		display: none !important;
	}
	
	.u-bg_gray:before {
		border-radius: 0 0 30px 30px;
	}
	
	.u-corner {
		border-radius: 0 0 30px 30px;
	}
	
	.u-inner {
		padding-right: 30px;
		padding-left: 30px;
	}
	
	.l-xgspod {
		min-width: 0;
	}
	
	.l-mv_main {
		width: 71.25%;
		margin: -5.75% -7% 0 0;
		left: auto;
		right: 0;
	}
	
	.l-mv_title {
		font-size: 1.16vw;
		margin-left: 0;
		left: 0;
	}
	
	.u-title_mid:after {
		width: calc(100% + (30px * 2));
		margin-right: -30px;
		margin-left: -30px;
	}
	
	.l-mv_logo {
		width: 34.5%;
		margin-top: 31%;
		margin-left: 0;
		left: 0;
	}
	
	.l-mv_logo h2 {
		font-size: 1.5vw;
	}
	
	.l-mv_logo img {
		width: 69%;
	}
	
	.l-mv_logo figcaption {
		font-size: 2.65vw;
		margin: 3% 0 0;
		padding: 0;
	}
	
	.l-mv_lists {
		margin-top: 17.5%;
		margin-left: 0;
		left: 0;
	}
	
	.l-mv_lists li {
		font-size: 1.417vw;
	}
	
	.l-mv_catch {
		font-size: 3.085vw;
		margin-top: 7.5%;
		margin-left: 0;
		left: 0;
	}
	
	.l-mv_catch span {
		font-size: 3.3vw;
	}
	
	.l-mv_bg {
		padding-top: 49%;
		height: auto;
	}
	
	.l-menu {
		border-radius: 0 0 30px 30px;
	}
	
	.l-menu:after {
		width: calc(100% - (30px * 2));
	}
	
	.l-menu_inner {
		padding-right: 30px;
		padding-left: 30px;
	}
	
	.l-menu_logo span {
		width: 36px;
	}
	
	.l-menu_logo b {
		width: 90px;
	}
	
	.l-menu_item {
		margin-inline: 1.5vw;
	}
	
	.l-menu_item a {
		letter-spacing: .1em;
	}
	
	.l-menu_item.u-button > * {
	}
	
	.l-contact_inner {
		border-radius: 20px;
	}
	
}

@media screen and (max-width: 976px) {
	:root {
	}
	
	.u-show_mobile {
		display: block !important;
	}
	
	.u-show_mobile--small {
		display: none !important;
	}
	
	.u-hide_mobile {
		display: none !important;
	}
	
	.u-mgt_100_mobile { margin-top: 100px; }
	.u-mgt_80_mobile { margin-top: 80px; }
	.u-mgt_170_mobile { margin-top: 70px; }
	.u-mgt_60_mobile { margin-top: 60px; }
	.u-mgt_50_mobile { margin-top: 50px; }
	.u-mgt_40_mobile { margin-top: 40px; }
	.u-mgt_30_mobile { margin-top: 30px; }
	.u-mgt_20_mobile { margin-top: 20px; }
	.u-mgt_10_mobile { margin-top: 10px; }
	.u-mgt_0_mobile { margin-top: 0; }
	
	.u-inner {
		padding-right: 15px;
		padding-left: 15px;
	}
	
	.u-title_hi {
		font-size: 28px;
		text-align: left;
		padding-top: 60px;
	}
	
	.u-bg_gray {
		padding-top: 30px;
		padding-bottom: 60px;
	}
	
	.u-bg_gray:before {
		height: 30px;
	}
	
	.u-corner {
		margin-top: 30px;
	}
	
	.u-title_mid {
		font-size: 21px;
		margin-top: 60px;
	}
	
	.u-title_mid:after {
		width: calc(100% + (15px * 2));
		margin-right: -15px;
		margin-left: -15px;
	}
	
	.u-title_mid + * {
		margin-top: 1.5em !important;
	}
	
	.u-title_mid b {
		padding: 0 1.25em;
	}
	
	.u-title_mid b:before,
	.u-title_mid b:after {
		width: .35em;
		height: .35em;
	}
	
	.u-title_low {
		font-size: 20px;
		padding-bottom: .5em;
	}
	
	.u-title_low + * {
		margin-top: .75em !important;
	}
	
	.u-button > * {
		font-size: 17px;
		border-radius: 20px;
	}
	
	.u-button > *:after {
		right: 15px
	}
	
	.l-xgspod {
		letter-spacing: .05em;
		padding-top: 60px;
	}
	
	.l-faq {
		padding-bottom: 30px;
	}
	
	.l-faq_q:before,
	.l-faq_a:before {
		font-size: 18px;
		width: 38px;
		height: 38px;
	}
	
	.l-faq_a .u-text {
		line-height: 1.75;
	}
	
	.l-faq_a {
		display: none;
	}
	
	.l-faq_opener {
		width: 100%;
		margin: 10px 0 0;
		display: block;
		position: relative;
	}
	
	.l-faq_opener:before {
		content: '';
		width: 100%;
		height: 1px;
		margin: 14px 0 0;
		display: block;
		background: #ddd;
		position: absolute;
		top: 50%;
		left: 0;
	}
	
	.l-faq_opener:after {
		content: '回答を見る';
		color: var(--green_light);
		font-size: 10px;
		font-weight: 500;
		text-align: center;
		width: 100%;
		margin-bottom: calc(-28px - 15px);
		display: block;
		position: absolute;
		bottom: 0;
		left: 0;
	}
	
	.l-faq_opener i {
		width: 28px;
		height: 28px;
		display: block;
		background: var(--green_light);
		border-radius: 100vmax;
		position: absolute;
		top: 0;
		left: 50%;
		transform: translate(-50%,0);
		z-index: 30;
	}
	
	.l-faq_item:not(:first-of-type) {
		margin-top: 70px;
	}
	
	.l-faq_opener i:before,
	.l-faq_opener i:after {
		content: '';
		width: 12px;
		height: 4px;
		display: block;
		background: var(--white);
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
	}
	
	.l-faq_opener i:after {
		transform: translate(-50%,-50%) rotate(90deg);
	}
	
	.l-flow_items {
		margin-inline: 0;
		padding: 0;
		flex-direction: column;
	}
	
	.l-flow_item {
		width: 100%;
		padding: 0 0 30px;
		position: relative;
	}
	
	.l-flow_item:nth-of-type(n + 4) {
		margin: 0;
	}
	
	.l-flow .u-text {
		margin: 5px 0 0;
		padding: 0 0 0 56px;
	}
	
	.l-flow h3 {
		position: static;
	}
	
	.l-flow h3:before {
		font-size: 22px;
		width: 38px;
		height: 38px;
	}
	
	.l-flow h3:after {
		content: '';
		width: 1px;
		height: calc(100% - 10px);
		top: 0;
		right: auto;
		left: calc(38px / 2);
		transform: translate(0,0);
	}
	
	.l-flow .l-flow_item:last-child h3:after {
		display: none;
	}
	
	.l-flow h3 b {
		margin-top: 0;
		position: static;
	}
	
	.l-flow h3 b:after {
		transform-origin: bottom left;
		transform: rotate(90deg) translate(-100%,50%);
		top: auto;
		right: auto;
		bottom: 10px;
		left: calc(38px / 2);
	}
	
	.l-flow .-continued:before {
		display: none;
	}
	
	.l-casestudy_item {
		display: block;
	}
	
	.l-casestudy_item > * {
		width: 100%;
	}
	
	.l-casestudy h3 {
		flex-direction: column;
	}
	
	.l-casestudy h3:after {
		display: none;
	}
	
	.l-casestudy h3 b:after {
		display: none;
	}
	
	.l-casestudy_items h3:before {
		font-size: 14px;
		padding: .6em 1.5em .7em;
	}
	
	.l-casestudy h3:not(:nth-of-type(1)) {
		margin-top: 60px;
	}
	
	.l-casestudy h3 + * {
		margin-top: 20px;
	}
	
	.l-casestudy h3 b {
		text-align: center;
		margin-top: 10px;
		padding-inline: 0;
	}
	
	.l-casestudy h3 b span {
		font-size: 20px;
		line-height: 1.5;
	}
	
	.l-casestudy_image {
		width: 100%;
	}
	
	.l-casestudy_image figure img {
		width: 120px;
	}
	
	.l-casestudy_image figcaption {
		font-size: 18px;
	}
	
	.l-casestudy_image figcaption.mini {
		font-size: 18px;
	}
	
	.l-casestudy_title {
		margin-top: 20px;
		flex-wrap: wrap;
		justify-content: center;
	}
	
	.l-casestudy_title h4 {
		font-size: 20px;
		text-align: center;
		width: 100%;
		margin-inline: auto;
		margin-bottom: 15px;
	}
	
	.l-casestudy_title dl {
		margin-inline: 5px;
	}
	
	.l-casestudy_title + * {
		font-size: 14px;
	}
	
	.l-subsidy_inner {
		margin: 60px 15px 0;
		padding: 40px 20px;
		background-image: url("../img/bg_02@mobile.webp");
		border-radius: 20px;
		box-shadow: 0 0 15px 0 rgb(0 0 0 / .05);
	}
	
	.l-subsidy_title {
		font-size: 22px;
	}
	
	.l-subsidy_title small {
		font-size: 16px;
	}
	
	.l-subsidy .u-text {
		font-size: 14px;
		text-align: left;
	}
	
	.l-subsidy .u-text small {
		font-size: 12px;
		line-height: 1.5;
		text-indent: -1.25em;
		padding-left: 1.25em;
	}
	
	.l-subsidy .l-subsidy_link {
		text-align: left;
		margin: 20px 0 0;
	}
	
	.l-subsidy .l-subsidy_link a {
		font-size: 16px;
		line-height: 1.75;
	}
	
	
	.l-contact {
		margin-top: 60px;
		padding-right: 15px;
		padding-left: 15px;
	}
	
	.l-contact_inner {
		padding: 30px;
		border-radius: 40px;
	}
	
	.l-contact h2 {
		font-size: 18px;
	}
	
	.l-contact h2:before {
		font-size: 16px;
	}
	
	.l-contact .u-text {
		font-size: 15px;
		margin-top: 20px;
	}
	
	.l-contact .u-text b {
		font-size: 16px;
	}
	
	.l-contact .u-text small {
		font-size: 13px;
		margin-top: .5em;
	}
	
	.l-contact .u-button {
		margin-top: 20px;
	}
	
	.l-contact .u-button a {
		width: 100%;
	}
	
	.l-detail {
		display: block;
	}
	
	.l-detail:not(:first-child) {
		margin-top: 40px;
	}
	
	.l-detail_image {
		width: 100%;
	}
	
	.l-detail_image img {
		border-radius: 10px;
	}
	
	.l-detail_image + * {
		width: 100%;
		padding: 0;
	}
	
	.l-detail:nth-child(even) .l-detail_image + * {
		padding-right: 0;
	}
	
	.-reverse .l-detail_image + * {
		padding-right: 0;
	}
	
	.-reverse .l-detail:nth-child(even) .l-detail_image + * {
		padding-left: 0;
	}
	
	.l-detail .u-button {
		width: 100%;
		padding-right: 15px;
		padding-left: 15px;
	}
	
	.l-chart {
		position: relative;
	}
	
	.l-chart:before {
		content: '※ 下記の図は左右にスクロールできます。';
		font-size: 12px;
		margin: 10px 0 0;
		position: absolute;
		top: 0;
		left: 0;
	}
	
	.l-chart_inner {
		margin-inline: -15px;
		padding: 0 0 15px;
		overflow-x: scroll;
		transform: translateZ(0);
		position: relative;
	}
	
	.l-chart_image {
		width: 175vw;
		padding: 0 15px;
	}
	
	.l-concern_items {
		display: block;
	}
	
	.l-concern_item {
		width: 100%;
		padding: 0;
	}
	
	.l-concern figure {
		margin-bottom: -35px;
	}
	
	.l-concern figure img {
		max-width: 57%;
	}
	
	.l-overview {
		padding-bottom: 0;
	}
	
	.l-overview figure:nth-of-type(1) {
		width: 600px;
		margin: 2em 0 0 0;
		right: calc(50% + 2.5%);
		transform: translate(50%,0);
	}
	
	.l-overview figure:nth-of-type(1):after {
		display: none;
	}
	
	.l-overview_read {
		font-size: 16px;
		text-align: left;
	}
	
	.l-overview_catch {
		margin-top: -30px;
	}
	
	.l-overview_catch:after {
		width: 30px;
		height: 30px;
		margin-top: 63px;
	}
	
	.l-overview_catch strong {
		font-size: 36px;
		margin-top: 70px;
	}
	
	.l-overview_catch span {
		font-size: 42px;
	}
	
	.l-overview h2 {
		font-size: 18px;
		margin-top: 30px;
	}
	
	.l-overview .u-text {
		text-align: left;
		margin-top: 400px;
	}
	
	.l-mv_bg {
		padding-top: 197.5%;
		background-image: url("../img/bg_01@mobile.webp");
	}
	
	.l-mv_main {
		width: 130%;
		margin: -13% -32% 0 0;
	}
	.l-mv_title {
		font-size: 3.5vw;
		line-height: 1.5;
		margin-top: 3.5%;
		padding-left: 4%;
	}
	
	.l-mv_catch {
		font-size: 6.5vw;
		text-align: center;
		line-height: 1.35;
		width: 100%;
		margin-top: 160%;
		padding-left: 0;
		z-index: 20;
	}
	
	.l-mv_catch span {
		font-size: 7.75vw;
	}
	
	.l-mv_logo {
		width: 100%;
		margin-top: 105.5%;
		padding-left: 0;
	}
	
	.l-mv_logo h2 {
		font-size: 4vw;
		text-align-last: center;
		padding: 1em 0;
		background: rgb(255 255 255 / .8);
	}
	
	.l-mv_logo img {
		width: 62%;
		margin: 5% 5% 0 0;
	}
	
	.l-mv_logo:after {
		transform: translate(-50%, -50%) scale(.5);
	}
	
	.l-mv_lists {
		margin-top: 205%;
		padding-right: 15px;
		padding-left: 15px;
	}
	
	.l-mv_lists li {
		font-size: 16px;
	}
	
	.l-mv_cta {
		margin-top: 13em;
	}
	
	.l-mv_cta p {
		font-size: 16px;
		line-height: 1.75;
	}
	
	.l-mv_cta .u-button {
		margin-top: 20px;
		padding: 0 30px;
	}
	
	.l-mv_cta a {
		width: 100%;
		margin: 0 auto;
	}
	
	.l-menu {
		width: 100%;
		margin: 84px 0 0;
		border-radius: 0;
		position: absolute;
	}
	
	.active-scroll .l-menu {
		margin-top: 0;
		position: fixed;
	}
	
	.l-menu:after {
		display: none;
	}
	
	.l-menu_inner {
		height: 60px;
		padding-right: 20px;
		padding-left: 20px;
	}

	.l-menu_items {
		width: 100%;
		height: 100vh;
		padding-top: calc(30px + 60px);
		background: var(--green);
		flex-direction: column;
		justify-content: flex-start;
		position: absolute;
		top: 0;
		left: 0;
		z-index: 0;
		clip-path: polygon(0 0, 100% 0, 100% 0, 0 0);
		transition: clip-path .4s var(--cubic_bezier);
		overflow: hidden;
		transform: translateZ(0);
	}
	
	.active_menu .l-menu_items {
		clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
		visibility: visible;
	}
	
	.l-menu_button {
		width: 32px;
		height: 100%;
		position: absolute;
		top: 0;
		right: 25px;
		z-index: 20;
	}
	
	.l-menu_button:after {
		content: 'メニュー';
		color: var(--green);
		font-size: 10px;
		white-space: nowrap;
		position: absolute;
		top: 50%;
		right: calc(100% + 10px);
		transform: translate(0,-50%);
		transition: .2s .2s var(--cubic_bezier);
	}
	
	.active_menu .l-menu_button:after {
		content: '閉じる';
		color: var(--white);
		transition: .2s var(--cubic_bezier);
	}
	
	.l-menu_button i {
		width: 100%;
		height: 2px;
		display: block;
		background-color: var(--green);
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
		transition: .2s .2s var(--cubic_bezier);
	}
	
	.active_menu .l-menu_button i {
		background-color: var(--white);
		transition: .2s var(--cubic_bezier);
	}
	
	.l-menu_button i:nth-child(1) {
		top: calc(50% - 7px);
	}
	
	.active_menu .l-menu_button i:nth-child(1) {
		top: calc(50%);
		transform: translate(-50%,-50%) rotate(155deg);
	}
	
	.active_menu .l-menu_button i:nth-child(2) {
		display: none;
	}
	
	.l-menu_button i:nth-child(3) {
		top: calc(50% + 7px);
	}
	
	.active_menu .l-menu_button i:nth-child(3) {
		top: calc(50%);
		transform: translate(-50%,-50%) rotate(-155deg);
	}
	
	.l-menu_item {
		margin: 30px 0 0;
	}
	
	.l-menu_item a {
		color: var(--white);
		font-size: 18px;
		letter-spacing: .05em;
	}
	
	.l-menu_item.u-button.-contact {
		width: 100%;
		margin-top: 60px;
		padding: 0 30px;
	}
	
	.l-menu_item.u-button > * {
		color: var(--blue_light);
		font-size: 17px;
		padding: 1.4em 1.25em 1.625em;
		border-radius: 1.5em;
		background: var(--white);
	}
	
	.l-menu_item.u-button.-contact > *:before {
		background-image: url("../img/icon_mail@blue.svg");
	}
	
	.l-menu_logo {
		position: relative;
		z-index: 10;
	}
	
	.active_menu .l-menu_logo a {
		pointer-events: none;
	}
	
	.l-menu_logo span {
		width: 28px;
		margin-right: 10px;
	}
	
	.l-menu_logo b {
		width: 80px;
		transition: .2s .2s var(--cubic_bezier);
	}
	
	.active_menu .l-menu_logo b {
		filter: invert(99%) sepia(100%) saturate(0%) hue-rotate(329deg) brightness(104%) contrast(101%);
		transition: .2s var(--cubic_bezier);
	}
}


@media screen and (max-width: 426px) {
	:root {
	}
	
	.l-mv_logo figcaption {
		font-size: 3.2vw;
	}
	
}
