@charset "UTF-8";
/* =============================================================================
Reset style
========================================================================== */
/*
YUI 3.18.1 (build f7e7bcb)
Copyright 2014 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
html { color: #000; background: #fff; }

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, textarea, p, blockquote, th, td { margin: 0; padding: 0; }

table { border-collapse: collapse; border-spacing: 0; }

fieldset, img { border: 0; }

address, caption, cite, code, dfn, em, strong, th, var { font-style: normal; font-weight: normal; }

ol, ul { list-style: none; }

caption, th { text-align: left; }

h1, h2, h3, h4, h5, h6 { font-size: 100%; font-weight: normal; }

a, a:hover, a:active, a:visited { text-decoration: none; outline: none; }

q:before, q:after { content: ""; }

abbr, acronym { border: 0; font-variant: normal; }

sup { vertical-align: text-top; }

sub { vertical-align: text-bottom; }

input, textarea, select { font-family: inherit; font-size: inherit; font-weight: inherit; *font-size: 100%; }

legend { color: #000; }

#yui3-css-stamp.cssreset { display: none; }

*, *:before, *:after { -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }

html, body { margin: 0; padding: 0; font-size: 12px; font-weight: normal; color: #333; letter-spacing: 0.2em; }

p { color: #333; letter-spacing: 0.2em; }

img { display: block; vertical-align: bottom; max-width: 100%; }

/*-------------------------------- helper -------------------------------- */
.alte { font-family: "Alte DIN 1451 Mittelschrift gepraegt", sans-serif; font-family: "Alte DIN 1451 Mittelschrift", sans-serif; }

.sp { display: none; }

.blue { color: #1f72b4; }

.cTtl { font-weight: bold; font-size: 28px; letter-spacing: 0.25em; }

.cInner { max-width: 60%; margin: 0 auto; }

/*-------------------------------- header -------------------------------- */
.headerLogo { position: absolute; top: 60px; left: 0; right: 0; width: 214px; margin: 0 auto; }

/*-------------------------------- fv -------------------------------- */
.fvBg { position: relative; height: 800px; overflow: hidden; padding: 135px 0 215px; }

.fvVideo { position: absolute; z-index: -1; min-width: 100%; min-height: 100%; width: auto; height: auto; top: 0; left: 50%; transform: translateX(-50%); }

.fvMain { max-width: 690px; margin: 0 auto; width: 80%; }

.fvTtl { margin-bottom: 20px; }

.fvList { display: flex; align-items: center; justify-content: center; max-width: 677px; width: 80%; margin: 20px auto 0; padding: 10px 0; background-color: #1f72b4; }

.fvItem { padding: 0 10px; text-align: center; color: #ffffff; line-height: 1.5; font-size: 16px; font-weight: 700; letter-spacing: 0.17em; }

.fvItem:nth-child(2) { border-right: 1px dashed #ffffff; border-left: 1px dashed #ffffff; }

.fvItemBig { font-size: 18px; letter-spacing: .06em; }

.fv .small { font-size: 15px; }

.fvItemEn { font-size: 35px; letter-spacing: normal; }

.fvMovie { width: 100px; margin: 100px auto 0; transition: 0.3s; cursor: pointer; }

.fvMovie:hover { opacity: 0.7; }

.fvNote { display: none; color: #ffffff; font-size: 18px; margin: 10px auto 0; font-weight: bold; }

/*--------------------------------
cta
-------------------------------- */
.ctaInner { width: 40%; margin: 30px auto 100px; }

.ctaEn { width: 255px; margin-bottom: 10px; margin-left: -5%; }

.ctaTtl { display: table; margin: 0 auto 40px; text-align: center; font-size: 26px; font-weight: 700; line-height: 1.5; }
.ctaCpc { display: table; margin: 0 auto 40px; text-align: center; font-size: 20px; font-weight: 700; line-height: 1.5; }
.ctaFot { display: table; margin: 0 auto 40px; text-align: center; font-size: 14px; font-weight: 700; line-height: 1.5; }

.ctaBtn { display: block; width: 90%; max-width: 690px; margin: 0 auto; cursor: pointer; }

.ctaBtn img { transition: 0.3s; }

.ctaBtn:hover img { opacity: 0.7; }

/*-------------------------------- spot -------------------------------- */
.spotBg { margin-top: 130px; padding: 40px 50px 50px; position: relative; background-color: #9ecdea; }

.spotInner { margin: 0 auto; }

.spotMain { position: relative; }

.spotImg { position: absolute; top: -25%; right: -14%; max-width: 813px; margin-left: auto; }

.spotLeft { position: relative; z-index: 2; width: 56%; transform: translateY(40px); line-height: 1.5; font-weight: 700; padding: 6% 5%; background-image: url(../lp/spot_bg01.png); background-repeat: no-repeat; background-size: cover; background-position: top center; }

.spotLeftHead { font-size: 22px; color: #ffffff; letter-spacing: 0.25em; }

.spotLeftHead .big { font-size: 44px; }

.spotLeftTtl { color: #ffffff; font-size: 78px; line-height: 1; margin-top: 10px; margin-bottom: 20px; letter-spacing: 0.25em; }

.spotLeftTxt { color: #ffffff; font-size: 18px; line-height: 1.7; letter-spacing: 0.3em; }

.spotLow { max-width: 934px; margin: 200px auto 0; }

.spotLowTtl { display: table; position: relative; margin: 90px auto 50px; padding: 0 30px; color: #ffffff; }

.spotLowTtl:before, .spotLowTtl:after { position: absolute; top: 0; content: ""; display: block; width: 1px; height: 40px; background: #fff; }

.spotLowTtl:before { left: 0; transform: rotate(-20deg); }

.spotLowTtl:after { right: 0; transform: rotate(20deg); }

.spotList { display: flex; justify-content: space-between; }

.spotItem { position: relative; width: 30%; padding: 25px 15px; border: 1px solid #ffffff; background-image: url(../lp/spot_bg02.png); background-repeat: no-repeat; background-size: cover; background-position: center; }

.spotItem:after { content: ""; display: block; position: absolute; top: 0; right: 0; left: 0; margin: 0 auto; transform: translateY(-50%); width: 25px; height: 25px; background-image: url(../lp/cta_icon01.png); background-repeat: no-repeat; background-size: contain; background-position: top center; }

.spotItemEn { display: flex; align-items: center; justify-content: center; width: 135px; height: 35px; margin: 0 auto 20px; background-color: #1f72b4; font-size: 18px; color: #ffffff; letter-spacing: 0.25em; }

.spotItemTxt { text-align: center; color: #ffffff; font-size: 18px; letter-spacing: 0.25em; font-weight: 700; line-height: 2; }

/*-------------------------------- plan -------------------------------- */
.planBg { padding: 180px 50px 50px; position: relative; background: url(../lp/plan_bg01.png), #f8fbfd; background-repeat: no-repeat; background-size: 100%; background-position: top center; }

.planInner { width: 100%; max-width: 65%; margin: 0 auto; }

.planTtl { display: table; text-align: center; position: relative; margin: 0 auto 70px; font-weight: bold; padding: 0 30px; }

.planTtl:before, .planTtl:after { position: absolute; top: 0; content: ""; display: block; width: 1px; height: 40px; background: #1f72b4; }

.planTtl:before { left: 0; transform: rotate(-20deg); }

.planTtl:after { right: 0; transform: rotate(20deg); }

.planItem { position: relative; margin-bottom: 7%; display: flex; align-items: center; }

.planItem:nth-child(2) { flex-direction: row-reverse; }

.planItem:nth-child(2) .planImg { margin-right: -10%; margin-left: -20%; }

.planItem:nth-child(2) .planBox { margin-left: inherit; margin-right: auto; }

.planImg { max-width: 70%; margin-left: -10%; margin-right: -20%; }

.planBox { overflow: hidden; position: relative; z-index: 2; margin-left: auto; width: 45%; padding: 5.5% 5% 5%; background-color: #ffffff; }

.planBoxTtl { position: relative; margin-bottom: 6.5%; padding-bottom: 5%; color: #1f72b4; font-size: 24px; font-weight: 700; font-style: normal; line-height: 1.5; }

.planBoxTtl .big { display: block; letter-spacing: 0.25em; font-size: 30px; }

.planBoxTtl:after { position: absolute; bottom: 0; left: -20%; content: ""; width: 115%; height: 1px; display: block; border: 1px dashed #1f72b4; }

.planBoxTxt { padding: 0 7% 0 0; font-size: 18px; font-weight: 700; letter-spacing: 0.28em; line-height: 1.8; margin-top: 6%; }

/*-------------------------------- trial -------------------------------- */
.trialBg { padding: 85px 50px 75px; background-color: #e7ecf1; }

.trialInner { margin: 0 auto; }

.trialTtl { margin-bottom: 40px; text-align: center; font-weight: 700; }

.trialMovie { position: relative; }

.trialIcon { position: absolute; top: 50%; transform: translateY(-50%); left: 0; right: 0; margin: 0 auto; width: 15%; cursor: pointer; transition: 0.3s; }

.trialIcon:hover { opacity: 0.7; }

/*-------------------------------- price -------------------------------- */
.priceBg { padding: 100px 50px 0; }

.priceInner { margin: 0 auto; }

.priceTtl { position: relative; margin-bottom: 40px; text-align: center; line-height: 1.5; }

.priceTtl:after { content: ""; display: block; width: 35px; height: 1px; margin: 20px auto 0; border: 2px solid #1f72b4; }

.priceBox { display: flex; flex-direction: row-reverse; }

.priceImg { width: 57%; }

.priceLeft { display: flex; align-items: center; justify-content: center; flex-direction: column; width: 43%; padding: 3%; background-color: #1f72b4; }

.priceLeftTtl { width: 80%; margin-bottom: 30px; padding: 12px 5px; text-align: center; background: #fff; color: #1f72b4; font-size: 24px; font-weight: 700; }

.priceLeftPrice { display: flex; margin-bottom: 20px; font-size: 46px; align-items: center; flex-wrap: wrap; justify-content: center; border-bottom: 1px dashed #ffffff; font-size: 18px; color: #ffffff; font-weight: bold; }

.priceLeftPrice .big { font-size: 46px; line-height: 1.2; }

.priceLeftPrice .medium { font-size: 24px; }

.priceLeftTotal { color: #ffffff; font-size: 16px; font-weight: 700; }

.priceNote { color: #555555; text-align: right; font-size: 12px; }

.priceNote.mb { margin: 8px 0 60px; }

.priceList { display: flex; justify-content: space-between; margin-bottom: 10px; }

.priceItem { width: 30%; border: 2px solid #317fd1; }

.priceItemImg { width: calc(100% + 4px); transform: translate(-2px, -2px); }

.priceItemBody { border-top: none; padding: 7%; }

.priceItemTtl { margin-bottom: 10px; padding: 5px; text-align: center; background-color: #1f72b4; color: #fff; font-size: 22px; font-weight: 700; }

.priceItemPrice { display: flex; margin-bottom: 10px; font-size: 46px; align-items: center; flex-wrap: wrap; justify-content: center; border-bottom: 1px dashed #1f72b4; font-size: 14px; color: #1f72b4; font-weight: bold; }

.priceItemPrice .big { font-size: 34px; line-height: 1.2; display: flex; align-items: center; }

.priceItemPrice .medium { font-size: 18px; }

.priceItemTotal { text-align: center; font-size: 14px; font-weight: 700; }

/*-------------------------------- what -------------------------------- */
.whatBg { padding: 120px 50px 100px; background-image: url(../lp/what_bg01.png); background-repeat: no-repeat; background-size: cover; background-position: top center; }

.whatInner { margin: 0 auto; }

.whatTtl { display: table; margin: 0 auto 20px; position: relative; padding-bottom: 30px; text-align: center; color: #fff; }

.whatTtl:after { position: absolute; content: ""; display: block; width: 103%; height: 40px; background-image: url(../lp/what_bg02.png); background-repeat: no-repeat; background-size: contain; background-position: top center; }

.whatLead { margin-bottom: 80px; color: #ffffff; text-align: center; font-size: 20px; font-weight: 700; }

.whatBox { padding: 5% 5% 3%; background-color: #ffffff; opacity: 0.95; }

.whatBoxTtl { margin-bottom: 20px; text-align: center; color: #1f72b4; font-size: 22px; font-weight: 700; letter-spacing: 0.22em; }

.whatBoxImg { max-width: 814px; margin: 0 auto 20px; }

.whattxt01 { text-align: center; font-size: 18px; font-weight: 700; letter-spacing: 0.27em; }

/*-------------------------------- offer -------------------------------- */
.offerBg { padding: 130px 50px 30px; }

.offerInner { margin: 0 auto; }

.offerTtl { margin-bottom: 65px; text-align: center; }

.offerList { display: flex; flex-wrap: wrap; justify-content: space-between; }

.offerItem { width: 48%; margin-bottom: 60px; }

.offerItemImg { margin-bottom: -7%; }

.offerItemTxt { position: relative; z-index: 2; display: flex; align-items: center; justify-content: center; width: 85%; min-height: 106px; margin: 0 auto; padding: 3%; letter-spacing: 0.25em; border: 2px dashed #1f72b4; background-color: #ffffff; text-align: center; color: #1f72b4; font-size: 18px; font-weight: 700; }

/*-------------------------------- promise -------------------------------- */
.promiseBg { background-color: #e7ecf1; padding: 70px 50px 80px; }

.promiseInner { margin: 0 auto; }

.promiseHead { width: 307px; height: 72px; margin: 0 auto 20px; color: #1f72b4; padding-top: 15px; font-size: 20px; font-weight: 700; text-align: center; background-image: url(../lp/promise_bg01.png); background-repeat: no-repeat; background-size: 100% 100%; background-position: top center; }

.promiseTtl { display: table; margin: 0 auto 70px; color: #1f72b4; font-size: 34px; font-weight: 700; letter-spacing: 0.2em; border-bottom: 2px dashed #1f72b4; }

.promiseTtl .big { font-size: 56px; }

.promiseItem { display: flex; flex-wrap: wrap; margin-bottom: 70px; background: #fff; }

.promiseItem:last-child { margin-bottom: 0; }

.promiseItemImg { width: 35%; position: relative; z-index: 2; }

.promiseRight { position: relative; width: 65%; padding: 7% 4% 2%; background-color: #ffffff; }

.promiseRightTtl { display: flex; align-items: center; margin-bottom: 6%; color: #1f72b4; font-size: 24px; font-weight: 700; }

.promiseRightTtl .num { position: absolute; top: 0; left: 100px; transform: translateY(-50%); font-size: 66px; }

.promiseRightTtl::before { content: ""; display: block; height: 1px; width: 100px; margin: 0 15px 0 -70px; border: 1px solid #1f72b4; }

.promiseRightTxt { position: relative; display: flex; align-items: flex-start; margin-bottom: 4%; padding-left: 36px; font-size: 18px; letter-spacing: 0.25em; font-weight: 700; }

.promiseRightTxt::before { content: ""; position: absolute; left: -9px; top: 3px; display: block; width: 24px; height: 24px; background-image: url(../lp/promise_icon01.png); background-repeat: no-repeat; background-size: contain; background-position: top center; }

.promiseLow { display: block; width: 100%; background-color: #ffffff; }

.promiseLowTtl { background-color: #1f72b4; color: #ffffff; padding: 15px 0; text-align: center; font-size: 22px; font-weight: 700; }

.promiseLowBody { padding: 4% 7%; }

.promiseLowLead { margin-bottom: 25px; display: table; border-bottom: 2px solid #1f72b4; color: #1f72b4; font-size: 22px; font-weight: 700; line-height: 1.2; }

.promiseLowTxt { font-size: 18px; font-weight: 700; letter-spacing: 0.25em; font-style: normal; line-height: 1.8; }

/*-------------------------------- flow -------------------------------- */
.flowBg { padding: 85px 50px; }

.flowInner { margin: 0 auto; }

.flowTtl { position: relative; margin-bottom: 60px; padding: 30px; font-size: 20px; font-weight: 700; text-align: center; letter-spacing: 0.25em; border-top: 2px dashed #1f72b4; border-bottom: 2px dashed #1f72b4; }

.flowTtl .blue { display: block; font-size: 28px; letter-spacing: 0.32em; margin-bottom: 10px; }

.flowTtl:after { content: ""; display: block; position: absolute; top: 0; left: 0; right: 0; margin: 0 auto; transform: translateY(-50%); width: 34px; height: 34px; background-image: url(../lp/flow_icon0.png); background-repeat: no-repeat; background-size: contain; background-position: top center; }

.flowLead { text-align: center; color: #1f72b4; margin-bottom: 20px; font-size: 24px; letter-spacing: 0.25em; font-weight: 700; }

.flowSwitch { display: flex; justify-content: center; }

.flowSwitchHead { display: flex; flex-direction: column; width: 24%; }

.flowTab { position: relative; display: flex; cursor: pointer; align-items: center; justify-content: center; height: 132px; margin-bottom: 4px; background-color: #e7ecf1; font-size: 20px; font-weight: 700; text-align: center; color: #1f72b4; }

.flowTab.isActive { color: #ffffff; background-color: #1f72b4; }

.flowTab.isActive:after { content: ""; position: absolute; top: 50%; right: -34px; transform: translateY(-50%); width: 0px; height: 0; margin: auto; border-style: solid; border-color: transparent transparent transparent #1f72b4; border-width: 17px; }

.flowTab:last-child { margin-bottom: 0; }

.flowSwitchBody { position: relative; display: flex; justify-content: center; align-items: center; width: 76%; padding: 2.5%; padding-bottom: 40px; border: 2px solid #1f72b4; }

.flowPanel { display: none; width: 100%; }

.flowPanel.isShow { display: block; }

.flowPanelBox { display: flex; justify-content: space-between; }

.flowPanelImg { max-width: 38%; margin-right: 5%; }

.flowPanelImg.img03 { margin-left: 1%; max-width: 37%; }

.flowPanelRight { width: 57%; }

.flowPanelInner { margin-bottom: 5%; }

.flowPanelInner:last-child { margin-bottom: 0; }

.flowPanelCircle { display: table; margin-bottom: 4%; padding: 5px 6%; border-radius: 20px; background-color: #1f72b4; color: #ffffff; text-align: center; font-size: 18px; font-weight: 700; }

.flowPanelCircle.circle02 { min-width: 60%; }

.flowPanelTxt { font-size: 16px; font-weight: 700; letter-spacing: 0.25em; }

.flowPanelGray { margin-top: 5%; padding: 4% 5%; background-color: #ebeef2; }

.flowPanelGrayTtl { position: relative; display: table; margin: 0 auto 20px; color: #6e95cc; font-size: 18px; font-weight: 700; }

.flowPanelGrayTtl:before, .flowPanelGrayTtl:after { position: absolute; top: 50%; content: ""; display: block; width: 16px; height: 2px; background: #6e95cc; transform: translateY(-50%); }

.flowPanelGrayTtl:before { left: -20px; }

.flowPanelGrayTtl:after { right: -20px; }

.flowPanelGrayItem { position: relative; margin-bottom: 25px; padding-left: 50px; }

.flowPanelGrayItem:last-child { margin-bottom: 0; }

.flowPanelGrayIcon { position: absolute; top: 0; left: 0; width: 38px; }

.flowPanelGrayIcon.icon03 { width: 36px; }

.flowPanelGrayLead { width: 140px; margin-bottom: 5px; color: #ffffff; font-size: 16px; padding-top: 3px; font-weight: 700; text-align: center; background-color: #6e95cc; }

.flowPanelGrayLead.lead02 { border: 2px solid #6e95cc; background-color: #ffffff; color: #6e95cc; }

.flowPanelGrayTxt { color: #6e95cc; font-size: 16px; font-weight: 700; }

.flow .swiper-wrapper { align-items: center; }

.flow .swiper-pagination.swiper-pagination01 { left: 0; right: 0; bottom: 20px; display: flex; align-items: center; justify-content: center; margin: 25px auto 0; }

.flow .swiper-pagination-bullet { border-radius: 50%; display: block; width: 10px; height: 10px; border: 2px solid #1f72b4; background-color: #ffffff; margin: 0 5px; opacity: 1; }

.flow .swiper-pagination-bullet.swiper-pagination-bullet-active { background-color: #1f72b4; opacity: 1; }

.flowPanelNote { padding-left: 14px; text-indent: -14px; color: #666666; font-size: 14px; }

/*-------------------------------- staff -------------------------------- */
.staffBg { background-color: #bad7e4; padding: 100px 50px 30px; }

.staffInner { margin: 0 auto; }

.staffTtl { position: relative; max-width: 820px; padding: 0 80px; text-align: center; margin: 0 auto 100px; color: #333; }

.staffTtl::before, .staffTtl::after { position: absolute; top: 50%; content: ""; transform: translateY(-50%); display: block; width: 70px; height: 2px; }

.staffTtl::before { left: 0; background: linear-gradient(to left, #333 70%, #bad7e4 70%, #bad7e4 80%, #333 80%, #333 100%); }

.staffTtl::after { right: 0; background: linear-gradient(to right, #333 70%, #bad7e4 70%, #bad7e4 80%, #333 80%, #333 100%); }

.staffList { display: flex; flex-wrap: wrap; justify-content: space-between; }

.staffItem { width: 48%; margin-bottom: 50px; background-color: #ffffff; padding-bottom: 25px; }

.staffItemHead { display: flex; justify-content: space-between; }

.staffItemImg { width: 50%; transform: translateY(-20px); }

.staffItemRight { width: 50%; padding: 7%; }

.staffItemInfo .job { background-color: #1f72b4; display: table; color: #ffffff; margin-bottom: 10px; padding: 5px 10px; font-size: 16px; font-weight: 700; }

.staffItemInfo .year { display: block; color: #1f72b4; margin-bottom: 10px; padding: 0 0 10px 24px; font-size: 24px; font-weight: 700; border-bottom: 1px solid #1f72b4; }

.staffItemInfo .address { display: block; color: #1f72b4; padding-left: 24px; font-size: 20px; font-weight: 700; }

.staffItemBody { width: 90%; margin: 0 auto; padding: 5%; border: 2px dashed #1f72b4; background-color: #ffffff; }

.staffItemTxt { font-size: 18px; font-weight: 700; line-height: 1.8; }

/*-------------------------------- faq -------------------------------- */
.faqBg { background-color: #f8fbfd; padding: 100px 50px 30px; }

.faqInner { margin: 0 auto; }

.faqTtl { text-align: center; margin-bottom: 60px; }

.faqList { display: flex; flex-wrap: wrap; justify-content: space-between; }

.faqItem { width: 48%; margin-bottom: 60px; }

.faqItemQ { position: relative; min-height: 115px; display: flex; align-items: center; padding: 20px 40px; background-color: #ffffff; border: 2px solid #1f72b4; border-bottom: none; }

.faqItemQTxt { display: flex; align-items: flex-start; color: #1f72b4; font-size: 22px; font-weight: 700; }

.faqItemQTxt::before { content: "Q. "; font-size: 34px; margin-right: 15px; font-weight: normal; font-family: Helvetica; }

.faqItemBtn { position: relative; cursor: pointer; padding: 10px; background-color: #1f72b4; color: #ffffff; font-size: 20px; font-weight: 700; text-align: center; }

.faqItemBtn .txtOpen { display: none; }

.faqItemBtn::before, .faqItemBtn:after { position: absolute; top: 50%; right: 30px; transform: translateY(-50%); content: ""; display: block; width: 20px; height: 3px; background: #ffffff; transform-origin: top; }

.faqItemBtn:after { transform: rotate(90deg) translateY(-50%); }

.faqItemBtn.open .txtOpen { display: block; }

.faqItemBtn.open .txtClose { display: none; }

.faqItemBtn.open:after { transform: translateY(-50%); }

.faqItemA { display: none; padding: 20px 40px; border: 2px solid #1f72b4; border-top: none; background-color: #ffffff; }

.faqItemA.open { display: block; }

.faqItemATxt { position: relative; width: 83%; margin: 0 0 0 auto; font-size: 16px; font-weight: 500; line-height: 1.625; }

.faqItemATxt::before { position: absolute; top: 0; left: -17%; content: "A. "; font-size: 34px; margin-right: 15px; font-weight: normal; font-family: Helvetica; color: #1f72b4; }

.faqItemATxt span { position: relative; display: block; padding-left: 20px; margin: 10px 0; }

.faqItemATxt span::before { position: absolute; top: 0; left: 0; content: '・'; }

/*-------------------------------- footer -------------------------------- */
.footerBg { padding: 0 0 45px; background-image: url(../lp/footer_img01.png); background-repeat: no-repeat; background-size: cover; background-position: bottom center; }

.footerCopy { display: block; text-align: center; margin-top: 100px; color: #ffffff; text-align: center; font-size: 14px; font-weight: 700; }

/*-------------------------------- modal -------------------------------- */
#modalBg { position: fixed; top: 0; left: 0; z-index: 10000; display: none; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.6); }

.modalVideo { position: fixed; top: 0; right: 0; bottom: 0; left: 0; display: none; width: 1080px; height: 610px; z-index: 10001; margin: auto; }

.modalVideo .closeBtn { position: absolute; top: -15%; right: -2%; color: #fff; font-size: 54px; }

#player { width: 100%; height: 100%; border: none; }

@media (max-width: 1500px) { .spotLeft { padding: 6% 4%; }
  .cInner { max-width: 80%; margin: 0 auto; }
  .ctaInner { width: 60%; }
  .planInner { max-width: 80%; }
  .planBox { width: 55%; }
  .spotImg { right: -4%; } }

@media (max-width: 700px) { html { font-size: 13.3333333333vw; }
  body { width: 7.5rem; overflow-x: hidden; }
  .pc { display: none; }
  .sp { display: block; }
  .cTtl { font-size: 18px; }
  /*-------------------------------- header -------------------------------- */
  .header { position: relative; }
  .headerLogo { z-index: 1; top: 0.64rem; width: 2.14rem; }
  /*-------------------------------- fv -------------------------------- */
  .fvBg { padding: 1.6rem 0.4rem .7rem; background-image: url(../lp/fv_bg01_sp.jpg); background-size: cover; height: 8.8rem; }
  .fvMain { width: inherit; }
  .fvTtl { width: 5.6rem; margin: 0 auto 35px; }
  .fvList { display: block; width: 6.7rem; margin: 25px auto 0; padding: 10px 0.4rem; }
  .fvItem { padding: 10px .2rem; font-size: 14px; border-bottom: 1px dashed #ffffff; }
  .fvItem:nth-child(2) { border-right: none; border-left: none; letter-spacing: .04em; }
  .fvItem:nth-child(2) .fvItemBig { display: inline; }
  .fvItem:nth-child(2) .small { font-size: 11px; }
  .fvItem:last-child { border-bottom: none; }
  .fvItemBig { display: block; font-size: 15px; }
  .fvItemEn { font-size: 23px; letter-spacing: normal; }
  .fvMovie { width: 1.6rem; margin: 35px auto 0; }
  .fvNote { font-size: 11px; display: table; }
  /*-------------------------------- cta -------------------------------- */
  .ctaInner { width: 6.7rem; margin: 30px auto 50px; }
  .ctaEn { width: 2.55rem; margin-bottom: 15px; margin-left: 0; }
  .ctaTtl { margin: 0 auto 20px; font-size: 17px; }
  .ctaCpc { margin: 0 auto 14px; font-size: 15px; }
  .ctaFot { margin: 0 auto 14px; font-size: 12px; }
  .ctaBtn { display: block; width: 100%; margin: 0 auto; max-width: inherit; }
  /*-------------------------------- spot -------------------------------- */
  .spotBg { margin-top: 100px; padding: 0 0 10px; }
  .spotInner { max-width: inherit; transform: translateY(-30px); }
  .spotImg { position: relative; top: inherit; transform: none; right: inherit; max-width: inherit; width: 7.1rem; margin-left: inherit; margin-bottom: -30px; }
  .spotLeft { position: relative; z-index: 2; margin-left: auto; width: 7.1rem; transform: none; padding: 50px 0.5rem; padding-right: 0.1rem; background-image: url(../lp/spot_bg01_sp.png); }
  .spotLeftHead { font-size: 15px; }
  .spotLeftHead .big { font-size: 26px; }
  .spotLeftTtl { font-size: 44px; margin-top: 10px; margin-bottom: 15px; }
  .spotLeftTxt { font-size: 12px; }
  .spotLow { max-width: 5.5rem; margin-top: 70px; }
  .spotLowTtl { margin: 0 auto 30px; padding: 0 0.7rem; text-align: center; }
  .spotLowTtl:before, .spotLowTtl:after { top: inherit; bottom: 5px; width: 1px; height: 0.7rem; }
  .spotList { display: block; }
  .spotItem { width: 100%; margin-bottom: 40px; padding: 25px 0.4rem; }
  .spotItem:after { width: 22px; height: 22px; }
  .spotItem:last-child { margin-bottom: 0; }
  .spotItemEn { display: table; width: auto; height: inherit; margin: 0 auto 20px; padding: 5px 0.5rem; font-size: 15px; }
  .spotItemTxt { font-size: 15px; }
  /*-------------------------------- plan -------------------------------- */
  .planBg { padding: 75px 0 20px; position: relative; background: url(../lp/plan_bg01_sp.png), #f8fbfd; background-repeat: no-repeat; background-size: 100%; background-position: top center; }
  .planInner { width: 100%; max-width: inherit; }
  .planTtl { width: 6.5rem; margin: 0 auto 30px; padding: 0 0.3rem; text-align: center; }
  .planTtl:before, .planTtl:after { top: inherit; bottom: 5px; width: 1px; height: 0.7rem; }
  .planItem { display: block; position: relative; margin-bottom: 35px; padding: 0; }
  .planItem:nth-child(2) .planImg { right: inherit; left: inherit; margin: 0; margin-bottom: -50px; }
  .planItem:nth-child(2) .planBox { margin-left: auto; margin-right: inherit; }
  .planImg { position: relative; width: 7.1rem; left: inherit; top: inherit; transform: none; margin: 0; max-width: inherit; margin-bottom: -50px; }
  .planBox { margin-left: auto; width: 7.1rem; padding: 35px 0.6rem; }
  .planBoxTtl { margin-bottom: 20px; padding-bottom: 15px; font-size: 16px; }
  .planBoxTtl .big { font-size: 19px; }
  .planBoxTtl:after { left: -0.6rem; width: 7.1rem; border: none; border-bottom: 1px dotted #1f72b4; }
  .planBoxTxt { padding: 0; font-size: 13px; margin-top: 20px; }
  /*-------------------------------- trial -------------------------------- */
  .trialBg { padding: 45px 0.4rem; }
  .trialInner { max-width: inherit; }
  .trialTtl { margin-bottom: 30px; }
  .trialMovie { position: relative; max-width: 100%; margin: 0 auto; }
  .trialIcon { width: 15%; }
  /*-------------------------------- price -------------------------------- */
  .priceBg { padding: 55px 0.4rem 0; }
  .priceInner { max-width: inherit; }
  .priceTtl { margin-bottom: 25px; }
  .priceTtl:after { content: ""; display: block; width: 18px; margin: 15px auto 0; border: 1px solid #1f72b4; }
  .priceBox { display: block; }
  .priceImg { width: 100%; }
  .priceLeft { display: block; width: 100%; padding: 25px 0.4rem; margin-bottom: 10px; }
  .priceLeftTtl { width: 4.7rem; margin: 0 auto 15px; padding: 10px; font-size: 16px; }
  .priceLeftPrice { margin-bottom: 13px; padding-bottom: 10px; font-size: 13px; }
  .priceLeftPrice .big { font-size: 27px; }
  .priceLeftPrice .medium { font-size: 16px; }
  .priceLeftTotal { text-align: center; font-size: 12px; }
  .priceNote { padding-left: 1em; text-indent: -1em; text-align: left; font-size: 10px; margin-top: 0; }
  .priceNote.mb { margin-bottom: 50px; }
  .priceNote.right { text-align: right; }
  .priceWrap { position: relative; }
  .price .swiper-container { width: 5.925rem; margin: 0 auto; }
  .price .swiper-button-next, .price .swiper-button-prev { position: absolute; width: 0.72rem; height: 0.72rem; top: inherit; right: 0; left: 0; bottom: 2rem; transform: none; margin-top: 0; outline: none; }
  .price .swiper-button-next:after, .price .swiper-button-prev:after { display: block; content: ""; width: 100%; height: 100%; background-image: url(../lp/plan_arrow01.png); background-repeat: no-repeat; background-size: contain; background-position: top center; }
  .price .swiper-button-next { right: 0; left: inherit; }
  .price .swiper-button-prev { right: inherit; left: 0; }
  .price .swiper-button-prev:after { transform: rotate(180deg); }
  .priceItem { border: 1px solid #317fd1; }
  .priceItemImg { width: 5.92rem; transform: translate(-1px, -1px); }
  .priceItemBody { border-top: none; padding: 18px 0.4rem; }
  .priceItemTtl { min-width: 3.7rem; display: table; width: auto; margin: 0 auto 15px; padding: 10px; font-size: 16px; }
  .priceItemPrice { margin: 0 0.3rem 8px; padding-bottom: 0; font-size: 13px; }
  .priceItemPrice .big { font-size: 27px; }
  .priceItemPrice .medium { font-size: 16px; }
  .priceItemTotal { font-size: 12px; }
  /*-------------------------------- what -------------------------------- */
  .whatBg { padding: 50px 0.4rem 40px; background-image: url(../lp/what_bg01_sp.png); }
  .whatInner { max-width: inherit; }
  .whatTtl { display: block; text-align: center; margin: 0 auto 25px; padding-bottom: 10px; }
  .whatTtl:after { width: 100%; height: 10px; margin-top: 10px; background-image: url(../lp/what_bg02_sp.png); }
  .whatLead { margin-bottom: 25px; font-size: 14px; }
  .whatBox { padding: 30px 0.4rem; }
  .whatBoxTtl { margin-bottom: 10px; font-size: 15px; }
  .whatBoxImg { max-width: inherit; width: 5.9rem; margin: 0 auto 15px; }
  .whattxt01 { font-size: 14px; }
  /*-------------------------------- offer -------------------------------- */
  .offerBg { padding: 60px 0.4rem 30px; }
  .offerInner { max-width: inherit; }
  .offerTtl { margin-bottom: 30px; }
  .offerList { display: block; }
  .offerItem { width: 100%; margin-bottom: 30px; }
  .offerItemImg { margin-bottom: -20px; }
  .offerItemTxt { display: block; width: 6rem; min-height: inherit; margin: 0 auto; padding: 20px 0.4rem; border: 1px dashed #1f72b4; font-size: 13px; }
  /*-------------------------------- promise -------------------------------- */
  .promiseBg { padding: 40px 0.4rem 35px; }
  .promiseInner { max-width: inherit; }
  .promiseHead { width: 225px; height: 50px; margin: 0 auto 15px; padding-top: 12px; font-size: 14px; background-image: url(../lp/promise_bg01_sp.png); }
  .promiseTtl { margin: 0 auto 40px; font-size: 24px; border-bottom: 1px dashed #1f72b4; }
  .promiseTtl .big { font-size: 31px; }
  .promiseItem { display: block; margin-bottom: 35px; }
  .promiseItemImg { width: 100%; }
  .promiseRight { position: relative; width: 100%; padding: 20px 0.4rem 10px; background-color: #ffffff; }
  .promiseRightTtl { position: relative; display: flex; align-items: center; margin-bottom: 15px; font-size: 16px; padding-left: 0.8rem; }
  .promiseRightTtl .num { position: relative; left: inherit; top: inherit; transform: none; font-size: 37px; padding-right: 0.2rem; }
  .promiseRightTtl::before { content: ""; position: absolute; top: 50%; transform: translateY(-50%); left: -0.8rem; height: 1px; width: 1.4rem; margin: 0; border: 1px solid #1f72b4; }
  .promiseRightTxt { margin-bottom: 10px; margin-left: 30px; padding-left: 0; font-size: 13px; }
  .promiseRightTxt::before { position: absolute; top: 2px; left: -8%; width: 15px; height: 15px; }
  .promiseLowTtl { padding: 10px 0; font-size: 15px; }
  .promiseLowBody { padding: 20px 0.4rem; }
  .promiseLowLead { margin-bottom: 12px; border-bottom: 1px solid #1f72b4; font-size: 14px; }
  .promiseLowTxt { font-size: 12px; }
  /*-------------------------------- flow -------------------------------- */
  .flowBg { padding: 50px 0.4rem 50px; }
  .flowInner { max-width: inherit; }
  .flowTtl { margin-bottom: 35px; padding: 20px 0.4rem; font-size: 14px; border-top: 1px dashed #1f72b4; border-bottom: 1px dashed #1f72b4; }
  .flowTtl .blue { font-size: 18px; margin-bottom: 15px; }
  .flowTtl:after { width: 22px; height: 22px; }
  .flowLead { font-size: 16px; }
  .flowSwitch { display: block; }
  .flowSwitchHead { display: flex; flex-direction: row; justify-content: space-between; width: 100%; }
  .flowTab { position: relative; display: flex; width: 1.64rem; height: 70px; padding: 5px; margin-bottom: 0; font-size: 10px; letter-spacing: 0.1em; }
  .flowTab.isActive:after { content: ""; position: absolute; top: inherit; bottom: -0.2rem; right: 0; left: 0; margin: 0 auto; transform: none; border-width: 0.2rem 0.2rem 0 0.2rem; border-color: #1f72b4 transparent transparent transparent; }
  .flowSwitchBody { display: block; width: 100%; padding: 0.55rem 0.4rem; border: 1px solid #1f72b4; }
  .flowPanelBox { display: block; }
  .flowPanelImg { max-width: 5rem; margin: 20px auto 0; }
  .flowPanelImg.img01 { margin-bottom: 15px; }
  .flowPanelImg.img03 { margin-left: auto; max-width: 5rem; }
  .flowPanelImg.img06 { margin-top: 0; margin-bottom: 20px; }
  .flowPanelRight { max-width: inherit; width: inherit; }
  .flowPanelInner { margin-bottom: 20px; padding-bottom: 30px; border-bottom: 1px dashed #1f72b4; }
  .flowPanelInner:last-child { margin-bottom: 0; border-bottom: none; padding-bottom: 0; }
  .flowPanelCircle { display: table; min-width: 3.7rem; margin: 0 auto; margin-bottom: 15px; padding: 10px 0.6rem; border-radius: 35px; font-size: 12px; }
  .flowPanelTxt { font-size: 11px; text-align: center; }
  .flowPanelNote { font-size: 10px; padding-left: 0; text-indent: 0; letter-spacing: .16em; }
  .flowPanelGray { margin-top: 20px; padding: 20px 0.4rem; }
  .flowPanelGrayTtl { margin: 0 auto 10px; font-size: 12px; }
  .flowPanelGrayTtl:before, .flowPanelGrayTtl:after { width: 10px; height: 2px; }
  .flowPanelGrayTtl:before { left: -15px; }
  .flowPanelGrayTtl:after { right: -15px; }
  .flowPanelGrayItem { margin-bottom: 10px; padding-left: 0.7rem; }
  .flowPanelGrayIcon { width: 0.5rem; }
  .flowPanelGrayIcon.icon03 { width: 0.48rem; }
  .flowPanelGrayLead { width: 2rem; margin-bottom: 6px; font-size: 12px; padding: 3px; }
  .flowPanelGrayLead.lead02 { border: 1px solid #6e95cc; }
  .flowPanelGrayTxt { font-size: 11px; }
  .flow .swiper-wrapper { align-items: flex-start; padding-top: 80px; }
  .flow .swiper-pagination.swiper-pagination01.pc { display: none; }
  .flow .swiper-pagination.swiper-pagination01.sp { left: 0; right: 0; bottom: inherit; top: 30px; margin: 0 auto; counter-reset: number 0; }
  .flow .swiper-pagination.swiper-pagination01.sp:after { content: ""; position: absolute; width: 120px; z-index: -1; height: 1px; top: 50%; left: 0; right: 0; margin: 0 auto; background: #1f72b4; transform: translateY(-50%); }
  .flow .swiper-pagination-bullet { position: relative; border-radius: 50%; display: block; width: 42px; height: 42px; border: 1px solid #1f72b4; background-color: #ffffff; margin: 0; margin-right: 30px; opacity: 1; }
  .flow .swiper-pagination-bullet::before { content: ""; position: absolute; top: 50%; transform: translateY(-50%); right: 0; left: 0; margin: 0 auto; font-size: 18px; font-weight: bold; letter-spacing: normal; color: #1f72b4; line-height: 1; counter-increment: number 1; content: counter(number) ""; }
  .flow .swiper-pagination-bullet:last-child { margin-right: 0; }
  .flow .swiper-pagination-bullet.swiper-pagination-bullet-active { background-color: #1f72b4; opacity: 1; }
  .flow .swiper-pagination-bullet.swiper-pagination-bullet-active::before { color: #ffffff; }
  /*-------------------------------- staff -------------------------------- */
  .staffBg { padding: 45px 0.4rem 1px; }
  .staffInner { max-width: inherit; }
  .staffTtl { display: table; font-size: 18px; max-width: inherit; padding: 0 0.8rem; margin: 0 auto 45px; }
  .staffTtl::before, .staffTtl::after { width: 0.5rem; height: 2px; }
  .staffList { display: block; }
  .staffItem { width: 100%; margin-bottom: 45px; padding-bottom: 15px; }
  .staffItemImg { width: 50%; transform: translateY(-0.25rem); }
  .staffItemRight { padding: 0.36rem; }
  .staffItemInfo .job { margin-bottom: 5px; padding: 5px 0.15rem; font-size: 12px; }
  .staffItemInfo .year { margin-bottom: 5px; padding: 0 0 5px 0.23rem; font-size: 18px; }
  .staffItemInfo .address { padding-left: 0.23rem; font-size: 14px; }
  .staffItemBody { width: 6rem; padding: 15px 0.45rem; }
  .staffItemTxt { font-size: 13px; }
  /*-------------------------------- faq -------------------------------- */
  .faqBg { padding: 50px 0.4rem 20px; }
  .faqInner { max-width: inherit; }
  .faqTtl { font-size: 18px; margin-bottom: 25px; }
  .faqList { display: block; }
  .faqItem { width: 100%; margin-bottom: 30px; }
  .faqItemQ { min-height: inherit; padding: 18px 0.5rem; border: 1px solid #1f72b4; }
  .faqItemQTxt { font-size: 14px; }
  .faqItemQTxt::before { font-size: 20px; margin-right: 15px; }
  .faqItemBtn { padding: 8px 0.2rem; font-size: 13px; }
  .faqItemBtn::before, .faqItemBtn:after { right: 30px; width: 10px; height: 2px; }
  .faqItemA { padding: 18px 0.5rem; border: 1px solid #1f72b4; }
  .faqItemATxt { font-size: 11px; }
  .faqItemATxt::before { font-size: 20px; margin-right: 15px; }
  /*-------------------------------- footer -------------------------------- */
  .footerBg { padding: 0 0 0.45rem; background-image: url(../lp/footer_img01_sp.png); }
  .footerCopy { margin-top: 2.2rem; font-size: 10px; }
  /*-------------------------------- modal -------------------------------- */
  .modalVideo { width: 6.2rem; height: 3.52rem; }
  .modalVideo .closeBtn { top: -30%; right: -5%; } }
