@charset "UTF-8";
*,
*:before,
*:after {
	box-sizing: border-box;
}

html {
	font-size: 16px;
	height: 100%;
	scroll-behavior: smooth;
}

body {
	color: #4A4A4A;
	font-family: "Noto Sans JP", sans-serif;
	font-weight: 400;
	line-height: 1.5;
}

/* bodyがこのクラスを持っている時、スクロールを禁止する */

body.is-fixed {
	height: 100%;
	overflow: hidden;
}

img,
video,
object {
	border: none;
	display: block;
	height: auto;
	max-width: 100%;
}

a {
	cursor: pointer;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

a:hover {
	opacity: 0.7;
}

/*===================================================================
# Header
===================================================================*/

.header {
	left: 0;
	margin-inline: auto;
	max-width: 90rem;
	position: fixed;
	right: 0;
	top: 0;
	transition: transform 0.3s ease;
	width: 100%;
	z-index: 100;
}

.header.is-hidden {
	transform: translateY(-100%);
}

.header__inner {
	align-items: center;
	background-color: rgba(255, 255, 255, 0.9);
	display: flex;
	height: 7.75rem;
	padding: 1.5rem 3rem 0.75rem;
	width: 69.5rem;
	-moz-column-gap: 4rem;
	column-gap: 4rem;
	transition: width 0.3s ease;
}

.header.is-wide .header__inner {
	width: 90rem;
}

.header__main {
	display: flex;
	flex-direction: column;
	row-gap: 0.6875rem;
}

.header__brand {
	display: flex;
	flex-direction: column;
	width: -moz-fit-content;
	width: fit-content;
}

.header__logo a {
	display: block;
}

.header__logo img {
	aspect-ratio: 375/41;
	display: block;
	height: auto;
	width: 23.4375rem;
}

.header__group-text {
	color: #A2A2A2;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.5rem;
	margin-block-start: -0.4375rem;
	text-align: right;
}

.header__nav {
	width: -moz-fit-content;
	width: fit-content;
}

.header__list {
	align-items: center;
	display: flex;
	justify-content: center;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
	list-style: none;
}

.header__item a {
	align-items: center;
	color: #2E2E2E;
	display: flex;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.875rem;
	font-weight: 500;
	justify-content: center;
	letter-spacing: 0.06em;
	line-height: 1;
	padding: 0.5rem;
	position: relative;
}

.header__item a::after {
	background-color: currentColor;
	content: "";
	height: 0.0625rem;
	inset-block-end: 0.125rem;
	inset-inline: 0.5rem;
	position: absolute;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.3s ease;
}

.header__cta {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 0.375rem;
}

.header__cta-text {
	color: #2E2E2E;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1;
}

.header__btn {
	align-items: center;
	display: flex;
	justify-content: center;
	overflow: hidden;
	position: relative;
	-moz-column-gap: 0.5rem;
	background-color: #F15C00;
	border-radius: 624.9375rem;
	color: #FFFFFF;
	column-gap: 0.5rem;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 1.25rem;
	font-weight: 500;
	height: 3.4375rem;
	line-height: 1;
	padding-inline: 3rem;
}

.header__btn::before {
	background-color: #0052E0;
	bottom: -0.0625rem;
	content: "";
	left: -1.25rem;
	position: absolute;
	right: -1.25rem;
	top: -0.0625rem;
	transform: translateX(-120%) skewX(15deg);
	transition: transform 0.4s ease;
	z-index: 0;
}

.header__btn--meta03 {
	background-color: #EE0400;
}

.header__btn-text {
	position: relative;
	z-index: 1;
}

.header__btn-text--sp {
	display: none;
}

/*===================================================================
# Global Navigation
===================================================================*/

.nav {
	background-color: #F0FAFE;
	left: 0;
	position: fixed;
	top: 5.875rem;
	width: 100%;
	z-index: 99;
}

body.home .nav {
	display: block;
	position: relative;
	top: auto;
}

body.home .nav.is-fixed {
	position: fixed;
	top: 5.875rem;
}

.nav__inner {
	margin-inline: auto;
	max-width: 90rem;
	padding-block: 1.9375rem 2.125rem;
}

.nav__list {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	list-style: none;
}

.nav__list > li > a {
	display: block;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1;
	padding-inline: 1.75rem;
	position: relative;
	text-decoration: none;
	transition: color 0.2s ease;
	white-space: nowrap;
}

.nav__list > li:not(:last-child) > a::after {
	background-color: rgba(0, 167, 234, 0.2);
	content: "";
	height: 1.4375rem;
	position: absolute;
	right: 0;
	top: 50%;
	translate: 0 -50%;
	width: 0.0625rem;
}

.nav__list > li.nav__link--unclickable > a {
	cursor: default;
	pointer-events: none;
}

.nav__list > .current-menu-item > a,
.nav__list > .current-menu-ancestor > a {
	color: #00A7EA;
}

.nav__list > li.menu-item-has-children {
	cursor: pointer;
	position: relative;
}

.nav__list > li.menu-item-has-children > a {
	align-items: center;
	display: flex;
	gap: 0.375rem;
	pointer-events: none;
}

.nav__list > li.menu-item-has-children > a::after {
	background-color: transparent;
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="9" height="6" viewBox="0 0 9 6" fill="none"><path d="M7.93335 1L4.46668 4.46667L1.00002 1" stroke="%2300A7EA" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></svg>');
	background-repeat: no-repeat;
	background-size: contain;
	content: "";
	flex-shrink: 0;
	height: 0.375rem;
	position: static;
	right: auto;
	top: auto;
	transition: transform 0.3s ease;
	translate: none;
	width: 0.5625rem;
}

.nav__list > li.menu-item-has-children.is-open > a::after {
	transform: rotate(180deg);
}

.nav__list > li.menu-item-has-children > .sub-menu {
	display: none;
	grid-template-columns: repeat(3, auto);
	position: absolute;
	top: calc(100% + 0.5rem);
}

.nav__list > li.menu-item-has-children > .sub-menu::before {
	content: "";
	height: 0.5rem;
	inset-block-start: -0.5rem;
	left: 0;
	position: absolute;
	right: 0;
}

.nav__list > li.menu-item-has-children > .sub-menu {
	background-color: #FFFFFF;
	border: 0.0625rem solid #D9D9D9;
	border-radius: 0.375rem;
	box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.08);
	left: 50%;
	list-style: none;
	padding-block: 0.5rem;
	translate: -50%;
	white-space: nowrap;
	z-index: 10;
}

.nav__list > li.menu-item-has-children > .sub-menu li a {
	display: block;
	font-size: 0.8125rem;
	font-weight: 500;
	padding-block: 0.5rem;
	padding-inline: 1rem;
	text-decoration: none;
}

.nav__list > li.menu-item-has-children.is-open > .sub-menu,
.nav__list > li.menu-item-has-children:not(.is-closed):hover > .sub-menu {
	display: grid;
}

.nav__list > li.menu-item-has-children:not(.is-closed):hover > a::after {
	transform: rotate(180deg);
}

/*===================================================================
# Footer
===================================================================*/

.footer {
	background-color: #FFFFFF;
	margin-inline: auto;
	max-width: 90rem;
	width: 100%;
}

.footer__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	padding: 2rem 0 3rem;
	row-gap: 1.5rem;
}

.footer__top-logo {
	display: none;
}

.footer__top-logo img {
	aspect-ratio: 82/52;
	display: block;
	height: auto;
	width: 5.125rem;
}

.footer__body {
	display: flex;
	flex-direction: column;
	row-gap: 1.5rem;
}

.footer__main {
	align-items: center;
	display: flex;
	-moz-column-gap: 3rem;
	column-gap: 3rem;
}

.footer__jpx {
	order: 1;
}

.footer__jpx img {
	aspect-ratio: 49/57;
	display: block;
	height: auto;
	width: 3.0625rem;
}

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

.footer__brand-logo {
	aspect-ratio: 82/52;
	display: block;
	height: auto;
	width: 5.125rem;
}

.footer__company {
	display: flex;
	flex-direction: column;
	row-gap: 0.5rem;
}

.footer__info {
	color: #2E2E2E;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.625rem;
	line-height: 1.25;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.footer__note {
	color: #A2A2A2;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.4375rem;
	line-height: 1.5;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.footer__nav {
	align-items: center;
	display: flex;
}

.footer__nav--inline {
	order: 3;
	-moz-column-gap: 3rem;
	column-gap: 3rem;
}

.footer__nav--block {
	display: none;
}

.footer__link {
	color: #2E2E2E;
	display: inline-block;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.6875rem;
	line-height: 1.4;
	position: relative;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.footer__link::after {
	background-color: currentColor;
	content: "";
	height: 0.0625rem;
	inset-block-end: -0.125rem;
	inset-inline: 0;
	position: absolute;
	transform: scaleX(0);
	transform-origin: center;
	transition: transform 0.3s ease;
}

.footer__divider {
	border: none;
	border-block-start: 0.0625rem solid #B7B7B7;
	margin: 0;
	width: 100%;
}

.footer__copyright {
	color: #2E2E2E;
	font-family: "Noto Sans JP", sans-serif;
	font-size: 0.625rem;
	line-height: 1.4;
}

/*===================================================================
# Common（共通ユーティリティ）
===================================================================*/

.js-fadein {
	opacity: 0;
	transform: translateY(1.875rem);
	transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}

.js-fadein.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/*===================================================================
# Button（汎用ボタン基底）
サンクスページの `<a class="button to-calendar">` などで使用される。
色やレイアウトの上書きはページ側（例: `_thanks.scss`）で行う。
===================================================================*/

.button {
	align-items: center;
	display: flex;
	-moz-column-gap: 1rem;
	background-color: #F9F20C;
	border-radius: 62.4375rem;
	column-gap: 1rem;
	margin-inline: auto;
	overflow: hidden;
	padding-block: 1.4375rem;
	padding-inline: 3.125rem;
	position: relative;
	transition: color 0.4s ease;
	width: -moz-fit-content;
	width: fit-content;
}

.button > span,
.button > svg {
	position: relative;
	z-index: 1;
}

.button span {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05rem;
	line-height: 1;
	transform: translateY(-0.0625rem);
}

.button svg {
	flex-shrink: 0;
	height: 0.5625rem;
	width: 0.375rem;
}

.button svg path {
	stroke: currentColor;
}

.button::before {
	background-color: #00A7EA;
	bottom: -0.0625rem;
	content: "";
	left: -1.25rem;
	position: absolute;
	right: -1.25rem;
	top: -0.0625rem;
	transform: translateX(-120%) skewX(15deg);
	transition: transform 0.4s ease;
	z-index: 0;
}

/*===================================================================
# Inner
===================================================================*/

.inner {
	margin-inline: auto;
	width: 100%;
}

/*===================================================================
# MV（メインビジュアル）
===================================================================*/

.mv {
	background-color: #435D6B;
	background-image: url("../../mamp/img/common/image-mv.webp");
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #FFFFFF;
	min-height: 43.25rem;
	position: relative;
}

.mv--meta03 {
	background-image: url("../../mamp/img/common/image-mv-meta03.webp");
}

.mv--meta03 .mv__inner {
	padding-block-start: 5.6875rem;
	row-gap: 0;
}

.mv--meta03 .mv__campaign {
	margin-block-end: 0;
}

.mv--meta03 .mv__badges {
	margin-block-end: 2.5rem;
}

.mv--meta03 .mv__credits {
	padding-block-end: 4.5rem;
}

.mv__inner {
	display: flex;
	flex-direction: column;
	min-height: inherit;
	padding-block-start: 8.4375rem;
	padding-inline-start: 10rem;
	row-gap: 3rem;
	width: 100%;
}

.mv__campaign {
	align-items: flex-end;
	display: flex;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	margin-block-end: -1rem;
}

.mv__campaign-tag {
	background-color: #FFFFFF;
	color: #507688;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	padding: 0.75rem 1rem;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.mv__campaign-tag--meta03 {
	background-color: #EE0400;
	color: #FFFFFF;
	font-size: 1.5rem;
	padding: 1rem;
}

.mv__campaign-note {
	font-size: 0.75rem;
	line-height: 1.3;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.mv__title {
	font-family: "Noto Serif JP", serif;
	font-size: 4.1875rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.mv__title--meta02 {
	font-size: 3.6875rem;
}

.mv__title--meta03 {
	font-size: 4.6875rem;
	margin-block: 1.5rem;
}

.mv__title-accent--meta03 {
	color: #EE0400;
}

.mv__subtitle--meta03 {
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1.2;
	margin: 0;
	margin-block-end: 2rem;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.mv__badges {
	display: flex;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
	filter: drop-shadow(0 0 0.625rem rgba(0, 0, 0, 0.25));
}

.mv__badge {
	align-items: center;
	background-image: url("../../mamp/img/common/deco-mv.svg");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	color: #E2FFB5;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	height: 8.75rem;
	justify-content: center;
	text-align: center;
	width: 9.375rem;
}

.mv__badge--1 {
	padding: 1.8125rem 2.0625rem 2rem;
	row-gap: 0.125rem;
}

.mv__badge--2 {
	padding: 1.8125rem 2.0625rem 2.3125rem;
	row-gap: 0.5rem;
}

.mv__badge--3 {
	padding: 1.6875rem 2.0625rem 2.1875rem;
	row-gap: 0.25rem;
}

.mv__badge--meta03 {
	background-image: url("../../mamp/img/common/deco-mv-meta03.svg");
	color: #FFFFFF;
	row-gap: 0.5rem;
}

.mv--meta03 .mv__badge--1 {
	row-gap: 0;
}

.mv--meta03 .mv__badge--1 .mv__badge-label {
	margin-block-end: 0.25rem;
}

.mv--meta03 .mv__badge--1 .mv__badge-figure {
	margin-block-end: 0.125rem;
}

.mv--meta03 .mv__badge--2 {
	row-gap: 0;
}

.mv--meta03 .mv__badge--2 .mv__badge-label {
	margin-block-end: 0.3125rem;
}

.mv--meta03 .mv__badge--2 .mv__badge-figure {
	margin-block-end: 0.375rem;
}

.mv__badge-tag {
	font-family: "Noto Serif JP", serif;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
	margin: 0;
}

.mv__badge-tag-small {
	font-size: 0.75rem;
}

.mv__badge-label {
	font-family: "Noto Serif JP", serif;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1;
	margin: 0;
}

.mv__badge-label--small {
	font-size: 0.625rem;
}

.mv__badge-figure {
	align-items: baseline;
	display: inline-flex;
	font-family: "Noto Serif JP", serif;
	margin: 0;
	-moz-column-gap: 0.125rem;
	column-gap: 0.125rem;
}

.mv__badge-num {
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1;
}

.mv__badge-num--mid {
	font-size: 2.125rem;
	letter-spacing: -0.06em;
}

.mv__badge-unit {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1;
	translate: 0 -0.125rem;
}

.mv__badge-range {
	align-self: flex-end;
	font-size: 0.5625rem;
	font-weight: 700;
	line-height: 1.11;
	translate: 0 -0.125rem;
}

.mv__badge-strong {
	font-family: "Noto Serif JP", serif;
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1.05;
	margin: 0;
}

.mv__credits {
	align-items: center;
	display: flex;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
}

.mv__credits-logo {
	aspect-ratio: 49/57;
	background-color: #FFFFFF;
	flex-shrink: 0;
	height: auto;
	width: 3.0625rem;
}

.mv__credits-text {
	font-size: 0.875rem;
	line-height: 1.5;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.mv--meta03,
.mv--meta03 .mv__title,
.mv--meta03 .mv__campaign-tag,
.mv--meta03 .mv__campaign-note,
.mv--meta03 .mv__subtitle,
.mv--meta03 .mv__title-accent,
.mv--meta03 .mv__credits-text,
.mv--meta03 .mv__badge-label,
.mv--meta03 .mv__badge-tag,
.mv--meta03 .mv__badge-tag-small,
.mv--meta03 .mv__badge-figure,
.mv--meta03 .mv__badge-num,
.mv--meta03 .mv__badge-unit,
.mv--meta03 .mv__badge-range,
.mv--meta03 .mv__badge-strong {
	font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
}

.mv--meta03 .mv__badge-num {
	font-size: 2rem;
	font-weight: 600;
}

.mv--meta03 .mv__badge-num--mid {
	font-size: 1.8125rem;
	font-weight: 600;
	letter-spacing: -0.3125rem;
}

.mv--meta03 .mv__badge-num--mid-rest {
	font-weight: 600;
	letter-spacing: -0.03625rem;
}

.mv--meta03 .mv__badge-unit {
	margin-inline-start: -0.375rem;
}

/*===================================================================
# MV-CTA（MV 下の SP 専用 CTA バナー）
===================================================================*/

.mv-cta {
	align-items: center;
	background-color: #FFFFFF;
	flex-direction: column;
	padding: 1rem 1.5rem;
	row-gap: 0.375rem;
}

.mv-cta__lead {
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.5;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.mv-cta__btn {
	align-items: center;
	background-color: #F15C00;
	border-radius: 624.9375rem;
	color: #FFFFFF;
	display: flex;
	font-size: 1.25rem;
	font-weight: 500;
	height: 3.4375rem;
	justify-content: center;
	line-height: 1.5;
	text-align: center;
	width: 20.25rem;
}

.mv-cta__btn--meta03 {
	background-color: #EE0400;
	height: 3.5rem;
	width: 16.25rem;
}

.mv-cta--meta03,
.mv-cta--meta03 .mv-cta__lead,
.mv-cta--meta03 .mv-cta__btn {
	font-family: "Hiragino Sans", "Noto Sans JP", sans-serif;
}

/*===================================================================
# Concern
===================================================================*/

.concern {
	padding-block-end: 6rem;
}

.concern__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 1.5rem;
}

.concern__heading {
	--chevron-depth: 6.8125rem;
	align-items: flex-start;
	background-color: #507688;
	clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--chevron-depth)), 50% 100%, 0 calc(100% - var(--chevron-depth)));
	display: flex;
	justify-content: center;
	padding-block: 4.8125rem 7.8125rem;
	width: 100%;
}

.concern__title {
	color: #FFFFFF;
	font-family: "Noto Serif JP", serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.concern__title-accent {
	color: #FFAD7B;
}

.concern__title-break--sp {
	display: none;
}

.concern__cards-wrap {
	position: relative;
	width: 55rem;
}

.concern__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	-moz-column-gap: 0.75rem;
	column-gap: 0.75rem;
	row-gap: 0.75rem;
}

.concern__cards-hint {
	align-items: center;
	background-color: rgba(0, 0, 0, 0.65);
	border-radius: 0.75rem;
	color: #FFFFFF;
	display: none;
	flex-direction: column;
	left: 50%;
	padding: 1rem 1.5rem;
	pointer-events: none;
	position: absolute;
	row-gap: 0.5rem;
	top: 50%;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	translate: -50% -50%;
	z-index: 10;
}

.concern__cards-hint-icon {
	animation: concern-cards-hint-bob 2.6s ease-in-out infinite;
	display: block;
	height: 1.75rem;
	width: 1.75rem;
}

.concern__cards-hint-text {
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1;
}

.concern__card {
	display: flex;
	height: 10.375rem;
	perspective: 62.5rem;
}

.concern__card.is-flipped .concern__card-inner {
	transform: rotateY(180deg);
}

.concern__card-inner {
	display: grid;
	flex: 1;
	transform-style: preserve-3d;
	transition: transform 0.6s;
}

.concern__card-face {
	backface-visibility: hidden;
	grid-column: 1;
	grid-row: 1;
	-webkit-backface-visibility: hidden;
	align-items: center;
	border-radius: 0.5rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.concern__card-face--front {
	background-color: #FFFFFF;
	border: 0.0625rem solid #507688;
	padding-inline: 1rem;
	row-gap: 1.5rem;
}

.concern__card-face--back {
	background-color: #507688;
	color: #FFFFFF;
	padding: 1.5rem 1.46875rem;
	transform: rotateY(180deg);
}

.concern__card-face--meta03 {
	padding-inline: 1.5rem;
}

.concern__card-label {
	color: #F15C00;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.concern__card-label--meta03 {
	color: #EE0400;
}

.concern__card-question {
	color: #2E2E2E;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.concern__card-question--meta03 {
	font-size: 0.9375rem;
}

.concern__card-answer {
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
	text-align: justify;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.concern__solution {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-block-start: 0.375rem;
	row-gap: 1.5rem;
	width: 55rem;
}

.concern__solution-arrow {
	aspect-ratio: 33/18;
	display: block;
	height: auto;
	width: 2.0625rem;
}

.concern__solution-card {
	background-color: #F15C00;
	border-radius: 0.5rem;
	color: #FFFFFF;
	display: flex;
	flex-direction: column;
	padding: 2rem 1.25rem;
	row-gap: 1rem;
	text-align: center;
	width: 100%;
}

.concern__solution-card--meta03 {
	background-color: #EE0400;
}

.concern__solution-text {
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.6;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

/*===================================================================
# Comparison（他社との比較テーブル）
===================================================================*/

.comparison {
	background-color: #5C5C5C;
	color: #FFFFFF;
	padding-block: 6rem;
}

.comparison__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-inline: auto;
	max-width: 55rem;
	row-gap: 2rem;
	width: 100%;
}

.comparison__heading {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 1rem;
}

.comparison__title {
	font-family: "Noto Serif JP", serif;
	font-size: 2rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.comparison__title-mark {
	font-size: 1rem;
	font-weight: 700;
	vertical-align: baseline;
}

.comparison__subtitle {
	font-family: "Noto Serif JP", serif;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1.2;
	margin: 0;
	text-align: center;
}

.comparison__table-wrap {
	display: block;
}

.comparison__table {
	border-collapse: collapse;
	table-layout: fixed;
	width: 55rem;
}

.comparison__cell {
	background-color: #FFFFFF;
	box-shadow: inset 0 0.0625rem 0 0 #C9C9C9, inset 0.0625rem 0 0 0 #C9C9C9;
	color: #2E2E2E;
	font-size: 0.875rem;
	font-weight: 500;
	height: 3.5rem;
	line-height: 1;
	padding: 0.6875rem 0.5rem;
	text-align: center;
	vertical-align: middle;
}

.comparison__cell:last-child {
	box-shadow: inset 0 0.0625rem 0 0 #C9C9C9, inset 0.0625rem 0 0 0 #C9C9C9, inset -0.0625rem 0 0 0 #C9C9C9;
}

tbody tr:last-child .comparison__cell {
	box-shadow: inset 0 0.0625rem 0 0 #C9C9C9, inset 0.0625rem 0 0 0 #C9C9C9, inset 0 -0.0625rem 0 0 #C9C9C9;
}

tbody tr:last-child .comparison__cell:last-child {
	box-shadow: inset 0 0.0625rem 0 0 #C9C9C9, inset 0.0625rem 0 0 0 #C9C9C9, inset -0.0625rem 0 0 0 #C9C9C9, inset 0 -0.0625rem 0 0 #C9C9C9;
}

.comparison__cell--head {
	background-color: #507688;
	color: #FFFFFF;
	height: 7rem;
	width: 7.5rem;
}

.comparison__cell--head:nth-child(2),
.comparison__cell--head:nth-child(3) {
	width: 12.5rem;
}

.comparison__cell--ours-main {
	background-color: #0052E0;
	color: #FFFFFF;
	height: auto;
	padding: 0.5rem 0 0;
	width: 22.5rem;
}

.comparison__ours-title {
	display: block;
	font-size: 1.25rem;
	font-weight: 500;
	line-height: 1;
	margin-block-end: 0.5rem;
}

.comparison__ours-subtitle {
	display: block;
	font-size: 0.625rem;
	font-weight: 400;
	line-height: 1;
}

.comparison__cell--ours-tabs {
	background-color: #0052E0;
	color: #FFFFFF;
	height: 2.5rem;
	padding: 0;
}

.comparison__cell--label {
	background-color: #EAF2FF;
	color: #2E2E2E;
	width: 7.5rem;
}

.comparison__cell--accent {
	color: #F10000;
}

.comparison__cell--ours {
	padding: 0;
}

.comparison__cell--ours-full {
	color: #0052E0;
	font-size: 1rem;
	font-weight: 700;
	padding: 0.6875rem 0.5rem;
}

.comparison__split {
	align-items: stretch;
	display: flex;
	height: 100%;
	width: 100%;
}

.comparison__split-item {
	align-items: center;
	color: inherit;
	display: flex;
	flex: 1;
	font-size: 0.875rem;
	font-weight: 500;
	justify-content: center;
	line-height: 1;
}

.comparison__split-item:not(:first-child) {
	box-shadow: inset 0.0625rem 0 0 #C9C9C9;
}

.comparison__cell--ours .comparison__split-item {
	color: #0052E0;
	font-size: 1rem;
	font-weight: 700;
}

.comparison__split-divider {
	display: none;
}

.comparison__notes {
	display: flex;
	flex-direction: column;
	margin-block-start: 0.75rem;
	row-gap: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.comparison__note {
	font-size: 0.625rem;
	font-weight: 400;
	line-height: 1.3;
	margin: 0;
	text-align: left;
}

.comparison__cta {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-block-start: 2rem;
	row-gap: 0.375rem;
}

.comparison__cta-lead {
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.5;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.comparison__cta-btn {
	align-items: center;
	background-color: #F15C00;
	border-radius: 624.9375rem;
	color: #FFFFFF;
	display: inline-flex;
	font-size: 1.25rem;
	font-weight: 500;
	height: 3.4375rem;
	isolation: isolate;
	justify-content: center;
	line-height: 1;
	overflow: hidden;
	padding-inline: 3.203125rem;
	position: relative;
}

.comparison__cta-btn::before {
	background-color: #0052E0;
	bottom: -0.0625rem;
	content: "";
	left: -1.25rem;
	position: absolute;
	right: -1.25rem;
	top: -0.0625rem;
	transform: translateX(-120%) skewX(15deg);
	transition: transform 0.4s ease;
	z-index: -1;
}

.comparison__cta-btn--meta03 {
	background-color: #EE0400;
	text-align: center;
}

/*===================================================================
# Strength（スモールM&Aで選ばれる3つの強み）
===================================================================*/

.strength {
	background-color: #FFFFFF;
}

.strength__heading {
	align-items: center;
	display: flex;
	flex-direction: column;
	padding: 6rem 0 3rem;
	row-gap: 2rem;
	text-align: center;
	width: 100%;
}

.strength__title {
	color: #2E2E2E;
	font-family: "Noto Serif JP", serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.5;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__title-accent {
	color: #0052E0;
}

.strength__subtitle {
	color: #2E2E2E;
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.3;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__cards {
	margin-inline: auto;
	max-width: 90rem;
	overflow: hidden;
	width: 100%;
}

.strength__card {
	align-items: center;
	display: flex;
	padding: 6rem 0;
	position: relative;
	width: 100%;
	-moz-column-gap: 4rem;
	column-gap: 4rem;
	overflow: hidden;
	transition: transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.strength__card--1,
.strength__card--3 {
	transform: translateX(-100%);
}

.strength__card--2 {
	transform: translateX(100%);
}

.strength__card.is-visible {
	transform: translateX(0);
}

.strength__card--1,
.strength__card--3 {
	background-color: #0052E0;
	color: #FFFFFF;
}

.strength__card--2 {
	background-color: #FFFFFF;
	justify-content: flex-end;
}

.strength__card-image {
	align-items: center;
	background-position: center;
	background-repeat: no-repeat;
	background-size: cover;
	display: flex;
	flex-shrink: 0;
	height: 21.75rem;
	justify-content: center;
	padding: 2rem 0;
	position: relative;
	width: 32rem;
	z-index: 1;
}

.strength__card-logo-box {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 1.5rem;
}

.strength__card-logo-box--double {
	background-color: rgba(255, 255, 255, 0.9);
	padding: 1rem 1.5rem;
}

.strength__card-logo {
	display: block;
	height: auto;
	max-width: 100%;
	width: auto;
}

.strength__card-logo-caption {
	color: #2E2E2E;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__card-content {
	display: flex;
	flex-direction: column;
	min-width: 0;
	position: relative;
	row-gap: 2rem;
	z-index: 1;
}

.strength__card--1 .strength__card-content {
	flex: 0 0 24.8125rem;
}

.strength__card--2 .strength__card-content {
	flex: 0 0 22.125rem;
}

.strength__card--3 .strength__card-content {
	flex: 0 0 25.875rem;
}

.strength__card-title {
	font-family: "Noto Serif JP", serif;
	font-size: 2.25rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__card-subtitle {
	font-family: "Noto Serif JP", serif;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1.3;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
	white-space: nowrap;
}

.strength__card-desc {
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.5;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__card--2 .strength__card-title,
.strength__card--2 .strength__card-subtitle {
	color: #0052E0;
}

.strength__card--2 .strength__card-desc {
	color: #2E2E2E;
}

.strength__card-tag {
	align-items: flex-start;
	display: flex;
	position: absolute;
	right: 1.5rem;
	top: 2rem;
	-moz-column-gap: 0.5rem;
	color: rgba(255, 255, 255, 0.25);
	column-gap: 0.5rem;
	font-family: "Montserrat", sans-serif;
	font-style: italic;
	font-weight: 400;
	line-height: 1.3;
	pointer-events: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	user-select: none;
}

.strength__card--2 .strength__card-tag {
	color: rgba(0, 82, 224, 0.25);
	z-index: 2;
}

.strength__card-tag-text {
	font-size: 2.5rem;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__card-tag-num {
	font-size: 8rem;
	line-height: 1;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__cta {
	align-items: center;
	display: flex;
	flex-direction: column;
	padding: 2rem 0;
	row-gap: 0.375rem;
	width: 100%;
}

.strength__cta-lead {
	color: #2E2E2E;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.5;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.strength__cta-btn {
	align-items: center;
	background-color: #F15C00;
	border-radius: 624.9375rem;
	color: #FFFFFF;
	display: inline-flex;
	font-size: 1.25rem;
	font-weight: 500;
	height: 3.4375rem;
	isolation: isolate;
	justify-content: center;
	line-height: 1;
	overflow: hidden;
	padding-inline: 3rem;
	position: relative;
	text-align: center;
}

.strength__cta-btn::before {
	background-color: #0052E0;
	bottom: -0.0625rem;
	content: "";
	left: -1.25rem;
	position: absolute;
	right: -1.25rem;
	top: -0.0625rem;
	transform: translateX(-120%) skewX(15deg);
	transition: transform 0.4s ease;
	z-index: -1;
}

.strength__cta-btn--meta03 {
	background-color: #EE0400;
}

/*===================================================================
# Case（事例紹介）
===================================================================*/

.case {
	background-color: #FFFFFF;
}

.case__inner {
	display: flex;
	flex-direction: column;
	margin-inline: auto;
	padding-block: 6rem;
	row-gap: 4rem;
	width: 69.5rem;
}

.case__heading {
	display: flex;
	flex-direction: column;
	row-gap: 3rem;
	text-align: center;
}

.case__title {
	font-family: "Noto Serif JP", serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.case__title-accent {
	color: #0052E0;
}

.case__lead {
	font-size: 1rem;
	line-height: 1.5;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.case__list {
	display: flex;
	flex-direction: column;
	list-style: none;
	margin: 0 auto;
	padding: 0;
	row-gap: 2rem;
	width: 55rem;
}

.case__item {
	margin: 0;
}

.case__card {
	background-color: #FFFFFF;
	border-radius: 1rem;
	box-shadow: 0.25rem 0.625rem 2rem 0 rgba(0, 0, 0, 0.15);
	display: flex;
	flex-direction: column;
	padding: 2rem 3rem 3rem;
}

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

.case__logos {
	align-items: center;
	background-color: #FFFFFF;
	display: flex;
	flex-direction: column;
	flex-shrink: 0;
	height: 15rem;
	justify-content: center;
	row-gap: 1rem;
	width: 20rem;
}

.case__logo {
	aspect-ratio: var(--logo-pc-w)/var(--logo-pc-h);
	display: block;
	height: auto;
	max-width: 100%;
	width: calc(var(--logo-pc-w) / 16 * 1rem);
}

.case__logo-x {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.case__summary {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	padding-block-start: 1rem;
	row-gap: 2rem;
}

.case__card-title {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.case__parties {
	display: flex;
	-moz-column-gap: 1.5rem;
	column-gap: 1.5rem;
	margin: 0;
}

.case__party {
	display: flex;
	flex: 1 1 0;
	flex-direction: column;
	margin: 0;
	min-width: 0;
	row-gap: 0.75rem;
}

.case__party-label {
	background-color: #507688;
	box-sizing: border-box;
	color: #FFFFFF;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
	padding: 0.5rem;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
	width: 5rem;
}

.case__party-value {
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
}

.case__meta {
	display: flex;
	flex-direction: column;
	margin: 0;
	row-gap: 1rem;
}

.case__meta-row {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.75rem;
	column-gap: 0.75rem;
	margin: 0;
}

.case__meta-label {
	background-color: #507688;
	box-sizing: border-box;
	color: #FFFFFF;
	flex-shrink: 0;
	font-size: 0.9375rem;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
	padding: 0.5rem;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
	width: 5rem;
}

.case__meta-label--multiline {
	line-height: 1.2;
}

.case__meta-value {
	flex: 1 1 auto;
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 1.4;
	margin: 0;
	min-width: 0;
}

.case__meta-value--pre {
	white-space: pre-line;
}

.case__details-area {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows 0.3s ease, opacity 0.2s ease;
}

.case__details-inner {
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	row-gap: 3rem;
}

.case__detail {
	display: flex;
	flex-direction: column;
	row-gap: 1rem;
}

.case__detail-label-wrap {
	display: flex;
}

.case__detail-label {
	background-color: #507688;
	box-sizing: border-box;
	color: #FFFFFF;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
	padding: 0.5rem;
}

.case__detail-body {
	display: flex;
	flex-direction: column;
	row-gap: 1.5rem;
}

.case__detail-heading {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.case__detail-text {
	font-size: 1rem;
	font-weight: 400;
	line-height: 1.4;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.case__toggle {
	align-items: center;
	align-self: center;
	display: inline-flex;
	justify-content: center;
	margin-block-start: 2rem;
	-moz-column-gap: 0.5rem;
	background: none;
	border: none;
	color: #0052E0;
	column-gap: 0.5rem;
	cursor: pointer;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
	padding: 0.5rem 1rem;
}

.case__toggle-text {
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.case__toggle-text--open {
	display: none;
}

.case__toggle-icon {
	align-items: center;
	display: inline-flex;
	height: 0.625rem;
	justify-content: center;
	transition: rotate 0.25s ease;
	width: 1.125rem;
}

.case__toggle-icon svg {
	height: 100%;
	width: 100%;
}

.case__item.is-opened .case__details-area {
	grid-template-rows: 1fr;
	opacity: 1;
}

.case__item.is-opened .case__details-inner {
	padding-block-start: 3rem;
}

.case__item.is-opened .case__toggle {
	margin-block-start: 3rem;
}

.case__item.is-opened .case__toggle-text--closed {
	display: none;
}

.case__item.is-opened .case__toggle-text--open {
	display: inline;
}

.case__item.is-opened .case__toggle-icon {
	rotate: 180deg;
}

/*===================================================================
# Flow（ご相談からクロージングまでの流れ + 料金体系）
===================================================================*/

.flow {
	background-color: #507688;
	color: #ffffff;
	padding-block: 6rem;
}

.flow__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-inline: auto;
	max-width: 55rem;
	row-gap: 6rem;
	width: 100%;
}

.flow__process {
	display: flex;
	flex-direction: column;
	row-gap: 2rem;
	width: 100%;
}

.flow__title {
	font-family: "Noto Serif JP", serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.flow__columns {
	align-items: stretch;
	display: flex;
	justify-content: space-between;
	margin-block-start: 2rem;
}

.flow__column {
	display: flex;
	flex-direction: column;
	row-gap: 2rem;
}

.flow__column-heading {
	display: flex;
	flex-direction: column;
	row-gap: 0.75rem;
}

.flow__column-title {
	font-family: "Noto Serif JP", serif;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.flow__column-phase {
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.flow__steps {
	margin: 0;
	padding-inline-start: 1.5rem;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.flow__step {
	font-size: 0.9375rem;
	font-weight: 400;
	line-height: 2;
	list-style: decimal;
}

.flow__divider {
	align-self: stretch;
	background-color: #ffffff;
	border: none;
	flex-shrink: 0;
	height: auto;
	margin: 0;
	width: 0.0625rem;
}

.flow__banner {
	align-items: center;
	aspect-ratio: 880/96;
	background-color: #ffffff;
	clip-path: polygon(0 25%, 89.09% 25%, 89.09% 0, 100% 100%, 0 100%);
	color: #2e2e2e;
	display: grid;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
	padding: 1.5rem 7.5rem 0 2.0625rem;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
	width: 100%;
}

.flow__price {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 2rem;
	width: 100%;
}

.flow__price-heading {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 1rem;
}

.flow__price-title {
	font-family: "Noto Serif JP", serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.flow__price-lead {
	font-size: 1rem;
	line-height: 1.2;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.flow__price-table {
	display: flex;
	flex-direction: column;
	width: 100%;
}

.flow__price-header {
	align-items: center;
	background-color: #0052e0;
	border: 0.0625rem solid #c9c9c9;
	color: #ffffff;
	display: flex;
	font-size: 1.25rem;
	font-weight: 500;
	height: 4.5rem;
	justify-content: flex-start;
	line-height: 1;
	margin: 0;
	padding: 0.6875rem 1.5rem;
	text-align: left;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
	width: 100%;
}

.flow__price-row {
	align-items: stretch;
	display: flex;
	margin-block-start: -0.0625rem;
}

.flow__price-label {
	align-items: center;
	background-color: #eaf2ff;
	border: 0.0625rem solid #c9c9c9;
	color: #2e2e2e;
	display: flex;
	flex-shrink: 0;
	font-size: 1rem;
	font-weight: 500;
	height: 5rem;
	justify-content: flex-start;
	line-height: 1;
	margin: 0;
	padding-inline: 1.5rem;
	text-align: left;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
	width: 10rem;
}

.flow__price-value {
	align-items: center;
	background-color: #ffffff;
	border: 0.0625rem solid #c9c9c9;
	display: flex;
	flex: 1;
	height: 5rem;
	margin-inline-start: -0.0625rem;
	padding-inline: 1.5rem;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
}

.flow__price-amount {
	color: #f15c00;
	flex-shrink: 0;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.flow__price-note {
	color: #2e2e2e;
	font-size: 0.875rem;
	font-weight: 400;
	line-height: 1;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

/*===================================================================
# FAQ
===================================================================*/

.faq {
	background-color: #EEEEEE;
	padding-block: 6rem;
}

.faq__inner {
	display: flex;
	flex-direction: column;
	max-width: 55rem;
	row-gap: 4rem;
	width: 100%;
}

.faq__title {
	color: #2E2E2E;
	font-family: "Noto Serif JP", serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.2;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.faq__items {
	display: flex;
	flex-direction: column;
	row-gap: 0.75rem;
}

.faq__item {
	background-color: #FFFFFF;
	border: 0.0625rem solid #507688;
	border-radius: 0.5rem;
	padding: 1rem 1.5rem;
}

.faq__summary {
	align-items: center;
	display: flex;
	justify-content: space-between;
	list-style: none;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
	cursor: pointer;
}

.faq__summary::-webkit-details-marker {
	display: none;
}

.faq__heading {
	align-items: center;
	display: flex;
	flex: 1;
	-moz-column-gap: 0.625rem;
	column-gap: 0.625rem;
}

.faq__label {
	flex-shrink: 0;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.5;
}

.faq__label--q {
	color: #0052E0;
}

.faq__label--a {
	color: #F15C00;
}

.faq__question {
	color: #2E2E2E;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.5;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.faq__icon {
	align-items: center;
	display: inline-flex;
	flex-shrink: 0;
	height: 0.625rem;
	justify-content: center;
	transition: rotate 0.25s ease;
	width: 1.125rem;
}

.faq__icon svg {
	height: 100%;
	width: 100%;
}

.faq__answer-area {
	display: grid;
	grid-template-rows: 0fr;
	opacity: 0;
	transition: grid-template-rows 0.3s ease, opacity 0.2s ease;
}

.faq__answer-inner {
	display: flex;
	flex-direction: column;
	min-height: 0;
	overflow: hidden;
	row-gap: 1rem;
}

.faq__divider {
	border: none;
	border-block-start: 0.125rem solid #DADADA;
	height: 0;
	margin: 0;
	width: 100%;
}

.faq__answer-row {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.625rem;
	column-gap: 0.625rem;
}

.faq__answer {
	color: #2E2E2E;
	flex: 1;
	font-size: 1rem;
	line-height: 1.5;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.faq__item.is-opened .faq__icon {
	rotate: 180deg;
}

.faq__item.is-opened .faq__answer-area {
	grid-template-rows: 1fr;
	opacity: 1;
}

.faq__item.is-opened .faq__answer-inner {
	padding-block: 1rem 0.0625rem;
}

/*===================================================================
# Contact
===================================================================*/

.contact {
	background-color: #507688;
	color: #FFFFFF;
	margin-inline: auto;
	max-width: 90rem;
	padding-block: 6rem;
}

.contact__inner {
	align-items: center;
	display: flex;
	flex-direction: column;
	margin-inline: auto;
	max-width: 45rem;
	row-gap: 4rem;
	width: 100%;
}

.contact__heading {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 2rem;
}

.contact__title {
	font-family: "Noto Serif JP", serif;
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.contact__lead {
	font-size: 0.875rem;
	line-height: 1.4;
	margin: 0;
	text-align: center;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.contact__form {
	display: flex;
	flex-direction: column;
	row-gap: 1.5rem;
	width: 100%;
}

.contact__list {
	display: flex;
	flex-direction: column;
	row-gap: 0.5rem;
}

.contact__label-row {
	align-items: center;
	display: inline-flex;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
}

.contact__label {
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.05em;
	line-height: 1.4;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.contact__required {
	align-items: center;
	background-color: #EF2929;
	border-radius: 0.25rem;
	color: #FFFFFF;
	display: inline-flex;
	font-size: 0.75rem;
	font-weight: 700;
	height: 100%;
	line-height: 1.4;
	padding: 0.1875rem 0.5rem;
}

.contact__note {
	font-size: 0.8125rem;
	line-height: 1.5;
	margin: 0;
}

.contact__name-fields {
	display: flex;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
}

.contact__name-fields > .wpcf7-form-control-wrap,
.contact__name-fields > span {
	flex: 1;
}

.contact__select-wrap {
	position: relative;
}

.contact__select-wrap .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.contact__select-wrap svg {
	height: 0.5rem;
	pointer-events: none;
	position: absolute;
	right: 1rem;
	top: 1.5rem;
	translate: 0 -50%;
	width: 0.875rem;
	z-index: 2;
}

.contact__acceptance {
	align-items: center;
	display: flex;
	justify-content: center;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
}

.contact__acceptance a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.1875rem;
}

.contact__submit-btn-wrapper {
	display: inline-block;
	isolation: isolate;
	margin-inline: auto;
	position: relative;
}

.contact__submit-btn-wrapper::before {
	background-color: #B34300;
	border-radius: 62.5rem;
	box-shadow: 0 0.5rem 0.5rem 0 rgba(0, 0, 0, 0.25);
	content: "";
	inset: 0;
	position: absolute;
	transform: translateY(0.5rem);
	transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
	z-index: 1;
}

.contact__submit-btn-wrapper::after {
	background-color: #F15C00;
	border-radius: 62.5rem;
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	transition: transform 0.2s ease, background-color 0.2s ease;
	z-index: 2;
}

.contact__submit-btn-wrapper .contact__submit-btn {
	background: transparent;
	border: none;
	color: #FFFFFF;
	cursor: pointer;
	display: block;
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
	padding: 1.5rem 5.6875rem;
	position: relative;
	text-align: center;
	text-indent: 0.05em;
	transition: transform 0.2s ease;
	z-index: 10;
}

.contact__submit-btn-wrapper .contact__submit-btn:focus-visible {
	outline: none;
}

.contact__submit-btn-wrapper .contact__submit-btn:disabled {
	cursor: not-allowed;
}

.contact__submit-btn-wrapper:not(:has(:disabled)):hover .contact__submit-btn,
.contact__submit-btn-wrapper:not(:has(:disabled)):hover::after,
.contact__submit-btn-wrapper:not(:has(:disabled)):has(.contact__submit-btn:focus-visible) .contact__submit-btn,
.contact__submit-btn-wrapper:not(:has(:disabled)):has(.contact__submit-btn:focus-visible)::after {
	transform: translateY(0.5rem);
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled) {
	cursor: not-allowed;
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled)::after {
	background-color: #c9c9c9;
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled)::before {
	background-color: #999999;
	box-shadow: none;
}

.contact--meta03 .contact__submit-btn-wrapper::after {
	background-color: #EE0400;
}

.contact input[type=text],
.contact input[type=email],
.contact input[type=tel],
.contact select,
.contact textarea {
	background-color: #FFFFFF;
	border: 0.0625rem solid #BDBDBD;
	border-radius: 0.25rem;
	color: #2E2E2E;
	font-family: inherit;
	font-size: 1rem;
	font-weight: 500;
	height: 3rem;
	letter-spacing: 0.05em;
	line-height: 3rem;
	padding-inline: 1rem;
	width: 100%;
}

.contact input[type=text]::-moz-placeholder,
.contact input[type=email]::-moz-placeholder,
.contact input[type=tel]::-moz-placeholder,
.contact select::-moz-placeholder,
.contact textarea::-moz-placeholder {
	color: #B3B3B3;
}

.contact input[type=text]::placeholder,
.contact input[type=email]::placeholder,
.contact input[type=tel]::placeholder,
.contact select::placeholder,
.contact textarea::placeholder {
	color: #B3B3B3;
}

.contact input[type=text]:focus,
.contact input[type=email]:focus,
.contact input[type=tel]:focus,
.contact select:focus,
.contact textarea:focus {
	outline: 0.125rem solid #F15C00;
	outline-offset: -0.0625rem;
}

.contact textarea {
	height: 10rem;
	line-height: 1.5;
	padding-block: 0.75rem;
	resize: vertical;
}

.contact select {
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	padding-inline-end: 2.5rem;
}

.contact input[type=checkbox] {
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	background-color: #FFFFFF;
	border: 0.0625rem solid #A2A2A2;
	border-radius: 0.25rem;
	cursor: pointer;
	flex-shrink: 0;
	height: 1rem;
	margin: 0;
	width: 1rem;
}

.contact input[type=checkbox]:checked {
	background-color: #FFFFFF;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'><path d='M2 6L5 9L10 3' stroke='%232E2E2E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 0.75rem;
}

.contact input[type=checkbox]:focus-visible {
	outline: 0.125rem solid #F15C00;
	outline-offset: 0.125rem;
}

.contact .wpcf7-form-control-wrap {
	display: block;
}

.contact .wpcf7-spinner {
	display: none;
}

.contact .wpcf7-acceptance .wpcf7-list-item {
	margin: 0;
}

.contact .wpcf7-acceptance .wpcf7-list-item label {
	align-items: center;
	display: inline-flex;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
	cursor: pointer;
}

.contact .wpcf7-acceptance .wpcf7-list-item-label {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1;
}

.contact .wpcf7-not-valid-tip {
	color: #FFD9D9;
	display: block;
	font-size: 0.8125rem;
	font-weight: 500;
	margin-block-start: 0.25rem;
}

.contact .wpcf7-response-output {
	background-color: rgba(255, 255, 255, 0.15);
	border-radius: 0.25rem;
	color: #FFFFFF;
	font-size: 0.875rem;
	margin-block-start: 1rem;
	padding: 0.75rem 1rem;
}

/*===================================================================
# Sidebar / Page Layout
===================================================================*/

.page-layout {
	align-items: flex-start;
	display: flex;
	margin-inline: auto;
	max-width: 90rem;
}

.main {
	flex-shrink: 0;
	padding-block-start: 7.75rem;
	width: 69.5rem;
}

.sidebar {
	background-color: #FFFFFF;
	border-block-start: 1rem solid #F15C00;
	box-shadow: -0.5rem 0 1.25rem 0 rgba(0, 0, 0, 0.15);
	flex-shrink: 0;
	height: 100vh;
	overflow-y: auto;
	position: sticky;
	scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
	scrollbar-width: thin;
	top: 0;
	width: 20.5rem;
}

.sidebar::-webkit-scrollbar {
	width: 0.375rem;
}

.sidebar::-webkit-scrollbar-track {
	background: transparent;
}

.sidebar::-webkit-scrollbar-thumb {
	background-color: rgba(0, 0, 0, 0.2);
	border-radius: 624.9375rem;
}

.sidebar__form {
	align-items: center;
	display: flex;
	flex-direction: column;
	padding: 3rem 2rem;
	row-gap: 2rem;
}

.sidebar__heading {
	align-items: center;
	display: flex;
	flex-direction: column;
	row-gap: 0.5rem;
	text-align: center;
}

.sidebar__lead {
	color: #2E2E2E;
	font-size: 0.75rem;
	line-height: 1.5;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.sidebar__title {
	color: #2E2E2E;
	font-size: 1.25rem;
	font-weight: 700;
	line-height: 1.5;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.sidebar__divider {
	border: none;
	border-block-start: 0.0625rem solid #9D9D9D;
	height: 0;
	margin: 0;
	width: 100%;
}

.sidebar__fields {
	display: flex;
	flex-direction: column;
	row-gap: 1rem;
	width: 16.5rem;
}

.sidebar__field {
	display: flex;
	flex-direction: column;
	row-gap: 0.375rem;
}

.sidebar__label-row {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.125rem;
	column-gap: 0.125rem;
}

.sidebar__label {
	color: #2E2E2E;
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.sidebar__required {
	align-items: center;
	background-color: #FF0000;
	color: #FFFFFF;
	display: inline-flex;
	font-size: 0.625rem;
	font-weight: 500;
	justify-content: center;
	letter-spacing: 0.05em;
	line-height: 1;
	padding: 0.125rem 0.125rem;
}

.sidebar__note {
	color: #2E2E2E;
	font-size: 0.65625rem;
	line-height: 1.5;
	margin: 0;
}

.sidebar__input,
.sidebar__select-input {
	background-color: #FFFFFF;
	border: 0.0625rem solid #BBBBBB;
	border-radius: 0.25rem;
	color: #2E2E2E;
	font-family: inherit;
	font-size: 0.875rem;
	height: 2.5rem;
	line-height: 2.5rem;
	padding-inline: 0.75rem;
	width: 100%;
}

.sidebar__input::-moz-placeholder,
.sidebar__select-input::-moz-placeholder {
	color: #B3B3B3;
}

.sidebar__input::placeholder,
.sidebar__select-input::placeholder {
	color: #B3B3B3;
}

.sidebar__input:focus,
.sidebar__select-input:focus {
	outline: 0.125rem solid #F15C00;
	outline-offset: -0.0625rem;
}

.sidebar__inputs {
	display: flex;
	-moz-column-gap: 0.375rem;
	column-gap: 0.375rem;
}

.sidebar__inputs .sidebar__input {
	flex: 1;
}

.sidebar__inputs > .wpcf7-form-control-wrap {
	flex: 1;
}

.sidebar .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.sidebar__select {
	position: relative;
}

.sidebar__select-input {
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	padding-inline-end: 1.75rem;
}

.sidebar__select-icon {
	height: 0.375rem;
	pointer-events: none;
	position: absolute;
	right: 0.75rem;
	top: 1.3rem;
	translate: 0 -50%;
	width: 0.5625rem;
}

.sidebar__textarea {
	background-color: #FFFFFF;
	border: 0.0625rem solid #BBBBBB;
	border-radius: 0.25rem;
	color: #2E2E2E;
	font-family: inherit;
	font-size: 0.875rem;
	height: 6.25rem;
	line-height: 1.5;
	padding: 0.625rem 0.75rem;
	resize: vertical;
	width: 100%;
}

.sidebar__textarea::-moz-placeholder {
	color: #B3B3B3;
}

.sidebar__textarea::placeholder {
	color: #B3B3B3;
}

.sidebar__textarea:focus {
	outline: 0.125rem solid #F15C00;
	outline-offset: -0.0625rem;
}

.sidebar__privacy {
	width: 16.5rem;
}

.sidebar__privacy .wpcf7-acceptance {
	display: block;
	width: 100%;
}

.sidebar__privacy .wpcf7-list-item {
	display: block;
	margin: 0;
}

.sidebar__privacy .wpcf7-acceptance label {
	align-items: center;
	display: flex;
	-moz-column-gap: 0.375rem;
	column-gap: 0.375rem;
	cursor: pointer;
}

.sidebar__privacy input[type=checkbox] {
	background-color: #FFFFFF;
	border: 0.0625rem solid #A2A2A2;
	border-radius: 0.25rem;
	flex-shrink: 0;
	height: 1rem;
	width: 1rem;
	-moz-appearance: none;
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	margin: 0;
}

.sidebar__privacy input[type=checkbox]:checked {
	background-color: #FFFFFF;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'><path d='M2 6L5 9L10 3' stroke='%232E2E2E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/></svg>");
	background-position: center;
	background-repeat: no-repeat;
	background-size: 0.75rem;
}

.sidebar__privacy input[type=checkbox]:focus-visible {
	outline: 0.125rem solid #F15C00;
	outline-offset: 0.125rem;
}

.sidebar__privacy .wpcf7-list-item-label {
	color: #2E2E2E;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.1428571429;
}

.sidebar__privacy .wpcf7-list-item-label a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.1875rem;
}

.sidebar__submit-wrapper {
	height: 3.9375rem;
	isolation: isolate;
	position: relative;
	width: 100%;
}

.sidebar__submit-wrapper::before {
	background-color: #B34300;
	border-radius: 62.5rem;
	box-shadow: 0 0.5rem 0.5rem 0 rgba(0, 0, 0, 0.25);
	content: "";
	inset: 0;
	position: absolute;
	transform: translateY(0.5rem);
	transition: transform 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
	z-index: 1;
}

.sidebar__submit-wrapper::after {
	background-color: #F15C00;
	border-radius: 62.5rem;
	content: "";
	inset: 0;
	pointer-events: none;
	position: absolute;
	transition: transform 0.2s ease, background-color 0.2s ease;
	z-index: 2;
}

.sidebar__submit-wrapper:not(:has(:disabled)):hover .sidebar__submit,
.sidebar__submit-wrapper:not(:has(:disabled)):hover::after,
.sidebar__submit-wrapper:not(:has(:disabled)):has(.sidebar__submit:focus-visible) .sidebar__submit,
.sidebar__submit-wrapper:not(:has(:disabled)):has(.sidebar__submit:focus-visible)::after {
	transform: translateY(0.5rem);
}

.sidebar__submit-wrapper:has(.sidebar__submit:disabled) {
	cursor: not-allowed;
}

.sidebar__submit-wrapper:has(.sidebar__submit:disabled)::after {
	background-color: #c9c9c9;
}

.sidebar__submit-wrapper:has(.sidebar__submit:disabled)::before {
	background-color: #999999;
	box-shadow: none;
}

.sidebar--meta03 .sidebar__submit-wrapper::after {
	background-color: #EE0400;
}

.sidebar__submit {
	background: transparent;
	border: none;
	color: #FFFFFF;
	cursor: pointer;
	font-size: 1.25rem;
	font-weight: 500;
	height: 100%;
	line-height: 1;
	padding: 0 2.5rem;
	position: relative;
	text-align: center;
	width: 100%;
	z-index: 10;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
	transition: transform 0.2s ease;
}

.sidebar__submit:focus-visible {
	outline: none;
}

.sidebar__submit:disabled {
	cursor: not-allowed;
}

.sidebar .wpcf7-spinner {
	display: none;
}

.sidebar .wpcf7-response-output {
	border-radius: 0.25rem;
	font-size: 0.8125rem;
	margin-block-start: 1rem;
	padding: 0.5rem 0.75rem;
}

/*===================================================================
# Thanks（サンクスページ／カレンダーモーダル含む）
`.page-layout` は LP（main + sidebar の row）と thanks（header + main + footer の column）で
役割が違うので、thanks 用の上書きはすべて `:has(.page)` でスコープを絞り、LP に波及させない。
===================================================================*/

.page-layout:has(.page) {
	align-items: stretch;
	flex-direction: column;
	min-height: 100vh;
}

.page-layout:has(.page) .header__inner {
	justify-content: center;
	width: 90rem;
}

.page {
	flex: 1 0 auto;
}

.footer {
	flex: 0 0 auto;
}

.page__inner {
	margin-inline: auto;
	max-width: 46.875rem;
	padding-block-end: 6rem;
	padding-block-start: 17.125rem;
	width: 100%;
}

.page__title {
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
}

.page__contents {
	margin-block-start: 1.75rem;
}

.page__contents p {
	font-size: 1.125rem;
	line-height: 2;
}

.text--warning {
	color: #ca1c10;
}

.buttonList--vertical {
	display: flex;
	flex-direction: column;
	margin-block-start: 3.75rem;
	row-gap: 1.875rem;
}

.buttonList--vertical .button {
	justify-content: center;
	margin-inline: auto;
	width: 23.75rem;
}

.button.to-calendar,
.button.to-top {
	background-color: #F15C00;
	color: #FFFFFF;
}

.button.to-calendar::before,
.button.to-top::before {
	background-color: #0052E0;
}

.cal-modal {
	display: none;
	inset: 0;
	position: fixed;
	z-index: 9000;
}

.cal-modal.is-open {
	display: block;
}

.cal-modal__overlay {
	background-color: rgba(0, 0, 0, 0.6);
	cursor: pointer;
	inset: 0;
	position: absolute;
}

.cal-modal__inner {
	background-color: #FFFFFF;
	border-radius: 0.5rem;
	display: flex;
	flex-direction: column;
	height: calc(100svh - 2.5rem);
	left: 50%;
	overflow: hidden;
	position: absolute;
	top: 50%;
	translate: -50% -50%;
	width: min(62.5rem, 100vw - 2rem);
}

.cal-modal__close {
	align-items: center;
	background-color: #FFFFFF;
	border: none;
	border-radius: 50%;
	box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.2);
	cursor: pointer;
	display: flex;
	height: 2.25rem;
	justify-content: center;
	position: absolute;
	right: 0.75rem;
	top: 0.75rem;
	transition: opacity 0.2s ease;
	width: 2.25rem;
	z-index: 1;
}

.cal-modal__close span {
	background-color: #333333;
	border-radius: 0.0625rem;
	height: 0.125rem;
	position: absolute;
	width: 1rem;
}

.cal-modal__close span:first-child {
	rotate: 45deg;
}

.cal-modal__close span:last-child {
	rotate: -45deg;
}

.cal-modal__header {
	background-color: #FFFFFF;
	border-bottom: 0.0625rem solid #e0e0e0;
	flex-shrink: 0;
	padding: 1.25rem 3.5rem 1.875rem 1.5rem;
}

.cal-modal__header-text {
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.6;
	text-align: center;
}

.cal-modal__iframe {
	border: none;
	display: block;
	flex: 1;
	min-height: 0;
	width: 100%;
}

/*===================================================================
# ブレークポイントによる表示 / 非表示
===================================================================*/

.show__sp-only {
	display: none; /* spのみ表示 */
}

.show__sp-only--flex {
	display: none;
}

.show__pc-only {
	display: block; /* pcのみ表示 */
}

.show__pc-only--flex {
	display: flex;
}

@media (any-hover: hover) {

.header__item a:hover {
	opacity: 1;
}

.header__item a:hover::after {
	transform: scaleX(1);
}

.header__btn:hover {
	opacity: 1;
}

.header__btn:hover::before {
	transform: translateX(0) skewX(15deg);
}

.nav__list > li > a:hover {
	color: #00A7EA;
}

.nav__list > li.menu-item-has-children:hover > a {
	color: #00A7EA;
}

.nav__list > li.menu-item-has-children > .sub-menu li a:hover {
	background-color: #F0FAFE;
	color: #00A7EA;
}

.footer__link:hover {
	opacity: 1;
}

.footer__link:hover::after {
	transform: scaleX(1);
}

.button:hover {
	color: #FFFFFF;
	opacity: 1;
}

.button:hover::before {
	transform: translateX(0) skewX(15deg);
}

.comparison__cta-btn:hover {
	opacity: 1;
}

.comparison__cta-btn:hover::before {
	transform: translateX(0) skewX(15deg);
}

.strength__cta-btn:hover {
	opacity: 1;
}

.strength__cta-btn:hover::before {
	transform: translateX(0) skewX(15deg);
}

.case__toggle:hover {
	opacity: 0.7;
}

.cal-modal__close:hover {
	opacity: 0.7;
}

}

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

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

}

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

.concern__cards-wrap:has(.concern__card:hover) .concern__cards-hint {
	opacity: 0;
	visibility: hidden;
}

.concern__cards-hint {
	display: flex;
}

.concern__card:hover .concern__card-inner {
	transform: rotateY(180deg);
}

}

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

html {
	font-size: 16px;
}

}

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

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

.header__inner {
	height: 5.4375rem;
	padding: 1rem;
	width: 100%;
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
	justify-content: space-between;
}

.header.is-wide .header__inner {
	width: 100%;
}

.header__main {
	row-gap: 0;
}

.header__logo img {
	aspect-ratio: 86/55;
	width: 5.375rem;
}

.header__group-text {
	display: none;
}

.header__nav {
	display: none;
}

.header__cta {
	row-gap: 0.25rem;
}

.header__cta-text {
	font-size: 0.625rem;
}

.header__btn {
	font-size: 1rem;
	height: 2.75rem;
}

.header__btn-text--pc {
	display: none;
}

.header__btn-text--sp {
	display: inline;
}

.nav {
	display: none;
}

body.home .nav {
	display: block;
	position: relative;
	z-index: 1;
}

body.home .nav.is-fixed {
	position: relative;
	top: auto;
}

body.home .nav__inner {
	padding-block: 1.78125rem;
	position: relative;
	z-index: 1;
}

body.home .nav__list > .nav__break ~ li:not(.nav__break) {
	margin-block-start: 1.4375rem;
}

body.home .nav__list > li > a {
	font-size: 0.875rem;
	padding-inline: 0.625rem;
	text-align: center;
}

body.home .nav__list > li.nav__row-end:not(.menu-item-has-children) > a::after {
	display: none;
}

body.home .nav__break {
	height: 0;
	list-style: none;
	padding: 0;
	pointer-events: none;
	width: 100%;
}

.nav__list > li.menu-item-has-children > .sub-menu {
	grid-template-columns: repeat(2, 1fr);
	left: 0;
	translate: none;
	white-space: normal;
}

.nav__list > li.menu-item-has-children > .sub-menu li a {
	font-size: 0.75rem;
	padding-block: 0.375rem;
	padding-inline: 0.5rem;
}

.footer__inner {
	padding: 1.5rem 1.5rem 1rem;
}

.footer__top-logo {
	display: block;
}

.footer__body {
	row-gap: 0;
	width: 100%;
}

.footer__main {
	-moz-column-gap: 0;
	align-items: flex-start;
	column-gap: 0;
	justify-content: space-between;
}

.footer__jpx {
	order: 2;
}

.footer__brand {
	order: 1;
	-moz-column-gap: 0;
	column-gap: 0;
}

.footer__brand-logo {
	display: none;
}

.footer__note {
	font-size: 0.5rem;
}

.footer__nav--inline {
	display: none;
}

.footer__nav--block {
	display: flex;
	justify-content: center;
	-moz-column-gap: 2rem;
	column-gap: 2rem;
	margin-block: 2rem 1.5rem;
}

.footer__link {
	font-size: 0.75rem;
}

.footer__copyright {
	font-size: 0.5625rem;
	text-align: center;
}

.button {
	-moz-column-gap: 0.75rem;
	column-gap: 0.75rem;
	padding-block: 1.125rem;
	padding-inline: 2.25rem;
}

.mv {
	background-image: url("../../mamp/img/common/image-mv-sp.webp");
	min-height: 27.5rem;
}

.mv--meta03 {
	background-image: url("../../mamp/img/common/image-mv-meta03-sp.webp");
}

.mv--meta03 .mv__inner {
	padding-block-start: 3rem;
}

.mv--meta03 .mv__badges {
	margin-block-end: 1.5rem;
}

.mv--meta03 .mv__credits {
	flex-direction: row;
	padding-block-end: 1.5rem;
	-moz-column-gap: 1rem;
	column-gap: 1rem;
	row-gap: 0;
}

.mv--meta03 .mv__credits-text {
	text-align: left;
}

.mv__inner {
	align-items: center;
	padding-block-start: 2.0625rem;
	padding-inline: 1.59375rem;
	row-gap: 2rem;
}

.mv__campaign {
	align-self: flex-start;
}

.mv__campaign-tag {
	font-size: 1rem;
	padding: 0.5rem 0.75rem;
}

.mv__campaign-tag--meta03 {
	font-size: 1rem;
	padding: 0.5rem 0.75rem;
}

.mv__campaign-note {
	font-size: 0.625rem;
}

.mv__title {
	font-size: 2rem;
	text-align: center;
}

.mv__title--meta02 {
	text-align: left;
}

.mv__title--meta03 {
	font-size: 2.625rem;
	text-align: left;
}

.mv__subtitle--meta03 {
	font-size: 0.9375rem;
	line-height: 1.4;
	margin-block-end: 1.5rem;
}

.mv__badges {
	-moz-column-gap: 0.75rem;
	column-gap: 0.75rem;
}

.mv__badge {
	height: 6.125rem;
	width: 6.5625rem;
}

.mv__badge--1 {
	padding: 1.25rem 1.4375rem 1.375rem;
	row-gap: 0.0625rem;
}

.mv__badge--2 {
	padding: 1.25rem 1.4375rem 1.625rem;
	row-gap: 0.375rem;
}

.mv__badge--3 {
	padding: 1.1875rem 1.4375rem 1.5625rem;
	row-gap: 0.1875rem;
}

.mv__badge-tag {
	font-size: 0.7rem;
}

.mv__badge-tag-small {
	font-size: 0.525rem;
}

.mv__badge-label {
	font-size: 0.6125rem;
}

.mv__badge-label--small {
	font-size: 0.4375rem;
}

.mv__badge-num {
	font-size: 1.575rem;
}

.mv__badge-num--mid {
	font-size: 1.4875rem;
}

.mv__badge-unit {
	font-size: 0.875rem;
	translate: 0 -0.0875rem;
}

.mv__badge-range {
	font-size: 0.39375rem;
	translate: 0 -0.0875rem;
}

.mv__badge-strong {
	font-size: 1.3125rem;
}

.mv__credits {
	flex-direction: column;
	-moz-column-gap: 0;
	column-gap: 0;
	row-gap: 1rem;
}

.mv__credits-text {
	font-feature-settings: "palt";
	font-size: 0.5625rem;
	line-height: 1.3;
	text-align: center;
}

.mv--meta03 .mv__badge-num {
	font-size: 1.5rem;
}

.mv--meta03 .mv__badge-num--mid {
	font-size: 1.25rem;
}

.concern {
	padding-block-end: 3rem;
	padding-inline: 2rem;
}

.concern__heading {
	--chevron-depth: 2.375rem;
	margin-inline: -2rem;
	padding-block: 2.5625rem 3.4375rem;
	width: calc(100% + 4rem);
}

.concern__title {
	font-size: 1.25rem;
}

.concern__title-break--sp {
	display: inline;
}

.concern__cards-wrap {
	width: 100%;
}

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

.concern__card {
	height: 9rem;
}

.concern__card-answer {
	font-size: 0.8125rem;
}

.concern__solution {
	row-gap: 1rem;
	width: 100%;
}

.concern__solution-text {
	font-size: 1rem;
	line-height: 1.6;
}

.comparison {
	padding-block: 3rem;
}

.comparison__inner {
	max-width: 100%;
	padding-inline: 1.5625rem;
	row-gap: 2rem;
}

.comparison__title {
	font-size: 1.25rem;
}

.comparison__title-mark {
	font-size: 0.625rem;
}

.comparison__subtitle {
	font-size: 0.6875rem;
}

.comparison__table {
	width: 100%;
}

.comparison__cell {
	font-size: 0.75rem;
}

.comparison__cell--head {
	line-height: 1.3;
	width: 5rem;
}

.comparison__cell--head:first-child {
	font-size: 0.875rem;
}

.comparison__cell--head:nth-child(2),
.comparison__cell--head:nth-child(3) {
	width: 5rem;
}

.comparison__head-prefix {
	display: block;
	font-size: 0.75rem;
	font-weight: 500;
	line-height: 1.3;
}

.comparison__head-name {
	display: block;
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.3;
}

.comparison__cell--ours-main {
	width: 6.25rem;
}

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

.comparison__ours-subtitle {
	font-size: 0.4375rem;
}

.comparison__cell--label {
	width: 5rem;
}

.comparison__cell--accent {
	padding-inline: 0.375rem;
}

.comparison__cell--ours-full {
	font-size: 0.75rem;
	line-height: 1.3;
	padding: 0.6875rem 0.25rem;
}

.comparison__cell--ours-strong {
	font-size: 1rem;
}

.comparison__cell--ours-compact {
	font-size: 0.6875rem;
}

.comparison__split {
	display: block;
	height: auto;
	padding: 0.6875rem 0.25rem;
	text-align: center;
}

.comparison__split-item {
	display: inline;
	flex: none;
	font-size: 0.625rem;
	line-height: 1.3;
}

.comparison__split-item:not(:first-child) {
	box-shadow: none;
}

.comparison__cell--ours .comparison__split-item:last-child {
	display: none;
}

.comparison__split-divider {
	display: inline;
	font-size: 0.625rem;
	font-weight: 500;
	line-height: 1.3;
	margin: 0;
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.comparison__note {
	font-size: 0.4375rem;
	padding-inline-start: 1em;
	text-indent: -1em;
}

.comparison__cta {
	margin-block-start: 0;
}

.comparison__cta-lead {
	font-weight: 400;
}

.strength__heading {
	align-items: stretch;
	padding: 4rem 2rem 2rem;
	text-align: left;
}

.strength__title {
	font-size: 1.5rem;
	line-height: 1.3;
}

.strength__subtitle {
	font-size: 0.875rem;
	line-height: 1.4;
}

.strength__card {
	align-items: stretch;
	flex-direction: column;
	padding: 4rem 0;
	-moz-column-gap: 0;
	column-gap: 0;
	row-gap: 3rem;
	transition: none;
}

.strength__card--1,
.strength__card--3 {
	transform: none;
}

.strength__card--2 {
	transform: none;
}

.strength__card-image {
	height: 16.5625rem;
	padding: 2rem 1.5rem;
	width: 100%;
}

.strength__card--2 .strength__card-image {
	order: -1;
}

.strength__card-content {
	flex: 1 1 auto;
	padding: 0 1.5rem;
	width: auto;
}

.strength__card--1 .strength__card-content {
	flex: 1 1 auto;
}

.strength__card--2 .strength__card-content {
	flex: 1 1 auto;
}

.strength__card--3 .strength__card-content {
	flex: 1 1 auto;
}

.strength__card-title {
	font-size: 1.5rem;
}

.strength__card-subtitle {
	font-size: 1rem;
	white-space: normal;
}

.strength__card-tag {
	z-index: 2;
}

.strength__card-tag {
	transition: transform 0.8s cubic-bezier(0.25, 0.1, 0.25, 1);
}

.strength__card--1 .strength__card-tag,
.strength__card--3 .strength__card-tag {
	transform: translateX(-100vw);
}

.strength__card--2 .strength__card-tag {
	transform: translateX(100vw);
}

.strength__card.is-visible .strength__card-tag {
	transform: translateX(0);
}

.strength__card-tag-text {
	font-size: 2rem;
}

.strength__card-tag-num {
	font-size: 6rem;
}

.strength__cta {
	padding: 1rem 0;
}

.strength__cta-btn {
	padding-inline: 2rem;
}

.case__inner {
	padding: 4rem 1.5rem;
	width: 100%;
}

.case__heading {
	row-gap: 1.5rem;
}

.case__title {
	font-size: 1.5rem;
}

.case__lead {
	font-size: 0.875rem;
}

.case__list {
	row-gap: 1.5rem;
	width: 100%;
}

.case__card {
	padding: 2rem 1.5rem;
}

.case__card-summary {
	align-items: stretch;
	flex-direction: column;
	-moz-column-gap: 0;
	column-gap: 0;
	row-gap: 2rem;
}

.case__logos {
	height: 13.75rem;
	width: 100%;
}

.case__logo {
	aspect-ratio: var(--logo-sp-w)/var(--logo-sp-h);
	width: calc(var(--logo-sp-w) / 16 * 1rem);
}

.case__summary {
	padding-block-start: 0;
}

.case__card-title {
	font-size: 1.25rem;
}

.case__meta-value--pre {
	white-space: normal;
}

.case__detail-label {
	line-height: 1.2;
	text-align: center;
	width: 100%;
}

.case__detail-heading {
	font-size: 1.25rem;
}

.case__detail-text {
	line-height: 1.5;
}

.flow {
	padding: 4rem 2rem;
}

.flow__inner {
	row-gap: 4rem;
}

.flow__process {
	row-gap: 2rem;
}

.flow__title {
	font-size: 1.75rem;
	text-align: left;
}

.flow__columns {
	flex-direction: column;
	margin-block-start: 2.5rem;
	row-gap: 1.5rem;
}

.flow__divider {
	height: 0.0625rem;
	width: 100%;
}

.flow__banner {
	aspect-ratio: auto;
	clip-path: none;
	padding: 1rem;
}

.flow__price-title {
	font-size: 1.75rem;
}

.flow__price-lead {
	font-size: 0.875rem;
}

.flow__price-header {
	font-size: 1rem;
	height: 4rem;
}

.flow__price-label {
	font-size: 0.875rem;
	height: 4.5rem;
	justify-content: center;
	padding-inline: 0;
	text-align: center;
	width: 5.5rem;
}

.flow__price-value {
	align-items: flex-start;
	flex-direction: column;
	height: 4.5rem;
	justify-content: center;
	padding-inline: 1rem;
	-moz-column-gap: 0;
	column-gap: 0;
	row-gap: 0.75rem;
}

.flow__price-amount {
	font-size: 1.25rem;
}

.flow__price-note {
	font-size: 0.6875rem;
}

.faq {
	padding: 4rem 1.5rem;
}

.faq__inner {
	row-gap: 2rem;
}

.faq__title {
	font-size: 1.5rem;
}

.faq__item {
	padding: 1rem;
}

.faq__summary {
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
}

.faq__heading {
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
}

.faq__label {
	font-size: 1rem;
}

.faq__question {
	font-size: 1rem;
	line-height: 1.3;
}

.faq__icon {
	height: 0.4375rem;
	width: 0.8125rem;
}

.faq__answer {
	font-size: 0.875rem;
}

.contact {
	padding: 4rem 1.5rem;
}

.contact__inner {
	row-gap: 2rem;
}

.contact__title {
	font-size: 1.5rem;
}

.contact__form {
	row-gap: 1rem;
}

.contact__list {
	row-gap: 0.375rem;
}

.contact__note {
	font-size: 0.75rem;
}

.contact__name-fields {
	-moz-column-gap: 0.5rem;
	column-gap: 0.5rem;
}

.contact__acceptance {
	padding-block-start: 0.375rem;
}

.contact__acceptance a {
	text-underline-offset: 0.125rem;
}

.contact__submit-btn-wrapper {
	width: 100%;
}

.contact__submit-btn-wrapper::before,
.contact__submit-btn-wrapper::after {
	display: none;
}

.contact__submit-btn-wrapper .contact__submit-btn {
	background-color: #F15C00;
	border-radius: 62.5rem;
	box-shadow: 0 0.5rem 0.5rem 0 rgba(0, 0, 0, 0.25);
	padding: 1.5rem 0;
	width: 100%;
}

.contact__submit-btn-wrapper:has(.contact__submit-btn:disabled) .contact__submit-btn {
	background-color: #c9c9c9;
}

.contact--meta03 .contact__submit-btn-wrapper .contact__submit-btn {
	background-color: #EE0400;
}

.contact .wpcf7-acceptance .wpcf7-list-item-label {
	text-box-edge: cap alphabetic;
	text-box-trim: trim-both;
}

.page-layout {
	flex-direction: column;
}

.main {
	padding-block-start: 5.4375rem;
	width: 100%;
}

.sidebar {
	display: none;
}

.sidebar__note {
	font-size: 0.75rem;
}

.page-layout:has(.page) .header__inner {
	justify-content: space-between;
	width: 100%;
}

.page__inner {
	padding-block-end: 4rem;
	padding-block-start: 11.6875rem;
	padding-inline: 2rem;
}

.page__title {
	font-size: 1.25rem;
}

.page__contents p {
	font-size: 0.9375rem;
}

.buttonList--vertical .button {
	padding-inline: 0.75rem;
	width: 100%;
}

.cal-modal__header-text {
	font-size: 0.875rem;
}

.show__sp-only {
	display: block;
}

.show__sp-only--flex {
	display: flex;
}

.show__pc-only {
	display: none;
}

.show__pc-only--flex {
	display: none;
}

}

@keyframes concern-cards-hint-bob {

0%,100% {
	transform: scaleY(-1) translateY(0);
}

50% {
	transform: scaleY(-1) translateY(-0.5rem);
}

}

