@charset "utf-8";

:root {
	--color-red: #B71313;
	--color-gray: #767676;
	--z-header: 100;
	--z-nav-toggle: 10;
	--z-modal: 500;
	--z-modal-close: 510; }

html {
    scroll-padding-top: 100px; }

/* ==============================

base

=================================*/
body {
	font-family: "Noto Sans JP", sans-serif;
	font-optical-sizing: auto;
	overflow-x: hidden; }

body img {
	max-width: 100%;
	width: 100%; }

a,button {
    opacity: 1;
    transition: 0.3s; }

@media (hover: hover) and (pointer: fine) {
    a:hover,button:hover {
        opacity: 0.5; } }



/* ==============================

font size

=================================*/
h1 {
	font-size: min(2.66vw, 32px);
	letter-spacing: 0.05em;
	text-indent: 0.05em;
	line-height: 1.8;
	font-weight: bold; }
@media screen and (max-width: 768px) {
	h1 {
		font-size: min(6.4vw, 24px); } }

h2 {
	font-size: min(2.333vw, 28px);
	letter-spacing: 0.05em;
	text-indent: 0.05em;
	line-height: 1.6;
	font-weight: bold; }
@media screen and (max-width: 768px) {
	h2 {
		font-size: min(5.867vw, 22px); } }

h3 {
	font-size: min(2.0vw, 24px);
	letter-spacing: 0.05em;
	text-indent: 0.05em;
	line-height: 1.6;
	font-weight: bold; }
@media screen and (max-width: 768px) {
	h3 {
		font-size: min(5.333vw, 20px); } }

h4 {
	font-size: min(1.667vw, 20px);
	letter-spacing: 0.05em;
	text-indent: 0.05em;
	line-height: 1.6;
	font-weight: bold; }
@media screen and (max-width: 768px) {
	h4 {
		font-size: min(4.8vw, 18px); } }

h5 {
	font-size: min(1.5vw, 18px);
	letter-spacing: 0.05em;
	text-indent: 0.05em;
	font-weight: bold;
	line-height: 1.4; }
@media screen and (max-width: 768px) {
	h5 {
		font-size: 18px; } }

p, .font-middle {
	font-weight: 400;
	font-style: normal;
	font-size: 16px;
	line-height: 1.6; }
@media screen and (max-width: 768px) {
	p, .font-middle {
		font-size: 16px; } }

.font-small {
	font-size: 14px;
	line-height: 1.4; }
@media screen and (max-width: 768px) {
	.font-small {
		font-size: min(3.2vw, 12px); } }

.hidden {
	display: none; }

sup {
    top: -1.0em;
    font-size: 60%;
    line-height: 0;
    position: relative;
    vertical-align: baseline; }

.under-line {
	text-underline-offset: 3px;
    text-decoration:underline; }





/* ==============================

parts

=================================*/
.display-pc {
	display: block; }
@media screen and (max-width: 768px) {
	.display-pc {
		display: none; } }

.display-sp {
	display: none; }
@media screen and (max-width: 768px) {
	.display-sp {
		display: block; } }

.br-pc {
	display: block; }
@media screen and (max-width: 768px) {
	.br-pc {
		display: none; } }

.br-sp {
	display: none; }
@media screen and (max-width: 768px) {
	.br-sp {
		display: block; } }

.mgt-0 { margin-top: 0!important; }
.mgt-5 { margin-top: 5px; }
.mgt-10 { margin-top: 10px; }
.mgt-15 { margin-top: 15px; }
.mgt-20 { margin-top: 20px; }
.mgt-30 { margin-top: 30px; }
.mgt-40 { margin-top: 40px; }
.mgt-60 { margin-top: 60px; }
.mgt-80 { margin-top: 80px; }
.mgb-0 { margin-bottom: 0!important; }

.txt-bold {
	font-weight: bold; }
.txt-light {
	font-weight: 100; }
.txt-center {
	text-align: center!important; }

.no-border {
	border-bottom: none!important; }

.radius-20 { border-radius: 20px; }
.radius-15 { border-radius: 15px; }
.radius-10 { border-radius: 10px; }

.color-red { color: #B71313!important; }
.color-orange { color: #EC9459!important; }
.color-white { color: #fff!important; }


/* フェードインさせる要素 */
.fade {
    opacity: 0; /* 最初は非表示にしておく */
    transition: all 1s; /* 動きを滑らかに */
}
/* フェードイン用のクラス */
.fadeIn {
    opacity: 1; }






/* ==============================

contents

=================================*/
.main-wrapper {
	margin-top: 78px;
	background-color: #fff; }
@media screen and (max-width: 768px) {
	.main-wrapper {
		margin-top: 68px; } }

/* Container */
.contents__inner {
	margin: 0 auto;
	width: 90%;
	max-width: 1200px; }
@media screen and (max-width: 768px) {
	.contents__inner {
		width: 93%; } }

.inner__block {
	margin: 0 auto;
	width: 95%;
	max-width: 1100px; }
@media screen and (max-width: 768px) {
	.inner__block {
		width: 95%; } }




/* ==============================

footer

=================================*/
footer {
    background-color: #4A4A4A;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
	margin: 0 auto;
	padding: 20px; }
@media screen and (max-width: 768px) {
	footer {
		display: block;
		padding: 50px 15px 20px; } }

footer .footer_left {
	display: flex;
	width: 49%;
	gap:20px;
	font-size: 14px;
	color:#fff; }
@media screen and (max-width: 768px) {
	footer .footer_left {
		display: block;
		gap:0;
		width: 100%; } }

footer .footer_left li {
	text-decoration:underline; }
@media screen and (max-width: 768px) {
	footer .footer_left li {
		margin-bottom: 40px; }
	footer .footer_left li:last-child {
		margin-bottom: 0; }
	footer .block-line {
	margin: 40px 0;
	border-bottom: 1px solid #898989; } }

footer .footer_right {
    width: 49%;
	color:#fff;
	text-align: right; }
@media screen and (max-width: 768px) {
	footer .footer_right {
		text-align: center;
		width: 100%; } }

footer .footer_right p {
    font-size: 14px; }



/* ==============================

header

=================================*/
header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	z-index: var(--z-header);
}
.header-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding:0 20px;
	background-color: #fff;
    border-bottom: 1px solid #B71313;
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.1);
	height: 78px;
}
@media screen and (max-width: 768px) {
	.header-wrapper  {
	height: 68px; } }


header .header-wrapper .header-left {
	width: 210px; }
header .header-wrapper .header-left img {
	width: 100%;
	height: 100%; }

@media screen and (max-width: 768px) {
	header .header-wrapper .header-left {
	width: 148px; } }

header .header-wrapper .header-right {
	margin-left: 2.0vw; }
@media screen and (max-width: 768px) {
	header .header-wrapper .header-right {
	margin-left: 0; } }

header .header-wrapper .header-right ul {
    display: flex;
    align-items: center;
    gap: 2.0vw;
    margin: 0;
    padding: 0; }

.header-right ul li {
    display: flex;
    align-items: center;
    position: relative;
    font-size: min(1.8vw, 16px);
    font-weight: bold;
    text-align: center;
    letter-spacing: 2px;
    margin: 0;
}

.header-right ul li + li {
    padding-left: 2.0vw;
    border-left: 2px solid #B71313;
    height: 28px; }

.header-right ul li a {
    color: #B71313; }

.header-right ul li a:hover {
	opacity: 0.5; }


/* スマホメニュー */
@media screen and (max-width: 768px) {
.hamburger{
	width: 40px;
	height: 40px;
	position: relative;
	background-color: #B71313;
	border-radius: 50%;
	transition: .5s;
	z-index: var(--z-nav-toggle);
	border: none;
	padding: 0;
	cursor: pointer;
	appearance: none;
}
.hamburger span{
	position: absolute;
	width: 50%;
	height: 2px;
	left: 50%;
	transform: translate(-50%, -50%);
	background-color: #fff;
	transition: .5s;
}
.hamburger span:first-of-type{/* ハンバーガーメニューの1番目の線 */
	top: 30%;
}
.hamburger span:nth-of-type(2){/* ハンバーガーメニューの2番目の線 */
	top: 50%;
}
.hamburger span:last-of-type{/* ハンバーガーメニューの3番目の線 */
	top: 70%;
}
.slide-menu{
	z-index: -1;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height:100vh;
	transform: translateY(-110%);
	transition: .5s;
}
.slide-menu ul{
	background-color: #fff;
	margin-top: 68px;
	padding: 40px 15px;
	box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}
.slide-menu li{
	font-size: 16px;
	width: 100%;
	font-weight: bold;
	margin-bottom: 20px;
	padding-bottom: 20px;
	color: #B71313;
	border-bottom: solid 1px #E2E2E2;
}
.slide-menu li:last-child {
	border-bottom: none;
	margin-bottom: 0;
	padding-bottom: 0;
}

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

.nav_link::after {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-right: 2px solid #B71313;
    border-bottom: 2px solid #B71313;
    transform: rotate(45deg);
    margin-left: 3.0vw;
}

@media (hover: hover) and (pointer: fine) {
	.slide-menu li a:hover {
		opacity: 0.5; } }

.hamburger.active{
	transform: rotateY(360deg);
}
.hamburger.active span:first-of-type{/* ハンバーガーメニューの1番目の線 */
	top: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
}
.hamburger.active span:nth-of-type(2){/* ハンバーガーメニューの2番目の線 */
	opacity: 0;/* 透明にする */
}
.hamburger.active span:last-of-type{/* ハンバーガーメニューの3番目の線 */
	top: 50%;
	transform: translate(-50%, -50%) rotate(-45deg);
}
.slide-menu.active{
	transform: translateY(0);
}

}/* スマホメニューここまで */


/* ==============================

kv

=================================*/
.kv-wrapper {
	text-align: center; }

.kv-wrapper img {
	width: 100%;
	margin: 0 auto; }


/* ==============================

outline-area

=================================*/
.outline-area {
	position: relative;
	margin: 15vw auto;
	background: #EDEDED; }
@media screen and (max-width: 768px) {
	.outline-area  {
		margin: 32vw auto; } }

.outline-area .outline-ttl {
	position: absolute;
	top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
	padding:12px 4.0vw;
	color: #fff;
	border-radius: 10px;
	background: #767676; }
@media screen and (max-width: 768px) {
	.outline-area .outline-ttl  {
		padding:8px 8.0vw; } }

.outline-area .outline-detail {
	position: relative;
	color: #414141;
	padding: 80px 0 50px; }
@media screen and (max-width: 768px) {
	.outline-area .outline-detail {
		padding: 12.0vw 0 10.0vw; } }

.outline-area .outline-detail .outline-block {
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 0 12px rgba(0, 0, 0, 0.1);
	margin-bottom: 30px;
	padding:30px; }
@media screen and (max-width: 768px) {
	.outline-area .outline-detail .outline-block {
		margin-bottom: 20px;
		padding:30px 15px; } }

.outline-area .outline-detail .outline-block:last-child {
    margin-bottom: 0; }

.outline-area .outline-detail .outline-block p {
	font-size: min(1.667vw, 20px);
	font-weight: bold; }
@media screen and (max-width: 768px) {
	.outline-area .outline-detail .outline-block p  {
		font-size: 17px; } }

.outline-area .outline-detail .outline-block p a {
    display: flex;
    align-items: center;
    gap: 10px;
    color: inherit; }
@media screen and (max-width: 768px) {
	.outline-area .outline-detail .outline-block p a {
		align-items: flex-start; } }

.outline-area .outline-detail .outline-block p span {
	display: inline-flex;
    justify-content: center;
    align-items: center;
	background-color: #B71313;
    color: #fff;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    padding: 2px 2px 3px;
    font-size: 14px;
    font-weight: bold;
    flex-shrink: 0; }
@media screen and (max-width: 768px) {
	.outline-area .outline-detail .outline-block p span {
		margin-top: 2px;
		font-size: 16px; } }

.outline-area .outline-detail .outline-block ul {
    margin-left: 15px; }

.outline-area .outline-detail .outline-block ul li {
    position: relative;
    padding: 12px 0 12px 1.2em;
    font-size: min(1.4vw, 18px);
	font-weight: 400;
    line-height: 1.5;
    border-bottom: 1px solid #E2E2E2; }
@media screen and (max-width: 768px) {
	.outline-area .outline-detail .outline-block ul li {
		font-size: 16px; } }

.outline-area .outline-detail .outline-block ul li:last-child {
    border-bottom: none;
    padding-bottom: 0; }

.outline-area .outline-detail .outline-block ul li::before {
    content: "・";
    position: absolute;
    left: 0;
    top: 12px;
    color: #333; }


/* ==============================

intro-area

=================================*/
.intro-area {
	text-align: center;
	margin-bottom: 20vw; }
@media screen and (max-width: 768px) {
	.intro-area  {
		margin-bottom: 32vw; } }

.intro-area .ttl-message {
	width: 100%;
	max-width: 158px;
	margin: 0 auto; }

.intro-area .ttl-line {
	width: 2px;
	height: 100px;
	margin: 15px auto 0;
	background-color: #B71313;
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 1.2s cubic-bezier(0.65, 0, 0.35, 1), opacity 1s; }
@media screen and (max-width: 768px) {
	.intro-area .ttl-line {
		height: 100px;
		margin-top: 12px; } }

.intro-area .ttl-line.fadeIn {
	transform: scaleY(1); }

.intro-area .intro-word {
	color: #414141;
	margin-top: 2.0vw; }
@media screen and (max-width: 768px) {
	.intro-area .intro-word  {
		margin-top: 5.0vw; } }

.intro-area .intro-word .intro-lead {
	font-weight: 600;
	font-style: normal;
	font-size: 20px;
	line-height: 2.4;
	margin-bottom: 3.0vw; }
@media screen and (max-width: 768px) {
	.intro-area .intro-word .intro-lead {
		font-size: 18px;
		text-align: left;
		line-height: 2.0;
		margin-bottom: 16vw; } }

.intro-area .intro-word .intro-conclusion {
	font-weight: bold;
	font-style: normal;
	font-size: 24px;
	line-height: 2.6; }
@media screen and (max-width: 768px) {
	.intro-area .intro-word .intro-conclusion {
		line-height: 2.2;
		font-size: 20px; } }

.intro-area .intro-word .intro-conclusion .red-line {
	display: inline-block;
	background-color: #B71313;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1s cubic-bezier(0.65, 0, 0.35, 1) 0.4s; }

.intro-area .intro-word .intro-conclusion.fadeIn .red-line {
	clip-path: inset(0 0 0 0); }


/* ==============================

sec01-area

=================================*/
.sec01-curve {
	position: relative;
	width: 100%;
	height: 200px;
	overflow: hidden;
	pointer-events: none; }
@media screen and (max-width: 768px) {
	.sec01-curve {
		height: 56px; } }

.sec01-curve::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 120vw;
	margin-left: -60vw;
	height: 100%;
	background-color: #F9EEE0;
	border-radius: 50% 50% 0 0 / 100% 100% 0 0; }

.sec-01 {
	position: relative;
	background-color: #F9EEE0;
	padding: 0 0 20vw; }
@media screen and (max-width: 768px) {
	.sec-01 {
		padding: 0 0 56vw; } }

.sec-01 .sec01-ttl {
	position: relative;
	z-index: 1;
	text-align: center;
	margin-bottom: 8.33vw; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-ttl {
		margin-bottom: 18vw; } }

.sec-01 .sec01-ttl .sec01-ttl_pic {
	width: 100%;
	max-width: 936px;
	margin: 0 auto 30px; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-ttl .sec01-ttl_pic {
		max-width: 335px;
		margin-bottom: 20px; } }

.sec-01 .sec01-ttl h1 {
	margin-bottom: 20px; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-ttl h1 {
		margin-bottom: 30px;
		text-align: left; } }
.sec-01 .sec01-ttl p {
		width: fit-content;
		margin: 0 auto;
		text-align: left; }

/* 共通点線タイトル */
.sec-01 .sec01-summary {
	margin-bottom: 8.33vw;
	position: relative; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-summary {
		margin-bottom: 18vw; } }

.sec-01 .sec01-summary_2 {
	margin: 11.6vw 0 5.0vw;
	position: relative; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-summary_2 {
		margin: 24vw 0 15vw; } }

.sec-02 .sec02-profile .ttl-advice_wrap {
	position: relative; }

.sec-01 .sec01-summary::after,
.sec-01 .sec01-summary_2::after,
.sec-02 .sec02-profile .ttl-advice_wrap::after {
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background: linear-gradient(to right, #000 0%, #000 60%, transparent 60%, transparent 100%);
    background-size: 14px 3px;
    background-repeat: repeat-x;
    margin-top: 30px; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-summary::after {
		margin-top: 30px; }
	.sec-01 .sec01-summary_2::after {
		margin-top: 60px; }
	.sec-02 .sec02-profile .ttl-advice_wrap::after {
		margin-top: 60px; } }

.sec-01 .sec01-summary h4,
.sec-01 .sec01-summary_2 h2 {
    display: flex;
    align-items: center;
    justify-content: center;
	text-align: center;
    gap: 20px;
    margin-bottom: 30px; }

.sec-02 .sec02-profile .ttl-advice_wrap .ttl-advice {
    display: flex;
    align-items: center;
    justify-content: center;
	text-align: center;
    gap: 20px;
    margin-bottom: 20px; }

@media screen and (max-width: 768px) {
	.sec-01 .sec01-summary h4 {
		display: block;
        position: relative;
        padding-top: 30px;
        margin-bottom: 20px; }
	.sec-01 .sec01-summary_2 h2 {
		gap: 10px; }
	.sec-02 .sec02-profile .ttl-advice_wrap .ttl-advice {
		gap: 10px;
		margin-bottom: 40px; } }

.sec-01 .sec01-summary_2 h2 span {
    background-color: #B71313;
	color: #fff;
    border-radius: 100px;
    padding: 0.5vw 3.33vw;
    display: inline-block;
    flex-shrink: 0; }

@media screen and (max-width: 768px) {
    .sec-01 .sec01-summary_2 h2 span {
        padding: 2.6vw 8.0vw; } }

.sec-01 .sec01-summary h4::before,
.sec-01 .sec01-summary h4::after,
.sec-01 .sec01-summary_2 h2::before,
.sec-01 .sec01-summary_2 h2::after,
.sec-02 .sec02-profile .ttl-advice_wrap .ttl-advice::before,
.sec-02 .sec02-profile .ttl-advice_wrap .ttl-advice::after {
    content: "";
    flex: 1;
    height: 3px;
    background: linear-gradient(to right, #000 0%, #000 60%, transparent 60%, transparent 100%);
    background-size: 14px 3px;
    background-repeat: repeat-x; }

@media screen and (max-width: 768px) {
	.sec-01 .sec01-summary h4::after {
        display: none;}
    .sec-01 .sec01-summary h4::before {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 3px; } }
/* 共通点線タイトルここまで */

.sec-01 .sec01-research {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	width: 100%;
	margin-bottom: 5.0vw; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-research {
		display: block;
		margin-bottom: 26.6vw; } }

.sec-01 .sec01-research .sec01-research-block_1 {
	width: 60%; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-research .sec01-research-block_1 {
		width: 100%;
		margin-bottom: 10.6vw; } }

.sec-01 .sec01-research .sec01-research-block_2 {
	width: 38%; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-research .sec01-research-block_2 {
		width: 100%; } }

.sec01-research-block_1,.sec01-research-block_2 {
	overflow: hidden;
	background-color: #fff; }

.sec-01 .sec01-research h4 {
	color: #fff;
	background-color: #767676;
	padding: 1.0vw 0; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-research h4 {
		padding: 4.0vw 0; } }

.sec-01 .sec01-research ul {
	padding: 30px; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-research ul {
		padding: 40px 15px; } }

.sec-01 .sec01-research ul li {
    display: flex;
    align-items: flex-start;
    padding: 15px 0;
    font-weight: 400;
	font-size: 16px;
	line-height: 1.6;
	border-bottom: 1px solid #E2E2E2; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-research ul li {
		font-size: 16px; } }

.sec-01 .sec01-research ul li:first-child {
    padding-top: 0; }
.sec-01 .sec01-research .sec01-research-block_1 ul li:first-child::before {
	top: 0; }
.sec-01 .sec01-research ul li:last-child {
    border-bottom: none;
    padding-bottom: 0; }

.sec-01 .sec01-research .sec01-research-block_1 ul li {
    display: block;
    position: relative;
    padding-left: 36px; }

.sec-01 .sec01-research .sec01-research-block_1 ul li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 15px;
    width: 24px;
    height: 24px;
    background-color: #B71313;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 13 10 18 19 7'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px 13px;
    border-radius: 50%; }

.sec-01 .sec01-detail {
	width: 100%;
	overflow: hidden;
	background-color: #fff;
	margin-bottom: 5.0vw; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail {
		margin-bottom: 15vw; } }

.sec-01 .sec01-detail-block {
	padding: 3.33vw 0 5.0vw; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail-block {
		padding: 10vw 0 15vw; } }

.sec-01 .sec01-detail-block h4 {
	text-align: center;
	margin: 30px 0 20px; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail-block h4 {
		text-align: left;
		margin: 50px 0 30px; } }

.sec-01 .sec01-detail-block .under_ttl {
	text-align: center;
	margin: 50px 0 20px; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail-block .under_ttl {
		text-align: left;
		margin: 60px 0 30px; } }

.sec-01 .sec01-detail-block .sec01-detail-box {
	display: flex;
    align-items: center;
	width: 100%;
    margin: 0 auto; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail-block .sec01-detail-box {
		display: block; } }

.sec-01 .sec01-detail-block .sec01-detail-pic_1 {
	width: 100%;
	max-width: 1100px;
	margin: 0 auto; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail-block .sec01-detail-pic_1 {
		max-width: 380px; } }

.sec-01 .sec01-detail-block .sec01-detail-pic_2 {
	width: 50%;
    max-width: 410px;
	padding-right: 40px;
    margin-left: auto; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail-block .sec01-detail-pic_2 {
		width: 100%;
		max-width: 380px;
		margin: 0 auto 30px;
		padding-right: 0; } }

.sec-01 .sec01-detail-block .sec01-detail-box ul {
	width: 50%;
    margin: 0;
    box-sizing: border-box; }
@media screen and (max-width: 768px) {
	.sec-01 .sec01-detail-block .sec01-detail-box ul {
		width: 100%; } }

.sec-01 .sec01-detail-block .sec01-detail-box ul li {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 15px;
    font-size: 16px;
    line-height: 1.6; }

.sec-01 .sec01-detail-block .sec01-detail-box ul li:last-child {
    margin-bottom: 0; }
@media screen and (max-width: 768px) {
    .sec-01 .sec01-detail-block .sec01-detail-box ul li {
        margin-bottom: 16px;
        gap: 12px; } }

.sec-01 .sec01-detail-block .sec01-detail-box ul li::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    margin-top: 1px; }
@media screen and (max-width: 768px) {
    .sec-01 .sec01-detail-block .sec01-detail-box ul li::before {
		margin-top: 3px; } }

.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_1 li:nth-child(1)::before { background-color: #78C8A8; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_1 li:nth-child(2)::before { background-color: #E0BC6C; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_1 li:nth-child(3)::before { background-color: #EA5C5C; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_1 li:nth-child(4)::before { background-color: #EC9459; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_1 li:nth-child(5)::before { background-color: #AFAFAF; }

.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_2 li:nth-child(1)::before { background-color: #AFAFAF; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_2 li:nth-child(2)::before { background-color: #648EBC; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_2 li:nth-child(3)::before { background-color: #78C8A8; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_2 li:nth-child(4)::before { background-color: #E0BC6C; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_2 li:nth-child(5)::before { background-color: #EC9459; }
.sec-01 .sec01-detail-block .sec01-detail-box .graph-list_2 li:nth-child(6)::before { background-color: #EA5C5C; }

.sec-01 .sec01-detail-block .block-line {
	margin-top: 50px;
	border-bottom: 2px solid #EC9459; }
@media screen and (max-width: 768px) {
    .sec-01 .sec01-detail-block .block-line {
        margin-top: 60px; } }


/* ==============================

sec02-area

=================================*/
.sec-02 {
	position: relative;
	background-color: #FAFDFF;
	border-top: 4px solid #648EBC;
	border-bottom: 4px solid #648EBC;
	padding: 6.66vw 0 20vw; }
@media screen and (max-width: 768px) {
	.sec-02 {
		padding: 20vw 0 32vw; } }

.sec-02 .sec02-ttl {
	z-index: 1;
	text-align: center;
	margin-bottom: 8.33vw; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-ttl {
		margin-bottom: 26.6vw; } }

.sec-02 .sec02-ttl .sec02-ttl_pic {
	width: 100%;
	max-width: 250px;
	position: absolute;
	top: -0.05%;
    left: 50%;
    transform: translate(-50%, -50%); }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-ttl .sec02-ttl_pic {
		max-width: 160px;
		margin-bottom: 20px;
		top: -0.5%;	} }

/* タイトル共有パーツ */
.sec-02 .sec02-ttl h1,.sec-03 .sec03-ttl h1 {
	margin: 0 auto;
	padding-bottom: 2.5vw;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-ttl h1,.sec-03 .sec03-ttl h1 {
		gap: 3.2vw;
		padding-bottom: 5.6vw; } }

.sec-02 .sec02-ttl h1::before,
.sec-02 .sec02-ttl h1::after,
.sec-03 .sec03-ttl h1::before,
.sec-03 .sec03-ttl h1::after {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 28px;
	height: 42px;
	background: url("../img/title_attention.svg") no-repeat center / contain; }

.sec-02 .sec02-ttl h1::after,
.sec-03 .sec03-ttl h1::after {
	transform: scaleX(-1); }

@media screen and (max-width: 768px) {
	.sec-02 .sec02-ttl h1::before,
	.sec-02 .sec02-ttl h1::after,
	.sec-03 .sec03-ttl h1::before,
	.sec-03 .sec03-ttl h1::after {
		display: none; } }

.sec-02 .sec02-ttl h4,.sec-03 .sec03-ttl h4 {
		margin: 0 auto;
		font-weight: 400;
		text-align: left; }
/* タイトル共有パーツ ここまで */

.sec-02 .sec02-detail_1 {
	width: 100%;
    display: flex;
	align-items: stretch;
	justify-content: space-between;
	margin-bottom: 3.5vw; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 {
		display: block;
		margin-bottom: 11vw; } }

.sec-02 .sec02-detail_2 {
	width: 100%;
	max-width: 720px;
	margin: 0 auto 6.66vw; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_2 {
		max-width: 100%;
		margin-bottom: 32vw; } }

.sec-02 .sec02-detail_1 .sec02-block,
.sec-02 .sec02-detail_2 .sec02-block {
	position: relative;
	background-color: #fff;
	border: 4px solid #000;
	padding: 60px 30px 40px; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block,
	.sec-02 .sec02-detail_2 .sec02-block {
		margin: 0 auto ;
		padding: 60px 15px 40px; }

	.sec-02 .sec02-detail_1 .sp-pad {
		margin-top: 21.3vw;
		padding-top: 80px; } }

.sec-02 .sec02-detail_1 .sec02-block {
	width: 48%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block {
		width: 100%; } }

.sec-02 .sec02-detail_1 .sec02-block h4,
.sec-02 .sec02-detail_2 .sec02-block h4 {
	position: absolute;
	top: -2px;
    left: 50%;
    transform: translate(-50%, -50%);
	background-color: #648EBC;
	border: 4px solid #000;
	color: #fff;
	width: max-content;
	border-radius: 10px;
	text-align: center;
	padding:12px 40px; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block h4,
	.sec-02 .sec02-detail_2 .sec02-block h4 {
		max-width: 260px;
		padding:8px 30px; } }

/* sec-02 上ブロック */
.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 {
    display: flex;
	justify-content: space-between;
	width: 100%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 {
		display: block; } }

.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_word_1 {
	width: 49%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_word_1 {
		width: 100%;
		margin-bottom: 30px; } }

.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_word_1 h5 {
	margin-bottom: 5px; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_word_1 h5 {
		margin-bottom: 8px; } }

.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_pic_1 {
	width: 49%;
	max-width: 250px;
	margin: 0 auto; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_pic_1 {
		width: 100%;
		max-width: 260px; } }

.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_word_2 {
	width: 65%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_word_2 {
		width: 100%;
		margin-bottom: 30px; } }

.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_pic_2 {
	width: 33%;
	max-width: 143px;
	margin: 0 auto; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_1 .sec02-block .sec02-box_1 .sec02-box_pic_2 {
		width: 100%;
		max-width: 140px; } }
/* sec-02 上ブロックここまで */

.sec-02 .sec02-detail_2 .sec02-mini-ttl {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	padding-bottom: 40px;
	color: #000;
	gap: 16px; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_2 .sec02-mini-ttl {
		gap: 12px;
		padding-bottom: 0;
		margin-bottom: 30px; } }

.sec-02 .sec02-detail_2 .sec02-mini-ttl::before,
.sec-02 .sec02-detail_2 .sec02-mini-ttl::after {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 18px;
    height: 2px;
    background-color: #000;
    border-radius: 1px; }
.sec-02 .sec02-detail_2 .sec02-mini-ttl::before {
    transform: rotate(50deg); }
.sec-02 .sec02-detail_2 .sec02-mini-ttl::after {
    transform: rotate(-50deg); }

/* sec-02 下ブロック */
.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 {
    display: flex;
	justify-content: space-between;
	margin-bottom: 20px;
	width: 100%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 {
		display: block; } }

.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_left,.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_right {
	margin: 0 auto;
	width: 49%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_left,.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_right {
		width: 100%; }

	.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_left {
		margin-bottom: 40px; } }

.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_left h5,.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_right h5 {
	margin-bottom: 15px; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_left h5,.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_right h5 {
		margin-bottom: 20px; } }

.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_left .sec02-box_pic_3 {
	width: 100%;
	max-width: 128px;
	margin: 0 auto; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_left .sec02-box_pic_3 {
		max-width: 172px; } }

.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_right .sec02-box_pic_4 {
	width: 100%;
	max-width: 198px;
	margin: 0 auto; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-detail_2 .sec02-block .sec02-box_2 .sec02-box_right .sec02-box_pic_4 {
		max-width: 270px; } }
/* sec-02 下ブロックここまで */


/* sec-02 モーダルプロフィール */
.sec-02 .sec02-profile {
	margin: 0 auto; }


.sec-02 .sec02-profile .ttl-advice_pic {
	width: 100%;
	max-width: 122px;
	margin: 0 auto; }

.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block {
	display: flex;
    align-items: center;
	justify-content: space-between;
	width: 100%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block {
		display: block; } }

.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_pic {
	max-width: 157px;
	width: 20%; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_pic {
		max-width: 220px;
		width: 100%;
		margin: 0 auto 20px; } }

.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_word {
	margin-left: 2.5vw; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_word {
		margin-left: 0; } }

.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_word h4 {
	line-height: 1.0; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_word h4 {
		text-align: center; } }

.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_word p {
	margin: 20px 0; }
@media screen and (max-width: 768px) {
	.sec-02 .sec02-profile .ttl-advice_wrap .sec02-pr_block .sec02-pr_word p {
		margin: 40px 0; } }
/* sec-02 モーダルプロフィールここまで */



/* ==============================

sec03 + sec04

=================================*/
.sec03-sec04_wrap {
	position: relative;
	background-color: #fff;
	background-image:
    linear-gradient(to right, #f5f5f5 3px, transparent 3px),
    linear-gradient(to bottom, #f5f5f5 3px, transparent 3px);
	background-size: 20px 20px;
	padding: 12.5vw 0 20vw; }
@media screen and (max-width: 768px) {
	.sec03-sec04_wrap {
		background-size: 15px 15px;
		padding: 26vw 0 32vw; } }

.sec-03,.sec-04 {
	position: relative;
	background-color: #fff;
	border: 4px solid #767676;
	box-sizing: border-box;
	padding: 6.66vw 0; }
@media screen and (max-width: 768px) {
	.sec-03,.sec-04 {
		padding: 20vw 0 13.3vw; } }

/* sec-03-04の線 */
.sec03-sec04_line {
	width: 4px;
	height: 16.6vw;
	margin: 0 auto;
	background-color: #767676;
	transform: scaleY(0);
	transform-origin: top;
	transition: transform 1.2s cubic-bezier(0.65, 0, 0.35, 1), opacity 1s;
	position: relative; }

/* 境界線をまたぐ丸 */
.sec03-sec04_line::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
	width: 20px;
	height: 20px;
	background-color: #767676;
	border-radius: 50%;
	transform: translate(-50%, -50%); }

.sec03-sec04_line.fadeIn {
	transform: scaleY(1); }

@media screen and (max-width: 768px) {
	.sec03-sec04_line {
		height: 64vw; }
	.sec03-sec04_line::before {
		width: 16px;
		height: 16px; } }


/* ==============================

sec03-area

=================================*/
/* .sec-03 {
	margin-bottom: 16.6vw; }
@media screen and (max-width: 768px) {
	.sec-03 {
		margin-bottom: 64vw; } } */

.sec03-mini-ttl {
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto;
	padding-bottom: 50px;
	color: #000;
	gap: 20px; }
@media screen and (max-width: 768px) {
	.sec03-mini-ttl {
		display: block;
		text-align: center;
		padding-bottom: 0;
		margin-bottom: 22vw; } }

.sec03-mini-ttl::before,
.sec03-mini-ttl::after {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: 24px;
    height: 2px;
    background-color: #000;
    border-radius: 1px; }
.sec03-mini-ttl::before {
    transform: rotate(50deg); }
.sec03-mini-ttl::after {
    transform: rotate(-50deg); }
@media screen and (max-width: 768px) {
	.sec03-mini-ttl::before,
	.sec03-mini-ttl::after {
		display: none; } }

.sec-03 .sec03-ttl {
	z-index: 1;
	text-align: center;
	margin-bottom: 4.1vw; }
@media screen and (max-width: 768px) {
	.sec-03 .sec03-ttl {
		margin-bottom: 16vw; } }

.sec-03 .sec03-ttl .sec03-ttl_pic {
	width: 100%;
	max-width: 360px;
	position: absolute;
	top: -0.05%;
    left: 50%;
    transform: translate(-50%, -50%); }
@media screen and (max-width: 768px) {
	.sec-03 .sec03-ttl .sec03-ttl_pic {
		max-width: 240px;
		top: -0.5%; } }

.sec-03 .sec03-detail {
	margin-bottom: 30px; }

.sec-03 .sec03-detail .sec03-detail-pic_1 {
	margin-bottom: 40px; }
@media screen and (max-width: 768px) {
	.sec-03 .sec03-detail .sec03-detail-pic_1 {
		margin-bottom: 20px; } }
.sec-03 .sec03-detail .sec03-detail-pic_1 img {
	width: 100%;
	height: 100%; }

.sec-03 .sec03-detail .sec03-detail-pic_2 {
	display: flex;
    align-items:flex-start;
	justify-content: space-between;
	width: 100%; }
@media screen and (max-width: 768px) {
	.sec-03 .sec03-detail .sec03-detail-pic_2 {
		display: block; } }

.sec-03 .sec03-detail .sec03-detail-pic_2 .sec03-pic_left,
.sec-03 .sec03-detail .sec03-detail-pic_2 .sec03-pic_right {
	width: 48%; }
@media screen and (max-width: 768px) {
	.sec-03 .sec03-detail .sec03-detail-pic_2 .sec03-pic_left {
		width: 100%;
		margin-bottom: 20px; }
	.sec-03 .sec03-detail .sec03-detail-pic_2 .sec03-pic_right {
		width: 100%; } }

@media screen and (max-width: 768px) {
	.sec-03 .btn__link .link {
		padding: 15px 10vw;
		max-width: 100%;
		font-size: min(4.5vw, 20px); } }

/* ==============================

sec04-area

=================================*/
.sec-04 .sec04-ttl {
	z-index: 1;
	text-align: center;
	padding-top: 0vw; }
@media screen and (max-width: 768px) {
	.sec-04 .sec04-ttl {
		padding-top: 0vw; } }

.sec-04 .sec04-ttl .sec04-ttl_pic {
	width: 100%;
	max-width: 360px;
	position: absolute;
	top: -0.05%;
    left: 50%;
    transform: translate(-50%, -50%); }
@media screen and (max-width: 768px) {
	.sec-04 .sec04-ttl .sec04-ttl_pic {
		max-width: 230px;
		top: -0.5%; } }

.sec-04 .sec04-detail {
	background-color: #EDEDED;
	text-align: center;
	padding: 4.16vw; }
@media screen and (max-width: 768px) {
	.sec-04 .sec04-detail {
		padding: 13.3vw 15px; } }

.sec-04 .sec04-detail h2 {
	position: relative; }

.sec-04 .sec04-detail h2::after {
    content: "";
    display: block;
    width: 100%;
    height: 3px;
    background: linear-gradient(to right, #000 0%, #000 60%, transparent 60%, transparent 100%);
    background-size: 14px 3px;
    background-repeat: repeat-x;
    margin-top: 20px; }
@media screen and (max-width: 768px) {
	.sec-04 .sec04-detail h2::after {
		margin-top: 20px; } }

.sec-04 .sec04-detail p {
	margin-top: 20px;
	text-align: left; }

.sec-04 .sec04-detail .sec04-detail-pic {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-top: 30px; }
@media screen and (max-width: 768px) {
	.sec-04 .sec04-detail .sec04-detail-pic {
		display: block;
		margin-top: 60px; }
	.sec-04 .sec04-detail .sec04-detail-pic .sp-pad {
		margin-bottom: 20px; } }

.sec-04 .sec04-detail .sec04-detail-pic img {
	width: 48%; }
@media screen and (max-width: 768px) {
	.sec-04 .sec04-detail .sec04-detail-pic img {
		width: 100%; } }

/* ==============================

sec05-area

=================================*/
.sec-05 {
	background-size: cover;
    background-image: url("../img/sec05-bg.png") ;
	background-position: center center;
    background-repeat: no-repeat;
	width: 100%; }
@media screen and (max-width: 768px) {
	.sec-05 {
		background-image: url("../img/sec05-bg_sp.png") ; } }

.sec-05 .sec05-detail {
	text-align: center;
	padding: 15vw 0; }
@media screen and (max-width: 768px) {
	.sec-05 .sec05-detail {
		padding: 21.3vw 0 30vw; } }

.sec-05 .sec05-detail .sec05-fukidashi {
    position: relative;
    display: inline-block;
    background-color: #B71313;
    color: #fff;
    padding: 12px 40px;
	margin-bottom: 20px;
    border-radius: 10px; }
@media screen and (max-width: 768px) {
    .sec-05 .sec05-detail .sec05-fukidashi {
        padding: 10px 24px; } }

.sec-05 .sec05-detail .sec05-fukidashi::after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    border-style: solid;
    border-width: 10px 8px 0 8px;
    border-color: #B71313 transparent transparent transparent; }

.sec-05 .sec05-detail h1 {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 24px;
	color: #fff;
	margin-bottom: 40px; }
@media screen and (max-width: 768px) {
	.sec-05 .sec05-detail h1 {
		margin-bottom: 30px; } }

.sec-05 .sec05-detail h1::before,
.sec-05 .sec05-detail h1::after {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	width: 28px;
	height: 42px;
	background: url("../img/title_attention_white.svg") no-repeat center / contain; }

.sec-05 .sec05-detail h1::after {
	transform: scaleX(-1); }

@media screen and (max-width: 768px) {
	.sec-05 .sec05-detail h1::before,
	.sec-05 .sec05-detail h1::after {
		display: none; } }

.sec-05 .sec05-detail p {
	color: #fff; }


/* ==============================

ボタン

=================================*/
.btn__link {
	text-align: center; }

.btn__link .link {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	max-width: 360px;
	margin: 0 auto;
	box-sizing: border-box;
	padding: 15px 56px;
	border-radius: 100px;
	background-color: #B71313;
	color: #fff;
	font-size: min(1.6vw, 20px);
	font-weight: bold;
	line-height: 1.4;
	text-decoration: none;
	transition-duration: 0.3s; }
@media screen and (max-width: 768px) {
	.btn__link .link {
		padding: 15px 6.5vw;
		max-width: 100%;
		font-size: min(5.33vw, 20px); } }

.btn__link .circle {
	position: absolute;
	top: 50%;
	right: 15px;
	width: 34px;
	height: 34px;
	margin-top: -17px;
	border-radius: 50%;
	background-color: #fff;
	overflow: hidden;
	flex-shrink: 0; }

.btn__link .circle::before,
.btn__link .circle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 16px;
	height: 32px;
	margin: -16px 0 0 -8px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B71313' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='8 4 18 12 8 20'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 32px; }

.btn__link .circle::before {
	opacity: 1;
	transform: translateX(0); }
.btn__link .circle::after {
	opacity: 0; }

.btn__link .link:hover .circle::before,
.btn__link .link:hover .circle::after {
	animation: arrowRelay 3.2s ease-in-out infinite; }

.btn__link .link:hover .circle::after {
	animation-delay: -1.6s; }

@keyframes arrowRelay {
	0% {
		/* 左端で待機（非表示） */
		opacity: 0;
		transform: translateX(-26px); }
	18.75% {
		/* 左から中央へ到達 */
		opacity: 1;
		transform: translateX(0); }
	50% {
		/* 中央で静止（18.75%〜50%＝約1秒） */
		opacity: 1;
		transform: translateX(0); }
	68.75% {
		/* 中央から右へ抜けて消える */
		opacity: 0;
		transform: translateX(26px); }
	100% {
		opacity: 0;
		transform: translateX(-26px); }
}

/* ==============================

モーダルボタン

=================================*/
.btn__link_modal {
	text-align: center; }

.btn__link_modal .link {
	display: flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 100%;
	max-width: 230px;
	box-sizing: border-box;
	padding: 8px 56px;
	border-radius: 100px;
	border: 2px solid #B71313;
	background-color: #fff;
	color: #B71313;
	font-size: 16px;
	font-weight: bold;
	line-height: 1.4;
	transition-duration: 0.3s; }
@media screen and (max-width: 768px) {
	.btn__link_modal .link {
		padding: 15px 6.5vw;
		max-width: 100%;
		font-size: 20px; } }

.btn__link_modal .modal_icon_wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 50%;
	right: 10px;
	width: 20px;
	height: 20px;
	margin-top: -10px;
	border-radius: 50%;
	background-color: #B71313; }
@media screen and (max-width: 768px) {
	.btn__link_modal .modal_icon_wrap {
		right: 16px;
		width: 32px;
		height: 32px;
		margin-top: -16px; } }

.btn__link_modal .modal_icon_wrap .modal_icon {
	display: block;
	width: 10px;
	height: 10px;
	position: relative; }
@media screen and (max-width: 768px) {
	.btn__link_modal .modal_icon_wrap .modal_icon {
		width: 16px;
	height: 16px; } }

.btn__link_modal .modal_icon_wrap .modal_icon::before,
.btn__link_modal .modal_icon_wrap .modal_icon::after {
	content: '';
	display: block;
	background-color: #fff;
	border-radius: 20px;
	position: absolute;
	top: 50%;
	left: 50%; }

.btn__link_modal .modal_icon_wrap .modal_icon::before {
	width: 10px;
	height: 2px;
	margin: -1px 0 0 -5px; }
.btn__link_modal .modal_icon_wrap .modal_icon::after {
	width: 2px;
	height: 10px;
	margin: -5px 0 0 -1px; }
@media screen and (max-width: 768px) {
	.btn__link_modal .modal_icon_wrap .modal_icon::before {
	width: 16px;
	height: 2px;
	margin: -1px 0 0 -8px; }
	.btn__link_modal .modal_icon_wrap .modal_icon::after {
		width: 2px;
		height: 16px;
		margin: -8px 0 0 -1px; } }


/* sec03-pic_right画像のプラスマーク */
.sec03-pic_right .modal_trigger {
	display: block;
	position: relative; }
.sec03-pic_right .modal_trigger:hover {
	opacity: 0.5; }

.sec03-pic_right .modal_trigger .modal_icon_wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 12px;
	left: 12px;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background-color: #B71313; }

.sec03-pic_right .modal_trigger .modal_icon_wrap .modal_icon {
	display: block;
	width: 12px;
	height: 12px;
	position: relative; }

.sec03-pic_right .modal_trigger .modal_icon_wrap .modal_icon::before,
.sec03-pic_right .modal_trigger .modal_icon_wrap .modal_icon::after {
	content: '';
	display: block;
	background-color: #fff;
	border-radius: 20px;
	position: absolute;
	top: 50%;
	left: 50%; }

.sec03-pic_right .modal_trigger .modal_icon_wrap .modal_icon::before {
	width: 12px;
	height: 2px;
	margin: -1px 0 0 -6px; }
.sec03-pic_right .modal_trigger .modal_icon_wrap .modal_icon::after {
	width: 2px;
	height: 12px;
	margin: -6px 0 0 -1px; }

/* 画像のみのモーダル（スクロールなし） */
.modal_box-img {
	width: 100%;
	max-width: 800px;
	margin: 0 auto; }
.modal_box-img img {
	display: block;
	width: 100%;
	height: 100%; }


/* ==============================

モーダル

=================================*/
.modal_overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.6);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	z-index: var(--z-modal);
	overflow-y: auto;
	padding: 80px 20px;
	box-sizing: border-box;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease; }
@media screen and (max-width: 768px) {
	.modal_overlay {
		padding: 60px 0; } }

.modal_overlay.is-show {
	opacity: 1;
	visibility: visible; }

body.is-modal_open {
	overflow: hidden; }

.modal_box {
	position: relative;
	width: 90%;
	max-width: 1200px;
	margin: 0 auto;
	background-color: #fff;
	border-radius: 20px;
	box-sizing: border-box;
	overflow: hidden; }
@media screen and (max-width: 768px) {
	.modal_box {
		width: 93%; } }

/* スクロール領域とフェードの基準になる箱 */
.modal_scroll_wrap {
	position: relative;
	margin: 50px 10px 50px 0; }
@media screen and (max-width: 768px) {
	.modal_scroll_wrap {
		margin: 10.6vw 1.5vw 10.6vw 0; } }

.modal_scroll {
	max-height: 70vh;
	overflow-y: auto;
	padding: 0 50px 0 60px;
	box-sizing: border-box; }
@media screen and (max-width: 768px) {
	.modal_scroll {
		max-height: 70vh;
		padding: 0 1.5vw 0 15px; } }

/* スクロールバー装飾（webkit系） */
.modal_scroll::-webkit-scrollbar {
	width: 6px; }
.modal_scroll::-webkit-scrollbar-track {
	background: transparent; }
.modal_scroll::-webkit-scrollbar-thumb {
	background-color: #ccc;
	border-radius: 10px; }

/* 下端の見切れ部分をグラデーションで隠す。 */
.modal_fade {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 60px;
	background: linear-gradient(to bottom, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1));
	pointer-events: none;
	opacity: 1;
	transition: opacity 0.3s ease; }
@media screen and (max-width: 768px) {
	.modal_fade {
		height: 12vw; } }

.modal_fade.is-hide {
	opacity: 0; }

.modal_close {
	position: fixed;
	top: 2.0vw;
	right: 2.0vw;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid #fff;
	box-sizing: border-box;
	cursor: pointer;
	z-index: var(--z-modal-close); }
@media screen and (max-width: 768px) {
	.modal_close {
		width: 28px;
		height: 28px;
		top: 4vw;
		right: 4vw; } }

.modal_close:hover {
	opacity: 0.5;
	transition: 0.3s }

.modal_close span {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 2px;
	background-color: #fff;
	border-radius: 10px; }
.modal_close span:nth-child(1) {
	transform: translate(-50%, -50%) rotate(45deg); }
.modal_close span:nth-child(2) {
	transform: translate(-50%, -50%) rotate(-45deg); }

.modal_profile {
	display: flex;
	align-items: flex-start;
	gap: 30px; }
@media screen and (max-width: 768px) {
	.modal_profile {
		flex-direction: column;
		align-items: center;
		text-align: center;
		gap: 20px; }
	.modal_profile .modal_profile_word .sp_modal_word {
		text-align: left; }	}

.modal_profile_pic {
	width: 157px;
	height: 157px;
	border-radius: 50%;
	overflow: hidden;
	flex-shrink: 0; }
.modal_profile_pic img {
	width: 100%;
	height: 100%;
	object-fit: cover; }

.modal_profile_word h4 {
	margin: 5px 0 20px; }
@media screen and (max-width: 768px) {
	.modal_profile_word {
		text-align: center; }
	.modal_profile_word h4 {
		margin: 5px 0 20px; } }

.modal_line {
	width: 100%;
	height: 3px;
	background: linear-gradient(to right, #000 0%, #000 60%, transparent 60%, transparent 100%);
	background-size: 14px 3px;
	background-repeat: repeat-x;
	margin: 5.0vw 0; }
@media screen and (max-width: 768px) {
	.modal_line {
		margin: 13.3vw 0; } }

.modal_detail h4 {
	margin-bottom: 20px; }
.modal_detail p {
	margin-bottom: 20px; }


/* ==============================

アコーディオン

=================================*/
.sec-01 .accordion_container {
	margin: 0 auto; }

.sec-01 .accordion_title {
	text-align: center;
	padding: 30px 0;
	position: relative;
	z-index: 1;
	color: #fff;
	cursor: pointer;
	transition-duration: 0.3s;
	background-color: #EC9459; }
@media screen and (max-width: 768px) {
	.sec-01 .accordion_title {
		padding: 30px 60px 30px 15px;
		text-align: left; } }

@media (hover: hover) and (pointer: fine) {
	.sec-01 .accordion_title:hover {
		opacity: 0.5; } }

.sec-01 .accordion_title .accordion_title-word {
	display: flex;
	justify-content: center;
	align-items: center; }


/*  アイコン */
.sec-01 .icon_wrap {
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top: 50%;
	right: 3%;
	width: 32px;
	height: 32px;
	margin-top: -16px;
	box-sizing: border-box;
	transform: rotate(45deg);
	transform-origin: center center;
	transition-duration: 0.3s;
	border-radius: 50%;
	background: #fff; }
@media screen and (max-width: 768px) {
	.sec-01 .icon_wrap {
		right: 5%; } }

.sec-01 .icon {
	display: block;
	width: 16px;
	height: 16px;
	transform: rotate(45deg);
	transform-origin: center center;
	transition-duration: 0.3s;
	position: relative; }

.sec-01 .accordion_title.open .icon_wrap {
	transform: rotate(-360deg); }

.sec-01 .icon:before, .sec-01 .icon:after {
	display: flex;
	content: '';
	background-color: #EC9459;
	border-radius: 10px;
	width: 16px;
	height: 3px;
	position: absolute;
	top: 6.5px;
	left: 0;
	transform: rotate(0deg);
	transform-origin: center center; }

.sec-01 .icon:before {
	width: 3px;
	height: 16px;
	top: 0;
	left: 6.5px; }

.sec-01 .accordion_title.open .icon_wrap .icon:before {
	content: none; }

.sec-01 .accordion_title.open .icon_wrap .icon:after {
	transform: rotate(-45deg); }

/* 開閉するコンテンツ本体 */
.sec-01 .accordion_inner {
	display: none;
	border-left: 4px solid #EC9459;
	border-right: 4px solid #EC9459;
	border-bottom: 4px solid #EC9459;
	border-radius: 0 0 15px 15px;
	box-sizing: border-box; }