@import url("https://fonts.googleapis.com/css2?family=M+PLUS+2:wght@100..900&family=Montserrat:ital,wght@0,100..900;1,100..900&family=Noto+Sans+JP:wght@100..900&display=swap");
:root {
	--font-base: "Noto Sans JP", sans-serif;
	--font-en: "Montserrat", sans-serif;
	--font-sub: "M PLUS 2", sans-serif;
}

*,
*::before,
*::after {
	margin: 0;
	padding: 0;
	border: 0;
	box-sizing: border-box;
	font-weight: inherit;
	font-size: inherit;
	font-style: inherit;
	vertical-align: baseline;
	background: transparent;
}

html {
	width: 100%;
	font-size: 62.5%;
	background-color: #fff;
	scroll-behavior: smooth;
}

html.locked {
	overflow: hidden;
}

body {
	font-size: 1.4rem;
	line-height: 1.6;
	font-family: var(--font-sans);
	letter-spacing: 0;
	overflow-wrap: anywhere;
	word-break: normal;
	line-break: strict;
	color: var(--color-text);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: none;
}

@media (min-width: 751px) {
	body {
		font-size: 1.6rem;
	}
}
a {
	text-decoration: underline;
	color: var(--color-text);
}

a:visited {
	color: var(--color-text);
}

@media (hover: hover) {
	a:hover {
		color: var(--color-text);
	}
}
img {
	width: 100%;
	height: auto;
	vertical-align: top;
}

body {
	margin: 0;
}

.l-content {
	overflow: hidden;
}

.l-section {
	width: 100%;
	max-width: 1060px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 15px;
	padding-right: 15px;
}

@media (min-width: 751px) {
	.l-section {
		padding-left: 30px;
		padding-right: 30px;
	}
}
body {
	font-family: var(--font-base);
}

.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

@media only screen and (max-width: 750px) {
	.l-section {
		padding-inline: 5.1282051282vw;
	}
}

.page-kv {
	padding-block: 40px 100px;
	background-color: #FFEEEE;
}
@media only screen and (max-width: 750px) {
	.page-kv {
		padding-block: 10.2564102564vw 20.5128205128vw;
		padding-inline: 5.1282051282vw;
	}
}
.page-kv__img {
	width: 690px;
	margin-inline: auto;
}
@media only screen and (max-width: 750px) {
	.page-kv__img {
		width: 100%;
	}
}
.page-kv__img img {
	width: 100%;
}
.page-kv__lead {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 13px;
	margin: 16px 0 0;
	font-family: var(--font-sub);
	text-align: center;
	font-weight: 800;
	color: #073291;
	font-size: min(2rem,
		2vw);
}
@media only screen and (max-width: 750px) {
	.page-kv__lead {
		font-size: 3.8461538462vw;
		line-height: 1.4666666667;
	}
}
.page-kv__lead::before, .page-kv__lead::after {
	content: "";
	display: inline-block;
	width: 46px;
	height: 3px;
	background-color: #073291;
}
@media only screen and (max-width: 750px) {
	.page-kv__lead::before, .page-kv__lead::after {
		width: 8.2051282051vw;
		height: 0.5128205128vw;
	}
}

.lead-area {
	margin-bottom: 70px;
}
@media only screen and (max-width: 750px) {
	.lead-area {
		margin-bottom: 30px;
	}
}

.lead-box {
	margin-top: -55px;
	padding: 55px 50px 70px;
	background-color: #fff;
	border-radius: 30px;
}
@media only screen and (max-width: 750px) {
	.lead-box {
		margin-inline: -20px;
		margin-top: -14.1025641026vw;
		padding: 7.6923076923vw 5.1282051282vw 10.2564102564vw;
	}
}
.lead-box__ttl {
	margin-bottom: 20px;
	font-family: var(--font-sub);
	font-size: min(2.2rem,
		2.2vw);
	font-weight: 800;
	color: #073291;
}
@media only screen and (max-width: 750px) {
	.lead-box__ttl {
		font-size: 4.358974359vw;
		line-height: 1.5294117647;
	}
}
.lead-box__txt {
	margin-top: 1em;
	color: #202020;
	font-size: min(1.6rem,
		1.6vw);
	line-height: 1.8125;
}
@media only screen and (max-width: 750px) {
	.lead-box__txt {
		font-size: 3.5897435897vw;
		line-height: 1.7142857143;
	}
}

.anchor-nav {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}
@media (max-width: 767px) {
	.anchor-nav {
		grid-template-columns: repeat(2, 1fr);
		gap: 12px;
	}
}
.anchor-nav__link {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 8px;
	min-height: 65px;
	padding: 8px 10px;
	border: 2px solid #ddd;
	border-radius: 10px;
	text-align: center;
	text-decoration: none;
	transition: border-color 0.3s, color 0.3s;
	font-family: var(--font-sub);
	text-align: center;
	color: #202020;
	font-size: min(1.7rem,
		1.7vw);
	font-weight: 800;
}
@media only screen and (max-width: 750px) {
	.anchor-nav__link {
		min-height: auto;
		font-size: 3.5897435897vw;
	}
}
.anchor-nav__link::after {
	content: "";
	display: block;
	-webkit-mask: url(/assets/img/icon/anchor.svg) no-repeat center/contain;
					mask: url(/assets/img/icon/anchor.svg) no-repeat center/contain;
	width: 10px;
	height: 10px;
	background-color: #073291;
}
.anchor-nav__link:hover, .anchor-nav__link:focus-visible {
	border-color: #073291;
	color: #073291;
}

.mamolog-ttl {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 80px;
	-webkit-margin-start: 32px;
					margin-inline-start: 32px;
	padding-inline: 18px;
	border-radius: 10px;
	background-color: #FFEEEE;
	font-family: var(--font-sub);
	font-size: min(2.4rem,
		2.4vw);
	font-weight: 800;
	color: #202020;
}
@media only screen and (max-width: 750px) {
	.mamolog-ttl {
		-webkit-margin-start: 5.641025641vw;
						margin-inline-start: 5.641025641vw;
		padding: 4.6153846154vw;
		min-height: auto;
		font-size: 5.1282051282vw;
	}
}
.mamolog-ttl::before {
	content: "";
	display: block;
	position: absolute;
	left: -32px;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 100%;
	background-color: #F09199;
	border-radius: 20px;
}
@media only screen and (max-width: 750px) {
	.mamolog-ttl::before {
		left: -5.641025641vw;
		width: 3.5897435897vw;
	}
}

.numbered-card-list {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 36px;
	margin-top: 50px;
	counter-reset: card-number;
}
@media only screen and (max-width: 750px) {
	.numbered-card-list {
		grid-template-columns: 1fr;
		gap: 9.2307692308vw;
		margin-top: 8.9743589744vw;
	}
}
.numbered-card-list__note {
	margin-top: 18px;
	-webkit-padding-start: 1.2em;
					padding-inline-start: 1.2em;
	text-indent: -1.2em;
	font-size: min(1.4rem,
		1.4vw);
	color: #757575;
}
@media only screen and (max-width: 750px) {
	.numbered-card-list__note {
		font-size: 3.0769230769vw;
	}
}

.numbered-card {
	display: flex;
	flex-direction: column;
	gap: 18px;
	counter-increment: card-number;
}
.numbered-card__title {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 90px;
	margin-bottom: 16px;
	text-align: center;
	font-family: var(--font-sub);
	font-weight: 800;
	color: #073291;
	font-size: min(2.1rem,
		2.1vw);
	line-height: 1.4285714286;
}
.numbered-card__title::before {
	content: counter(card-number);
	position: absolute;
	left: 0;
	top: 50%;
	z-index: -1;
	transform: translateY(-50%);
	font-family: var(--font-en);
	color: rgba(7, 50, 145, 0.05);
	font-weight: 800;
	font-size: 83px;
	line-height: 1;
}
@media only screen and (max-width: 750px) {
	.numbered-card__title::before {
		font-size: 21.2820512821vw;
	}
}
@media only screen and (max-width: 750px) {
	.numbered-card__title {
		min-height: auto;
		font-size: 5.1282051282vw;
		line-height: 1.4;
	}
}
.numbered-card__image {
	overflow: hidden;
	border-radius: 20px;
}
.numbered-card__image img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
}
.numbered-card__body {
	flex: 1;
}
.numbered-card__body p {
	color: #202020;
	font-size: min(1.6rem,
		1.6vw);
	line-height: 1.625;
}
@media only screen and (max-width: 750px) {
	.numbered-card__body p {
		font-size: 3.5897435897vw;
		line-height: 1.7142857143;
	}
}

.process-flow {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: min(5rem,
		5vw);
	margin-top: 50px;
}
@media only screen and (max-width: 750px) {
	.process-flow {
		grid-template-columns: 1fr;
		gap: 12.8205128205vw;
		margin-top: 8.9743589744vw;
	}
}
.process-flow__step {
	position: relative;
	padding: 30px 20px;
	border: 1px solid #073291;
	border-radius: 20px;
}
@media only screen and (max-width: 750px) {
	.process-flow__step {
		padding: 7.6923076923vw 5.1282051282vw 5.1282051282vw;
	}
}
.process-flow__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 50%;
	right: -38px;
	height: calc(30px * tan(60deg));
	width: 20px;
	-webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
					clip-path: polygon(0 0, 100% 50%, 0 100%);
	background-color: #BAC6E0;
	transform: translateY(-50%);
}
@media only screen and (max-width: 1060px) {
	.process-flow__step:not(:last-child)::after {
		right: -3.8vw;
		height: calc(3vw * tan(60deg));
		width: 2vw;
	}
}
@media only screen and (max-width: 750px) {
	.process-flow__step:not(:last-child)::after {
		top: auto;
		right: 50%;
		bottom: -11.5384615385vw;
		width: calc(5.1282051282vw / 2 * tan(60deg));
		height: 10.2564102564vw;
		transform: translateX(50%) rotate(90deg);
	}
}
.process-flow__label {
	margin-bottom: 13px;
	font-family: var(--font-en);
	text-align: center;
	color: #073291;
	font-weight: 800;
	font-size: min(2.3rem,
		2.3vw);
	font-weight: 700;
	line-height: 1;
}
@media only screen and (max-width: 750px) {
	.process-flow__label {
		font-size: 5.8974358974vw;
	}
}
.process-flow__title {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	margin-bottom: 16px;
	text-align: center;
	font-family: var(--font-sub);
	color: #202020;
	font-weight: 800;
	font-size: min(1.8rem,
		1.8vw);
	line-height: 1.4444444444;
}
@media only screen and (max-width: 750px) {
	.process-flow__title {
		min-height: auto;
		margin-bottom: 0vw;
		font-size: 4.6153846154vw;
	}
}
@media only screen and (max-width: 750px) {
	.process-flow__image {
		width: 65%;
		margin-inline: auto;
		text-align: center;
	}
	.process-flow__image img {
		display: inline-block;
		width: 100%;
	}
}
.process-flow + p {
	margin-top: 30px;
	color: #202020;
	font-size: min(1.6rem,
		1.6vw);
	line-height: 1.625;
}
@media only screen and (max-width: 750px) {
	.process-flow + p {
		font-size: 3.5897435897vw;
		line-height: 1.7142857143;
	}
}

.feature-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 50px;
	margin-top: 50px;
}
@media only screen and (max-width: 750px) {
	.feature-grid {
		grid-template-columns: 1fr;
		gap: 0;
		margin-top: 8.9743589744vw;
	}
}

.feature-lead {
	margin-top: 40px;
	padding: 15px;
	background-color: #EDF1FA;
	border-radius: 15px;
	text-align: center;
	font-family: var(--font-sub);
	font-weight: 800;
	color: #073291;
	font-size: min(2.2rem,
		2.2vw);
	line-height: 1.8181818182;
}
@media only screen and (max-width: 750px) {
	.feature-lead {
		margin-top: 10.2564102564vw;
		font-size: 4.8717948718vw;
		line-height: 1.4736842105;
	}
}
#features .feature-lead {
	margin-top: 25px;
}
@media only screen and (max-width: 750px) {
	#features .feature-lead {
		margin-top: 8.9743589744vw;
	}
}

.feature-card {
	display: flex;
	flex-direction: column;
	gap: 15px;
}
@media only screen and (max-width: 750px) {
	.feature-card {
		gap: 5.1282051282vw;
		padding-block: 5.1282051282vw;
	}
	.feature-card:not(:last-child) {
		border-bottom: 1px dashed #BAC6E0;
	}
}
.feature-card__title {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 60px;
	font-family: var(--font-sub);
	text-align: center;
	color: #073291;
	font-weight: 800;
	font-size: min(2.1rem,
		2.1vw);
	line-height: 1.444;
}
@media only screen and (max-width: 750px) {
	.feature-card__title {
		min-height: auto;
		font-size: 5.3846153846vw;
	}
}
.feature-card__image {
	text-align: center;
}
@media only screen and (max-width: 750px) {
	.feature-card__image {
		width: auto;
		height: 35.8974358974vw;
		margin-inline: auto;
	}
}
.feature-card__image img {
	display: block;
	height: auto;
	margin: 0 auto;
}
#features .feature-card__image img {
	width: min(17rem,
		17vw);
}
@media only screen and (max-width: 750px) {
	#features .feature-card__image img {
		width: auto;
		height: 30.7692307692vw;
	}
}
@media only screen and (max-width: 750px) {
	#results .feature-card__image img {
		width: auto;
		height: 100%;
	}
}
.feature-card__body {
	flex: 1;
}
.feature-card__body p {
	color: #202020;
	font-size: min(1.6rem,
		1.6vw);
	line-height: 1.625;
}
@media only screen and (max-width: 750px) {
	.feature-card__body p {
		font-size: 3.5897435897vw;
		line-height: 1.7142857143;
	}
}

@media only screen and (max-width: 750px) {
	.feature-grid {
		grid-template-columns: 1fr;
	}
}
#features .feature-grid {
	margin-inline: min(6rem,
		6vw);
}
@media only screen and (max-width: 750px) {
	#features .feature-grid {
		margin-inline: 0vw;
	}
}

.benefits__flow {
	display: grid;
	align-items: center;
	gap: min(4rem,
		4vw);
	margin-top: min(6rem,
		6vw);
}
@media only screen and (max-width: 750px) {
	.benefits__flow {
		display: flex;
		flex-direction: column;
		gap: 20.5128205128vw;
		margin-top: 10.2564102564vw;
	}
}
.benefits__item {
	margin: 0;
	width: 100%;
	max-width: 460px;
}
.benefits__item:first-child {
	position: relative;
	grid-column: 1;
}
.benefits__item:last-child {
	grid-column: 3;
}
.benefits__item:first-child::after {
	content: "";
	display: block;
	position: absolute;
	top: 55.5%;
	right: -60px;
	width: 35px;
	height: calc(45px * tan(60deg));
	background-color: #BAC6E0;
	-webkit-clip-path: polygon(0 0, 100% 50%, 0 100%);
					clip-path: polygon(0 0, 100% 50%, 0 100%);
	transform: translateY(-50%);
}
@media only screen and (max-width: 1060px) {
	.benefits__item:first-child::after {
		right: -6vw;
		height: calc(4.5vw * tan(60deg));
		width: 3.5vw;
	}
}
@media only screen and (max-width: 750px) {
	.benefits__item:first-child::after {
		top: calc(100% + 3.8461538462vw);
		left: 50%;
		width: calc(7.6923076923vw / 2 * tan(60deg));
		height: calc(8.9743589744vw * tan(60deg));
		transform: translateX(-50%) rotate(90deg);
	}
}
@media only screen and (max-width: 750px) {
	.benefits__item {
		width: 100%;
	}
}
.benefits__caption {
	margin-bottom: min(2rem,
		2vw);
	font-family: var(--font-sub);
	font-weight: 800;
	text-align: center;
	font-size: min(2.4rem,
		2.4vw);
	line-height: 1.4444444444;
}
@media only screen and (max-width: 750px) {
	.benefits__caption {
		font-size: 4.6153846154vw;
		line-height: 1.5555555556;
	}
}
.benefits__caption.caption01 {
	color: #B65596;
}
.benefits__caption.caption02 {
	color: #073291;
}
.benefits__image {
	display: block;
	width: 100%;
	height: auto;
}

#results > p {
	margin-top: 50px;
	color: #202020;
	font-size: min(1.6rem,
		1.6vw);
	line-height: 1.625;
}
@media only screen and (max-width: 750px) {
	#results > p {
		margin-top: 8.9743589744vw;
		font-size: 3.5897435897vw;
		line-height: 1.7142857143;
	}
}

.mamolog_blue_bnr_btn {
	padding-block: 14px;
	background-color: #073291 !important;
	border: 2px solid #073291 !important;
	font-family: var(--font-sub);
	font-size: min(2.1rem,
		2.1vw);
	font-weight: 800;
	line-height: 1;
	color: #fff !important;
	transition: background-color 0.3s, border-color 0.3s, color 0.3s;
}
@media only screen and (max-width: 750px) {
	.mamolog_blue_bnr_btn {
		font-size: 4.6153846154vw;
	}
}
.mamolog_blue_bnr_btn::after {
	display: none;
}
.mamolog_blue_bnr_btn:hover, .mamolog_blue_bnr_btn:focus-visible {
	background-color: #fff !important;
	border-color: #073291 !important;
	color: #073291 !important;
}

#contact {
	margin-bottom: min(14rem, 14vw);
}
#contact > p {
	margin-top: 50px;
	color: #202020;
	font-size: min(1.6rem, 1.6vw);
	font-weight: 500;
	line-height: 1.625;
	text-align: center;
}
@media only screen and (max-width: 750px) {
	#contact {
		margin-bottom: 23.0769230769vw;
	}
	#contact > p {
		margin-top: 8.9743589744vw;
		font-size: 3.5897435897vw;
		line-height: 1.7142857143;
	}
}
/* #contact .c-button-container__item {
	max-width: 500px;
} */

#contact .mamolog_contact_email span {
	font-size: 2.4rem;
	font-family: var(--font-sub);
	font-weight: 900;
	color: #073291;
}
@media only screen and (max-width: 750px) {
	#contact .mamolog_contact_email span {
		font-size: 5.1282051282vw;
	}
}

