/******************************************
    リセットcss
******************************************/

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
button,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
	border: 0;
	font: inherit;
	font-size: 100%;
	margin: 0;
	padding: 0;
	vertical-align: baseline;
}

html {
	line-height: 1;
}

ol,
ul {
	list-style: none;
}

li,
dd {
	list-style-type: none;
}

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

caption,
th,
td {
	font-weight: normal;
	text-align: left;
	vertical-align: middle;
}

q,
blockquote {
	quotes: none;
}

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

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

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

button {
	color: #000;
	background: transparent;
}

/******************************************
    google font import
******************************************/

/******************************************
    color setting
******************************************/

/******************************************
    font setting
******************************************/

/******************************************
    base setting
******************************************/

*,
*::before,
*::after {
	box-sizing: border-box;
}

a {
	cursor: pointer;
	text-decoration: none;
	color: inherit;
}

body {
	font-family: "Shippori Mincho";
	color: #333;
	background-color: #FFF;
}

.inner {
	width: min(70.625rem, 100%);
	padding-inline: 2.5rem;
	margin-inline: auto;
}

.section__lead {
	color: #333;
	font-family: "Cormorant Garamond";
	font-size: 1.5625rem;
	font-weight: 700;
	line-height: 150%;
	/* 37.5px */
}

.section__title {
	color: #333;
	font-size: 2rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 3.4375rem;
}

.section__title.--center {
	text-align: center;
}

.header {
	position: fixed;
	z-index: 100;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	background: #FFF;
	box-shadow: 0 4px 20px 0 rgba(0, 0, 0, 0.1);
}

.header__inner {
	display: grid;
	grid-template-columns: 100px 1fr;
	align-items: center;
	width: min(90rem, 100%);
	padding-left: 2.5rem;
	padding-right: 0;
	margin-inline: auto;
}

.header__logo {
	padding-block: 0.75rem;
	width: 12.375rem;
	height: auto;
}

.header__logo img {
	display: block;
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.header__nav {
	display: flex;
	align-items: center;
	justify-content: end;
	height: 100%;
}

.header__list {
	display: flex;
	align-items: center;
	-moz-column-gap: 2rem;
	column-gap: 2rem;
}

.header__list li a {
	font-size: 1rem;
	transition: color 0.3s ease;
}

.header__btn {
	align-self: stretch;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	row-gap: 0.25rem;
	margin-left: 2.125rem;
	transition: all 0.3s ease;
	background: #E35D1E;
	border: 1px solid #E35D1E;
	color: #fff;
	padding: 0.625rem 1.25rem;
	font-size: 1rem;
	font-weight: 600;
	text-align: center;
	transition: background 0.3s ease, color 0.3s ease;
	width: -moz-fit-content;
	width: fit-content;
}

.header__btn:hover {
	background: #fff;
	color: #E35D1E;
}

.header__item-btn {
	display: flex;
	align-items: center;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
}

.header__item-btn svg {
	width: 1.0625rem;
	height: 1.0625rem;
	flex-shrink: 0;
}

.header__item-btn svg line {
	transform-box: fill-box;
	transform-origin: center;
	transition: stroke 0.3s ease, transform 0.3s ease;
}

.header__item-btn svg.js-open line:last-of-type {
	transform: rotate(90deg);
}

.header__item--menu {
	position: relative;
}

.header__sublist-wrap {
	position: absolute;
	top: calc(100% - 5px);
	left: 38%;
	translate: -50%;
	padding-top: 15px;
	display: none;
}

.header__sublist {
	position: relative;
	width: -moz-fit-content;
	width: fit-content;
	height: auto;
	background: #fff;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	row-gap: 0.625rem;
	box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);
}

.header__sublist li a {
	color: #000;
	font-size: 1rem;
	font-weight: 400;
	line-height: normal;
	white-space: nowrap;
}

.header__sublist::after {
	content: "";
	position: absolute;
	bottom: 100%;
	left: 50%;
	translate: -50%;
	width: 0;
	height: 0;
	border-style: solid;
	border-right: 0.375rem solid transparent;
	border-left: 0.375rem solid transparent;
	border-bottom: 0.6875rem solid #ffffff;
	border-top: 0;
}

.footer {
	background: #fff;
	padding-block: 5rem;
	border-top: 1px solid #DBDBDB;
}

.footer__contents {
	display: flex;
	justify-content: space-between;
	margin-bottom: 2.5rem;
}

.footer__logo {
	width: 14.25rem;
	height: 4.1875rem;
	margin-bottom: 1.6875rem;
}

.footer__logo img {
	display: block;
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.footer__text-wrap {
	display: flex;
	flex-direction: column;
	row-gap: 0.125rem;
}

.footer__text {
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 200%;
}

.footer__list {
	display: flex;
	-moz-column-gap: 2.5rem;
	column-gap: 2.5rem;
}

.footer__list li a {
	color: #000;
	font-size: 1rem;
	font-weight: 500;
	line-height: 150%;
	transition: color 0.3s ease;
}

.footer__sublist {
	margin-top: 1.25rem;
	padding-left: 0.875rem;
	padding-block: 0.25rem;
	border-left: 1px solid #DBDBDB;
}

.footer__sublist li a {
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 213.333%;
	/* 213.333% */
}

.footer__bottom {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.footer__copy-right,
.footer__privacy {
	color: #000;
	font-size: 0.625rem;
	font-weight: 500;
	line-height: 150%;
}

.footer__privacy {
	transition: color 0.3s ease;
}

.fv {
	margin-top: 5.125rem;
	width: 100%;
	height: 45rem;
	position: relative;
}

.fv__bg {
	position: absolute;
	top: 5.25rem;
	left: 50%;
	translate: -50%;
	z-index: -1;
	width: 100%;
	height: auto;
}

.fv__bg svg {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.fv__contents {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 1.25rem;
	width: min(75rem, 100%);
	padding-inline: 2.5rem;
	margin-inline: auto;
	position: relative;
}

.fv__title {
	color: #333;
	font-size: 3.375rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 120%;
	/* 64.8px */
	letter-spacing: 0.1em;
}

.fv__text {
	color: #BDBDBD;
	font-family: "Cormorant Garamond";
	font-size: 1.5625rem;
	font-weight: 700;
	line-height: 150%;
}

.fv__img {
	position: absolute;
	top: 6.5rem;
	right: 1.5625rem;
	width: 33.25rem;
	height: auto;
	-o-object-fit: contain;
	object-fit: contain;
}

.concept {
	position: relative;
	padding-block: 7.5rem 5rem;
}

.concept__contents {
	display: flex;
	-moz-column-gap: 5.375rem;
	column-gap: 5.375rem;
}

.concept__text-wrap {
	padding-top: 3.125rem;
	display: flex;
	flex-direction: column;
	row-gap: 2.5rem;
}

.concept__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.concept__img-wrap {
	width: 32.1875rem;
}

.concept__img-wrap img {
	width: 100%;
	height: auto;
	-o-object-fit: contain;
	object-fit: contain;
}

.concept__bottom {
	margin-left: 12rem;
	margin-top: -5.875rem;
	width: 17.1875rem;
	height: auto;
}

.concept__bottom img {
	width: 100%;
	height: auto;
	-o-object-fit: contain;
	object-fit: contain;
}

.concept__bg-wrap {
	position: absolute;
	top: 0;
	left: 0;
	width: 24.2361111111%;
	height: auto;
	-o-object-fit: contain;
	object-fit: contain;
	max-height: 68.25rem;
	z-index: -1;
}

.concept__bg-wrap svg {
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.service {
	position: relative;
	padding-block: 8.75rem 9.375rem;
}

.service__text {
	text-align: center;
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
	margin-bottom: 3.75rem;
}

.service__contents {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	-moz-column-gap: 3.125rem;
	column-gap: 3.125rem;
	margin-bottom: 3.75rem;
	width: 100%;
}

.service__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: auto;
	max-height: 75rem;
	-o-object-fit: cover;
	object-fit: cover;
	z-index: -1;
}

.service__bg svg {
	width: 100%;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.card {
	width: 100%;
	background: rgba(255, 255, 255, 0.95);
	box-shadow: 0 10px 30px 25px rgba(51, 51, 51, 0.06);
}

.card__img-wrap {
	width: 100%;
	height: auto;
	aspect-ratio: 500/354;
}

.card__img-wrap img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.card__body {
	padding: 2.5rem;
}

.card__title {
	font-size: 1.625rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 100%;
	padding-bottom: 1.875rem;
	margin-bottom: 1.875rem;
	text-align: center;
	border-bottom: 1px solid #000;
}

.card__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	margin-bottom: 1.875rem;
}

.card__lead {
	text-align: center;
	font-size: 1rem;
	font-weight: 600;
	line-height: 100%;
	margin-bottom: 1.25rem;
}

.card__text.--large {
	font-size: 1.125rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 111.111%;
	margin-bottom: 1.75rem;
}

.card__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 18.75rem;
	border-radius: 3.125rem;
	background: #fff;
	color: #E35D1E;
	border: 1px solid #E35D1E;
	margin-inline: auto;
	padding-block: 0.8125rem;
	position: relative;
}

.card__btn span {
	font-size: 1rem;
	line-height: 1;
	font-weight: 500;
}

.card__btn svg {
	position: absolute;
	right: 0.75rem;
	top: 50%;
	translate: 0 -50%;
	width: 0.9375rem;
	height: 0.9375rem;
}

.card__item-list {
	display: flex;
	flex-direction: column;
	row-gap: 0.75rem;
	margin-bottom: 1.875rem;
}

.card__item-list li {
	position: relative;
	padding-left: 1.25rem;
	font-size: 1rem;
	font-weight: 500;
	line-height: 100%;
}

.card__item-list li::before {
	content: "";
	position: absolute;
	top: 0.55em;
	left: 0;
	translate: 0 -50%;
	width: 1.0625rem;
	height: 1.0625rem;
	background: transparent url(../img/check.png) no-repeat center center/contain;
}

.card__value {
	padding: 1.875rem 1.25rem;
	background: rgba(227, 93, 30, 0.08);
	margin-bottom: 1.875rem;
}

.card__value-list {
	display: flex;
	flex-direction: column;
	row-gap: 0.9375rem;
}

.card__value-list li {
	display: flex;
	align-items: center;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	padding-bottom: 0.9375rem;
	border-bottom: 1px solid #BDBDBD;
}

.card__value-img {
	width: 2.5rem;
	height: 2.5rem;
	-o-object-fit: cover;
	object-fit: cover;
}

.card__value-text {
	font-size: 1rem;
	font-weight: 500;
	line-height: 137.5%;
}

.btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 16.875rem;
	border-radius: 3.125rem;
	background: #fff;
	color: #333;
	border: 1px solid #BDBDBD;
	margin-inline: auto;
	padding-block: 1.125rem;
	position: relative;
	transition: background 0.3s ease, color 0.3s ease, border 0.3s ease;
}

.btn span {
	font-size: 1rem;
	line-height: 1;
	font-weight: 500;
}

.btn svg {
	position: absolute;
	right: 1.125rem;
	top: 52%;
	translate: 0 -50%;
	width: 0.9375rem;
	height: 0.9375rem;
	transition: all 0.3s ease;
}

.btn.--left {
	margin-left: 0;
	margin-right: auto;
}

.card__btn {
	width: 18.75rem;
	padding-block: 0.8125rem;
}

.card__btn svg {
	right: 0.75rem;
}

.card__btn.--wide {
	width: 22.5rem;
}

.cta__btn {
	margin-inline: 0 auto;
	position: relative;
	z-index: 1;
}

.drawer__btn {
	width: 20.625rem;
	padding-block: 1.125rem;
}

.top-service__btn {
	width: 21.25rem;
}

.project {
	position: relative;
	padding-block: 6.25rem 5rem;
	overflow: hidden;
}

.project__bg {
	position: absolute;
	top: 0;
	left: calc(50% - 372px);
	width: 100%;
	height: 81%;
	border-radius: 20px 0 0 20px;
	background: linear-gradient(140deg, rgba(205, 243, 0, 0.2) 1.44%, rgba(237, 123, 39, 0.2) 55.55%, rgba(1, 65, 217, 0.2) 107.62%), rgba(249, 249, 249, 0.95);
	z-index: -1;
}

.project__contents {
	display: grid;
	grid-template-columns: 18rem 40rem;
	-moz-column-gap: 8.75rem;
	column-gap: 8.75rem;
}

.project__text-wrap {
	display: flex;
	flex-direction: column;
	row-gap: 2.5rem;
}

.project__text,
.project__item-text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.project__item-wrap {
	display: flex;
	flex-direction: column;
	row-gap: 1.875rem;
}

.project__item a {
	display: flex;
	flex-direction: row;
}

.project__item-img {
	flex-shrink: 0;
	width: 11.875rem;
	height: auto;
	aspect-ratio: 1/1;
	overflow: hidden;
}

.project__item-img img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.project__item-body {
	padding: 1.5rem;
	background: rgba(255, 255, 255, 0.95);
}

.project__item-label {
	display: inline-block;
	color: #BDBDBD;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1;
	padding-block: 0.1875rem;
	padding-inline: 0.625rem;
	background: #fff;
	border-radius: 50px;
	border: 1px solid #BDBDBD;
	background: #FFF;
	margin-bottom: 0.4375rem;
}

.project__item-title {
	width: -moz-fit-content;
	width: fit-content;
	font-size: 1.25rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 160%;
	margin-bottom: 0.875rem;
	transition: color 0.3s ease;
	position: relative;
}

.project__item-title::before {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 1px;
	background: #E35D1E;
	scale: 0;
	transform-origin: right center;
	transition: scale 0.5s ease;
}

.project__item-text {
	line-height: 200%;
}

.project__swiper-container,
.project__swiper,
.project__swiper-wrapper,
.project__swiper-slide {
	position: relative;
	margin-right: calc(100% - 100vw);
}

.project__swiper-slide {
	width: 63.4666666667vw;
}

.swiper-button-prev,
.swiper-button-next,
.swiper-pagination-bullets.swiper-pagination-horizontal {
	top: unset;
	bottom: unset;
	left: unset;
	right: unset;
	margin: 0;
	padding: 0;
}

.swiper-pagination-progressbar.swiper-pagination-horizontal {
	top: calc(100% + 1.875rem);
	width: 88vw;
	height: 0.0625rem;
	background: #BDBDBD;
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
	background: #E35D1E;
}

.news {
	padding-block: 4.375rem 5rem;
}

.news__contents {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 6.25rem;
	column-gap: 6.25rem;
}

.news__item-wrap {
	display: flex;
	flex-direction: column;
	row-gap: 1.875rem;
	width: 100%;
}

.news__item {
	position: relative;
}

.news__item::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 0.9375rem;
	height: 0.9375rem;
	background: transparent url(../img/angle_icon.png) no-repeat center center/contain;
	opacity: 0;
	right: 0.625rem;
	transition: all 0.3s ease;
}

.news__item a {
	display: flex;
	flex-direction: row;
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
	align-items: center;
	padding-bottom: 1.875rem;
	border-bottom: 1px solid #BDBDBD;
	transition: all 0.3s ease;
}

.news__item-date {
	color: #BDBDBD;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 153.846%;
}

.news__item-title {
	font-size: 1rem;
	font-weight: 500;
	line-height: 150%;
}

.news-post__list {
	display: flex;
	flex-direction: column;
	margin-bottom: 3.125rem;
}

.news-post__list li {
	padding-block: 1.875rem;
	border-bottom: 1px solid #BDBDBD;
}

.news-post__list li a {
	display: grid;
	grid-template-columns: auto 1fr;
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
	align-items: center;
	position: relative;
	padding-right: 2.1875rem;
}

.news-post__date {
	color: #BDBDBD;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 153.846%;
}

.news-post__title {
	font-size: 1rem;
	font-weight: 500;
	line-height: 150%;
	transition: color 0.3s ease;
	position: relative;
}

.news-post__title::after {
	content: "";
	position: absolute;
	top: 0.75em;
	left: calc(100% + 0.625rem);
	translate: 0 -50%;
	width: 0.9375rem;
	height: 0.9375rem;
	opacity: 0;
	background: transparent url(../img/angle_icon.png) no-repeat center center/contain;
	transition: all 0.3s ease;
}

.about {
	margin-top: 5rem;
	overflow: hidden;
	position: relative;
}

.about__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	background: linear-gradient(140deg, rgba(205, 243, 0, 0.1) 1.44%, rgba(237, 123, 39, 0.1) 55.55%, rgba(1, 65, 217, 0.1) 107.62%), #F9F9F9;
}

.about__contents {
	display: grid;
	align-items: center;
	grid-template-columns: 39.6875rem 1fr;
	-moz-column-gap: 9.7222222222vw;
	column-gap: 9.7222222222vw;
	margin-left: -7.6388888889vw;
}

.about__img-wrap {
	width: min(39.6875rem, 100%);
	flex-direction: column;
}

.about__img-wrap.--md {
	display: block;
}

.about__img-wrap.--sm {
	display: none;
}

.about__text {
	font-size: 1rem;
	font-weight: 500;
	line-height: 227.5%;
	margin-bottom: 7.0625rem;
}

.about__swiper-container,
.about__swiper,
.about__swiper-wrapper,
.about__swiper-slide {
	position: relative;
}

.about__swiper {
	width: 100%;
	max-height: 908px;
	height: 63.0555555556vw;
	overflow: hidden;
	/* はみ出たスライドを隠す */
}

.about__swiper-wrapper {
	transition-timing-function: linear;
}

.about__swiper_sp {
	overflow: visible;
}

.about__swiper-slide {
	max-width: 635px;
	width: 39.6875rem;
	height: auto;
	aspect-ratio: 635/320;
}

.about__swiper-slide img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.cta {
	margin-block: 9.375rem;
}

.cta__inner {
	width: min(84.375rem, 100%);
}

.cta__contents {
	position: relative;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: center;
	row-gap: 1.875rem;
	border-radius: 20px 0 0 20px;
	background: linear-gradient(129deg, #F9F9F9 11.96%, #FFF 38.64%, #F1F1F1 68.59%);
	padding-top: 11.0236220472%;
	padding-bottom: 9.1338582677%;
	padding-inline: 8.6614173228%;
}

.cta__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.cta__img-wrap {
	position: absolute;
	bottom: 0;
	right: 0;
	width: 45.5905511811%;
	height: auto;
	z-index: 0;
}

.cta__img-wrap img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.cta__line {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 0;
}

.cta__line svg {
	width: calc(100% + 5.3125rem);
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

body.js-drawer-open {
	overflow: hidden;
}

.drawer__icon {
	position: fixed;
	z-index: 102;
	top: 2.1875rem;
	right: 1.25rem;
	width: 1.875rem;
	height: 1rem;
	display: none;
	flex-direction: column;
	justify-content: space-between;
}

.drawer__icon--bar {
	width: 100%;
	height: 1px;
	background: #333;
	transition: all 0.3s ease;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(1) {
	rotate: 45deg;
	translate: 0 0.46875rem;
}

.drawer__icon.js-show .drawer__icon--bar:nth-of-type(2) {
	rotate: -45deg;
	translate: 0 -0.46875rem;
}

.drawer {
	position: fixed;
	z-index: 99;
	top: 0;
	right: 0;
	width: 100%;
	height: 100vh;
	height: 100svh;
	background: linear-gradient(170deg, rgba(205, 243, 0, 0.1) 5.97%, rgba(237, 123, 39, 0.1) 50.18%, rgba(1, 65, 217, 0.1) 92.73%), #FFF;
	overflow-y: scroll;
	translate: 0 -120%;
	transition: all 0.5s ease;
}

.drawer.js-show {
	translate: 0 0;
}

.drawer__body {
	width: 100%;
	height: -moz-fit-content;
	height: fit-content;
	padding-block: 8.75rem 2.5rem;
	padding-inline: 2.5rem;
}

.drawer__list {
	display: flex;
	flex-direction: column;
	margin-bottom: 2.5rem;
	border-top: 1px solid #DBDBDB;
}

.drawer__list li a {
	color: #333;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 93.75%;
}

.drawer__list li {
	padding-block: 1.25rem;
	border-bottom: 1px solid #DBDBDB;
}

.drawer__item-btn {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.drawer__item-btn svg {
	width: 1.125rem;
	height: 1.125rem;
	flex-shrink: 0;
}

.drawer__item-btn svg line {
	transform-box: fill-box;
	transform-origin: center;
	transition: stroke 0.3s ease, transform 0.3s ease;
}

.drawer__item-btn svg.js-open line:last-of-type {
	transform: rotate(90deg);
}

.drawer__sublist-wrap {
	margin-left: 0.9375rem;
	margin-top: 1.25rem;
	display: none;
}

.drawer__sublist {
	display: flex;
	flex-direction: column;
	row-gap: 0.125rem;
}

.drawer__sublist li {
	border: none;
	padding-block: 0;
}

.page-fv {
	margin-top: 5.125rem;
	height: 28.75rem;
}

.page-fv.--small {
	height: 20.5rem;
	border-bottom: 1px solid #DBDBDB;
}

.page-fv.--service {
	background: transparent url(../img/fv_service_bg.jpg) no-repeat center center/cover;
}

.page-fv.--my-factory {
	background: transparent url(../img/fv_my-factory_bg.jpg) no-repeat center center/cover;
}

.page-fv.--open-support {
	background: transparent url(../img/fv_open-support_bg.jpg) no-repeat center center/cover;
}

.page-fv__contents {
	height: 100%;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	row-gap: 1.875rem;
	padding-inline: 2.5rem;
	margin-inline: auto;
}

.page-fv__title {
	color: #1A1A1A;
	text-align: center;
	font-family: "Cormorant Garamond";
	font-size: 5.75rem;
	font-weight: 700;
	line-height: 90%;
	width: -moz-fit-content;
	width: fit-content;
}

.page-fv__title.--logo {
	position: relative;
}

.page-fv__title.--logo::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	translate: -50% -50%;
	width: 7.625rem;
	height: 11.125rem;
	background-image: url(../img/logo_fv.png);
	background-size: contain;
	background-repeat: no-repeat;
}

.page-fv__lead {
	color: #333;
	text-align: center;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 100%;
	/* 14px */
}

.breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
	padding-block: 1.25rem;
	padding-inline: 2.5rem;
	width: min(84.375rem, 100%);
	margin-inline: auto;
}

.breadcrumb span {
	color: #BDBDBD;
	font-size: 0.625rem;
	font-weight: 500;
	line-height: 150%;
	letter-spacing: 0.03em;
	position: relative;
	min-width: 0;
	overflow-wrap: anywhere;
}

.breadcrumb span::after {
	content: "";
	position: absolute;
	top: 50%;
	left: calc(100% + 0.625rem);
	translate: 0 -50%;
	display: block;
	width: 0.625rem;
	height: 0.03125rem;
	background-color: #BDBDBD;
}

.breadcrumb span:last-child span::after {
	display: none;
}

.breadcrumb span:has(> .current-item)::after {
	display: none;
}

.breadcrumb>span:last-child span {
	color: #E35D1E;
}

.mission {
	position: relative;
	margin-top: 6.25rem;
	padding-bottom: 3.125rem;
}

.mission__bg {
	position: absolute;
	z-index: -1;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
	/* 線がはみ出る場合の保険 */
}

.mission__bg svg {
	width: 100%;
	height: 100%;
	max-width: none;
}

.mission__contents {
	display: flex;
	justify-content: center;
	-moz-column-gap: 4.6875rem;
	column-gap: 4.6875rem;
	height: 33.875rem;
}

.mission__text-wrap {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.mission__text {
	text-align: center;
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.mission__img-wrap.--left {
	width: 11rem;
	height: 11.25rem;
	align-self: flex-end;
	margin-right: auto;
}

.mission__img-wrap.--left img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.mission__img-wrap.--right {
	margin-top: 5rem;
	width: 18.6875rem;
	height: 23.4375rem;
	-o-object-fit: cover;
	object-fit: cover;
	position: relative;
	z-index: 1;
}

.mission__img-wrap.--right img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.message {
	padding-top: 6.25rem;
	padding-bottom: 3.125rem;
	position: relative;
}

.message__contents {
	display: flex;
	justify-content: space-between;
	-moz-column-gap: 5.625rem;
	column-gap: 5.625rem;
}

.message__img {
	width: 32.6875rem;
	height: 40.625rem;
	margin-bottom: 2.5rem;
}

.message__img img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.message__info {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.message__name-en {
	font-size: 1rem;
	font-family: "Cormorant Garamond";
	font-weight: 400;
	line-height: 150%;
}

.message__name {
	font-size: 2rem;
	font-weight: 500;
	line-height: 171.875%;
}

.message__position {
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 106.667%;
}

.message__title {
	font-size: 1.625rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 176.923%;
	padding-left: 1.25rem;
	position: relative;
	margin-bottom: 2.6875rem;
}

.message__title::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 0.1875rem;
	height: 100%;
	background: linear-gradient(180deg, rgba(205, 243, 0, 0.5) -0.09%, rgba(237, 123, 39, 0.5) 49.47%, rgba(1, 65, 217, 0.5) 99.98%), #FFF;
}

.message__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 243.75%;
}

.message__bg {
	position: absolute;
	z-index: -1;
	top: -1.25rem;
	right: 0;
	width: 26.0625rem;
	height: auto;
	aspect-ratio: 417/1092;
	background: transparent url(../img/logo_half_left.png) no-repeat center center/cover;
}

.overview {
	padding-top: 6.25rem;
}

.overview__contents {
	display: flex;
	flex-direction: column;
}

.overview__item {
	display: flex;
	padding: 1.875rem;
	border-bottom: 1px solid #BDBDBD;
	position: relative;
}

.overview__item::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 18.75rem;
	height: 1px;
	background: #E35D1E;
}

.item__name {
	width: 18.75rem;
	font-size: 1rem;
	font-weight: 600;
}

.item__content {
	font-size: 1rem;
	font-weight: 500;
	line-height: 100%;
	width: 43.125rem;
}

.item__content.--address,
.item__content.--tel {
	line-height: 200%;
}

.overview__list {
	display: flex;
	flex-direction: column;
}

.overview__list li {
	padding-left: 1.5rem;
	position: relative;
	color: #444;
	font-size: 1rem;
	font-weight: 350;
	line-height: 200%;
}

.overview__list li::before {
	content: "";
	position: absolute;
	top: 1em;
	left: 0.65em;
	width: 0.25rem;
	height: auto;
	aspect-ratio: 1/1;
	background: currentColor;
	border-radius: 50%;
	z-index: -1;
}

.map {
	width: 100%;
	height: auto;
	aspect-ratio: 690/400;
	overflow: hidden;
}

.map iframe {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.page-project__head {
	padding-top: 2.5rem;
	margin-bottom: 3.75rem;
}

.page-project__lead {
	text-align: center;
	font-size: 1rem;
	font-weight: 500;
	line-height: 227.5%;
}

.page-project__contents {
	overflow: hidden;
}

.page-project__tab-list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin-bottom: 2.5rem;
}

.page-project__tab-item {
	text-align: center;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 100%;
	/* 15px */
	padding-block: 1.25rem;
	padding-inline: 0.625rem;
	border-bottom: 1px solid #DBDBDB;
	transition: color 0.3s ease, border 0.3s ease;
	cursor: pointer;
}

.page-project__tab-item[aria-selected=true] {
	color: #E35D1E;
	border-bottom: 1px solid #E35D1E;
	pointer-events: none;
}

.page-project__item-wrap {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
	row-gap: 3.75rem;
}

.page-project__empty {
	grid-column: 1 / -1;
	margin: 0;
	text-align: center;
	font-size: 1rem;
	line-height: 200%;
}

.page-project__item {
	width: 100%;
}

.page-project__item-img {
	position: relative;
	width: 100%;
	height: auto;
	aspect-ratio: 329/232;
	margin-bottom: 1.25rem;
	overflow: hidden;
}

.page-project__item-img img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	transition: transform 0.3s ease;
}

.page-project__item-img .label {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	background: #1A1A1A;
	padding: 0.625rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 100%;
	color: #fff;
}

.page-project__item-body .label {
	width: -moz-fit-content;
	width: fit-content;
	border-radius: 50px;
	border: 1px solid #BDBDBD;
	background: #FFF;
	padding: 0.25rem 0.625rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 100%;
	color: #BDBDBD;
	margin-bottom: 1.25rem;
}

.page-project__item-body .title {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 160%;
	margin-bottom: 0.875rem;
}

.page-project__item-body .text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	margin-bottom: 1.25rem;
}

.page-project__btn {
	display: flex;
	align-items: center;
	-moz-column-gap: 0.3125rem;
	column-gap: 0.3125rem;
	width: -moz-fit-content;
	width: fit-content;
	padding-bottom: 0.375rem;
	position: relative;
	transition: scaleX 0.3s ease, color 0.3s ease;
}

.page-project__btn::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	display: block;
	width: 100%;
	height: 1px;
	background: #E35D1E;
	scale: 0;
	transform-origin: right center;
	transition: scale 0.5s ease;
}

.page-project__btn svg {
	width: 0.9375rem !important;
	height: 0.9375rem !important;
}

.tabs__content-wrap {
	opacity: 0;
	visibility: hidden;
	height: 0;
	translate: 0 20px;
	transition: opacity 0.3s ease, translate 0.3s ease;
}

.tabs__content-wrap.js-show {
	opacity: 1;
	visibility: visible;
	height: -moz-fit-content;
	height: fit-content;
	translate: 0;
}

.single-project__contents {
	padding-block: 2.5rem 2.5rem;
}

.single-project__meta {
	display: flex;
	flex-direction: row;
	align-items: center;
	-moz-column-gap: 0.875rem;
	column-gap: 0.875rem;
	margin-bottom: 1.375rem;
}

.single-project__meta .label {
	background: #1A1A1A;
	padding: 0.625rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 100%;
	color: #fff;
}

.single-project__meta .category {
	width: -moz-fit-content;
	width: fit-content;
	border-radius: 50px;
	border: 1px solid #BDBDBD;
	background: #FFF;
	padding: 0.25rem 0.625rem;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 100%;
	color: #BDBDBD;
}

.single-project__title {
	font-size: 1.875rem;
	font-weight: 600;
	line-height: 106.667%;
	margin-bottom: 2.25rem;
}

.single-project__info-wrap {
	display: flex;
	-moz-column-gap: 2.9375rem;
	column-gap: 2.9375rem;
	margin-bottom: 5rem;
}

.single-project__img {
	width: 32.8125rem;
}

.single-project__img img {
	width: 100%;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.single-project__info {
	width: 30rem;
}

.single-project__info-title {
	font-family: "Cormorant Garamond";
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 150%;
	/* 30px */
	padding-bottom: 1.125rem;
	border-bottom: 1px solid #DBDBDB;
}

.single-project__info-grid .item {
	display: grid;
	grid-template-columns: 8.75rem 1fr;
	-moz-column-gap: 0.875rem;
	column-gap: 0.875rem;
	padding-block: 1.25rem;
	position: relative;
	background-image: linear-gradient(to right, #DBDBDB 50%, transparent 50%);
	/* background-size: [ドット1つ+余白の合計幅] [線の高さ] */
	background-size: 4px 1px;
	/* 横2pxのドット + 横2pxの隙間 = 4px / 高さを1pxに */
	background-repeat: repeat-x;
	background-position: bottom;
}

.single-project__info-grid .name {
	font-size: 0.9375rem;
	font-weight: 600;
}

.single-project__info-grid .content {
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 156%;
}

.single-project__post h2,
.single-project__post h3,
.single-project__post h4,
.single-project__post p,
.single-project__post ul,
.single-project__post ol {
	margin-bottom: 1.875rem;
	font-size: 1rem;
	font-weight: 500;
	line-height: 150%;
}

.single-project__post h2 {
	font-size: 1.625rem;
	font-weight: 600;
	line-height: 176.923%;
	margin-bottom: 1.875rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid #DBDBDB;
	position: relative;
}

.single-project__post h2::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 3.125rem;
	height: 1px;
	background: #E35D1E;
}

.single-project__post h3 {
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 160%;
	margin-bottom: 1.875rem;
	border-bottom: 1px solid #DBDBDB;
}

.single-project__post h4 {
	color: #fff;
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 150%;
	background: #E35D1E;
	padding: 0.25rem 0.625rem;
}

.single-project__post p {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	margin-bottom: 1.875rem;
}

.single-project__post h2+p {
	margin-bottom: 5rem;
}

.single-project__swiper-container {
	margin-bottom: 6.25rem;
	max-width: 42.5rem;
	margin-inline: auto;
}

.single-project__swiper {
	width: 100%;
	height: auto;
	aspect-ratio: 680/480;
}

.single-project__swiper-container,
.single-project__swiper,
.single-project__swiper-wrapper,
.single-project__swiper-slide {
	position: relative;
}

.single-project__swiper {
	width: 42.5rem;
	height: 30rem;
	margin-inline: auto;
}

.single-project__swiper-slide {
	width: 42.5rem;
	height: 100%;
}

.single-project__swiper-slide img {
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}

.swiper-button-prev,
.swiper-button-next,
.swiper-pagination-bullets.swiper-pagination-horizontal {
	top: unset;
	bottom: unset;
	left: unset;
	right: unset;
	margin: 0;
	padding: 0;
}

.swiper-pagination-bullets.swiper-pagination-horizontal {
	top: calc(100% + 0.625rem);
	height: -moz-fit-content;
	height: fit-content;
}

.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet {
	opacity: 1;
	width: 8px;
	height: 8px;
	aspect-ratio: 1/1;
	border-radius: 50%;
	background: #DBDBDB;
}

.swiper-pagination-bullets.swiper-pagination-horizontal .swiper-pagination-bullet-active {
	background: #E35D1E;
}

.related-posts {
	padding-bottom: 5.625rem;
}

.related-posts__list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
}

.pagination {
	padding-block: 2.5rem;
	border-top: 1px solid #DBDBDB;
	border-bottom: 1px solid #DBDBDB;
}

.pagination__wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	-moz-column-gap: 2.5rem;
	column-gap: 2.5rem;
	position: relative;
}

.pagination__item {
	display: flex;
	align-items: center;
	justify-content: center;
	padding-block: 0.8125rem;
	padding-inline: 2.6875rem;
	border-radius: 50px;
	border: 1px solid #BDBDBD;
	background: #FFF;
	position: relative;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
	transition: all 0.3s ease;
}

.pagination__item svg {
	position: absolute;
	top: 53%;
	translate: 0 -50%;
	width: 0.9375rem;
	height: 0.9375rem;
	transition: all 0.3s ease;
}

.pagination__item.--prev {
	position: absolute;
	top: 50%;
	left: calc(50% - 16.25rem);
	translate: 0 -50%;
}

.pagination__item.--next {
	position: absolute;
	top: 50%;
	right: calc(50% - 16.25rem);
	translate: 0 -50%;
}

.pagination__item.--prev svg {
	left: 0.875rem;
}

.pagination__item.--next svg {
	right: 0.75rem;
}

.pagination__item:hover {
	color: #fff;
	background: #E35D1E;
	border: 1px solid #E35D1E;
}

.pagination__item:hover svg circle {
	fill: #fff;
}

.pagination__item:hover svg path {
	fill: #E35D1E;
}

.pagination__list-link {
	font-size: 1rem;
	font-weight: 600;
	line-height: 100%;
	transition: all 0.3s ease;
}

.pagination__list-link:hover {
	color: #E35D1E;
}

.news-post__pagination-wrap {
	-moz-column-gap: 0.625rem;
	column-gap: 0.625rem;
}

.page-numbers {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.125rem;
	height: 3.125rem;
	border-radius: 50%;
	border: 1px solid #BDBDBD;
	background: #FFF;
	color: #E35D1E;
	font-size: 0.875rem;
	font-weight: 600;
	transition: all 0.3s ease;
}

.page-numbers.current {
	background: #E35D1E;
	color: #fff;
	border: 1px solid #E35D1E;
	pointer-events: none;
}

.page-numbers svg {
	width: 0.9375rem;
	height: 0.9375rem;
}

.page-numbers:hover {
	background: #E35D1E;
	color: #fff;
	border: 1px solid #E35D1E;
}

.page-numbers:hover svg path {
	fill: #fff;
}

.page-numbers:hover svg circle {
	fill: #fff;
}

.single {
	padding-top: 1.875rem;
}

.single__inner {
	width: min(55rem, 100%);
}

.single__head {
	display: flex;
	flex-direction: column;
	row-gap: 1.25rem;
	margin-bottom: 2.5rem;
}

.single__date {
	color: #BDBDBD;
	font-size: 0.8125rem;
	font-weight: 500;
	line-height: 153.846%;
}

.single__title {
	font-size: 1.875rem;
	font-weight: 500;
	line-height: 106.667%;
}

.single__thumbnail {
	width: 100%;
	margin-bottom: 3.125rem;
}

.single__thumbnail img {
	width: 100%;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.single__post-contents {
	padding-bottom: 3.125rem;
}

.single__post-contents .wp-block-image {
	margin-bottom: 3.125rem;
}

.single__post-contents h2 {
	font-size: 1.625rem;
	font-weight: 600;
	line-height: 176.923%;
	margin-bottom: 1.875rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid #DBDBDB;
	position: relative;
}

.single__post-contents h2::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 3.125rem;
	height: 1px;
	background: #E35D1E;
}

.single__post-contents p {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	margin-bottom: 3.125rem;
}

.single__post-contents p.--mb20 {
	margin-bottom: 1.25rem;
}

.single__post-contents p.small {
	font-size: 0.875rem;
	line-height: 228.571%;
}

.single__post-contents p a {
	display: inline-block;
	font-weight: 600;
	text-decoration: underline;
	transition: all 0.3s ease;
	margin-inline: 0.25rem;
}

.single__post-contents p a:hover {
	color: #E35D1E;
}

.single__post-contents ul,
.single__post-contents ol {
	padding-left: 1.125rem;
	display: flex;
	flex-direction: column;
	row-gap: 1.25rem;
	margin-bottom: 3.125rem;
}

.single__post-contents ul li,
.single__post-contents ol li {
	font-size: 1rem;
	font-weight: 400;
	line-height: 150%;
	position: relative;
	list-style: none;
}

.single__post-contents table {
	width: 100%;
	border-collapse: collapse;
	font-size: 1rem;
	font-weight: 400;
	line-height: 150%;
	margin-bottom: 3.125rem;
}

.single__post-contents table th,
.single__post-contents table td {
	font-size: 1rem;
	font-weight: 400;
	line-height: 150%;
}

.single__post-contents ul li::before,
.single__post-contents ol li::before {
	content: "";
	position: absolute;
	top: 0.8em;
	left: -1em;
	translate: 0 -50%;
	width: 0.625rem;
	height: auto;
	aspect-ratio: 1;
	background: #E35D1E;
	border-radius: 50%;
}

.single__post-contents>*:last-child {
	margin-bottom: 0;
}

.contact__contents {
	padding-top: 2.5rem;
	padding-bottom: 9.375rem;
}

.contact__head {
	margin-bottom: 3.75rem;
}

.contact__lead {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	margin-bottom: 1.875rem;
}

.contact__caution {
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 228.571%;
}

.contact__form-wrap {
	width: 100%;
	padding-block: 4.375rem;
	padding-inline: 5.625rem;
	background: rgba(255, 255, 255, 0.95);
	box-shadow: 0 10px 30px 25px rgba(51, 51, 51, 0.06);
	display: flex;
	flex-direction: column;
}

.contact__item {
	display: flex;
	align-items: center;
	-moz-column-gap: 1.25rem;
	column-gap: 1.25rem;
	padding-bottom: 1.5rem;
	border-bottom: 1px solid #BDBDBD;
	margin-bottom: 1.5rem;
}

.contact__item input[type=text],
.contact__item input[type=email],
.contact__item input[type=tel],
.contact__item input[type=file],
.contact__item textarea {
	border: none;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	outline: none;
	width: 38.125rem;
	border: 1px solid #DBDBDB;
	background: #F8F8F8;
	font-size: 1rem;
	font-weight: 400;
	line-height: 150%;
	padding: 0.625rem 1rem;
	font-family: "Shippori Mincho";
}

.contact__item input[type=text]::-moz-placeholder,
.contact__item input[type=email]::-moz-placeholder,
.contact__item input[type=tel]::-moz-placeholder,
.contact__item input[type=file]::-moz-placeholder,
.contact__item textarea::-moz-placeholder {
	color: #C0C0C0;
	font-family: "Shippori Mincho";
}

.contact__item input[type=text]::placeholder,
.contact__item input[type=email]::placeholder,
.contact__item input[type=tel]::placeholder,
.contact__item input[type=file]::placeholder,
.contact__item textarea::placeholder {
	color: #C0C0C0;
	font-family: "Shippori Mincho";
}

.contact__item textarea {
	resize: none;
	height: 11.25rem;
	font-family: "Shippori Mincho";
}

.contact__file-wrap {
	display: flex;
	flex-direction: column;
	row-gap: 0.875rem;
}

.contact__item input[type=file] {
	display: none;
}

.contact__item .file-btn {
	display: inline-block;
	border-radius: 50px;
	border: 1px solid #BDBDBD;
	background: #FFF;
	padding: 0.3125rem 0.9375rem;
	font-size: 1rem;
	font-weight: 500;
	line-height: 150%;
	cursor: pointer;
	transition: all 0.3s ease;
}

.contact__item .file-name {
	margin-left: 0.625rem;
	display: inline-block;
	color: #C0C0C0;
	font-size: 1rem;
	font-weight: 500;
	line-height: 150%;
}

.contact__file-text {
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 228.571%;
	/* 228.571% */
}

.contact__checkbox-wrap {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
}

.contact__checkbox-wrap .wpcf7-list-item {
	margin-left: 0;
}

.contact__checkbox-wrap input[type=checkbox] {
	margin: 0;
	padding: 0;
	width: 1.5rem;
	height: 1.5rem;
	position: absolute;
	top: 50%;
	left: 0;
	translate: 0 -50%;
	z-index: 1;
	opacity: 0;
	cursor: pointer;
}

.contact__checkbox-wrap .wpcf7-list-item-label {
	padding-left: 2rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 150%;
	position: relative;
}

.contact__checkbox-wrap .wpcf7-list-item-label::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	translate: 0 -50%;
	width: 1.5rem;
	height: 1.5rem;
	background: #BDBDBD;
	border: 1px solid #BDBDBD;
	background: #FFF;
}

.contact__checkbox-wrap .wpcf7-list-item-label::after {
	content: "";
	position: absolute;
	top: 0.125rem;
	left: 0.4375rem;
	rotate: 40deg;
	width: 0.5625rem;
	height: 1.0625rem;
	border-bottom: 2px solid #E35D1E;
	border-right: 2px solid #E35D1E;
	transition: all 0.3s ease-in-out;
	opacity: 0;
	transition: opacity 0.5s ease;
}

.contact__checkbox-wrap input[type=checkbox]:checked+.wpcf7-list-item-label::after {
	opacity: 1;
}

.contact__label {
	font-family: "Shippori Mincho";
	width: 15rem;
	display: flex;
	align-items: center;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	font-size: 1rem;
	font-weight: 700;
	line-height: 150%;
}

.contact__label .required {
	display: inline-block;
	color: #E35D1E;
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 100%;
}

.contact__label.--top {
	align-self: flex-start;
	margin-top: 0.3125rem;
}

.contact__privacy {
	display: flex;
	flex-direction: column;
	align-items: center;
	row-gap: 1.875rem;
	margin-bottom: 1.875rem;
}

.contact__privacy-link {
	color: #E35D1E;
	font-size: 1rem;
	font-weight: 400;
	line-height: 150%;
	text-decoration: underline;
	transition: opacity 0.3s ease;
}

.contact__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	-moz-column-gap: 0.625rem;
	column-gap: 0.625rem;
	position: relative;
}

.contact__submit-btn {
	width: 16.875rem;
	height: 3.3125rem;
	border-radius: 3.125rem;
	background: #E35D1E;
	color: #fff;
	font-size: 1rem;
	font-weight: 400;
	line-height: 150%;
	font-family: "Shippori Mincho";
	border: none;
	cursor: pointer;
	outline: none;
	transition: all 0.3s ease;
}

.submit-btn {
	width: -moz-fit-content;
	width: fit-content;
	margin-inline: auto;
	position: relative;
}

.submit-btn svg {
	position: absolute;
	top: 50%;
	right: 1.125rem;
	translate: 0 -50%;
	width: 0.9375rem;
	height: 0.9375rem;
	transition: all 0.3s ease;
}

.tanks__title {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 160%;
	text-align: center;
	margin-bottom: 3.75rem;
}

.tanks__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	text-align: center;
	margin-bottom: 3.75rem;
}

.page-service__contents {
	padding-top: 2.8125rem;
	padding-bottom: 6.25rem;
}

.page-service__head {
	display: flex;
	align-items: flex-end;
	-moz-column-gap: 12.8125rem;
	column-gap: 12.8125rem;
	margin-bottom: 3.75rem;
}

.page-service__lead {
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.page-service__items {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	-moz-column-gap: 3.125rem;
	column-gap: 3.125rem;
}

.future {
	padding-top: 10.625rem;
	padding-bottom: 3.125rem;
	position: relative;
	overflow: hidden;
}

.future__head {
	display: flex;
	-moz-column-gap: 3rem;
	column-gap: 3rem;
	margin-bottom: 3.75rem;
}

.future__lead {
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
	margin-top: 4.25rem;
}

.future__img-wrap {
	max-width: 65.625rem;
	margin-inline: auto;
}

.future__img-wrap img {
	width: 100%;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.future__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
}

.future__bg svg {
	width: 100%;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.partner {
	padding-top: 6.25rem;
}

.partner__contents {
	display: flex;
	-moz-column-gap: 4.25rem;
	column-gap: 4.25rem;
}

.partner__text-wrap {
	width: 31rem;
}

.partner__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.partner__img-contents {
	width: 31.25rem;
}

.partner__img-contents {
	width: 30.25rem;
	display: flex;
	flex-direction: column;
}

.partner__img-wrap {
	position: relative;
}

.partner__img-wrap.--top {
	z-index: 1;
}

.partner__img-wrap.--top .partner__img {
	width: 13.1875rem;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.partner__img-wrap.--bottom {
	margin-top: -1.625rem;
	margin-left: 6.5625rem;
	z-index: 0;
}

.partner__img-wrap.--bottom .partner__img {
	width: 23.625rem;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.achievements {
	padding-top: 5rem;
	padding-bottom: 7.1875rem;
	position: relative;
}

.achievements__contents {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	-moz-column-gap: 1.875rem;
	column-gap: 1.875rem;
}

.achievements__item {
	border: 2px solid transparent;
	background-image: linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255)), linear-gradient(135deg, rgba(205, 243, 0, 0.5) 0%, rgba(237, 123, 39, 0.5) 50%, rgba(1, 65, 217, 0.5) 100%);
	/* 2枚目：ボーダー用グラデーション(不透明度50%適用) */
	background-origin: border-box;
	background-clip: padding-box, border-box;
	box-shadow: 0 10px 30px 25px rgba(51, 51, 51, 0.06);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 0.625rem;
	row-gap: 1.5rem;
	width: 100%;
	height: 15.625rem;
}

.achievements__item-title {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 100%;
	position: relative;
}

.achievements__item-title::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	z-index: 0;
	width: 2rem;
	height: 2.9375rem;
	background: transparent url(../img/logo_color.png) no-repeat center center/contain;
}

.achievements__date {
	display: flex;
	flex-direction: row;
	align-items: flex-end;
	justify-content: center;
}

.achievements__date .large {
	color: #333;
	font-size: 5.4375rem;
	font-weight: 400;
	line-height: 100%;
}

.achievements__date .small {
	display: inline-block;
	margin-bottom: 0.25rem;
	margin-left: 0.25rem;
	font-size: 1.75rem;
	font-weight: 500;
	line-height: 100%;
}

.achievements__bg {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	z-index: -1;
	height: 15.3125rem;
	background: linear-gradient(169deg, rgba(205, 243, 0, 0.2) 1.44%, rgba(237, 123, 39, 0.2) 55.55%, rgba(1, 65, 217, 0.2) 107.62%), #F9F9F9;
}

.project-top {
	padding-top: 4.0625rem;
	padding-bottom: 6.25rem;
	position: relative;
}

.project-top.--open-support {
	padding-bottom: 9.375rem;
}

.project-top__bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
	z-index: -1;
}

.project-top__bg svg {
	width: -moz-fit-content;
	width: fit-content;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.project-top__head {
	margin-bottom: 3.75rem;
}

.project-top__lead {
	font-size: 1.625rem;
	font-weight: 500;
	line-height: 173.077%;
}

.project-top__contents {
	display: flex;
	-moz-column-gap: 4.1875rem;
	column-gap: 4.1875rem;
	align-items: center;
}

.project-top__img-wrap {
	width: 28.5rem;
}

.project-top__img-wrap img {
	width: 100%;
	height: auto;
	-o-object-fit: cover;
	object-fit: cover;
}

.project-top__text-wrap {
	width: 32.6875rem;
}

.project-top__text-wrap> :last-child {
	margin-bottom: 0;
}

.project-top__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	margin-bottom: 2.5rem;
}

.phase {
	padding-block: 3.125rem;
}

.phase.--open-support {
	padding-top: 6.25rem;
	padding-bottom: 9.375rem;
}

.phase__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	-moz-column-gap: 2.5rem;
	column-gap: 2.5rem;
	margin-bottom: 3.75rem;
}

.phase__lead {
	width: 32.8125rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.phase__lead.--space-wide {
	letter-spacing: 0.02em;
}

.phase__contents {
	display: flex;
	flex-direction: column;
	row-gap: 1.875rem;
}

.phase__item {
	display: grid;
	grid-template-columns: 6.25rem 16.25rem 1fr;
	align-items: center;
	-moz-column-gap: 1.25rem;
	column-gap: 1.25rem;
	padding: 2.1875rem 3.75rem;
	background: #FFF;
	box-shadow: 0 10px 30px 25px rgba(51, 51, 51, 0.06);
}

.phase__item-img-wrap {
	width: 6.25rem;
	height: auto;
	aspect-ratio: 100/100;
}

.phase__item-img-wrap img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.phase__number {
	font-size: 1.125rem;
	font-weight: 400;
	line-height: 150%;
	margin-bottom: 0.625rem;
}

.phase__item-title {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 100%;
}

.phase__item-text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
}

.phase__item-text .note {
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 228.571%;
	display: block;
	margin-top: 0.25rem;
}

.reasons {
	padding-top: 6.25rem;
	padding-bottom: 9.375rem;
}

.reasons__lead {
	font-size: 1rem;
	font-weight: 500;
	line-height: 227.5%;
	margin-bottom: 3.75rem;
}

.reasons__contents {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	-moz-column-gap: 2rem;
	column-gap: 2rem;
}

.reasons__item,
.support__item {
	display: flex;
	flex-direction: column;
	row-gap: 1.875rem;
	padding: 2.5rem 2.125rem;
	background: #FFF;
	box-shadow: 0 10px 30px 25px rgba(51, 51, 51, 0.06);
	border: 2px solid transparent;
	background-image: linear-gradient(rgb(255, 255, 255), rgb(255, 255, 255)), linear-gradient(135deg, rgba(205, 243, 0, 0.5) 0%, rgba(237, 123, 39, 0.5) 50%, rgba(1, 65, 217, 0.5) 100%);
	/* 2枚目：ボーダー用グラデーション(不透明度50%適用) */
	background-origin: border-box;
	background-clip: padding-box, border-box;
}

.reasons__item-title,
.support__item-title {
	text-align: center;
	font-size: 1.625rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 142.308%;
	padding-bottom: 1.875rem;
	border-bottom: 1px solid #333;
}

.reasons__item-text,
.support__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
}

.case-study {
	padding-block: 9.375rem;
	background: #F8F8F8;
}

.case-study__head {
	display: flex;
	justify-content: space-between;
	margin-bottom: 3.75rem;
}

.case-study__lead {
	margin-top: 3.625rem;
	width: 32.875rem;
	font-size: 1rem;
	font-weight: 400;
	line-height: 227.5%;
}

.case-study__empty {
	grid-column: 1 / -1;
	margin: 0;
	text-align: center;
	font-size: 1rem;
	line-height: 200%;
}

.flow {
	padding-block: 9.375rem;
}

.flow__head {
	margin-bottom: 3.75rem;
}

.flow__contents {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	-moz-column-gap: 4.25rem;
	column-gap: 4.25rem;
}

.flow__item {
	position: relative;
}

.flow__item::after {
	content: "";
	position: absolute;
	top: 0;
	left: calc(100% + 2.125rem);
	width: 1px;
	height: 100%;
	background: #BDBDBD;
}

.flow__item:last-child::after {
	display: none;
}

.flow__item-img-wrap {
	margin-inline: auto;
	width: 6.25rem;
	height: 6.25rem;
	margin-bottom: 0.625rem;
}

.flow__item-img-wrap img {
	width: 100%;
	height: 100%;
	-o-object-fit: cover;
	object-fit: cover;
}

.flow___number {
	text-align: center;
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 150%;
	margin-bottom: 0.625rem;
}

.flow__item-title {
	text-align: center;
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 100%;
	margin-bottom: 1.875rem;
}

.flow__item-text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
}

.faq {
	padding-block: 9.375rem;
	background: #F8F8F8;
}

.faq__head {
	margin-bottom: 3.75rem;
}

summary {
	display: block;
}

summary::-webkit-details-marker {
	display: none;
}

.faq__contents {
	border-top: 1px solid #BDBDBD;
}

.faq__item {
	border-bottom: 1px solid #BDBDBD;
}

.question,
.answer {
	display: block;
	width: 100%;
	padding: 1.875rem 3.75rem 1.875rem 1.875rem;
	position: relative;
}

.answer {
	background: #FFF;
	border-top: 1px solid #BDBDBD;
}

.question-text,
.answer-text {
	display: inline-block;
	width: 100%;
	padding-left: 2rem;
	position: relative;
	color: #333;
	font-size: 16px;
	font-weight: 400;
	line-height: 200%;
}

.question-text::before,
.answer-text::before {
	position: absolute;
	font-family: "Cormorant Garamond";
	font-size: 1.5625rem;
	font-weight: 700;
	line-height: 100%;
	top: 0.125em;
	left: 0;
	width: 1.5rem;
	height: 1.5rem;
}

.question-text::before {
	content: "Q.";
}

.question svg {
	position: absolute;
	top: 2.5rem;
	right: 1.875rem;
	width: 0.9375rem;
	height: 0.9375rem;
	transition: transform 0.3s ease;
}

.js-details[open] summary svg {
	transform: rotate(180deg);
	transition: transform 0.3s ease;
}

.answer-text::before {
	content: "A.";
}

.worries__wrap {
	padding-block: 3.75rem;
	padding-inline: 2.5rem;
	background: #F8F8F8;
	max-width: 65.625rem;
	margin-inline: auto;
}

.worries__contents {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
	row-gap: 1.25rem;
}

.worries__item {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.25rem;
	background: #FFF;
}

.worries__text {
	font-size: 1rem;
	font-weight: 500;
	line-height: 175%;
	text-align: center;
}

.worries__text .--underline {
	position: relative;
}

.worries__text .--underline::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: calc(100% - 0.75rem);
	height: 1px;
	background: #333;
}

.support {
	padding-block: 9.375rem 3.125rem;
}

.support__head {
	margin-bottom: 3.75rem;
}

.support__contents {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	-moz-column-gap: 3.125rem;
	column-gap: 3.125rem;
	row-gap: 3.125rem;
}

.support__item {
	padding: 2.5rem 3.125rem;
}

.support__item-title.--fix-height {
	line-height: 4.625rem;
}

.page__title {
	font-size: 2rem;
	font-weight: 500;
	text-shadow: 0 0 0.8px #333;
	line-height: 142.308%;
	text-align: center;
	margin-bottom: 3.75rem;
}

.privacy-policy__contents {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	text-align: left;
	margin-bottom: 3.75rem;
}

.error__contents {
	padding-block: 5rem;
}

.error__head {
	margin-bottom: 3.75rem;
}

.error__title {
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 160%;
	text-align: center;
	margin-bottom: 3.75rem;
}

.error__text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 200%;
	text-align: center;
	margin-bottom: 3.75rem;
}

.is-sp {
	display: none;
}

.is-not-sp {
	display: block;
}

.is-sm {
	display: none;
}

.is-not-sm {
	display: block;
}

.is-tab {
	display: none;
}

.is-not-tab {
	display: block;
}

.is-pc {
	display: none;
}

.is-not-pc {
	display: block;
}

.is-md {
	display: none;
}

.uppercase-letter {
	text-transform: uppercase;
}

.--center {
	text-align: center;
}

.--white {
	color: #fff;
}

.--bg-logo {
	position: relative;
}

.--bg-logo::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	translate: -50% -50%;
	width: 1.875rem;
	height: 2.75rem;
	background-image: url("../img/logo_color.png");
	background-size: contain;
	background-repeat: no-repeat;
}

.--logo-left::after {
	left: -1.125rem;
	translate: 0 -50%;
}

.--mt20 {
	margin-top: 1.25rem;
}

.--mb60 {
	margin-bottom: 3.75rem;
}

.--mb40 {
	margin-bottom: 2.5rem;
}

.--mb50 {
	margin-bottom: 3.125rem;
}

.--mb30 {
	margin-bottom: 1.875rem;
}

.--mb20 {
	margin-bottom: 1.25rem;
}

.--main-mt {
	margin-top: 5.125rem;
}

/******************************************
    アニメーション
******************************************/

.--fadeIn_img {
	overflow: hidden;
	opacity: 0;
	transition: all 0.7s ease;
}

.--fadeIn_img img {
	scale: 1.2;
	transition: all 1.2s ease;
}

.--fadeIn_img.js-show {
	opacity: 1;
}

.--fadeIn_img.js-show img {
	scale: 1;
}

.draw-line {
	/* パスの全長（このSVGの場合は約2400〜2500程度） */
	stroke-dasharray: 10000;
	stroke-dashoffset: 10000;
}

.draw-line.js-show {
	animation: drawing 1.8s ease-in-out forwards;
}

.draw-line-reverse {
	/* パスの全長を「1」として扱う */
	stroke-dasharray: 1;
	/* スタート時は全部隠す（1にする） */
	stroke-dashoffset: 1;
	/* 線の先端を丸くすると、描き始めが自然になります（お好みで） */
	stroke-linecap: round;
}

.draw-line-reverse.js-show {
	/* アニメーション名を変更 */
	animation: drawing-right-to-left 1.5s ease-in-out forwards;
}

/* 右から左へ描画するアニメーション */

.--fadeIn_fv {
	opacity: 0;
	translate: 0 40px;
	transition: opacity 0.5s ease, translate 0.7s ease;
}

.--fadeIn_fv.js-show {
	opacity: 1;
	translate: 0 0;
}

.draw-line.--fadeIn_fv {
	translate: 0 0;
}

.draw-line.--fadeIn {
	translate: 0 0;
}

.--fadeIn {
	opacity: 0;
	translate: 0 20px;
	transition: background 0.3s ease, color 0.3s ease, border 0.3s ease, opacity 0.7s ease, translate 1s ease;
}

.--fadeIn.js-show {
	opacity: 1;
	translate: 0 0;
}

.--fadeIn_slide_right {
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1.2s ease;
}

.--fadeIn_slide_right.js-show {
	clip-path: inset(0 0 0 0);
}

@media (any-hover: hover) {

	.header__logo a:hover {
		opacity: 0.7;
		transition: opacity 0.3s ease;
	}

	.header__list li a:hover {
		color: #E35D1E;
	}

	.footer__logo a:hover {
		opacity: 0.7;
		transition: opacity 0.3s ease;
	}

	.footer__list li a:hover {
		color: #E35D1E;
	}

	.footer__privacy:hover {
		color: #E35D1E;
	}

	.btn:hover {
		background: #E35D1E;
		color: #fff;
		border: 1px solid #E35D1E;
	}

	.btn:hover svg circle {
		fill: #fff;
	}

	.btn:hover svg path {
		fill: #E35D1E;
	}

	.project__item a:hover .project__item-title {
		color: #E35D1E;
	}

	.project__item a:hover .project__item-title::before {
		scale: 1;
		transform-origin: left center;
	}

	.project__item a:hover .project__item-img img {
		transform: scale(1.05);
	}

	.news__item:hover a {
		border-color: #E35D1E;
	}

	.news__item:hover::after {
		opacity: 1;
		right: 0;
	}

	.news-post__list li a:hover .news-post__title {
		color: #E35D1E;
	}

	.news-post__list li a:hover .news-post__title::after {
		opacity: 1;
		left: calc(100% + 1.25rem);
	}

	.page-project__tab-item:hover {
		color: #E35D1E;
		border-bottom: 1px solid #E35D1E;
	}

	.page-project__item a:hover .page-project__item-img img {
		transform: scale(1.05);
	}

	.page-project__item a:hover .page-project__btn {
		color: #E35D1E;
	}

	.page-project__item a:hover .page-project__btn::after {
		scale: 1;
		transform-origin: left center;
	}

	.related-posts__item a:hover .page-project__item-img img {
		transform: scale(1.05);
	}

	.related-posts__item a:hover .page-project__btn {
		color: #E35D1E;
	}

	.related-posts__item a:hover .page-project__btn::after {
		scale: 1;
		transform-origin: left center;
	}

	.contact__item .file-btn:hover {
		background: #ddd;
	}

	.contact__privacy-link:hover {
		opacity: 0.7;
	}

	.submit-btn:hover .contact__submit-btn {
		background: #fff;
		color: #E35D1E;
		border: 1px solid #E35D1E;
	}

	.submit-btn:hover svg circle {
		fill: #E35D1E;
	}

	.submit-btn:hover svg path {
		fill: #fff;
	}

	summary:hover {
		cursor: pointer;
	}

}

@media screen and (max-width: 767px) and (min-width: 601px) {

	html {
		font-size: 2.6622296173vw;
	}

}

@media (min-width: 768px) {

	.is-md {
		display: block;
	}

}

@media screen and (max-width: 1129px) and (min-width: 768px) {

	html {
		font-size: calc(16 / 1130 * 100vw);
	}

}

@media (min-width: 1280px) {

	.is-pc {
		display: block;
	}

	.is-not-pc {
		display: none;
	}

}

@media (min-width: 1600px) {

	.--pc-bg-white {
		z-index: 1;
		position: relative;
	}

	.--pc-bg-white::before {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		width: 6.25rem;
		height: 100%;
		background: #fff;
		z-index: -1;
	}

}

@media (max-width: 1024px) {

	.question-text::before,
	.answer-text::before {
		top: 0.4em;
	}

	.is-tab {
		display: block;
	}

	.is-not-tab {
		display: none;
	}

}

@media (max-width: 767px) {

	.inner {
		padding-inline: 0.875rem;
	}

	.section__lead {
		font-size: 1rem;
	}

	.section__title {
		font-size: 1.5rem;
		line-height: 200%;
	}

	.header__inner {
		width: min(50.5rem, 100%);
		padding-left: 0.875rem;
	}

	.header__nav {
		display: none;
	}

	.footer {
		padding-block: 4.375rem 4.75rem;
	}

	.footer__inner {
		padding-inline: 2.5rem;
	}

	.footer__contents {
		flex-direction: column;
		row-gap: 2rem;
		margin-bottom: 2.1875rem;
	}

	.footer__info {
		margin-inline: auto;
	}

	.footer__list {
		flex-direction: column;
		row-gap: 1.25rem;
		width: -moz-fit-content;
		width: fit-content;
		margin-inline: auto;
	}

	.footer__sublist {
		margin-top: 0.75rem;
	}

	.footer__bottom {
		flex-direction: column-reverse;
		row-gap: 1.875rem;
	}

	.fv {
		height: 43.75rem;
	}

	.fv__bg {
		top: 12.5rem;
	}

	.fv__contents {
		justify-content: flex-start;
		width: -moz-fit-content;
		width: fit-content;
		margin-inline: auto;
		padding-top: 3.375rem;
		row-gap: 0.75rem;
	}

	.fv__contents {
		row-gap: 0;
	}

	.fv__title {
		font-size: 2.625rem;
	}

	.fv__text {
		font-size: 1.25rem;
	}

	.fv__img {
		width: 20rem;
		top: 17.5rem;
	}

	.concept__inner {
		padding-inline: 2.5rem 1.25rem;
	}

	.concept__contents {
		flex-direction: column;
		row-gap: 3.125rem;
	}

	.concept__text-wrap {
		padding-top: 1.875rem;
		row-gap: 1.875rem;
	}

	.concept__text {
		font-size: 0.875rem;
	}

	.concept__img-wrap {
		width: 25rem;
		margin-left: auto;
	}

	.concept__bottom {
		margin-left: 0;
		margin-right: auto;
		margin-top: 2.5rem;
		width: 15rem;
	}

	.concept__bg-wrap {
		width: 14.6875rem;
		height: 46.125rem;
	}

	.service {
		padding-block: 4.125rem 6.25rem;
	}

	.service__text {
		margin-bottom: 3.25rem;
	}

	.service__contents {
		box-sizing: border-box;
		grid-template-columns: 1fr;
		row-gap: 2.5rem;
		margin-bottom: 3.125rem;
	}

	.card__body {
		padding: 2.5rem 2.1875rem;
	}

	.btn {
		width: 17.5rem;
		padding-block: 0.8125rem;
	}

	.btn.--sm_right {
		margin-inline: 0 auto;
	}

	.card__btn {
		max-width: 18.75rem;
	}

	.project {
		padding-block: 4.375rem 6.25rem;
	}

	.project__bg {
		left: calc(50% - 2.75rem);
		height: 100%;
		background: linear-gradient(115deg, rgba(205, 243, 0, 0.2) 1.44%, rgba(237, 123, 39, 0.2) 55.55%, rgba(1, 65, 217, 0.2) 107.62%), rgba(249, 249, 249, 0.5);
	}

	.project__contents {
		grid-template-columns: minmax(0, 1fr);
		row-gap: 3.125rem;
	}

	.project__text-wrap {
		row-gap: 1.875rem;
	}

	.project__text,
	.project__item-text {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.project__item-wrap {
		display: none;
	}

	.project__item a {
		flex-direction: column;
		width: 100%;
	}

	.project__item {
		display: block;
		width: 63.4666666667vw;
	}

	.project__item-img {
		width: 100%;
		height: auto;
		aspect-ratio: 1/1;
	}

	.project__item-body {
		padding: 1.5625rem 1.25rem 1.875rem;
	}

	.project__item-title {
		font-size: 1.0625rem;
		line-height: 188.235%;
		margin-bottom: 0.4375rem;
	}

	.project__swiper .swiper-wrapper {
		align-items: stretch;
	}

	.project__swiper-slide {
		height: auto;
		display: flex;
	}

	.project__swiper-slide .project__item {
		display: flex;
		flex-direction: column;
		flex: 1;
		min-height: 0;
	}

	.project__swiper-slide .project__item a {
		flex: 1;
		display: flex;
		flex-direction: column;
		min-height: 0;
	}

	.project__swiper-slide .project__item-body {
		flex: 1;
	}

	.news {
		padding-block: 6.25rem;
	}

	.news__contents {
		width: 100%;
		display: grid;
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "lead" "title" "item-wrap" "btn";
		row-gap: 1.875rem;
	}

	.news__lead {
		grid-area: lead;
	}

	.news__title {
		grid-area: title;
	}

	.news__btn {
		grid-area: btn;
	}

	.news__text-wrap {
		display: contents;
	}

	.news__item-wrap {
		grid-area: item-wrap;
		row-gap: 1.25rem;
	}

	.news__item::after {
		top: 50%;
		translate: 0 -50%;
		right: 0.1875rem;
	}

	.news__item a {
		flex-direction: column;
		align-items: flex-start;
		row-gap: 0.875rem;
		padding-bottom: 1.25rem;
	}

	.news__item-title {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.about {
		margin-top: 0;
		padding-block: 7.3125rem 6.25rem;
		overflow: hidden;
	}

	.about__inner {
		padding-inline: 2.5rem;
	}

	.about__contents {
		grid-template-columns: 1fr;
		width: 100%;
		margin-left: 0;
	}

	.about__img-wrap {
		width: 100%;
	}

	.about__img-wrap.--md {
		display: none;
	}

	.about__img-wrap.--sm {
		display: block;
		margin-top: 4.375rem;
	}

	.about__swiper-slide {
		max-width: none;
		width: 14.375rem;
		height: auto;
		aspect-ratio: 1;
	}

	.cta {
		margin-block: 6.25rem;
	}

	.cta__contents {
		padding-block: 6.25rem 18.75rem;
		padding-inline: 2.5rem;
	}

	.cta__img-wrap {
		width: 15rem;
		bottom: 0.875rem;
		right: 1.875rem;
	}

	.cta__line svg {
		width: 100%;
	}

	.cta__line {
		top: auto;
		bottom: 2.75rem;
		width: 100%;
		z-index: 0;
	}

	.drawer__icon {
		display: flex;
	}

	.drawer__sublist li a {
		font-size: 1.125rem;
		font-weight: 500;
		line-height: 213.333%;
	}

	.page-fv {
		height: 18.75rem;
	}

	.page-fv.--small {
		height: 15rem;
	}

	.page-fv__title {
		font-size: 4.5rem;
	}

	.page-fv__title.--logo::before {
		width: 5.75rem;
		height: 8.375rem;
	}

	.breadcrumb {
		padding-inline: 1.375rem;
	}

	.mission {
		margin-top: 3.125rem;
	}

	.mission__bg svg {
		width: 100%;
		height: auto;
		position: absolute;
		left: 0;
		bottom: 16.875rem;
		-o-object-fit: cover;
		object-fit: cover;
	}

	.mission__contents {
		display: grid;
		grid-template-areas: "text" "img-right" "img-left";
		height: -moz-fit-content;
		height: fit-content;
		width: 100%;
	}

	.mission__text-wrap {
		grid-area: text;
		width: 100%;
	}

	.mission__img-wrap.--left {
		grid-area: img-left;
		margin-top: 2.75rem;
		align-self: auto;
		margin-left: 0.25rem;
	}

	.mission__img-wrap.--right {
		grid-area: img-right;
		justify-self: end;
		margin-top: 5.3125rem;
		width: 15.3125rem;
		height: 18.75rem;
	}

	.message {
		padding-top: 3.125rem;
		padding-bottom: 2.625rem;
	}

	.message__contents {
		flex-direction: column;
		row-gap: 2.5rem;
	}

	.message__img {
		width: 100%;
		height: auto;
	}

	.message__img img {
		height: auto;
	}

	.message__text-wrap {
		padding-inline: 1rem;
	}

	.message__bg {
		top: auto;
		bottom: 0;
		width: 15rem;
	}

	.overview__item::after {
		width: 10rem;
	}

	.item__name {
		line-height: 171.429%;
	}

	.item__name.--tel {
		line-height: 171.429%;
	}

	.item__content {
		line-height: 171.429%;
	}

	.item__content.--address,
	.item__content.--tel {
		line-height: 171.429%;
	}

	.overview__list li {
		line-height: 171.429%;
	}

	.overview__list li::before {
		top: 0.8em;
	}

	.page-project__item-wrap {
		grid-template-columns: repeat(2, 1fr);
	}

	.single-project__title {
		margin-bottom: 1.875rem;
		font-size: 1.625rem;
		line-height: 123.077%;
	}

	.single-project__info-wrap {
		flex-direction: column;
		row-gap: 1.875rem;
		margin-bottom: 3.75rem;
	}

	.single-project__img {
		width: 100%;
	}

	.single-project__info {
		width: 100%;
	}

	.single-project__swiper {
		width: 100%;
		height: auto;
		aspect-ratio: 680/480;
	}

	.related-posts {
		padding-bottom: 3.75rem;
	}

	.related-posts__list {
		grid-template-columns: 1fr;
		row-gap: 1.875rem;
	}

	.pagination {
		padding-block: 1.875rem;
	}

	.contact__head {
		margin-bottom: 3.125rem;
		padding-inline: 0.625rem;
	}

	.contact__form-wrap {
		padding-inline: 2.5rem;
		padding-block: 3.125rem;
	}

	.contact__item {
		flex-direction: column;
		align-items: flex-start;
		row-gap: 0.625rem;
	}

	.contact__item input[type=text],
	.contact__item input[type=email],
	.contact__item input[type=tel],
	.contact__item input[type=file],
	.contact__item textarea {
		width: 100%;
	}

	.contact__label {
		font-weight: 700;
	}

	.page-service__head {
		flex-direction: column;
		align-items: flex-start;
		row-gap: 1.875rem;
		margin-bottom: 3.125rem;
		padding-inline: 0.75rem;
	}

	.page-service__items {
		grid-template-columns: 1fr;
		row-gap: 2.5rem;
	}

	.future__head {
		flex-direction: column;
		row-gap: 1.875rem;
		margin-bottom: 3.125rem;
	}

	.future__lead {
		margin-top: 0;
	}

	.partner {
		padding-top: 3.125rem;
	}

	.partner__contents {
		flex-direction: column;
		row-gap: 3.125rem;
	}

	.partner__text-wrap {
		width: 100%;
	}

	.partner__img-contents {
		width: 100%;
	}

	.partner__img-wrap.--top .partner__img {
		width: 15.8125rem;
	}

	.partner__img-wrap.--bottom .partner__img {
		width: 28.3125rem;
	}

	.achievements {
		padding-bottom: 5rem;
	}

	.achievements__contents {
		grid-template-columns: 1fr;
		row-gap: 1.25rem;
	}

	.achievements__item {
		width: 21.25rem;
		height: 13.75rem;
		margin-inline: auto;
	}

	.achievements__bg {
		height: 10.5rem;
	}

	.project-top__bg svg {
		width: 100%;
		height: auto;
	}

	.project-top__bg {
		width: 8.25rem;
		height: 27.9375rem;
	}

	.project-top__head {
		margin-bottom: 3.125rem;
	}

	.project-top__lead {
		font-size: 1.25rem;
		line-height: 160%;
	}

	.project-top__contents {
		flex-direction: column;
		row-gap: 1.875rem;
	}

	.project-top__img-wrap {
		width: 100%;
	}

	.project-top__text-wrap {
		width: 100%;
	}

	.phase.--open-support {
		padding-top: 3.125rem;
		padding-bottom: 6.25rem;
	}

	.phase__head {
		flex-direction: column;
		align-items: flex-start;
		row-gap: 1.875rem;
		margin-bottom: 3.125rem;
	}

	.phase__lead {
		width: 100%;
	}

	.phase__item {
		grid-template-columns: 4.875rem 1fr;
		grid-template-areas: "img title" "text text";
		padding: 1.875rem 1.5rem;
		row-gap: 1.25rem;
	}

	.phase__item-img-wrap {
		width: 4.875rem;
		grid-area: img;
	}

	.phase__item-title-wrap {
		grid-area: title;
		margin-left: 0.75rem;
	}

	.phase__item-text {
		grid-area: text;
	}

	.reasons {
		padding-top: 3.125rem;
		padding-bottom: 6.25rem;
	}

	.reasons__lead {
		margin-bottom: 3.125rem;
	}

	.reasons__contents {
		grid-template-columns: 1fr;
		row-gap: 1.875rem;
	}

	.reasons__item,
	.support__item {
		width: 23.75rem;
		margin-inline: auto;
		row-gap: 1.5rem;
	}

	.case-study {
		padding-block: 6.25rem;
	}

	.case-study__head {
		flex-direction: column;
		row-gap: 1.875rem;
		margin-bottom: 3.125rem;
	}

	.case-study__lead {
		margin-top: 0;
		width: 100%;
	}

	.flow {
		padding-block: 6.25rem;
	}

	.flow__head {
		margin-bottom: 3.125rem;
	}

	.flow__contents {
		grid-template-columns: 1fr;
		row-gap: 3.75rem;
	}

	.flow__item {
		display: grid;
		grid-template-columns: 6.25rem 1fr;
		grid-template-areas: "img title" "text text";
		row-gap: 1.25rem;
	}

	.flow__item::after {
		left: 0;
		top: calc(100% + 1.875rem);
		width: 100%;
		height: 1px;
	}

	.flow__item-img-wrap {
		grid-area: img;
		margin-bottom: 0;
	}

	.flow__item-title-wrap {
		grid-area: title;
		margin-left: 1.5rem;
		display: flex;
		flex-direction: column;
		justify-content: center;
	}

	.flow___number {
		text-align: left;
	}

	.flow__item-title {
		text-align: left;
		margin-bottom: 0;
	}

	.flow__item-text {
		grid-area: text;
	}

	.faq {
		padding-block: 6.25rem;
	}

	.faq__head {
		margin-bottom: 3.125rem;
	}

	.question,
	.answer {
		padding: 1.5rem 3.125rem 1.5rem 1rem;
	}

	.question-text::before,
	.answer-text::before {
		font-size: 1.25rem;
		width: 1.25rem;
		height: 1.25rem;
		top: 0.25rem;
	}

	.question svg {
		top: 1.875rem;
		right: 1rem;
	}

	.worries__contents {
		grid-template-columns: 1fr;
	}

	.support {
		padding-top: 6.25rem;
	}

	.support__head {
		margin-bottom: 3.125rem;
	}

	.support__contents {
		grid-template-columns: 1fr;
	}

	.support__item-title.--fix-height {
		line-height: 160%;
	}

	.error__head {
		margin-bottom: 3.125rem;
		padding-inline: 0.625rem;
	}

	.is-sm {
		display: block;
	}

	.is-not-sm {
		display: none;
	}

	.--logo-left::after {
		left: -0.625rem;
		top: 0.25rem;
	}

	.--mb60 {
		margin-bottom: 2.5rem;
	}

	.--mb40 {
		margin-bottom: 1.875rem;
	}

	.--mb50 {
		margin-bottom: 1.875rem;
	}

	.--mb30 {
		margin-bottom: 1.5rem;
	}

	.--mb20 {
		margin-bottom: 1rem;
	}

	.--mb30-sp {
		margin-bottom: 1.875rem;
	}

	.--mb0-sm {
		margin-bottom: 0;
	}

}

@media (max-width: 601px) {

	.inner {
		padding-inline: 0.75rem;
	}

	.inner.--sp-small {
		padding-inline: 1.375rem;
	}

	.section__lead {
		font-size: 1rem;
	}

	.section__title {
		font-size: 1.5rem;
		line-height: 200%;
	}

	.section__title.--sp-small {
		font-size: 1.25rem;
		line-height: 160%;
	}

	.section__title.--nowrap {
		font-size: 1.375rem;
		letter-spacing: -0.02em;
		white-space: nowrap;
		margin-left: -0.5em;
	}

	.header__logo {
		width: 8.25rem;
	}

	.footer__inner {
		padding-inline: 2.5rem;
	}

	.footer__info {
		margin-inline: 0;
	}

	.footer__list {
		margin-left: 0;
		margin-right: auto;
	}

	.footer__list li a {
		font-size: 0.875rem;
	}

	.footer__sublist li a {
		font-size: 0.8125rem;
		line-height: 215.384%;
	}

	.footer__bottom {
		align-items: flex-start;
	}

	.fv {
		margin-top: 3.875rem;
		height: 31.25rem;
	}

	.fv__bg {
		top: 9.375rem;
	}

	.fv__title {
		font-size: 2rem;
		margin-bottom: 0.5rem;
	}

	.fv__text {
		font-size: 0.9375rem;
	}

	.fv__img {
		top: 10.625rem;
		width: 15.4375rem;
	}

	.concept {
		padding-block: 3.375rem 2.125rem;
	}

	.concept__inner {
		padding-inline: 2.5rem 1.25rem;
	}

	.concept__img-wrap {
		width: 15.3125rem;
		margin-right: 0.125rem;
	}

	.concept__bottom {
		width: 9.1875rem;
		margin-left: -1.125rem;
	}

	.concept__bg-wrap {
		width: 29.375rem;
		height: 42.5rem;
		left: auto;
		right: 4.5rem;
	}

	.service__text {
		font-size: 0.875rem;
	}

	.card__body.--sp-wide {
		padding-inline: 1.75rem;
	}

	.card__title {
		font-size: 1.25rem;
		padding-bottom: 1.5rem;
		margin-bottom: 1.5rem;
	}

	.card__title.--narrow {
		letter-spacing: -0.15em;
	}

	.card__text {
		font-size: 0.875rem;
		margin-bottom: 1.25rem;
	}

	.card__text.--large {
		font-size: 1rem;
		line-height: 125%;
		margin-bottom: 1.5rem;
	}

	.card__item-list {
		row-gap: 0.625rem;
	}

	.card__item-list li {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.card__item-list li::before {
		top: 0.9em;
	}

	.card__value-list li {
		padding-bottom: 0.5rem;
	}

	.card__value-text {
		line-height: 150%;
	}

	.btn span {
		font-size: 0.9375rem;
	}

	.card__btn {
		width: 17.5rem;
	}

	.card__btn.--wide {
		width: 100%;
	}

	.card__btn.--wide span {
		font-size: 0.8125rem;
	}

	.drawer__btn {
		width: 100%;
	}

	.news__inner {
		padding-inline: 1.375rem;
	}

	.news-post__contents {
		margin-top: 1.875rem;
	}

	.news-post__list {
		margin-bottom: 2.5rem;
	}

	.news-post__list li {
		padding-block: 1.25rem;
	}

	.news-post__list li a {
		grid-template-columns: 1fr;
		row-gap: 0.875rem;
		align-items: flex-start;
	}

	.news-post__title {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.news-post__title::after {
		top: 0.85em;
		left: calc(100% + 1.25rem);
	}

	.about__inner {
		padding-inline: 2.375rem;
	}

	.about__text {
		font-size: 0.875rem;
		line-height: 242.857%;
		margin-bottom: 1.875rem;
	}

	.cta__contents {
		padding-inline: 1.5625rem;
		padding-block: 4.375rem 12.25rem;
	}

	.cta__text {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.cta__img-wrap {
		width: 8.375rem;
	}

	.drawer__icon {
		top: 1.625rem;
		width: 1.5rem;
		height: 0.75rem;
	}

	.drawer__icon.js-show .drawer__icon--bar:nth-of-type(1) {
		translate: 0 0.34375rem;
	}

	.drawer__icon.js-show .drawer__icon--bar:nth-of-type(2) {
		translate: 0 -0.34375rem;
	}

	.drawer__body {
		padding-inline: 1.375rem;
		padding-block: 6.25rem 2.5rem;
	}

	.drawer__list li a {
		font-size: 1rem;
	}

	.drawer__sublist li a {
		font-size: 0.9375rem;
	}

	.page-fv {
		height: 11.0625rem;
		margin-top: 3.875rem;
	}

	.page-fv.--small {
		height: 11.0625rem;
	}

	.page-fv__contents {
		row-gap: 1.25rem;
	}

	.page-fv__title {
		font-size: 3.125rem;
	}

	.page-fv__title.--logo::before {
		width: 3.8125rem;
		height: 5.5625rem;
		left: -1rem;
	}

	.page-fv__title.--logo.--company::before {
		left: -0.625rem;
	}

	.page-fv__title.--sp-small {
		font-size: 2.125rem;
		white-space: nowrap;
	}

	.page-fv__lead {
		font-size: 0.75rem;
	}

	.mission__text {
		font-size: 0.875rem;
		font-weight: 400;
		line-height: 242.857%;
	}

	.mission__img-wrap.--left {
		width: 6.9375rem;
		height: 7.125rem;
	}

	.mission__img-wrap.--right {
		width: 12.25rem;
		height: 15.3125rem;
	}

	.message__img {
		margin-bottom: 1.875rem;
	}

	.message__name-en {
		font-size: 0.75rem;
	}

	.message__name {
		font-size: 1.5rem;
		line-height: 172.421%;
	}

	.message__position {
		font-size: 0.75rem;
		line-height: 100.317%;
	}

	.message__title {
		font-size: 1.25rem;
		line-height: 230%;
		padding-left: 0.875rem;
		margin-bottom: 1.875rem;
		letter-spacing: -0.03em;
	}

	.message__text {
		font-size: 0.875rem;
		line-height: 242.857%;
		width: 18.5rem;
	}

	.message__bg {
		width: 11.25rem;
		height: 34.9375rem;
		background: transparent url(../img/logo_message_sp.png);
		background-size: cover;
		background-repeat: no-repeat;
		background-position: left 0 center;
	}

	.overview {
		padding-top: 5.625rem;
	}

	.overview__item {
		padding-inline: 0.625rem;
		padding-block: 1.25rem;
	}

	.overview__item::after {
		width: 7.5rem;
	}

	.overview__item.--access-wrap {
		flex-direction: column;
		row-gap: 0.625rem;
	}

	.overview__item.--access-wrap .item__content {
		width: 100%;
	}

	.item__name {
		width: 8.125rem;
		font-size: 0.875rem;
	}

	.item__content {
		font-size: 0.875rem;
		width: 11.875rem;
	}

	.overview__list li {
		font-size: 0.875rem;
	}

	.map {
		aspect-ratio: 300/240;
	}

	.page-project__head {
		padding-top: 1.25rem;
		margin-bottom: 2.5rem;
	}

	.page-project__lead {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.page-project__tab-list {
		margin-bottom: 1.875rem;
	}

	.page-project__tab-item {
		font-size: 0.8125rem;
		white-space: nowrap;
		padding-block: 0.75rem;
		line-height: 140%;
	}

	.page-project__item-wrap {
		grid-template-columns: repeat(1, 1fr);
		row-gap: 2.5rem;
	}

	.page-project__item-body .label {
		margin-bottom: 0.625rem;
	}

	.page-project__item-body .title {
		font-size: 1.0625rem;
		line-height: 188.235%;
	}

	.page-project__item-body .text {
		font-size: 0.875rem;
	}

	.single-project__contents {
		padding-bottom: 0;
	}

	.single-project__meta {
		-moz-column-gap: 0.4375rem;
		column-gap: 0.4375rem;
	}

	.single-project__meta .label {
		padding-block: 0.4375rem;
		padding-inline: 0.375rem;
		font-size: 0.75rem;
		line-height: 116.667%;
	}

	.single-project__meta .category {
		padding-block: 0.3125rem;
		padding-inline: 0.625rem;
		font-size: 0.8125rem;
		line-height: 107.692%;
	}

	.single-project__info-title {
		font-size: 1rem;
		line-height: 150%;
	}

	.single-project__info-grid .name {
		font-size: 0.875rem;
	}

	.single-project__info-grid .content {
		font-size: 0.875rem;
		line-height: 167.143%;
	}

	.single-project__post h2 {
		font-size: 1.25rem;
		line-height: 150%;
		margin-bottom: 1.5625rem;
	}

	.single-project__post p {
		font-size: 0.875rem;
	}

	.single-project__post h2+p {
		margin-bottom: 3.75rem;
	}

	.single-project__swiper-container {
		margin-bottom: 5rem;
	}

	.pagination__wrap {
		-moz-column-gap: 1rem;
		column-gap: 1rem;
	}

	.pagination__item {
		font-size: 0.75rem;
		padding-block: 0.75rem;
	}

	.pagination__item svg {
		top: 50%;
	}

	.pagination__item.--prev {
		padding-inline: 1.75rem 0.625rem;
		left: 0;
	}

	.pagination__item.--prev svg {
		left: 0.5625rem;
	}

	.pagination__item.--next {
		padding-inline: 0.625rem 1.75rem;
		right: 0;
	}

	.pagination__item.--next svg {
		right: 0.5625rem;
	}

	.pagination__list-link {
		font-size: 0.75rem;
	}

	.news-post__pagination-wrap {
		-moz-column-gap: 0.5rem;
		column-gap: 0.5rem;
	}

	.page-numbers {
		width: 2.5rem;
		height: 2.5rem;
		font-size: 0.75rem;
	}

	.single {
		padding-top: 3.125rem;
	}

	.single__head {
		margin-bottom: 1.875rem;
	}

	.single__title {
		font-size: 1.625rem;
		line-height: 123.077%;
	}

	.single__thumbnail {
		margin-bottom: 1.875rem;
	}

	.single__post-contents {
		padding-bottom: 2.5rem;
	}

	.single__post-contents.wp-block-image {
		margin-bottom: 1.5625rem;
	}

	.single__post-contents h2 {
		font-size: 1.25rem;
		line-height: 150%;
		margin-bottom: 1.5625rem;
	}

	.single__post-contents p {
		font-size: 0.875rem;
	}

	.single__post-contents p.small {
		font-size: 0.75rem;
		line-height: 216.667%;
	}

	.single__post-contents ul,
	.single__post-contents ol {
		row-gap: 0.625rem;
	}

	.single__post-contents ul li,
	.single__post-contents ol li {
		font-size: 0.875rem;
		line-height: 200%;
	}

	.single__post-contents ul li::before,
	.single__post-contents ol li::before {
		top: 1.05em;
		left: -1.25em;
	}

	.single__post-contents table th,
	.single__post-contents table td {
		font-size: 0.875rem;
	}

	.contact__lead {
		font-size: 0.875rem;
		margin-bottom: 1.25rem;
	}

	.contact__caution {
		font-size: 0.75rem;
		line-height: 216.667%;
	}

	.contact__form-wrap {
		padding-inline: 1.25rem;
		padding-block: 3.125rem;
	}

	.contact__item input[type=text],
	.contact__item input[type=email],
	.contact__item input[type=tel],
	.contact__item input[type=file],
	.contact__item textarea {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.contact__item input[type=text]::-moz-placeholder,
	.contact__item input[type=email]::-moz-placeholder,
	.contact__item input[type=tel]::-moz-placeholder,
	.contact__item input[type=file]::-moz-placeholder,
	.contact__item textarea::-moz-placeholder {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.contact__item input[type=text]::placeholder,
	.contact__item input[type=email]::placeholder,
	.contact__item input[type=tel]::placeholder,
	.contact__item input[type=file]::placeholder,
	.contact__item textarea::placeholder {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.contact__item .file-btn {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.contact__item .file-name {
		margin-left: 0.4375rem;
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.contact__file-text {
		font-size: 0.75rem;
		line-height: 183.333%;
	}

	.contact__checkbox-wrap {
		justify-content: flex-start;
	}

	.contact__checkbox-wrap .wpcf7-list-item-label {
		font-size: 0.875rem;
		line-height: 171.429%;
		padding-left: 1.5rem;
	}

	.contact__checkbox-wrap .wpcf7-list-item-label .--sp-small {
		letter-spacing: -0.05em;
		white-space: nowrap;
	}

	.contact__checkbox-wrap .wpcf7-list-item-label::before {
		width: 1rem;
		height: 1rem;
	}

	.contact__checkbox-wrap .wpcf7-list-item-label::after {
		top: 0.2rem;
		left: 0.3125rem;
		width: 0.4375rem;
		height: 0.75rem;
	}

	.contact__label {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.contact__label .required {
		font-size: 0.625rem;
	}

	.contact__privacy {
		row-gap: 1.25rem;
		margin-bottom: 1.25rem;
	}

	.contact__privacy-link {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.contact__submit-btn {
		width: 17.5rem;
		height: 2.6875rem;
		font-size: 0.9375rem;
		line-height: 100%;
	}

	.submit-btn svg {
		right: 0.875rem;
	}

	.tanks__title {
		font-size: 1.25rem;
	}

	.tanks__text {
		font-size: 0.875rem;
		line-height: 228.571%;
		text-align: left;
	}

	.page-service__lead {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.future__lead {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.future__img-wrap {
		width: 100%;
	}

	.partner__text {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.partner__img-wrap.--top .partner__img {
		width: 8.125rem;
		margin-left: 1.125rem;
	}

	.partner__img-wrap.--bottom {
		margin-top: -0.875rem;
	}

	.partner__img-wrap.--bottom .partner__img {
		width: 14.5rem;
	}

	.achievements__item {
		width: 18.375rem;
		height: 12.625rem;
	}

	.achievements__item-title {
		font-size: 1.125rem;
	}

	.project-top {
		padding-top: 3.125rem;
		padding-bottom: 3.125rem;
	}

	.project-top.--open-support {
		padding-bottom: 6.25rem;
	}

	.project-top__text {
		font-size: 0.875rem;
		line-height: 242.857%;
		margin-bottom: 1.5rem;
	}

	.phase__lead {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.phase__item {
		-moz-column-gap: 0;
		column-gap: 0;
		padding: 1.875rem 1rem;
	}

	.phase__number {
		font-size: 0.9375rem;
		margin-bottom: 0.5rem;
	}

	.phase__item-title {
		font-size: 1rem;
		margin-bottom: 0.5rem;
	}

	.phase__item-text {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.phase__item-text .note {
		font-size: 0.75rem;
		line-height: 216.667%;
		margin-top: 0.625rem;
	}

	.reasons__lead {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.reasons__item,
	.support__item {
		width: 100%;
	}

	.reasons__item-title,
	.support__item-title {
		font-size: 1.25rem;
		line-height: 160%;
		padding-bottom: 1.5rem;
	}

	.reasons__item-text,
	.support__text {
		font-size: 0.875rem;
		line-height: 171.429%;
	}

	.case-study__lead {
		font-size: 0.875rem;
		line-height: 242.857%;
	}

	.flow__item {
		grid-template-columns: 3.75rem 1fr;
	}

	.flow__item-img-wrap {
		width: 3.75rem;
		height: 3.75rem;
	}

	.flow__item-title-wrap {
		margin-left: 0.625rem;
	}

	.flow___number {
		font-size: 0.9375rem;
	}

	.flow__item-title {
		font-size: 1rem;
	}

	.flow__item-text {
		font-size: 0.875rem;
		line-height: 185.714%;
	}

	.question,
	.answer {
		padding-block: 1.25rem;
	}

	.answer {
		padding-right: 1.125rem;
	}

	.question-text,
	.answer-text {
		font-size: 0.875rem;
		line-height: 185.714%;
	}

	.question-text::before,
	.answer-text::before {
		top: 0.21875rem;
	}

	.question svg {
		top: 1.625rem;
	}

	.worries__wrap {
		padding-block: 3.125rem;
		padding-inline: 1.125rem;
	}

	.worries__item {
		padding-inline: 0.875rem;
	}

	.worries__text {
		font-size: 0.875rem;
		line-height: 185.714%;
	}

	.support__contents {
		row-gap: 1.875rem;
	}

	.support__item {
		padding: 2.5rem 1.5rem;
	}

	.support__item-title {
		white-space: nowrap;
	}

	.page__title {
		font-size: 1.5rem;
		text-align: left;
	}

	.error__title {
		font-size: 1.25rem;
	}

	.error__text {
		font-size: 0.875rem;
		line-height: 228.571%;
		text-align: left;
	}

	.is-sp {
		display: block;
	}

	.is-not-sp {
		display: none;
	}

	.--main-mt {
		margin-top: 3.875rem;
	}

}

@media screen and (max-width: 600px) {

	html {
		font-size: 4.2666666667vw;
	}

}

@keyframes drawing {

	from {
		stroke-dashoffset: 10000;
		/* 最初は全部隠す */
	}

	to {
		stroke-dashoffset: 0;
		/* 最後は全部出す */
	}

}

@keyframes drawing-right-to-left {

	from {
		/* スタート：全部隠れている状態（オフセット 1） */
		stroke-dashoffset: 1;
	}

	to {
		/* ゴール：全部見えている状態（オフセット 0） */
		stroke-dashoffset: 0;
	}

}


.wpcf7-spinner {
	position: absolute;
	top: 50%;
	translate: 0 -50%;
}

/* エラーメッセージ */
.wpcf7-not-valid-tip {
	position: absolute;
	bottom: calc(100% + 0.18rem);
	font-size: 0.75rem;
}

.wpcf7-response-output {
	color: red;
	text-align: center;
	border: none !important;
	font-size: 1rem;
	line-height: 125%;
	padding: 0 !important;
}

@media screen and (max-width: 768px) {
	.wpcf7-form-control-wrap {
		width: 100%;
	}

	.wpcf7-not-valid-tip {
		bottom: calc(100% + 0.5rem);
		right: 0;
		left: auto;
	}

	.wpcf7-response-output {
		font-size: 0.875rem;
	}
}

.recaptcha-policy {
	margin-top: 2rem;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 150%;
}

.recaptcha-policy a {
	display: inline-block;
	font-weight: 600;
	text-decoration: underline;
	transition: all 0.3s ease;
	margin-inline: 0.1rem;
}

.recaptcha-policy a:hover {
	color: #E35D1E;
}

@media screen and (max-width: 768px) {
	.recaptcha-policy {
		font-size: 0.75rem;
	}
}

/* バッジを非表示にする場合 */
.grecaptcha-badge {
	visibility: hidden;
}