﻿@charset "utf-8";
/*----------------------------------------------------------------------------------------------
【記載ルール】
・ブレークポイント、キーフレームでインデント
・不要な半角スペースやタブは削除
・短縮できるものは短縮（例）0.7 → .7、#FFFFFF → ＃FFF
・継承を考え、無駄なプロパティを削除（特にSP）
----------------------------------------------------------------------------------------------*/

/* reset.css*/
article, aside, details, figcaption, figure, footer, header, hgroup, img, menu, nav, section { display: block }
a, abbr, acronym, address, applet, article, aside, audio, b, big, blockquote, body, canvas, caption, center, cite, code, dd, del, details, dfn, div, dl, dt, em, embed, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hgroup, html, i, iframe, img, ins, kbd, label, legend, li, mark, menu, nav, object, ol, output, p, pre, q, ruby, s, samp, section, small, span, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, time, tr, tt, u, ul, var, video { margin: 0; padding: 0; border: 0; font: inherit; vertical-align: baseline }
body { line-height: 1 }
ol, ul { list-style: none }
blockquote, q { quotes: none }
blockquote:after, blockquote:before, q:after, q:before { content: ''; content: none }
table { border-collapse: collapse; border-spacing: 0 }
img { margin: 0 auto; padding: 0; max-width: 100%; }
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

/*----------------------------------------------------------------------------------------------
button:hover
----------------------------------------------------------------------------------------------*/
@-webkit-keyframes hvr-wobble-vertical {
	16.65% { -webkit-transform:translateY(8px); transform:translateY(8px) }
	33.3% { -webkit-transform:translateY(-6px); transform:translateY(-6px) }
	49.95% { -webkit-transform:translateY(4px); transform:translateY(4px) }
	66.6% { -webkit-transform:translateY(-2px); transform:translateY(-2px) }
	83.25% { -webkit-transform:translateY(1px); transform:translateY(1px) }
	100% { -webkit-transform:translateY(0); transform:translateY(0) }
}
@keyframes hvr-wobble-vertical {
	16.65% { -webkit-transform:translateY(8px); transform:translateY(8px) }
	33.3% { -webkit-transform:translateY(-6px); transform:translateY(-6px) }
	49.95% { -webkit-transform:translateY(4px); transform:translateY(4px) }
	66.6% { -webkit-transform:translateY(-2px); transform:translateY(-2px) }
	83.25% { -webkit-transform:translateY(1px); transform:translateY(1px) }
	100% { -webkit-transform:translateY(0); transform:translateY(0) }
}
.hvr-wobble-vertical { display: inline-block; vertical-align: middle; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0,0,0,0); -webkit-backface-visibility: hidden; backface-visibility: hidden; -moz-osx-font-smoothing: grayscale }
.hvr-wobble-vertical:active, .hvr-wobble-vertical:focus, .hvr-wobble-vertical:hover { -webkit-animation-name: hvr-wobble-vertical; animation-name: hvr-wobble-vertical; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1 }

/*----------------------------------------------------------------------------------------------
reflection
----------------------------------------------------------------------------------------------*/
@keyframes reflection {
	0% { transform:scale(0) rotate(45deg); opacity:0; }
	80% { transform:scale(0) rotate(45deg); opacity:.25; }
	81% { transform:scale(10) rotate(45deg); opacity:.35; }
	100% { transform:scale(75) rotate(45deg); opacity:0; }
}
@-webkit-keyframes reflection {
	0% { -webkit-transform:scale(0) rotate(45deg); opacity:0; }
	80% { -webkit-transform:scale(0) rotate(45deg); opacity:.25; }
	81% { -webkit-transform:scale(10) rotate(45deg); opacity:.35; }
	100% { -webkit-transform:scale(75) rotate(45deg); opacity:0; }
}
@-moz-keyframes reflection {
	0% { -moz-transform:scale(0) rotate(45deg); opacity:0; }
	80% { -moz-transform:scale(0) rotate(45deg); opacity:.25; }
	81% { -moz-transform:scale(10) rotate(45deg); opacity:.35; }
	100% { -moz-transform:scale(75) rotate(45deg); opacity:0; }
}
@-ms-keyframes reflection {
	0% { -ms-transform:scale(0) rotate(45deg); opacity:0; }
	80% { -ms-transform:scale(0) rotate(45deg); opacity:.25; }
	81% { -ms-transform:scale(10) rotate(45deg); opacity:.35; }
	100% { -ms-transform:scale(75) rotate(45deg); opacity:0; }
}
@-o-keyframes reflection {
	0% { -o-transform:scale(0) rotate(45deg); opacity:0; }
	80% { -o-transform:scale(0) rotate(45deg); opacity:.25; }
	81% { -o-transform:scale(10) rotate(45deg); opacity:.35; }
	100% { -o-transform:scale(75) rotate(45deg); opacity:0; }
}
.reflection { position: absolute; top: -180px; left: 0; height: 100%; width: 30px; background-color: #fff; opacity: 0; transform: rotate(45deg); animation: reflection 2s ease-in-out infinite; -webkit-transform: rotate(45deg); -webkit-animation: reflection 2s ease-in-out infinite; -moz-transform: rotate(45deg); -moz-animation: reflection 2s ease-in-out infinite; -ms-transform: rotate(45deg); -ms-animation: reflection 2s ease-in-out infinite; -o-transform: rotate(45deg); -o-animation: reflection 2s ease-in-out infinite; }

/*----------------------------------------------------------------------------------------------
blinking
----------------------------------------------------------------------------------------------*/
.blinking{
 -webkit-animation:blink 0.5s ease-in-out infinite alternate;
    -moz-animation:blink 0.5s ease-in-out infinite alternate;
    animation:blink 0.5s ease-in-out infinite alternate;
}
@-webkit-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@-moz-keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}
@keyframes blink{
    0% {opacity:0;}
    100% {opacity:1;}
}

/*----------------------------------------------------------------------------------------------
Basic
----------------------------------------------------------------------------------------------*/
html { font-size: 62.5%; font-family:-apple-system, BlinkMacSystemFont, "Helvetica Neue", "Yu Gothic", YuGothic, "ヒラギノ角ゴ ProN", Hiragino Kaku Gothic ProN, Arial, "メイリオ", Meiryo, sans-serif; font-weight: 500; }
body { margin: 0; color: #3f3f3f; font-size: 2.2rem; line-height: 1.7; -webkit-font-feature-settings: 'palt' 1; font-feature-settings: "palt" 1; background: url(../img/base/bg.jpg); }
#main { width: 964px; padding: 1px 0; margin: 0 auto; border-left: 2px solid #ccc; border-right: 2px solid #ccc; background: #FFF; }
/* Float / Clearfix */
.clearfix:before, .clearfix:after { content: " "; display: table; }
.clearfix:after { clear: both; }
.clearfix { *zoom:1; }
.side_photo { float: right; padding: 0 0 2rem 2rem; }
.side_photo2 { float: left; padding: 0 2rem 2rem 0; }
/* PC/SP表示調整 */
.display_pc { display: block!important; }
.display_sp { display: none!important; }
/* font */
.b { font-weight: bold; }
.u { text-decoration: underline; }
.bu { font-weight: bold; text-decoration: underline; }
.rub { font-weight: bold; border-bottom: 2px solid #EB0003; }
.r, .red { color: #d93d3e; }
.blue { color: #171c77; }
.purple { color: #664984; }
.orange { color: #ff5700; }
.yellow { color: #FFEE7E; }
.gray { background: #eee; margin: 0 0 60px; }
.mark { background: #FFF496; font-weight: bold; }
.text_c { text-align: center; }
.text_r { text-align: right; }
.text_l { text-align: left; }
.xxsmall { font-size: 50%!important; }
.xsmall { font-size: 80%!important; }
.small { font-size: 90%!important; }
.large { font-size: 110%!important; }
.xlarge { font-size: 130%!important; }
.xxlarge { font-size: 150%!important; }
.KG { font-family: "Gothic MB101 Heavy", sans-serif; font-weight: bold; -webkit-font-feature-settings: 'palt' 1; font-feature-settings: 'palt' 1; }
.MN { font-family: "Ryumin ExtraBold KL", serif; }
.flex { display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; flex-wrap: wrap; }
.flex-bet { justify-content: space-between; }
.flex-cen { -ms-align-items: center; align-items: center; }
.flex > img { margin:  0 auto 30px; }
.img-right { float: right; padding: 0 0 2rem 2rem; }
.img-left { float: left; padding: 0 2rem 2rem 0; }
.img-right, .img-left { max-width: 300px!important; }
h2 + .img-right, h2 + .img-left, h3 + .img-right, h3 + .img-left { margin-top: 1em; }
.img-right img, .img-left img { margin: 0 auto; width: 100%; }
.caption { max-width: 100%; margin: 0!important; padding: 10px; font-size: 1.6rem; font-weight: bold; line-height: 1.3; border-left: 2px solid; color: #222222; }
.caption .small { font-size: 80%; }
.caption + img { margin-top: 30px; }
.img-right + p, .img-left + p { margin-top: 0em!important; }
.img-flex-box { width: 270px; }
.img-flex-box img { width: 100%; }
.letter > p { margin: 1em auto; }
.letter > p + img { margin-top: 2em; }
.letter p { margin: 1.2em auto; }
.arrow2 { content: ""; margin: 20px auto; width: 0; height: 0; border-style: solid; border-width: 45px 100px 0 100px; border-color: #d93c3f transparent transparent transparent; overflow: auto; }
.box1 { padding: 1rem 3rem; background: #f5f5f5; }
hr { border: none; border-bottom: 2px dashed #777; margin: 30px 0; }
.btn_cta { background: #1d85e1; color: #fff; display: table; text-align: center; text-decoration: none; font-weight: bold; margin: 5rem auto; padding: 2rem 3rem; border-radius: 15px; box-shadow: 0 5px 0 #0157a2; text-shadow: 0 2px 5px rgba(0,0,0,0.2); line-height: 1.3; transition: 0.2s; }
.btn_cta:hover { background: #299aff; }
.btn_cta p { font-size: 4.5rem; }
.btn_cta i:before { font-weight: 700; }
.btn_cta p.small { font-size: 2.5rem!important; }

/*----------------------------------------------------------------------------------------------
section/letter
----------------------------------------------------------------------------------------------*/
.sub-head { padding: 4rem 0 0; margin: 0; text-align: center; font-size: 5rem; letter-spacing: -2px; line-height: 1.2; color: #222; }
.sub-head .small { font-size: 4rem; }
.sub-head2 { font-weight: bold; font-size: 2.5rem; border-left: 5px solid #d93d3e; line-height: 1.3; padding: 1rem; margin: 0 0 20px; }
.sub-head3 { font-weight: bold; font-size: 3rem; padding: 1rem; margin: 3rem 0 1rem; text-align: center; background: #315890; color: #fff; }
.letter { padding: 3rem 50px; }
.letter img { display: block; max-width: 100%; }
.sub-head .mark { display: block; background: #d71523; color: #fff; text-decoration: none; padding: 20px; margin: 0 0 20px; font-size: 8rem; }
.sub-slide { background: url( ../img/img09.jpg); background-position: 0px 0px; height: auto; width: 100%; padding: 50px 0; margin: 4rem 0 0; position: relative; -webkit-animation: SlideAnime 20s linear infinite; text-shadow: 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff, 0 0 10px #fff; }
@-webkit-keyframes SlideAnime { 0% { background-position:0px 0px; } 100% { background-position:-1200px 0px; } }

/*----------------------------------------------------------------------------------------------
prihead
----------------------------------------------------------------------------------------------*/
#prihead { z-index: 10; position: fixed; width: 100%; font-size: 2.4rem; font-weight: bold; text-align: center; background: #960000; background: -moz-linear-gradient(left, #590000 0%, #760000 50%, #590000 100%); background: -webkit-linear-gradient(left, #590000 0%, #760000 50%, #590000 100%); background: linear-gradient(to right, #590000 0%, #760000 50%, #590000 100%); filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#590000', endColorstr='#760000', GradientType=1); }
#prihead #CDT { width: 960px; padding: 1rem 0; margin: 0 auto; color: #fff; line-height: 1.3; }
#prihead #CDT .count_num { font-family: "Century Gothic", monospace; display: inline-block; padding: 0 .4rem; margin: 0 .4rem; border-radius: 3px; color: #333; font-size: 150%; background: #fff; }

@media all and (-ms-high-contrast:none) { *::-ms-backdrop, #prihead #CDT .count_num { /* IE11 */
padding:1rem .4rem 0; line-height:1; } }

.news { background: #ccc; line-height: 1.5; padding: 1rem; text-align: center; }

/*----------------------------------------------------------------------------------------------
header
----------------------------------------------------------------------------------------------*/
header { background: url(../img/header-bg.jpg) bottom; }
header.headerB { background: url(../img/header_b-bg.jpg) bottom; }
header.headerC { background: url(../img/header_c-bg.jpg) bottom; }
header h1 { margin: 0 auto; }
header.headerB h1 { position: relative; width: 1060px; margin: 0 auto; }
.header-btn { position: absolute; left: 50px; bottom: 70px; animation: floating 0.5s infinite ease-in alternate; transition: 0.3s; }
.header-btn:hover { filter: brightness(130%); }
#jb { background: url(../img/jb-bg.jpg)center; }

@-webkit-keyframes floating {
	0% {-webkit-transform:translateY(0);}
	100% {-webkit-transform:translateY(15px);} 
}

/*----------------------------------------------------------------------------------------------
ブレッド
----------------------------------------------------------------------------------------------*/
/* 共有 */
ul.check, .check2 { margin: 1.5rem 0; }
ul.check li { padding: 0rem 0 1rem 4rem; font-weight: bold; background: url(../img/base/check3.png) 0 .4rem no-repeat; }
ul.check2 li { padding: 0rem 0 1rem 4rem; font-weight: bold; background: url(../img/base/check3b.png) 0 .4rem no-repeat; }
/* 共有 */
ul.bullet1 { margin: 0 0 2rem; }
ul.bullet1 li p { font-size: 2rem; font-weight: normal; padding: 1rem 0 0; margin: 1rem 0 0; border-top: 1px dashed #aaa; }
ul.bullet1 li { padding: 2rem 0 2rem 5rem; margin: 0; border-bottom: 2px dotted #ccc; font-size: 2.8rem; font-weight: 900; background: url(../img/base/check3.png) 1rem 2.4rem no-repeat; }
ul.bullet1 li:nth-child(even) { background-color: #ffffee; }
ul.bullet1 img { margin: 1rem auto; }
.disc-title { margin-top: 50px; }
ul.check3 li { text-indent: -1em; line-height: 1.5; padding: 0.3em 0 0.3em 1em; }
ul.check3 li:before { content: "●"; }

/*----------------------------------------------------------------------------------------------
voice
----------------------------------------------------------------------------------------------*/
.voice-box { border: 1px solid #aaa; position: relative; padding: 50px; }
.voice-box:before { content: ""; display: block; height: 7px; width: 100%; left: 0; top: 0; background: #774900; background: -moz-linear-gradient(left, #774900 2%, #fcc050 51%, #774900 100%); background: -webkit-linear-gradient(left, #774900 2%,#fcc050 51%,#774900 100%); background: linear-gradient(to right, #774900 2%,#fcc050 51%,#774900 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#774900', endColorstr='#774900',GradientType=1 ); position: absolute; }
.voice-box + .voice-box { margin-top: 50px; }
.voice-title { font-size: 3.7rem; font-weight: bold; line-height: 1.3; padding-bottom:20px; text-align: center; position: relative; }
.voice-title:after { content: ""; height: 3px; width: 100%; bottom: 0; display: block; background: #774900; background: -moz-linear-gradient(left, #774900 2%, #fcc050 51%, #774900 100%); background: -webkit-linear-gradient(left, #774900 2%,#fcc050 51%,#774900 100%); background: linear-gradient(to right, #774900 2%,#fcc050 51%,#774900 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#774900', endColorstr='#774900',GradientType=1 ); position: absolute; }
.voice-name { text-align: center; font-weight: bold; margin: 15px 0 30px; }
.voice-name .small { display: table; margin: 0 auto; border-top: 1px dashed #aaa; font-size: 70%!important; }
.voice-box .img-left { width: 170px; height: auto; }
.voice2-box { border: 1px solid #7c4e00; }
.voice2-box + .voice2-box { margin-top: 50px; }
.voice2-name { color: #fff; padding: 10px 50px; text-align: center; font-weight: bold; background: -moz-linear-gradient(left, #774900 2%, #fcc050 51%, #774900 100%); background: -webkit-linear-gradient(left, #774900 2%,#fcc050 51%,#774900 100%); background: linear-gradient(to right, #774900 2%,#fcc050 51%,#774900 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#774900', endColorstr='#774900',GradientType=1 ); }
.voice2-name p { margin: 0; line-height: 1.5; font-size: 2.5rem; text-shadow: 0 1px 3px rgba(0,0,0,1); }
.voice2-title { font-size: 4rem; text-align: center; line-height: 1.3; border-bottom: 2px solid #b68220; margin: 20px 50px 0; padding: 0 0 10px; }
.voice2-txt { padding: 30px 50px; }
.toggle-btn { display: table; text-align: center; padding: 2rem; margin: 3rem auto; border: 2px solid #b78f53; border-radius: 5px; background: #ffca7a; cursor: pointer; transition: 0.2s; }
.toggle-btn:hover { background: #ffd89d; }
.toggle-btn p { font-weight: bold; font-size: 3rem; margin: 0; line-height: 1.3; }
.toggle-wrap { display: none; }

/*----------------------------------------------------------------------------------------------
case
----------------------------------------------------------------------------------------------*/
.case { border: 2px solid #c3833c; margin: 3rem auto; }
.case_title { display: flex; flex-wrap: wrap; font-size: 2.5rem; }
.case_sub { background: #c3833c; color: #fff; font-weight: bold; padding: 1rem 2rem; width: 35%; }
.case_title h3 { background: #eee; font-weight: bold; padding: 1rem 2rem; width: 65%; }
.case_inner { padding: 3rem 5rem; }

/*----------------------------------------------------------------------------------------------
reason
----------------------------------------------------------------------------------------------*/
.reason_box { margin: 3rem 0; padding: 1rem; border: 1px solid #ddd; -webkit-box-shadow: 0 3px 7px rgba(0,0,0,0.2), 0 0 0 9px #fff inset, 0 0 0 10px #d8c364 inset; box-shadow: 0 3px 7px rgba(0,0,0,0.2), 0 0 0 9px #fff inset, 0 0 0 10px #d8c364 inset; background: url("../img/reason_box.png")no-repeat center 10px; }
.reason_title { padding: 4rem 4rem 3rem; }
.reason_num { width: 15%; }
.reason_sub { width: 80%; font-size: 3.5rem; line-height: 1.5; }
.reason_inner { padding: 4rem 4rem 2rem; border-top: 1px dashed #ccc; }

/*----------------------------------------------------------------------------------------------
feature
----------------------------------------------------------------------------------------------*/
.feature_box { border: 2px solid #2C3C3F; margin: 0 0 3rem; }
.feature_title { background: #2C3C3F; color: #fff; text-align: center; font-size: 3rem; line-height: 1.3; padding: 3rem 5rem; }
.feature_inner { padding: 3rem 5rem; }

/*----------------------------------------------------------------------------------------------
promise
----------------------------------------------------------------------------------------------*/
#promise { background: url("../img/promise_bg.png")no-repeat; -webkit-background-size: cover; background-size: cover; padding: 5rem; }
.promise_inner { background: #fff; padding: 5rem 0; }
.promise_inner .sub-head { padding-bottom: 5rem; }

/*----------------------------------------------------------------------------------------------
secret
----------------------------------------------------------------------------------------------*/
.secret_box { margin: 3rem 0; border: 2px solid #c13132; }
.secret_title { background: #c13132; padding: 3rem; }
.secret_num { display: table; background: #fff; color: #c13132; margin: 0 auto 2rem!important; padding: 0.5rem; }
.secret_sub { color: #fff; text-align: center; font-size: 4rem; line-height: 1.3; }
.secret_inner { padding: 5rem; }
.point { background: #ffe9e9; padding: 3rem; margin: 3rem 0; position: relative; border-radius: 10px; }
.point:before { content: url("../img/point.png"); position: absolute; left: -2rem; top: -1rem; }
.point p { margin: 0; }
.point_sub { margin: 0 0 2rem!important; padding: 0 0 0 3rem; font-size: 3rem; font-weight: bold; color: #c13132; border-bottom: 1px solid; }

/*----------------------------------------------------------------------------------------------
merit
----------------------------------------------------------------------------------------------*/
.merit dt { border-bottom: 1px dashed #ccc; margin-bottom: 10px; }
.merit dd + dt { margin-top: 30px; }
.merit-num { width: 60px; height: 60px; position: relative; background: #d71523; border-radius: 50px; color: #fff; margin: 0.5em 0!important; }
.merit-num span { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-size: 4rem; font-weight: bold; }
.merit-title { width: calc(100% - 80px); margin: 0!important; font-weight: bold; font-size: 3rem; line-height: 1.3; }

/*----------------------------------------------------------------------------------------------
profile
----------------------------------------------------------------------------------------------*/
.profile-title { }
.profile h3:first-child { margin: 0 0 20px; }
.profile h3 { font-size: 3.5rem; margin: 40px 0 20px; padding: 0; border-bottom: 2px solid #0080ce; }
.profile2 { border: 1px solid #2d6493; border-radius: 5px; overflow: hidden; }
.profile2-name { background: url(../img/voice2-bg.jpg) center; -webkit-background-size: cover; background-size: cover; text-align: center; color: #fff; padding: 30px 0; font-size: 4rem; text-shadow: 0 2px 3px rgba(0,0,0,0.5); }
.profile2-name p { margin: 0; line-height: 1.3; }
.profile2-txt { padding: 50px; }

/*----------------------------------------------------------------------------------------------
tokuten
----------------------------------------------------------------------------------------------*/
#tokuten { margin: 0; }
.tokuten-box { margin: 40px 0; }
.tokuten-title { margin: 0; padding: 30px 0; background: url("../img/tokuten-bg.jpg") top center; color: #fff; text-align: center; line-height: 1.3; font-size: 4rem; text-shadow: 0 2px 3px rgba(0,0,0,0.5); }
.tokuten-title .small { font-size: 3rem; color: #ffe5a7; }
.tokuten-box + .tokuten-box { margin: 2rem 0 0; }
.tokuten-box .text_c + p { margin-top: 2rem; }
.tokuten-box_contents { padding: 2rem; margin: 0 0 2rem; background: #f7f7f7; }
.product-tokuten { width: 90%; margin: 20px auto; border: 2px solid #2C3C3F; }
.product-tokuten h3 { background: #2C3C3F; color: #fff; font-weight: bold; padding: 5px; text-align: center; font-size: 3rem; }
.product-tokuten img { margin: 40px auto; }
.price-table { width: 90%; margin: 20px auto; border: 2px solid #2C3C3F; }
.price-table th { background: #2C3C3F; color: #fff; font-weight: bold; padding: 5px; }
.price-table tr:nth-child(2n) { background: #f5f5f5; }
.price-table td { padding: 10px; vertical-align: middle; }
.price-table td .small { font-size: 60%; }
.price-table td:nth-child(odd) { width: 60%; font-size: 1.8rem; }
.price-table td:nth-child(even) { width: 40%; text-align: center; font-size: 2.5rem; border-left: 2px solid #2C3C3F; }
#tokuten2 { background: #f2effa; }
.tokuten2_inner { background: #fff; margin: 3rem auto; padding: 5rem; border-radius: 10px; }

/*----------------------------------------------------------------------------------------------
hosyou
----------------------------------------------------------------------------------------------*/
.step_list{ display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; margin: 2rem 0; }
.step_list .step_box{ width:30%; padding: 1.6rem; border:2px solid #FFD12F; font-size:2rem; text-align: center; letter-spacing: -2px; background: #FFFDF7; box-sizing: border-box; }
.step_list h3{ margin-bottom: 1rem; border-bottom: 1px solid #FFD12F; color:#DD0000; font-size:2.6rem; font-weight: bold; }
.step_list p{ font-size:80%; line-height: 1; }
.step_list img{ width:2%; margin: 0; transform: translate(-20%,70%); }
.hosyou-wrap { display: flex; align-items: center; }
.hosyou-wrap img { flex: 1; width: 100%; height: 100%; max-width: 70%; max-height: 380px; }
.hosyou-wrap p { flex: 1; padding: 1rem; font-size: 1.5rem; line-height: 1.6; }
.hosho_step{ display: -webkit-flex; display: -moz-flex;display: -ms-flex; display: -o-flex; display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; margin: 2rem 0; }
.hosho_step .step_box{ width:195px; font-size:1.4rem; line-height: 1.3; box-sizing: border-box; }
.hosho_step .step_box img { margin: 0 0 10px; }
.hosho_step h4{ margin-bottom: 1rem; border-bottom: 1px solid #FFD12F; font-size:2rem; font-weight: bold; text-align: center; }
.hosho_step img.arrow{ width: auto; margin: 0; transform: translate(0%,70px); }
.hosyou2__flow_wrap {width:90%; margin: 15px auto 0; font-size: 70%; }
.hosyou2__flow_wrap_box{display: flex;}
.hosyou2__flow_list {margin: 0 auto;flex: 1;}
.hosyou2__flow_list p{padding: 5px 20px;}
.hosyou2__flow_center{border-top:1px solid #BFBFBF; margin: 30px 0;padding:15px 0;}

/*----------------------------------------------------------------------------------------------
tsuishin
----------------------------------------------------------------------------------------------*/
#tsuishin { padding: 5rem; font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; color: #3C3C3C; background: url(../img/base/bg_tsuishin.jpg); }
.tsuishin-sub h2 { margin: 0 auto .5em; font-size: 5rem; line-height: 1.3; }
.tsuishin-sub p { margin: 0 !important; border-bottom: 4px double; font-size: 3rem; line-height: 1.3; background-image: none !important; }
.tsuishin-box { padding: 5rem; box-shadow: 0 3px 10px -2px rgba(0,0,0,.4); background: url(../img/base/bg_tsuishin-box.jpg); }
.tsuishin-box p { margin: 1em 0 0; font-weight: 500; background-image: linear-gradient(#e5d6b6 1px, transparent 1px); background-size: auto 2em; background-position: 0 -3px; font-size: 2.2rem; line-height: 2; }
.tsuishin-name { position: relative; display: block; margin: -200px 0 0 auto; }
.tsuishin-name2 { margin: 0 auto 30px!important; }
#tsuishin2 { background: url("../img/tokuten_bg.png")no-repeat; -webkit-background-size: cover; background-size: cover; }
.tsuishin2_name { display: table; margin-right: 0; margin-left: auto; }

/*----------------------------------------------------------------------------------------------
QA
----------------------------------------------------------------------------------------------*/
#qa { padding: 30px 0; }
#qa dt { color: #d71523; font-weight: bold; font-size: 2.5rem; border-bottom: 2px solid; }
#qa dd { line-height: 1.5; font-size: 2rem; margin: 10px 0 30px 2em; }

/*----------------------------------------------------------------------------------------------
form
----------------------------------------------------------------------------------------------*/
.formWrap { width: 100%; margin: 2rem 0 4rem; }
/* ボタン */
/* 共通 */
input.btn_submit, input.btn_submit02, input.btn_submit03 { cursor: pointer; display: block; width: 700px; height: 160px; margin: auto; border: none; text-indent: -9999px; }
input.btn_submit:hover, input.btn_submit02:hover, input.btn_submit03:hover { opacity: .8; }
/* 固有 */
input.btn_submit { background: url(../img/base/btn04.png) no-repeat 0 0; }
input.btn_submit02 { background: url(../img/base/btn01.gif) no-repeat 0 0; }
input.btn_submit03 { background: url(../img/base/btn03.gif) no-repeat 0 0; }
.btn { display: table; background: #0244ca; color: #fff; font-weight: bold; font-size: 3rem; text-align: center; text-decoration: none; margin: 20px auto; padding: 10px; min-width: 50%; border-radius: 5px; }
.btn:hover { background: #0093ff; }
/* 料金 */
.form { margin: 0 auto 40px; }
.price-box { margin-top: 2rem; }
.price-result { width: 90%; margin: 0 auto; }
.price-result_main { color: #d00; font-size: 7rem; }
.price-result_main img { float: left; width: 120px; padding-right: 2rem }
.price-result_sub { font-size: 6rem; text-align: right; }
.price-notice { width: 90%; padding: 2rem; margin: 1rem auto 0; background: #eee; box-sizing: border-box; }
.price-notice p { padding-left: 1em; font-size: 2rem; text-indent: -1em; }

.course-btn-inner { margin: 30px 0; }
.course-btn-inner a img { transition: .1s; }
.course-btn-inner a:hover img { opacity: .7; }
.course-btn-inner p{ display: table; margin: 5px auto 0; font-size: 1.5rem;}

.covid_info {
	background: #fff4f4;
	border: 2px solid #cb2525;
	padding: 3rem;
}
.covid_info p {
	margin: 0 auto;
}
.covid_sub {
	font-size: 3rem;
	font-weight: bold;
	border-bottom: 2px solid #ccc;
	line-height: 1.3;
	margin: 0 auto 3rem!important;
	padding-bottom: 2rem;
}

/*----------------------------------------------------------------------------------------------
footer
----------------------------------------------------------------------------------------------*/
footer { background: #ddd; }
.footer_logo img { max-width: 300px; }
.footer_txt { padding: 0 0 0 2rem; font-size: 1.1rem; text-align: left; line-height: 1.9; }
#footer-wrap { display: flex; width: 800px; padding: 2rem 0; margin: 0 auto; font-size: 80%; justify-content: center; }
#footer-wrap li { display: inline-block; padding: 0 1rem 0; border-left: 1px solid #aaa; }
#footer-wrap li:first-child { border: none; padding: 0 1em 0 0; }

/*----------------------------------------------------------------------------------------------
scfooter
----------------------------------------------------------------------------------------------*/
#scfooter { z-index: 1000; position: fixed; bottom: 0; left: 0; width: 100%; padding: 0.5rem 0; background: rgba(255, 255, 255, 0.7); }
.scfooter_inner { display: block; width: 80%; padding: 1rem 0; border-radius: 20px; margin: 0 auto; text-align: center; }
.scfooter_inner a { text-decoration: none; background: #1d85e1; color: #fff; font-weight: bold; font-size: 3rem; text-shadow: 0 1px 2px rgba(0,0,0,0.2); padding: 0.4em; border-radius: 5px; box-shadow: 0 4px 0 #0157a2; transition: 0.2s; }
.scfooter_inner a:hover { background: #299aff; }
.btn_ft { position: relative; overflow: hidden; width: 480px; border-radius: 4px; }
.btn_ft img { border-radius: 4px; }
.btn_ft a { text-decoration: none !important; }

.table1 { border: 2px solid #2C3C3F; margin: 3rem 0; }
.table1 tr:nth-child(even) { background: #f5f5f5; }
.table1 th { background: #2C3C3F; color: #fff; padding: 10px; width: 20%; }
.table1 td { padding: 10px; }
.table1 p { margin: 0; }
.table1 p + p { margin-top: 10px; }
.table-date { width: 100%; margin: 0 0 1em; }
.table-date th { background: #fff; border-bottom: 1px dashed #ccc; width: 70%; color: inherit; text-align: left; }
.table-date td { background: #fff; border-bottom: 1px dashed #ccc; width: 30%; }

@media screen and (max-width:768px) { .btn_ft { width: 75%; } }

@media screen and (max-width:425px) { .btn_ft { width: 100%; } }

/*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
【 SP 】
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/
@media screen and (max-width:768px) {
	/*----------------------------------------------------------------------------------------------
	basic
	----------------------------------------------------------------------------------------------*/
	body { background: none; font-size: 4.5vw; font-weight: normal; }
	img { max-width: 100%; }
	/* Float / Clearfix */
	.side_photo { width: 40%; padding: 0 0 1.4rem 1.4rem; }
	.side_photo2 { width: 40%; padding: 0 1.4rem 1.4rem 0; }
	.side_photo.name { width: 100%; }
	.img-right, .img-left { max-width: 100%!important; display: block; float: none; padding: 1em 0; }
	.img-right .caption, .img-left .caption, .caption { font-size: 4vw; }
	.box1 { padding: 3%; }

	/* PC/SP表示調整 */
	.display_pc { display: none!important; }
	.display_sp { display: block!important; }
	#main { padding: 1rem 0; width: 100%; border: none; }
	.img-flex-box { width: 100%; margin-bottom: 20px; }
	.img-flex-box img { width: 100%; }

	.btn_cta { width: 95%; padding: 1rem; margin: 2rem auto; }
	.btn_cta p { font-size: 7.5vw; }
	.btn_cta p.small { font-size: 3.5vw!important; }

	/*----------------------------------------------------------------------------------------------
	section/letter
	----------------------------------------------------------------------------------------------*/
	section { padding: 2rem 0; }
	h2.sub-head { width: 100%; padding: 0; margin: 1rem auto; font-size: 7vw; }
	.sub-head .small { font-size: 4.5vw!important; letter-spacing: -0.5px; }
	.sub-head .mark { font-size: 10vw; margin: 0 0 10px; }
	.sub-slide { padding: 30px 0!important; }
	.sub-head2 { font-size: 5vw; margin: 0 0 10px; }
	.sub-head3 { font-size: 5vw; }

	h3 { width: 95%; padding: 0; margin: 1rem auto; font-size: 4.5vw; }
	.letter { width: 95%; padding: 0; margin: auto; }

	/*----------------------------------------------------------------------------------------------
	prihead
	----------------------------------------------------------------------------------------------*/
	#prihead { font-size: 4.2vw; }
	#prihead #CDT { width: 100%; font-size: 3.6vw; }

	.news { font-size: 4.5vw; }

	/*----------------------------------------------------------------------------------------------
	header
	----------------------------------------------------------------------------------------------*/
	header.headerB h1 { width: 100%; }
	.header-btn { left: 5%; top: 70vw; width: 90%; }

	/*----------------------------------------------------------------------------------------------
	ブレッド
	----------------------------------------------------------------------------------------------*/
	/* 共有 */
	ul.bullet1 li, ul.bullet2 li { font-size: 5vw; background-size: 8%; line-height: 1.3; }
	/* 固有 */
	ul.bullet1 li { padding: 1.2rem 0 1.2rem 4rem; background-position: 0 1.4rem; }
	ul.bullet1 li p { font-size: 4.5vw; }
	ul.bullet1 img { margin: 1rem auto; }
	ul.bullet2 { border-width: 6px; }
	ul.bullet2 li { padding: 1.2rem 1.2rem 1.2rem 4rem; background-position: 1rem 1.4rem; }

	.disc-title { margin-top: 30px; margin-bottom: 0; }

	/*----------------------------------------------------------------------------------------------
	voice
	----------------------------------------------------------------------------------------------*/
	.voice-box { padding: 3%; }
	.voice-box + .voice-box { margin-top: 30px; }
	.voice2-box + .voice2-box { margin-top: 30px; }
	.voice-title { font-size: 6vw; }
	.voice-name { font-size: 4vw; }
	.voice2-name { padding: 10px; }
	.voice2-name p { font-size: 4vw; }
	.voice2-title { margin: 3%; font-size: 6vw; }
	.voice2-txt { padding: 3%; }
	.toggle-btn p { font-size: 5vw; }

	/*----------------------------------------------------------------------------------------------
	case
	----------------------------------------------------------------------------------------------*/
	.case_sub { width: 100%; text-align: center; font-size: 6vw; }
	.case_title h3 { width: 100%; text-align: center; font-size: 5vw; margin: 0; }
	.case_inner { padding: 1rem; }

	/*----------------------------------------------------------------------------------------------
	reason
	----------------------------------------------------------------------------------------------*/
	.reason_title { padding: 3%; }
	.reason_sub { font-size: 5vw; }
	.reason_inner { padding: 3%; }

	/*----------------------------------------------------------------------------------------------
	feature
	----------------------------------------------------------------------------------------------*/
	.feature_box { margin: 2rem 0; }
	.feature_title { padding: 3% 0; }
	.feature_title h3 { font-size: 5vw; line-height: 1.5; }
	.feature_inner { padding: 3%; }

	/*----------------------------------------------------------------------------------------------
	promise
	----------------------------------------------------------------------------------------------*/
	#promise { padding: 3%; }
	.promise_inner { padding: 3%; }
	.promise_inner .letter { width: 100%; }
	.promise_inner .sub-head { padding-bottom: 1rem; }

	/*----------------------------------------------------------------------------------------------
	secret
	----------------------------------------------------------------------------------------------*/
	.secret_title { padding: 3%; }
	.secret_num { margin-bottom: 1rem!important; }
	.secret_sub { font-size: 5.5vw; }
	.secret_inner { padding: 3%; }
	.point { padding: 5%; }
	.point_sub { font-size: 6vw; padding-left: 12vw; }

	/*----------------------------------------------------------------------------------------------
	merit
	----------------------------------------------------------------------------------------------*/
	.merit-num { width: 13vw; height: 13vw; font-size: 3.2vw; }
	.merit-title { width: 75vw; font-size: 4.8vw; }
	.merit dd { line-height: 1.5; }

	/*----------------------------------------------------------------------------------------------
	profile
	----------------------------------------------------------------------------------------------*/
	.profile h3 { font-size: 6vw; width: 100%; margin: 0 0 10px; }
	.profile2-name { font-size: 6vw; }
	.profile2-txt { padding: 3%; }

	/*----------------------------------------------------------------------------------------------
	tokuten
	----------------------------------------------------------------------------------------------*/
	.tokuten-box { margin: 20px 0; }
	.tokuten-title { font-size: 5vw; width: 100%; padding: 10px 0; margin-bottom: 10px; }
	.tokuten-title .small { font-size: 4.5vw; margin-bottom: 5px; }
	.product-tokuten h3 { font-size: 5vw; margin: 0; width: 100%; line-height: 1.3; }
	.product-tokuten img { width: 90%; height: auto; margin: 10px auto; }
	.price-table td { line-height: 1.3; }
	.price-table td:nth-child(odd) { font-size: 3.5vw; width: 55%; }
	.price-table td:nth-child(even) { font-size: 5vw;width: 45%; }
	.tokuten2_inner { padding: 3%; }
	.tokuten2_inner .img-right { width: 50%; margin: 0 auto; }

	/*----------------------------------------------------------------------------------------------
	hosyou
	----------------------------------------------------------------------------------------------*/
	.hosyou__wrap{ display:block; }
	.hosyou__wrap p{ padding:1rem 0; font-size:4vw; }
	.step_list{ display: block; margin: 1rem 0; }
	.step_list .step_box{ width:100%; border:1px solid #FFD12F; font-size:5vw; }
	.step_list h3{ margin-bottom: .6rem; font-size:5.4vw; }
	.step_list img{ width:6%; margin: -8vmin auto; transform: rotate(90deg); }
	.hosho_step{ display: block; margin: 1rem 0; }
	.hosho_step .step_box{ width:100%; padding: 0; font-size:4vw; }
	.hosho_step h4{ font-size:5.4vw; }
	.hosho_step img{ margin-bottom: 1rem; }
	.hosho_step img.arrow{ width:6%; margin: 3vmin auto; transform: rotate(90deg); }
	.hosho_step .step_box img{ margin: 0 auto 10px; }
	.hosyou2__flow_wrap {width:100%; margin: 0 auto 15px; font-size: 4.5vw; }
	.hosyou2__flow_wrap_box{display: block;}
	.hosyou2__flow_list {margin: 0 auto;flex: 1;}
	.hosyou2__flow_list img {width:80%; margin: 0 auto;flex: 1;}
	.hosyou2__flow_list p{width:95%;padding: 5px 0; text-align: center; margin: 0 0 15px;}
	.hosyou2__flow_center{border-top:1px solid #BFBFBF; margin: 30px 0;padding:15px 0;}

	/*----------------------------------------------------------------------------------------------
	tsuishin
	----------------------------------------------------------------------------------------------*/
	#tsuishin { padding: 1rem; }
	.tsuishin-sub h2 { font-size: 8vw; }
	.tsuishin-sub p { font-size: 5.2vw; }
	.tsuishin-box { padding: 2rem; }
	.tsuishin-box p { font-size: 4vw; background-size: auto 2em; }
	.tsuishin-name { margin: 0 0 0 auto; }

	/*----------------------------------------------------------------------------------------------
	QA
	----------------------------------------------------------------------------------------------*/
	#qa h2 { width: 90%; }
	#qa dt { font-size: 5vw; line-height: 1.3; }
	#qa dd { font-size: 4.5vw; margin: 10px 0 20px 2em; }

	/*----------------------------------------------------------------------------------------------
	form
	----------------------------------------------------------------------------------------------*/
	.formWrap { margin: 0; }
	/* ボタン */
	input.btn_submit, input.btn_submit02, input.btn_submit03 { width: 100%; height: 22vmin; padding: 0; background-size: 100%; }
	/* 料金 */
	.price-result_main { font-size: 7.5vw; }
	.price-result_main img { width: 14vw; padding-right: 1.4rem }
	.price-result_sub { font-size: 5.8vw; }
	.price-notice { padding: 1rem; }
	.price-notice p { font-size: 3.8vw; }
	.btn { font-size: 5.5vw; }
	.table-date th { display: block; background: #fff; border-bottom: none; width: 100%; padding: 5px 5px 0; font-size: 90%; color: inherit; text-align: left; }
	.table-date td { text-align: right; display: block; background: #fff; border-bottom: 1px dashed #ccc; width: 100%; padding: 5px; font-size: 90%; }

	.covid_info { padding: 5%; }
	.covid_sub { font-size: 5vw; text-align: center; padding-bottom: 1rem; margin-bottom: 1rem; }

	/*----------------------------------------------------------------------------------------------
	frame
	----------------------------------------------------------------------------------------------*/
	.frame01, .frame02, .frame03, .frame04 { width: 90%; padding: 2rem; margin: 2rem auto; background-size: 100%; }

	/*----------------------------------------------------------------------------------------------
	footer
	----------------------------------------------------------------------------------------------*/
	.footer_logo img { display: block; }
	.footer_txt { padding: 1rem; }
	#footer-wrap { display: block; width: 100%; }

	/*----------------------------------------------------------------------------------------------
	scfooter
	----------------------------------------------------------------------------------------------*/
	.scfooter_inner { width: 100%; }
	.scfooter_inner a { font-size: 5vw; }

}