.c-inner {
	margin: 0 auto;
	max-width: 470px;
	padding-inline: 11px;
}

.c-company__inner {
	margin: 0 auto;
	max-width: 470px;
	padding-inline: 24px;
}

.c-heading {
	display: flex;
	flex-direction: column;
	text-align: center;
}

.c-heading__en {
	color: #999;
	font-size: 8px;
	font-weight: 600;
	letter-spacing: 1.6px;
}

.c-heading__ja {
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 4.4px;
}

.c-company-heading {
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 3px;
	text-align: center;
}

body {
	color: #000;
	font-family: "Noto Sans JP", sans-serif;
}

.header {
	background-color: #F1F1F1;
	padding-block: 7px;
	position: fixed;
	width: 100%;
	z-index: 99;
}

.header__inner {
	background-color: #fff;
}

.header__wrap {
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 700px;
	padding-inline: 19px 8px;
}

.header__nav ul {
	display: flex;
	gap: 16px;
}

.header__nav ul li {
	display: flex;
	padding-top: 2px;
}

.header__link {
	font-size: 9px;
	font-weight: 600;
	letter-spacing: 1.8px;
}

.header__logo {
	display: block;
	margin-top: -2px;
	width: 114.082px;
}

.header__logo img {
	display: block;
	width: 100%;
}

.hero {
	margin-top: 30px;
}

.hero__wrap {
	height: 243px;
	position: relative;
}

.hero__image {
	border-radius: 0px 0px 0px 159px;
	display: block;
	height: 100%;
	overflow: hidden;
	width: 100%;
}

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

.hero__message {
	bottom: 7px;
	display: block;
	position: absolute;
	right: calc(50% - 32px);
	width: clamp(152.75px, 40.73vw, 220px);
}

.hero__message img {
	width: 100%;
}

.hero__item {
	bottom: 0;
	display: block;
	position: absolute;
	right: 0;
	width: clamp(118px, 31.47vw, 150px);
}

.hero__item img {
	width: 100%;
}

.about {
	margin-top: 15px;
	padding-bottom: 22px;
}

.about__wrap {
	display: flex;
	flex-direction: column;
	gap: 17px;
}

.about__content {
	padding-bottom: 68px;
	position: relative;
}

.about__title {
	color: #86C9A9;
	font-size: 22px;
	font-weight: 600;
	letter-spacing: 2.2px;
	line-height: 172%;
	margin: 0 auto;
	max-width: 375px;
	padding-left: 30px;
}

.about__title span {
	font-size: 27px;
	font-weight: 600;
	letter-spacing: 2.7px;
}

.about__image {
	bottom: 0;
	position: absolute;
	right: -55px;
	width: 822px;
}

.about__image--sp {
	display: block;
}

.about__image--pc {
	display: none;
}

.about__image img {
	width: 100%;
}

.about__text {
	font-size: 13px;
	font-weight: 300;
	line-height: 25px;
	text-align: center;
}

.services {
	background: #F1F1F1;
	padding-block: 36px 75px;
}

.services__items {
	display: flex;
	flex-direction: column;
	gap: 46px;
	margin-top: 30px;
}

.services__item {
	display: flex;
	flex-direction: column;
	gap: 7px;
}

.services__image {
	border-radius: 20px;
	display: block;
	overflow: hidden;
	width: 100%;
}

.services__image img {
	width: 100%;
}

.services__content {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin: 0 auto;
	width: 82%;
}

.services__title {
	font-size: 16px;
	font-weight: 600;
	letter-spacing: 1.6px;
	padding-bottom: 4px;
	position: relative;
	text-align: center;
}

.services__title::after {
	background-color: #fff;
	bottom: 0;
	content: "";
	height: 3px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 100%;
}

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

.services__detail-block {
	display: flex;
	flex-direction: column;
	margin-top: 6px;
	text-align: center;
}

.services__detail-block .services__text {
	letter-spacing: normal;
}

.services__head {
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 2.8px;
}

.services__text {
	font-size: 12px;
	font-weight: 300;
	letter-spacing: 0.8px;
	line-height: 183%;
}

.company {
	padding-block: 35px 54px;
}

.company__content {
	margin-top: 20px;
}

.company__thumb {
	position: relative;
}

.company__image {
	border-radius: 20px;
	display: block;
	height: 382px;
	overflow: hidden;
	width: 100%;
}

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

.company__message {
	display: block;
	left: calc(50% - 145px);
	position: absolute;
	top: 32px;
	width: 206px;
}

.company__text {
	font-size: 12px;
	font-weight: 300;
	letter-spacing: 0.6px;
	line-height: 22px;
	margin: 0 auto;
	margin-top: 20px;
	width: 81%;
}

.company__button {
	background: #86C9A9;
	border: 1px solid #86C9A9;
	border-radius: 19px;
	box-sizing: border-box;
	color: #fff;
	color: #FFF;
	display: block;
	font-family: "Noto Sans";
	font-size: 12px;
	font-style: normal;
	font-weight: 300;
	letter-spacing: 1.68px;
	margin: 36px auto 0;
	padding-inline: 20px;
	text-align: center;
	width: 75px;
}

.contact {
	background: #86C9A9;
	padding-block: 36px 44px;
}

.contact .c-heading__en,
.contact .c-heading__ja {
	color: #fff;
}

.contact__content {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-top: 20px;
}

.contact__info {
	align-items: center;
	display: flex;
	gap: 11px;
	justify-content: center;
	width: -moz-fit-content;
	width: fit-content;
}

.contact__icon {
	display: block;
	width: 24px;
}

.contact__icon img {
	display: block;
	width: 100%;
}

.contact__text {
	color: #FFF;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: 1.8px;
}

.contact__text--tel {
	letter-spacing: 3.6px;
}

.message {
	padding-block: 88px 52px;
}

.message__heading {
	position: relative;
}

.message__heading::after {
	background-color: #86C9A9;
	bottom: -4px;
	content: "";
	height: 2px;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 30px;
}

.message__content {
	display: flex;
	flex-direction: column;
	gap: 40px;
	margin-top: 39px;
	position: relative;
	z-index: 1;
}

.message__text {
	font-size: 13px;
	font-weight: 300;
	line-height: 22px; /* 169.231% */
}

.message__name {
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 1.54px;
	line-height: 27px; /* 245.455% */
	text-align: center;
}

.message__circle {
	display: none;
}

.company-profile {
	background: #86C9A9;
	padding-block: 36px;
}

.company-profile__wrap {
	background: #FFF;
	border-radius: 20px;
	margin: 0 auto;
	padding: 48px 20px 37px;
}

.company-profile__items {
	margin-top: 29px;
}

.company-profile__item {
	align-items: center;
	border-top: 1px solid #808080;
	display: flex;
	gap: 22px;
	padding-block: 19px;
}

.company-profile__item:last-child .company-profile__term {
	letter-spacing: -0.55px;
}

.company-profile__item:nth-child(6) .company-profile__desc {
	line-height: 184%;
}

.company-profile__item:last-child {
	border-bottom: 1px solid #808080;
}

.company-profile__term {
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 0.55px;
	padding-left: 12px;
	text-align: center;
	width: 76px;
}

.company-profile__desc {
	font-size: 13px;
	font-weight: 300;
	letter-spacing: 0.65px;
}

.company-profile__desc span {
	font-size: 13px;
	font-weight: 300;
	letter-spacing: normal;
}

.footer {
	background: #F1F1F1;
	padding-block: 28px 26px;
}

.footer__inner {
	margin: 0 auto;
	width: 93%;
}

.footer__contain {
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.footer__content {
	align-items: end;
	display: flex;
	justify-content: space-between;
	padding-inline: 15px;
}

.footer__wrap {
	margin: 0 auto;
}

.footer .footer__content + .footer__qualifications {
	border-top: 1px solid #666;
	padding-top: 20px;
}

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

.footer__logo {
	display: block;
	width: 178px;
}

.footer__logo img {
	width: 100%;
}

.footer__address {
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 0.55px;
	line-height: 15px; /* 136.364% */
	margin-top: 12px;
}

.footer__license {
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 0.55px;
	line-height: 15px; /* 136.364% */
	margin-top: 4px;
}

.footer__sns {
	align-items: center;
	flex-direction: column;
	gap: 3px;
}

.footer__sns--sp {
	display: flex;
}

.footer__sns--pc {
	display: none;
}

.footer__check-icon {
	display: block;
	transform-origin: center bottom;
	transition: 0.3s;
	width: 28px;
}

.footer__check-icon img {
	width: 100%;
}

.footer__check-icon.shake {
	animation: shake 0.4s;
}

.footer__instagram {
	display: block;
	transition: 0.3s;
	width: 30px;
}

.footer__instagram img {
	width: 100%;
}

.footer__instagram:active {
	transform: scale(0.9);
}

.footer__qualifications {
	padding-inline: 15px;
}

.footer__head {
	align-items: center;
	display: flex;
	font-size: 10.987px;
	font-weight: 300;
	gap: 5px;
	letter-spacing: 1.648px;
	line-height: 18.54px; /* 168.75% */
}

.footer__head span {
	background-color: #86C9A9;
	border-radius: 50%;
	display: block;
	height: 7px;
	width: 7px;
}

.footer__items {
	display: flex;
	justify-content: space-between;
	margin-top: 6px;
}

.footer__list {
	font-size: 10.987px;
	font-weight: 300;
	line-height: 19px; /* 172.937% */
}

.s-sm-hidden {
	display: none;
}

.s-md-hidden {
	display: none;
}

.s-min-md-hidden {
	display: block;
}

.s-max-md-hidden {
	display: none;
}

.s-lg-hidden {
	display: block;
}

.s-of-hidden {
	overflow: hidden;
}

.s-hover {
	transition: 0.3s;
}

.s-hover:hover {
	opacity: 0.7;
}

.s-button-hover {
	transition: 0.3s;
}

.s-button-hover:hover {
	background: #FFF;
	color: #86C9A9;
}

.s-fade-in-up {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity 1s, transform 1s;
}

.s-fade-in-up.s-is-in-view {
	opacity: 1;
	transform: translateY(0);
}

.s-fade-in-left {
	opacity: 0;
	transform: translateX(14px);
	transition: opacity 1s, transform 1s;
}

.s-fade-in-left.s-is-in-view {
	opacity: 1;
	transform: translateX(0);
}

.s-fade-in-right {
	opacity: 0;
	transform: translateX(-14px);
	transition: opacity 1s, transform 1s;
}

.s-fade-in-right.s-is-in-view {
	opacity: 1;
	transform: translateX(0);
}

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

.c-inner {
	max-width: 1400px;
}

.c-company__inner {
	max-width: 1400px;
}

.c-heading__en {
	font-size: 13px;
	letter-spacing: 2.6px;
}

.c-heading__ja {
	font-size: 39px;
	letter-spacing: 7.8px;
}

.c-company-heading {
	font-size: 22px;
	letter-spacing: 4.4px;
}

.header {
	padding-block: 29px 23px;
}

.header__wrap {
	max-width: 1400px;
	padding-inline: 70px 45px;
}

.header__nav ul {
	gap: 29px;
}

.header__link {
	font-size: 16px;
	letter-spacing: 3.2px;
}

.header__logo {
	margin-top: -11px;
	width: 313px;
}

.hero {
	margin-top: 84px;
}

.hero__wrap {
	height: 400px;
}

.hero__image {
	border-radius: 0px 0px 0px 144px;
}

.hero__message {
	bottom: 33px;
	left: 84px;
	right: auto;
	width: 500px;
}

.hero__item {
	width: 200px;
}

.about {
	margin-top: 56px;
	padding-bottom: 21px;
}

.about__wrap {
	gap: 25px;
	padding-bottom: 64px;
	position: relative;
}

.about__content {
	padding-bottom: 0;
}

.about__title {
	font-size: 38px;
	letter-spacing: 7.6px;
	max-width: 100%;
	padding-left: 0;
	width: -moz-fit-content;
	width: fit-content;
}

.about__title span {
	font-size: 47px;
	letter-spacing: 9.4px;
}

.about__image {
	right: -70px;
	width: 1400px;
}

.about__image--sp {
	display: none;
}

.about__image--pc {
	display: block;
}

.about__text {
	font-size: 19px;
	letter-spacing: 2.66px;
	line-height: 41px; /* 215.789% */
	margin: 0 auto;
	max-width: 820px;
	padding-inline: 50px;
	text-align: left;
	width: 100%;
}

.services {
	padding-block: 65px 102px;
}

.services .c-inner {
	padding: 0;
}

.services__items {
	gap: 67px;
	margin-top: 87px;
}

.services__item {
	align-items: center;
	flex-direction: row;
	gap: 20px;
	justify-content: space-between;
	position: relative;
	width: 100%;
	z-index: 1;
}

.services__item::after {
	background: url(../img/circle.webp) no-repeat center center/contain;
	content: "";
	height: 172px;
	position: absolute;
	width: 172px;
	z-index: -1;
}

.services__item:first-child .services__content {
	padding-bottom: 20px;
}

.services__item:first-child .services__content::after {
	top: 69px;
}

.services__item:first-child::after {
	right: -34px;
	top: -57px;
}

.services__item:nth-child(2)::after {
	left: -44px;
	top: 30px;
}

.services__item:nth-child(3)::after {
	right: 41px;
	top: -1px;
}

.services__item:nth-child(4)::after {
	bottom: -32px;
	left: 267px;
}

.services__item:nth-child(odd) {
	flex-direction: row;
	margin-inline: 0 auto;
}

.services__item:nth-child(odd) .services__content {
	max-width: 48%;
}

.services__item:nth-child(odd) .services__content::after {
	right: 39px;
	top: 62px;
}

.services__item:nth-child(even) {
	flex-direction: row-reverse;
	margin-inline: auto 0;
}

.services__item:nth-child(even) .services__content {
	max-width: 42%;
}

.services__item:nth-child(even) .services__content::after {
	left: 29px;
	top: 60px;
}

.services__image {
	flex-shrink: 0;
	position: relative;
	width: 45.7%;
	z-index: 1;
}

.services__content {
	gap: 10px;
}

.services__title {
	font-size: 20px;
	text-align: left;
}

.services__title::after {
	bottom: -5px;
}

.services__body {
	gap: 7px;
}

.services__detail-block {
	margin-top: 0px;
	text-align: left;
}

.services__detail-block .services__text {
	letter-spacing: 1.12px;
}

.services__head {
	font-size: 18px;
}

.services__text {
	font-size: 14px;
}

.company {
	padding-block: 80px 52px;
}

.company__content {
	margin-top: 76px;
}

.company__thumb {
	margin: 0 auto;
	max-width: 1090px;
}

.company__image {
	height: 467px;
}

.company__message {
	left: 75px;
	top: 50%;
	transform: translateY(-11%);
	width: 254px;
}

.company__text {
	font-size: 19px;
	letter-spacing: 2.66px;
	line-height: 38px;
	margin-top: 58px;
	text-align: center;
	white-space: nowrap;
}

.company__button {
	font-size: 19px;
	letter-spacing: 2.66px;
	margin: 43px auto 0;
	width: 148px;
}

.contact {
	padding-block: 42px 57px;
}

.contact .c-heading__ja {
	font-size: 20px;
	letter-spacing: 4px;
}

.contact__content {
	gap: 15px;
	margin-top: 25px;
}

.contact__info {
	gap: 16px;
}

.contact__icon {
	width: 40px;
}

.contact__text {
	font-size: 30px;
	letter-spacing: 3px;
}

.contact__text--tel {
	letter-spacing: 6px;
}

.message {
	padding-block: 208px 87px;
}

.message__heading::after {
	bottom: -6px;
	width: 50px;
}

.message__content {
	gap: 86px;
	margin-top: 74px;
}

.message__text {
	font-size: 16px;
	letter-spacing: 2.24px;
	line-height: 27px; /* 168.75% */
	text-align: center;
}

.message__name {
	font-size: 12px;
	letter-spacing: 1.68px;
	line-height: 27px; /* 225% */
}

.message__circle {
	display: block;
	position: absolute;
	right: calc(50% - 465px);
	top: -105px;
	width: 172px;
	z-index: -1;
}

.message__circle img {
	width: 100%;
}

.company-profile {
	padding-block: 66px 72px;
}

.company-profile__wrap {
	border-radius: 30px;
	max-width: 876px;
	padding: 50px 70px 45px;
}

.company-profile__items {
	margin-top: 49px;
}

.company-profile__item {
	gap: 10px;
	justify-content: space-between;
	padding-block: 38px;
}

.company-profile__item:last-child .company-profile__term {
	letter-spacing: 2.24px;
}

.company-profile__item:nth-child(6) .company-profile__desc {
	line-height: 242.5%;
}

.company-profile__term {
	font-size: 16px;
	letter-spacing: 2.24px;
	line-height: 27px; /* 168.75% */
	padding-left: 20px;
	width: 130px;
}

.company-profile__desc {
	font-size: 16px;
	letter-spacing: 2.24px;
	line-height: 27px; /* 168.75% */
	padding-right: 10px;
	width: 410px;
}

.company-profile__desc span {
	font-size: 16px;
	letter-spacing: 2.24px;
	line-height: 27px; /* 168.75% */
}

.footer {
	padding-block: 35px 26px;
}

.footer__contain {
	margin: 0 auto;
	width: 700px;
}

.footer__wrap {
	align-items: end;
	display: flex;
	justify-content: space-between;
}

.footer__logo {
	width: 320px;
}

.footer__address {
	font-size: 16px;
	letter-spacing: 2.4px;
	line-height: 27px; /* 168.75% */
	margin-top: 16px;
}

.footer__license {
	font-size: 16px;
	letter-spacing: 2.4px;
	line-height: 27px; /* 168.75% */
	margin-top: 18px;
}

.footer__sns {
	gap: 5px;
	margin-bottom: 3px;
}

.footer__check-icon {
	width: 52px;
}

.footer__instagram {
	width: 55px;
}

.footer__qualifications {
	display: flex;
	gap: 27px;
}

.footer__head {
	font-size: 16px;
	gap: 7px;
	height: -moz-fit-content;
	height: fit-content;
	letter-spacing: 2.4px;
	line-height: 27px; /* 168.75% */
}

.footer__head span {
	height: 10px;
	width: 10px;
}

.footer__items {
	gap: 20px;
}

.footer__list {
	font-size: 16px;
	letter-spacing: 2.4px;
	line-height: 25px; /* 168.75% */
}

.s-sm-hidden {
	display: block;
}

.s-min-md-hidden {
	display: none;
}

.s-max-md-hidden {
	display: block;
}

}

@media screen and (min-width: 1080px) {

.hero__wrap {
	height: 480px;
}

.hero__message {
	width: 716px;
}

.hero__item {
	width: 286px;
}

.about__title {
	text-align: center;
}

.about__image {
	right: 50%;
	transform: translateX(50%);
	width: 100%;
}

.about__text {
	max-width: 1115px;
}

.services__item:nth-child(3)::after {
	right: 202px;
	top: 37px;
}

.services__item:nth-child(4)::after {
	bottom: 23px;
	left: 310px;
}

.services__item:nth-child(odd) {
	max-width: 1319px;
}

.services__item:nth-child(odd) .services__content {
	padding-right: 50px;
}

.services__item:nth-child(even) {
	max-width: 1305px;
}

.services__item:nth-child(even) .services__content {
	padding-left: 50px;
}

.services__image {
	width: 55.7%;
}

.services__content {
	gap: 34px;
	margin: 0;
	padding-bottom: 13px;
	position: relative;
	width: 460px;
	z-index: 0;
}

.services__content::after {
	background-color: #fff;
	content: "";
	height: 3px;
	position: absolute;
	width: 281%;
	z-index: -1;
}

.services__title {
	font-size: 28px;
	letter-spacing: 5.6px;
}

.services__title::after {
	display: none;
}

.services__body {
	gap: 17px;
}

.services__head {
	font-size: 24px;
	letter-spacing: 4.8px;
}

.services__text {
	font-size: 16px;
	letter-spacing: 2.4px;
	line-height: 27px; /* 168.75% */
}

.company-profile__wrap {
	max-width: 976px;
}

.company-profile__term {
	padding-left: 44px;
	width: 154px;
}

.company-profile__desc {
	padding-right: 38px;
	width: 438px;
}

.s-md-hidden {
	display: block;
}

.s-lg-hidden {
	display: none;
}

}

@media screen and (min-width: 1280px) {

.footer__contain {
	flex-direction: row;
	gap: 86px;
	width: 100%;
}

.footer .footer__content + .footer__qualifications {
	border-left: 1px solid #666;
	border-top: none;
}

.footer__sns--sp {
	display: none;
}

.footer__sns--pc {
	display: flex;
}

.footer__qualifications {
	padding-inline: 41px 0px;
}

.footer__items {
	flex-direction: column;
	gap: 0;
	margin-top: 0;
}

}

@keyframes shake {

0% {
	transform: rotate(0deg);
}

35% {
	transform: rotate(5deg);
}

65% {
	transform: rotate(-5deg);
}

100% {
	transform: rotate(0deg);
}

}

