@charset "UTF-8";
@media (min-width: 769px) { html { overflow-y: scroll; } }

body { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; line-height: 1; }

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

html, body, header, nav, main, article, section, aside, address, footer, h1, h2, h3, h4, h5, h6, div, p, pre, blockquote, ol, ul, li, dl, dt, dd, table, caption, thead, tbody, tfoot, tr, th, td, figure, figcaption, strong, em, small, cite, q, dfn, abbr, time, code, var, samp, kbd, sub, sup, i, b, mark, span, ins, del, img, audio, video, iframe, object, canvas, form, fieldset, legend, label, details, summary, menu { margin: 0; padding: 0; background: transparent; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; }

a { margin: 0; padding: 0; background: transparent; font-size: 100%; text-decoration: inherit; vertical-align: baseline; }

address { font-style: normal; }

h1, h2, h3, h4, h5, h6, th { font-weight: normal; color: inherit; }

a, a:hover, strong, em, cite, input, button, select, option, textarea { font: inherit; color: inherit; }

blockquote, q { quotes: none; }

blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }

ol, ul { list-style: none; }

th { text-align: left; }

sub, sup { font-size: 50%; }

sub { vertical-align: sub; }

sup { vertical-align: super; }

ins { background-color: #ff9; text-decoration: none; color: #000; }

del { text-decoration: line-through; }

dfn[title], abbr[title] { border-bottom: dotted 1px; cursor: help; }

mark { background-color: #ff9; font-weight: bold; font-style: italic; color: #000; }

hr { height: 1px; margin: 1em 0; padding: 0; display: block; border: none; border-top: solid 1px #ccc; }

img { vertical-align: bottom; }

input, select { vertical-align: middle; }

textarea { overflow: auto; resize: none; }

label { cursor: pointer; }

.clearfix:after, body .wrapper .main .container .about .sec01:after, body .wrapper .main .container .about .sec02:after { display: block; clear: both; content: ''; }

.caution { color: #eb6290; font-weight: bold; }

a { transition: all 300ms 0s ease; }

a:hover { opacity: 0.7; }

body { background: url(../img/line.png) left top repeat-x; margin-top: 10px; color: #000; font-family: Avenir, '游ゴシック体', YuGothic, '游ゴシック', 'Yu Gothic', 'ヒラギノ角ゴ ProN W3', 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif; }

body .wrapper { font-size: 16px; line-height: 1; }

body .wrapper h1 { display: block; overflow: hidden; width: 0; height: 0; text-indent: 100%; white-space: nowrap; }

body .wrapper .main { width: 100%; margin: 0 auto; display: block; background: #fff; }

body .wrapper .main .read { width: 100%; text-align: center; margin: 0 auto 50px; padding-top: 10px; background: url(../img/bg_read.png) center top no-repeat; background-size: 100% 650px; }

body .wrapper .main .read .mv { position: relative; width: 980px; height: 630px; margin: 0 auto 10px; padding: 0; }

body .wrapper .main .read .mv .catch { background: url(../img/bg_mv_catch_heart.png) center top no-repeat; color: #fff; font-size: 26px; font-weight: bold; line-height: 1; padding: 15px 0 25px; }

body .wrapper .main .read .mv .catch strong { font-size: 70px; padding-top: 25px; display: inline-block; }

body .wrapper .main .read .mv .catch b { color: #fff45c; }

body .wrapper .main .read .mv .catch b em { font-size: 50px; }

body .wrapper .main .read .mv .photo01 { position: absolute; left: 0; bottom: 0; width: 472px; height: 460px; }

body .wrapper .main .read .mv .photo02 { position: absolute; right: 0; bottom: 0; width: 470px; height: 460px; }

body .wrapper .main .read > p { width: 860px; margin: 0 auto; color: #000; font-size: 20px; line-height: 50px; text-align: left; }

body .wrapper .main .read > p strong { color: #eb6290; font-weight: bold; font-size: 26px; }

body .wrapper .main .container { width: 100%; background: url(../img/line.png) left top repeat-x; padding-top: 10px; }

body .wrapper .main .container .course { padding: 0 0 90px; background: #f6f6f6; position: relative; border-bottom: 1px solid #eb6290; }

body .wrapper .main .container .course:after, body .wrapper .main .container .course:before { top: 100%; left: 50%; border: solid transparent; content: " "; height: 0; width: 0; position: absolute; pointer-events: none; }

body .wrapper .main .container .course:after { border-color: rgba(246, 246, 246, 0); border-top-color: #f6f6f6; border-width: 35px; margin-left: -35px; }

body .wrapper .main .container .course:before { border-color: rgba(245, 135, 208, 0); border-top-color: #f587d0; border-width: 36px; margin-left: -36px; }

body .wrapper .main .container .course h3 { width: 100%; margin: 0 auto; padding: 137px 0 43px; position: relative; background: url(../img/h3_sec01.png) center 40px no-repeat, url(../img/h3_sec01_bg.png); font-size: 60px; text-align: center; color: #fff; font-weight: bold; }

body .wrapper .main .container .course h3:after { content: url(../img/h3_sec01_arrow.png); position: absolute; top: 100%; left: calc(50% - 36px); font-size: 0; }

body .wrapper .main .container .course .catch { position: absolute; left: 0; right: 0; top: -340px; width: 960px; height: 500px; margin: auto; text-align: right; }

body .wrapper .main .container .course .sec01, body .wrapper .main .container .course .sec02 { width: 700px; margin: 0 auto 70px; padding: 40px 80px 70px; background: #fff; border: #eb6290 10px solid; border-image: url(../img/bg_course_line.png) 10 round; }

body .wrapper .main .container .course .sec01 h4, body .wrapper .main .container .course .sec02 h4 { color: #eb6290; font-weight: bold; position: relative; width: 9em; height: 60px; margin: 0 auto; padding-left: 80px; font-size: 50px; text-align: left; line-height: 60px; }

body .wrapper .main .container .course .sec01 h4:before, body .wrapper .main .container .course .sec02 h4:before { content: url(../img/bg_ttl_heart.png); position: absolute; left: 0; top: 0; width: 65px; height: 60px; }

body .wrapper .main .container .course .sec01 h4 + p, body .wrapper .main .container .course .sec02 h4 + p { margin-bottom: 40px; padding: 15px 30px 0; font-size: 18px; line-height: 26px; color: #eb6290; font-weight: bold; text-align: center; }

body .wrapper .main .container .course .sec01 .feature, body .wrapper .main .container .course .sec02 .feature { position: relative; margin-bottom: 50px; padding: 30px 80px; background: #fffef5; border: 2px dashed #eb6290; }

body .wrapper .main .container .course .sec01 .feature h5, body .wrapper .main .container .course .sec02 .feature h5 { position: absolute; left: -50px; top: -20px; }

body .wrapper .main .container .course .sec01 .feature ul li, body .wrapper .main .container .course .sec02 .feature ul li { list-style: disc; font-size: 16px; line-height: 24px; font-weight: bold; }

body .wrapper .main .container .course .sec01 .feature ul li strong, body .wrapper .main .container .course .sec02 .feature ul li strong { font-size: 18px; color: #eb6290; }

body .wrapper .main .container .course .sec01 .feature ul li b, body .wrapper .main .container .course .sec02 .feature ul li b { font-size: 14px; }

body .wrapper .main .container .course .sec01 .feature ul li small, body .wrapper .main .container .course .sec02 .feature ul li small { font-size: 14px; font-weight: normal; }

body .wrapper .main .container .course .sec01 .feature ul li:nth-of-type(4), body .wrapper .main .container .course .sec02 .feature ul li:nth-of-type(4) { line-height: 18px; }

body .wrapper .main .container .course .sec01 .detail dl, body .wrapper .main .container .course .sec02 .detail dl { display: -webkit-flex; display: flex; -webkit-flex-flow: row wrap; flex-flow: row wrap; -webkit-justify-content: space-between; justify-content: space-between; align-items: stretch; font-weight: bold; }

body .wrapper .main .container .course .sec01 .detail dl dt, body .wrapper .main .container .course .sec02 .detail dl dt { background: #eb6290; width: 110px; margin-bottom: 30px; padding: 13px 0 9px; font-size: 18px; line-height: 1; color: #fff; text-align: center; }

body .wrapper .main .container .course .sec01 .detail dl dt:nth-of-type(3), body .wrapper .main .container .course .sec02 .detail dl dt:nth-of-type(3) { margin-bottom: 20px; }

body .wrapper .main .container .course .sec01 .detail dl dd, body .wrapper .main .container .course .sec02 .detail dl dd { width: 220px; margin-bottom: 30px; padding-left: 20px; padding: 12px 0 8px 20px; font-size: 16px; line-height: 1; }

body .wrapper .main .container .course .sec01 .detail dl dd:nth-of-type(3), body .wrapper .main .container .course .sec02 .detail dl dd:nth-of-type(3) { width: 570px; margin-bottom: 20px; }

body .wrapper .main .container .course .sec01 .detail p, body .wrapper .main .container .course .sec02 .detail p { margin-bottom: 40px; text-align: right; }

body .wrapper .main .container .course .sec01 .special, body .wrapper .main .container .course .sec02 .special { position: relative; margin-bottom: 50px; padding: 30px; background: #fff3f8; }

body .wrapper .main .container .course .sec01 .special:before, body .wrapper .main .container .course .sec02 .special:before { content: url(../img/txt_sec01_spcl.png); position: absolute; left: -10px; top: -10px; font-size: 0; }

body .wrapper .main .container .course .sec01 .special h5, body .wrapper .main .container .course .sec02 .special h5 { margin-bottom: 10px; padding-left: 30px; font-size: 22px; color: #b70044; font-weight: bold; }

body .wrapper .main .container .course .sec01 .special ul li, body .wrapper .main .container .course .sec02 .special ul li { height: 40px; padding-left: 60px; font-size: 16px; line-height: 40px; margin-bottom: 10px; }

body .wrapper .main .container .course .sec01 .special ul li strong, body .wrapper .main .container .course .sec02 .special ul li strong { font-size: 20px; font-weight: bold; background: url(../img/bg_mkr.png) left bottom -5px repeat-x; }

body .wrapper .main .container .course .sec01 .special ul li:last-child, body .wrapper .main .container .course .sec02 .special ul li:last-child { margin-bottom: 0; }

body .wrapper .main .container .course .sec01 > p, body .wrapper .main .container .course .sec02 > p { font-size: 14px; line-height: 20px; text-align: center; margin-bottom: 20px; }

body .wrapper .main .container .course .sec01 .buttonArea, body .wrapper .main .container .course .sec02 .buttonArea { position: relative; text-align: center; }

body .wrapper .main .container .course .sec01 { position: relative; margin-top: 252px; }

body .wrapper .main .container .course .sec01 .label { position: absolute; left: -70px; top: -70px; }

body .wrapper .main .container .course .sec01 .feature { width: 660px; margin-right: 40px; padding-right: 0; box-sizing: border-box; }

body .wrapper .main .container .course .sec01 .feature .comment { position: absolute; right: -75px; bottom: -8px; }

body .wrapper .main .container .course .sec01:before { content: url(../img/bg_sec01_pic.png); font-size: 0; position: absolute; left: -70px; top: -202px; }

body .wrapper .main .container .course .sec01 .buttonArea:before { content: url(../img/img_sec01_btn_pic.png); position: absolute; left: -50px; bottom: -30px; font-size: 0; z-index: 99; }

body .wrapper .main .container .course .sec02 { padding-top: 50px; }

body .wrapper .main .container .course .sec02 h4 { width: 10em; }

body .wrapper .main .container .course .movieArea { text-align: center; }

body .wrapper .main .container .course .movieArea h4 { margin-bottom: 40px; }

body .wrapper .main .container .course .movieArea .movieFrame { position: relative; width: 600px; margin: 0 auto; padding: 0 50px; height: 340px; background: url(../img/bg_movie.png) right center no-repeat, url(../img/bg_movie.png) left center no-repeat; }

body .wrapper .main .container .course .movieArea .movieFrame:before { content: url(../img/img_movie_pic.png); position: absolute; left: -100px; bottom: -20px; font-size: 0; z-index: 99; }

body .wrapper .main .container .about, body .wrapper .main .container .appli { width: 860px; margin: 90px auto 70px; font-size: 16px; }

body .wrapper .main .container .about h3, body .wrapper .main .container .appli h3 { position: relative; width: 21em; height: 70px; margin: 0 auto 50px; padding-left: 100px; color: #eb6290; font-weight: bold; font-size: 32px; text-align: left; line-height: 70px; }

body .wrapper .main .container .about h3:before, body .wrapper .main .container .appli h3:before { content: url(../img/h3_sec02_bg.png); position: absolute; left: 0; top: 0; width: 80px; height: 70px; }

body .wrapper .main .container .about .closing, body .wrapper .main .container .appli .closing { width: 860px; margin: auto; clear: both; text-align: center; }

body .wrapper .main .container .about .closing p, body .wrapper .main .container .appli .closing p { font-size: 24px; line-height: 1; font-weight: bold; margin-bottom: 30px; }

body .wrapper .main .container .about .closing p em, body .wrapper .main .container .appli .closing p em { font-size: 32px; color: #000; display: inline-block; padding: 15px 0 0; }

body .wrapper .main .container .about .closing ul, body .wrapper .main .container .appli .closing ul { display: -webkit-flex; display: flex; -webkit-flex-flow: row wrap; flex-flow: row wrap; -webkit-justify-content: space-between; justify-content: space-between; align-items: stretch; margin-top: 20px; }

body .wrapper .main .container .about { line-height: 26px; }

body .wrapper .main .container .about p { font-size: 16px; line-height: 26px; margin-bottom: 1.5em; }

body .wrapper .main .container .about em { color: #eb6290; font-weight: bold; }

body .wrapper .main .container .about a { text-decoration: underline; color: #eb6290; font-weight: bold; }

body .wrapper .main .container .about .sec01 .photo01 { float: right; padding-left: 25px; }

body .wrapper .main .container .about .sec02 { margin-top: 36px; margin-bottom: 80px; }

body .wrapper .main .container .about .sec02 .photo02 { float: left; padding-right: 50px; }

body .wrapper .main .container .appli { width: 960px; margin-top: 80px; }

body .wrapper .main .container .appli h3 { width: 25em; margin-bottom: 30px; }

body .wrapper .main .container .appli h3:before { content: url(../img/h3_sec03_bg.png); }

body .wrapper .main .container .appli .sec01 { width: 630px; margin: 0 auto 50px; padding-left: 230px; padding-bottom: 5px; background: url(../img/img_phone_big.jpg) no-repeat; }

body .wrapper .main .container .appli .sec01 > p { margin-bottom: 20px; padding-left: 130px; background: url(../img/ico_loverevo.png) no-repeat; line-height: 36px; }

body .wrapper .main .container .appli .sec01 ul { width: 600px; display: -webkit-flex; display: flex; -webkit-flex-flow: row wrap; flex-flow: row wrap; -webkit-justify-content: space-between; justify-content: space-between; align-items: stretch; }

body .wrapper .main .container .appli .sec01 ul li { width: 280px; }

body .wrapper .main .container .appli .sec01 ul li dl dd { text-align: center; }

body .wrapper .main .container .appli .sec01 ul li dl dd p { margin: 1em auto; font-weight: bold; }

body .wrapper .main .container .appli .flow { margin: 0 auto 70px; text-align: center; }

body .wrapper .main .sns { width: 460px; margin: 100px auto 0; }

body .wrapper .main .sns ul { display: -webkit-flex; display: flex; -webkit-flex-flow: row wrap; flex-flow: row wrap; -webkit-justify-content: space-between; justify-content: space-between; align-items: stretch; }

body .wrapper .footer .wrapper { margin-top: 0; padding: 100px 0 80px; background: url(../img/bg_foot_left.svg) left bottom no-repeat, url(../img/bg_foot_right.svg) right bottom no-repeat, #fff; background-size: contain, contain, 100%; text-align: center; color: #000; }

body .wrapper .footer .wrapper p { padding-bottom: 20px; }

body .wrapper .footer .wrapper .meta div { padding-bottom: 20px; }

body .wrapper .footer aside { background: url(../img/line.png) #eb6290 left top repeat-x; padding: 60px 0 50px; text-align: center; font-size: 14px; color: #fff; }
