@charset "UTF-8";
/* CSS Document */

@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');

body {
	font-family: "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
}
/* ローダー */
.mask {
	background: #fff;
	width: 100%;
	height: 100%;
	position: fixed;
	z-index: 99999;
}
/* 画面全体の設定 */
#loader_wrap {
	position: fixed;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100vw;
	height: 100vh;
	top: 0;
	background: #fff;
}

.circle-dash-loader {
    width: 40px; height: 40px;
    border-radius: 50%; position: relative;
    color: #6c5ce7; 
}
.circle-dash-loader::before,
.circle-dash-loader::after {
    content: ''; position: absolute;
    width: 100%; height: 100%;
    border-radius: 50%;
    border: 3px solid;
    border-color: currentColor transparent currentColor transparent;
    animation: circle-dash-animation 1.5s linear infinite;
}
.circle-dash-loader::after {
    animation-direction: reverse;
    animation-delay: 0.75s;
}
@keyframes circle-dash-animation {
    0% { transform: rotate(0deg); opacity: 1; border-width: 3px; }
    50% { opacity: 0.5; border-width: 2px; }
    100% { transform: rotate(360deg); opacity: 1; border-width: 3px; }
}
/* ローディング終了後 */
.loaded {
	opacity: 0;
	visibility: hidden;
}
a {
	color: #004691;
    text-decoration: none;
}
a:hover {
	color: #b19e56;
	text-decoration: none;
}
a:hover img {
	opacity: 0.6;
	filter: alpha(opacity=80);
	-moz-opacity: 0.8;
	-webkit-transition: 0.3s ease-in-out;
	-moz-transition: 0.3s ease-in-out;
	-o-transition: 0.3s ease-in-out;
	transition: 0.3s ease-in-out;
}
.img-fluid100 {
    width: 100%;
}
.blockkv {
    max-width: 1200px;
    margin: auto;
    text-align: center;
    position: relative;
}
.swiper-slide {
    position: relative;
    z-index: 1;
}
.swiper-slide span {
    position:absolute;
    display:block;
    width:100%;
    height:100%;
    background: url(images/img.png);
}
.blockcomment {
    max-width: 1140px;
    padding: 0 1rem;
    margin: 4rem auto;
}
.blockcomment h5 {
    text-align: center;
    margin: 0 auto 4rem;
}
.blockcomment h5 span {
    background: #000;
    padding: 0.7rem 1rem;
    font-size: 18px;
    font-weight: 600;
    color: #fff;
    margin: 0 0.1rem;
}
.list-comment {
    list-style: none;
    padding-left: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 2rem;
}
.list-comment h3 {
    text-align: center;
    font-size: 48px;
    font-weight: 700;
    margin-bottom: 2rem;
}
.list-comment h3 small {
    display: block;
    font-size: 18px;
    font-weight: 400;
}
/* コメントボックス本体 */
.comment-box {
    position: relative;
    margin: 0 auto;
    padding: 40px 60px;
    background-color: #f9f9f9;
    overflow: hidden; /* 角の三角形をはみ出さないようにする */
    margin-bottom: 1rem;
}
/* テキストのスタイル */
.comment-box p {
    margin: 0;
    font-size: 14px;
    line-height: 1.8;
    font-weight: 500;
    letter-spacing: 0.05em;
}
/* 左上の黒い三角形 */
.comment-box::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    border-style: solid;
    border-width: 40px 40px 0 0; /* サイズ調整可 */
    border-color: #000 transparent transparent transparent;
}
/* 右下の黒い三角形 */
.comment-box::after {
    content: "";
    position: absolute;
    bottom: 0;
    right: 0;
    border-style: solid;
    border-width: 0 0 40px 40px; /* サイズ調整可 */
    border-color: transparent transparent #000 transparent;
}
/* モバイル対応（画面が狭い時） */
@media (max-width: 575.98px) {
    .blockcomment h5 span {
        padding: 0.5rem 0.8rem;
        font-size: 13px;
    }
    .list-comment {
        display: block;
    }
    .list-comment h3 {
        font-size: 32px;
    }
    .list-comment h3 small {
        font-size: 14px;
    }
    .comment-box {
        margin: 0 auto;
        padding: 30px 40px;
    }
}
.block-x {
    text-align: center;
    padding: 0 1.5rem;
    margin: 5rem auto;
}
.btn-x {
    border: 1px solid rgba(0,0,0,0.7);
    padding: 0.7rem 2rem;
    display: table;
    margin: auto;
    border-radius: 2rem;
    font-size: 18px;
    font-weight: 400;
    color: #000;
}
.btn-x i {
    display: table-cell;
    vertical-align: middle;
    font-size: 28px;
}
.btn-x span {
    display: table-cell;
    vertical-align: middle;
}
.btn-x:hover {
    background: #000;
    color: #fff;
    border: 1px solid rgba(0,0,0,0.7);
}
.list-indent,
.list-indent-s {
    list-style: none;
    padding-left: 0;
}
.list-indent li {
    text-indent: -1em;
    padding-left: 1em;
}
.list-indent-s li {
    font-size: 0.82em;
    text-indent: -0.82em;
    padding-left: 0.82em;
    line-height: 1.8;
}
footer {
    text-align: center;
    padding: 2rem 1.5rem;
    margin-top: 6rem;
}
footer p,
footer p a {
    font-size: 14px;
}
#page-top {
	font-size: 0;
	position: fixed;
	bottom: 24px;
	right: 16px;
	opacity: 0;
}
#page-top.fade-in {
	color: #004691;
	font-size: 30px;
	opacity: 1;
	transition: opacity 1s;
    cursor: pointer;
}
#page-top.fade-in:hover {
	color: #00a7e4;
	opacity: 0.3;
	transition: opacity 1s;
}
ruby {
	display: inline-table;
	border-collapse: collapse;
	/*height: 2em;*/
	margin: 0;
	padding: 0;
	border: none;
	white-space: nowrap;
	text-indent: 0;
	vertical-align: 0.9em;
	text-decoration: inherit;
	text-align: center;
	line-height: 1em;
}
/* 上ルビ */
ruby>rtc {
	display: table-header-group;
	height: 25%;
	margin: 0;
	padding: 0;
	border: none;
	font: inherit;
	font-size: 50%;
	line-height: 1em;
}
/* 下ルビ(括弧類がある場合とない場合でセレクタが異なる) */
ruby>rtc+rtc,
ruby>rtc+rp+rtc {
	display: table-footer-group;
	height: 25%;
	margin: 0;
	padding: 0;
	border: none;
	font: inherit;
	font-size: 50%;
	text-decoration: none;
	line-height: 1em;
}
/* 各文字に対応するルビ */
ruby>rtc>rt {
	display: table-cell;
	margin: 0;
	padding: 0 0.125em;
	border: none;
	font-size: 100%;
	text-align: center;
	line-height: 1em;
}
/* ルビ対象テキスト */
ruby>rb {
	display: table-cell;
	max-height: 75%;
	margin: 0;
	padding: 0 0.125em;
	border: none;
	font: inherit;
	text-decoration: none;
	text-align: center;
	line-height: 1em;
	vertical-align: top;
}
/* 非対応環境向け括弧類 */
ruby>rp {
	display: none;
}
/* 単純な<ruby>要素での<rt>要素 */
ruby>rt {
	display: table-header-group;
	height: 25%;
	margin: 0;
	padding: 0 0.125em;
	border: none;
	font: inherit;
	font-size: 50%;
	line-height: 1em;
    text-align: center;
}
/* <ruby>要素入れ子の場合 */
ruby>ruby {
	vertical-align: 0em;
}
/* <ruby>要素が入れ子でない場合のルビテキストと、*/
/* <ruby>要素が入れ子の場合の上位<ruby>要素のルビテキスト、*/
ruby>ruby+rt,
ruby>ruby+rp+rt {
	display: table-footer-group;
}
/* <ruby>要素直下に<rt>要素が二つある場合 */
ruby>rt+rt {
	display: table-footer-group;
}