@charset "utf-8";
/*-----------------------------------------------------
Reset
----------------------------------------------------- */
html, body, div, span,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline;
}

article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}

ol, ul { list-style: none; line-height: 1; }
table { border-collapse: collapse; border-spacing: 0; }

* { margin: 0; padding: 0; min-height: 0; min-width: 0; }
img { max-width: 100%; width: 100%; height: auto; vertical-align: top; image-rendering: -webkit-optimize-contrast; }
picture { display: block; }

/*html { font-size: 62.5%; }*/
html { scroll-behavior: smooth; }
body { line-height: 1; margin: 0; padding: 0; height: 100%; font-family: "Noto Sans JP", serif; color: #0A0A0A; }
a {	text-decoration: none; color: inherit; transition: 0.3s ease-in-out; cursor: pointer; }
@media (min-width: 1025px) {
	a[href*="tel:"] { pointer-events: none; cursor: default; text-decoration: none;}
}
p , li { line-height: 1.7; }
span { line-height: 1.4; }
p , div { text-align: justify; }
h1 , h2 , h3 { font-weight: 700; line-height: 1.3; }

:root {
/*	--main-font-color: #;*/
	--color-red: #CA2C39;
	--bg-blue: #F5F5F9;
/*	--gothic-font: 'Noto Sans JP', serif;*/
}

[data-overDirection="full"] { width: 100vw; margin: 0 calc(50% - 50vw); }
[data-size="w650"]{ max-width: 650px; margin: 0 auto; }
[data-size="w800"]{ max-width: 800px; width: 90%; margin: 0 auto; }
[data-size="w1000"]{ max-width: 1000px; width: 90%; margin: 0 auto; }
[data-size="w1200"]{ max-width: 1200px; width: 90%; margin: 0 auto; }
.pc { display: block; }
.sp { display: none; }

/*オーバーレイ*/
.overlay { background: #fff; position: fixed; top: 0; left: 0; height: 100%; width: 100%; z-index: 10000; }

/*fade*/
/* ▼ 基本的に非表示にしたい要素 共通*/
.blur , .fade , .fadeup, .fadeleft { opacity: 0; }

/* ▼ 共通のinviewアニメーション開始スタイル 共通*/
.js-inview.is_inview { opacity: 1; transform: none; }

/* ▼ blurの個別演出 */
.blur { opacity: 0.1; filter: blur(20px); transition: opacity .8s ease-out, filter .8s ease-out; }
.blur.is_inview { opacity: 1; filter: blur(0px); transition-delay: .2s; }

/* ▼ fadeの個別演出 */
.fade { transition: opacity 1.4s ease-out, transform 1.4s ease-out; }
.fade.is_inview { transition-delay: 0.8s; }

/* ▼ fadeupの個別演出 */
.fadeup { opacity: 0; transform: translateY(20px); transition: opacity 1s ease-out, transform 1s ease-out; }
.fadeup.is_inview { opacity: 1; transform: translateY(0); }

/* ▼ fadeleftの個別演出 */
.fadeleft { transform: translateX(-20px); transition: opacity 0.6s ease-out, transform 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.fadeleft.is_inview { transform: translateX(0); transition-delay: .2s; }

/* ---------------------------------------------
ボタン
--------------------------------------------- */
.txt_btn { color: var(--color-red); text-align: center; font-size: 18px; border:2px solid var(--color-red); border-radius: 50px; display: inline-block; margin: 20px 0; }
.txt_btn:hover { background: var(--color-red); color: #fff; }
.txt_btn a { padding: 10px 20px 11px; box-sizing: border-box; font-weight: 700; display: block; font-size: clamp(0.875rem, 0.813rem + 0.31vw, 1.125rem); }
.txt_btn a::after { content: ''; display: inline-block; background: url("../images/arrow.svg")no-repeat; background-size: contain; width: 6px; aspect-ratio: 5 / 9; margin-left: 10px; margin-bottom: 2px; }
.txt_btn a:hover::after { background: url("../images/arrow_wt.svg")no-repeat; }

/* ---------------------------------------------
ul/ol
--------------------------------------------- */
ul.check { margin: 20px 0; }
ul.check li { font-size: 18px; font-weight: 700; padding-left: 21px; text-indent: -21px; }
ul.check li::before { content: ''; display: inline-block; background: url("../images/check.svg")no-repeat; background-size: contain; aspect-ratio: 16 / 13; width: 16px; margin-right: 5px; }
ol.num { margin: 20px 0; }
ol.num li { font-size: clamp(0.938rem, 0.891rem + 0.23vw, 1.125rem); font-weight: 700;}

/* ---------------------------------------------
txt
--------------------------------------------- */
h2.line { font-size: clamp(1.438rem, 1.203rem + 1.17vw, 2.375rem); position: relative; display: inline-block; padding-left: 25px; line-height: 1.2; margin-bottom: 30px; }
h2.line::before { content: ""; position: absolute; left: 0; width: 10px; height: 110%; background: linear-gradient(to bottom, #CA2C39 50%, #0A0A0A 50%); border-radius: 2px; }
h2.obi { color: #fff; margin-bottom: 20px; }
h2.obi { background: var(--color-red); font-size: clamp(1.438rem, 1.203rem + 1.17vw, 2.375rem); font-weight: 700; padding: 10px 30px; box-sizing: border-box; }
h3.red_line { background: #313131; color: #fff; padding: 10px 20px; position: relative; margin-bottom: 10px; font-size: clamp(1.125rem, 1.047rem + 0.39vw, 1.438rem); }
h3.red_line::before { content: ''; display: block; background: var(--color-red); width: 7px; height: 100%; position: absolute; top: 0; left: 0; }
h3.underline { padding-bottom: 10px; border-bottom: 2px solid var(--color-red); color: var(--color-red); font-size: clamp(1.375rem, 1.25rem + 0.63vw, 1.875rem); margin-bottom: 20px; }

span.red { color: var(--color-red); }
p.txt { font-size: 18px; }
p.annotation { font-size: 16px; margin-top: 10px; line-height: 1.4; }
article.plan span.small { font-size: 70%; }

/* ---------------------------------------------
main
--------------------------------------------- */
section { margin-bottom: 100px; }
.img_txt_wrap { display: flex; justify-content: space-between; align-items: flex-start; }
.img_txt_wrap img { margin: 0 0 15px 15px; max-width: 380px; width: 90%; }
/*長文回り込み*/
.float_wrap::after { content:''; display: block; clear:both; }
.float_wrap p.txt { float: left; }
.float_wrap img { float: right; margin: 0 0 15px 25px; max-width: 380px; width: 90%; }
/*長文回り込みend*/

section:not(:last-child) { margin-bottom: 80px; }
article.plan { margin: 50px 0;}
article.plan strong { font-size: clamp(1rem, 0.938rem + 0.31vw, 1.25rem); font-weight: 700; line-height: 1.4; margin-bottom: 15px; display: block; }
article.subject h3 { margin-bottom: 20px; padding-bottom: 10px; border-bottom: 2px solid #D5D5D5; font-size: clamp(1.438rem, 1.203rem + 1.17vw, 2.375rem); }
article.subject h3::before { content: ''; display: inline-block; background: url("../images/subject.svg")no-repeat; background-size: contain; aspect-ratio: 62 / 38; width: 62px; margin-right: 10px; margin-top: 5px; }

.kv { background: url("../images/kv.png")no-repeat; background-size: cover; background-position: center; width: 100%; height: 550px; display: flex; align-items: center; justify-content: center; margin-bottom: 100px; }

.voice .voice_box_ttl { font-size:clamp(1.125rem, 0.969rem + 0.78vw, 1.75rem); font-weight: 700; margin-bottom: 10px; }
.voice .voice_box_ttl::before { content: ''; display: inline-block; background: url("../images/comment.svg")no-repeat; background-size: contain; aspect-ratio: 42 / 30; width: 42px; margin-right: 10px; vertical-align: -3px; }
.voice article:not(:last-of-type) { margin-bottom: 30px; }
.voice .voice_imgwrap { display: flex; justify-content: space-between; align-items: flex-start; }
.voice .voice_imgwrap img { max-width: 280px; width: 100%; margin-left: 20px; }
.voice p.txt { width: calc(100% - 250px); }

.taiken	article.taiken_detail { margin: 30px 0; }
.taiken	dl { display: flex; align-items: center; flex-wrap: wrap; font-weight: 700; line-height: 1.4; background: #FAEAEB; padding: 10px 20px; max-width: 400px; margin: 20px 0; font-size: 18px; }
.taiken	dt { width: 7em; }
.taiken	dd { width: calc(100% - 7em); color: var(--color-red); }

.price strong { font-size: clamp(1rem, 0.938rem + 0.31vw, 1.25rem); font-weight: 700; color: var(--color-red); }
.price .txt_btn { margin: 0; }
.dotted-line { border: none; border-top: 2px dotted var(--color-red); margin: 30px 0; }

.img_full { margin: 20px auto; }

#Form { background: #E8E8E8; padding: 80px 0 120px; margin-top: 100px; }
#Form .form_subttl { color: var(--color-red); text-align: center; font-size: clamp(1.125rem, 1.016rem + 0.55vw, 1.563rem); box-sizing: border-box; border: 2px solid var(--color-red); background: #fff; font-weight: 700; padding: 10px 20px 12px; margin-bottom: 20px; line-height: 1.3; }
#Form .form_telttl { font-weight: 700; text-align: center; font-size: 22px; margin-bottom: 5px; }
#Form .form_ttl { font-size: clamp(1.563rem, 1.172rem + 1.95vw, 3.125rem); text-align: center; margin-bottom: 20px; }
#Form .form_txt { text-align: center; font-size: 18px; margin-bottom: 50px; }
#Form .form_txt strong { font-weight: 700; font-size: 22px; }
#Form .form_txt a { text-decoration: underline; }
#Form span.must { background: var(--color-red); color: #fff; padding: 2px 5px; box-sizing: border-box; font-size: clamp(0.625rem, 0.609rem + 0.08vw, 0.688rem); margin-left: 10px; vertical-align: 2px; }
#Form dl dt { margin-bottom: 10px; font-weight: 700; font-size: 18px; }
#Form dl dd { margin-bottom: 30px; font-size: 18px; }
#Form dl dd.select_area { display: flex; align-items: center; }
#Form dl input[type="date"] { padding: 10px 20px 10px 10px; text-align: center; background: #fff; box-sizing: border-box; font-size: 18px; border:none; border-radius: 5px; margin-right: 15px; }
#Form dd.column label { font-size: 18px; display: block; margin-bottom: 5px; line-height: 1.3; padding-left: 20px; text-indent: -20px; }
#Form dl input[type="text"] { width: 100%; border-radius: 5px; border:none; padding: 10px; box-sizing: border-box; font-size: 16px; }
#Form dl input[type="checkbox"] { margin-right: 5px; }
#Form dl textarea { -webkit-appearance: none; border-radius: 0; appearance: none; box-sizing: border-box; padding: 20px; font-size: clamp(0.875rem, 0.839rem + 0.15vw, 0.938rem); line-height: 24px; letter-spacing: .02em;resize: none; outline: none; width: 100%; border: none; font-family: 'Noto Sans JP', sans-serif; border-radius: 5px; font-size: 16px; }
#Form dl select { color: #303030; border-radius: 0; border: none; box-sizing: border-box; font-size: 18px; padding: 10px 20px 10px 10px; border-radius: 5px; background: #fff; }
#Form .check_area { display: flex; justify-content: center; align-items: center; }
#Form input[type="submit"]{ border-radius: 2px; font-size: 18px; display: block; border: none; outline: 0; cursor: pointer; color: #fff; background: var(--color-red); transition: 0.3s; padding: 10px 30px; }
#Form input[type="submit"]:hover { background: #3c3c3c; }
#Form p.small { font-size: 13px; margin-top: 5px; }

/*確認ページ confirmation*/
#Form .confirmation h2.ttl { max-width: inherit; text-align: center; font-size:clamp(1.375rem, 1.158rem + 0.92vw, 1.75rem); font-weight: 500; margin-bottom: 30px; }
#Form .confirmation p.error_ttl { position: relative; max-width: inherit; text-align: center; font-size:clamp(1.063rem, 0.99rem + 0.31vw, 1.188rem); line-height: 1.5; font-weight: 500; margin-bottom: 30px; }
#Form .confirmation table.confirmation_table { width: 100%; margin: 0 auto 50px; border-collapse: collapse; font-size: clamp(0.875rem, 0.839rem + 0.15vw, 0.938rem); line-height: 3.5rem;}
#Form .confirmation table.confirmation_table th { width: 40%; padding: 10px 0; border-top: 1px solid #dcdcdc; font-weight: 500; }
#Form .confirmation table.confirmation_table td { padding: 3% 0; border-top: 1px solid #dcdcdc; line-height: 1.5; background: #fff; padding-left: 20px; padding-right: 20px; }
#Form .confirmation table.confirmation_table th:last-of-type, table.confirmation_table td:last-of-type { border-bottom: 1px solid #dcdcdc; background: #f2f2f2; padding-left: 20px; padding-right: 20px; box-sizing: border-box; }
#Form .confirmation table.confirmation_table tr { font-size: clamp(0.875rem, 0.839rem + 0.15vw, 0.938rem) }
#Form .confirmation .btn_flex { display: flex; justify-content: space-around; }
#Form .error_back input[type="button"] { border-radius: 2px; font-size: 18px; display: block; border: none; outline: 0; cursor: pointer; color: #fff; background: #959595; transition: 0.3s; padding: 10px 30px; transition: 0.3s; margin: 0 auto; }
#Form .send_area input[type="button"] { border-radius: 2px; font-size: 18px; display: block; border: none; outline: 0; cursor: pointer; color: #fff; background: #959595; transition: 0.3s; padding: 10px 30px; margin-right: 10px; }
#Form .confirmation input[type="button"]:hover { background: #2a2a2a; }
#Form .confirmation input[type="submit"]:hover { background: #2a2a2a; }
#Form .confirmation .send_area { display: flex; justify-content: center; }
#Form .confirmation p.article-txt { font-size: 18px; margin-bottom: 30px; }
#Form .confirmation p.error_messe { font-size: 18px; line-height: 1.6; color: #e00a0a; }

/*thanksページ*/
#Form.thanks .form_txt { text-align: left; margin-bottom: 30px; }
#Form.thanks .backbtn { border-radius: 2px; font-size: 18px; display: block; border: none; outline: 0; cursor: pointer; color: #fff; background: #6e6e6e; transition: 0.3s; padding: 15px 30px; max-width: 160px; width: 100%; margin: 0 auto; text-align: center; }
#Form.thanks .backbtn:hover { background: #333; }
#Form.thanks p.annotation { color: var(--color-red); background: #fff; border: 1px solid var(--color-red); padding: 20px; box-sizing: border-box; margin-bottom: 30px; }

/* ---------------------------------------------
footer
--------------------------------------------- */
footer.l-footer { padding: 30px 5%; background: #313131; }
footer.l-footer small { display: block; width: 100%; text-align: center; font-size: 11px; color: #fff; line-height: 1.4; }
footer .l-footer-pagetop.is-absolute { position: absolute; }
footer .l-footer-pagetop { position: fixed; right: 40px; bottom: 50px; width: 75px; height: 75px; transition: .5s; }
footer .l-footer-pagetop:hover { opacity: .5; }

@media (hover: hover) and (pointer: fine) {
    .topics__link:hover .topics__ttl {
        text-decoration: underline;
    }
}

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

@media screen and (max-width: 767px) {
	h2.line { padding-left: 20px; margin-bottom: 20px; }
	h2.line::before { width: 6px; height: 100%; }
	section:not(:last-child) { margin-bottom: 50px; }
	article.subject h3::before { width: 45px; margin-right: 10px; margin-top: 0px; }
	ul.check { margin: 10px 0; }
	ul.check li { font-size: 17px; }
	p.txt { font-size: 17px; }
	.img_txt_wrap { display: block; }
	.img_txt_wrap img { width: 100%; max-width: initial; margin: 20px auto 0; }
	.float_wrap p.txt { float: none; display: flex ; flex-direction: column; }
	.float_wrap img { float: none; margin: 0 auto 10px; max-width: initial; width: 100%; }
	.sp { display: block; }
	.pc { display: none; }
	.kv { background: url("../images/kv_sp.png")no-repeat; background-size: cover; background-position: center; width: 100%; max-height: 1043px; margin-bottom: 50px; }
	.voice p.txt { width: 100%; }
	.voice .voice_imgwrap img { max-width: initial; width: 70%; margin: 15px auto 0; text-align: center; display: block; }
	.voice .voice_imgwrap { display: block; }
	.voice .voice_box_ttl { margin-bottom: 5px; }
	.voice .voice_box_ttl::before { width: 32px; }
	.kv h1 { margin-bottom: 100px; }
	.taiken dl { margin: 15px 0; padding: 10px; }
	.taiken dt { width: 6em; }
	.taiken dd { width: calc(100% - 6em); }
	.txt_btn a::after { margin-bottom: 1px; }
	.voice .voice_wrap { display: block; }
	.voice p.voice_name { width: 100%; margin-bottom: 5px; }
	.voice p.voice_txt { width: 100%; }
	.voice p.voice_txt::before { width: 20px; margin-bottom: -1px; }
	.voice .voice_bnr { margin-top: 20px; }
	.dotted-line { margin: 20px 0; }
	.slide-arrow { top: -35%; }
	#Form { margin-top: 60px; padding: 60px 0 80px; }
	#Form dl dd { margin-bottom: 20px; }
	#Form .form_telttl { text-align: left; font-size: 17px; }
	#Form .form_txt strong { font-size: 17px; }
	#Form .form_txt { font-size: 17px; margin-bottom: 30px; text-align: left; }
	#Form span.must { padding: 2px 5px 3px; }
	#Form .confirmation table.confirmation_table th , #Form .confirmation table.confirmation_table td { width: 100%; }
	#Form .confirmation table.confirmation_table th:last-of-type, table.confirmation_table td:last-of-type { display: block; border-bottom: none; line-height: 1.5; }
	#Form .confirmation table.confirmation_table { margin-bottom: 30px; }
	#Form .confirmation table.confirmation_table td { margin-bottom: 10px; }
	#Form .confirmation #form { margin-top: 30px; }
	#Form dl dt , #Form dl dd , #Form input[type="submit"] , #Form .error_back input[type="button"] , #Form .send_area input[type="button"] , #Form.thanks .backbtn , .taiken	dl , #Form dl input[type="date"] , #Form dd.column label , #Form dl select , #Form .confirmation p.article-txt , #Form .confirmation p.error_messe { font-size: 17px; }
	footer .l-footer-pagetop { right: 10px; width: 45px; height: 45px; }
}

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

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

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