@charset "utf-8";

/* --------------------------------------
  reset
-------------------------------------- */
    html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,abbr,address,cite,code,del,dfn,em,img,ins,kbd,q,samp,small,strong,sub,sup,var,b,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,figcaption,figure,footer,header,hgroup,menu,nav,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}
    body{line-height:1}
    article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}
    nav ul{list-style:none}
    blockquote,q{quotes:none}
    blockquote:before,blockquote:after,q:before,q:after{content:none}
    a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}
    ins{background-color:#ff9;color:#000;text-decoration:none}
    mark{background-color:#ff9;color:#000;font-style:italic;font-weight:bold}
    del{text-decoration:line-through}
    abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}
    table{border-collapse:collapse;border-spacing:0}
    hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}
    input,select{vertical-align:middle}

    li{list-style-type:none;}

/*-------------------------------------- */

*{
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
html{
    height: 100%;
    font-size: 62.5%; /*10px*/
    color: #1F1F1F;
    }
body{
    font-family: "メイリオ","ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","ＭＳ Ｐゴシック",sans-serif;
    font-size: 1.6rem;
    line-height: 1.5;
    letter-spacing: .1rem;
    -webkit-text-size-adjust: 100%;
}




/* clearfix */
.clearfix:before, .clearfix:after {
    content:"";
    display:table;
} 
.clearfix:after {
    clear:both;
}
.clearfix {
    zoom:1;
}

#main a {
    border: 1px solid #BBBBBB;
    padding: .4rem 1rem;
    text-decoration: none;
    display: block;
    float: right;
    margin-top: 1.2rem;
    font-size: 1.2rem;
    color:#1F1F1F;
}

#main a:hover {
    background: #E0E0E0;
    color:#1F1F1F;
}


/* --------------------------------------
  global navigation
-------------------------------------- */
nav li a{
    display: block;
    border-bottom:#E0E0E0 1px solid;
    font-size: 1.4rem;
    text-decoration: none;
    padding: 1.6rem 1rem;
    line-height: 1.3;
    letter-spacing: 0;
    color:#1F1F1F;
}

nav li a:hover {
    font-weight: bold;
    color:#1F1F1F;
}


#guide h1 a{
    height: 210px;
    display: block;
    text-align: center;
    overflow: hidden;
}

#guide h1 img {
    width: 88%;
    margin-top: 33px;
}

.siteName {
    background: #EEEEEE;
    border-bottom:#E0E0E0 1px solid;
    border-top:#E0E0E0 1px solid;
    text-align: center;
    font-size: 1.2rem;
    line-height: 1.1;
    padding: 1rem 0;
}

#guide .bnr a {
    text-align: center;
    border: none;
}


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

    #guide h1 {
    height: 62px;
    background: #fff;
    }
    #guide h1 img {
    height:50px;
    width: auto;
    float: left;
    margin: 6px;
    }
#guide h1 a{
    height: auto;
}
    .bnr a {
        text-align: center!important;
    }
    .meanclose{
        font-size:4rem !important;
        color: #333;
    }
}



/* --------------------------------------
  footer
-------------------------------------- */
footer {
    max-width: 960px;
    margin: 0px auto 0;
    padding: 30px 0 30px 0;
    text-align: center;
    border-top: 1px solid #E0E0E0;
    font-size: 1.2rem;
}

#smartSNSArea {
    padding-top: 30px;
    padding-bottom: 10px;
}

#smartSNSArea li {
    width: 33%;
    padding: 0 0px;
    text-align: center;
    float: left;
}

#smartSNSArea li.line {
    /* display: none; */
}

#smartSNSArea li.facebook {
    border-left: 1px solid #E0E0E0;
    border-right: 1px solid #E0E0E0;
}

@media screen and (max-width: 640px){
    footer {
    padding: 0.5rem 0;
    float: left;
    width: 100%;
    text-align: center;
    }
    
    #smartSNSArea {
    width: 100%;
    padding-top: 0px;
    float: left;
    }
    
    #smartSNSArea li {
    width: 50%;
    display: inline;
    text-align: center!important;
    height: 40px;
    }
    
    #smartSNSArea a {
    border: none;
    padding: 0;
    margin: 0;
    }
    
    #smartSNSArea li.line {
        /* background: aqua; */
    }
    #smartSNSArea li.line img {
        width: auto;
        padding-right: 30px;
        margin: 0 auto;
    }
    #smartSNSArea li.facebook {
        border: none;
    }

}

/* --------------------------------------
  common style
-------------------------------------- */
/* ---------- MV img size ---------- */
#mv{
    position: relative;
    display: block;
    width: 100%;
    min-width: 759px;
    height: 532px;
    overflow: hidden;
}
#mainBg {
    z-index: -1;
}
.fitWidth{
    width: auto;
    height: auto;
    position: absolute;
    top:0;
    left:50%;
    margin-left: -578px;
}
@media screen and (min-width: 1396px){
    #mv{
    }
    #mainBg {
        position: absolute;
        top:0;
        left: 0;
    }
    .fitWidth{
        position: static;
        width: 100%;
        height: auto;
        margin-left: 0;
    }

}

/* ---------- Frame style ---------- */
#wrap,#main,#guide,#content{
display: block;
    height: 100%!;
    min-height: 100%;
}
#wrap {
    min-width:1000px;
    }
#guide {
    position: relative;
    float: left;
    width: 240px;
    z-index: 10;
}
#main {
    float: right;
    width: 100%;
    margin: 0 0 0 -241px;
}

#content {
  text-align: center;
  min-width:759px;
}
.innerBlock{
    position: relative;
    display: block;
    width: 90%;
    padding: 0 5%;
    z-index: 1;
    text-align: center;}
    .innerBlock h2{
        margin-bottom: 5rem;
    }
    @media screen and (max-width: 640px){
        .innerBlock {
            position: relative;
        }
        .innerBlock h2{
        margin-bottom: 2rem;
        }
    }
    
    .innerBlock h2 img{
        max-width: 100%;
    }
    .innerBlock p {
        max-width: 820px;
        margin: 0 auto 1.6rem;
        text-align: left;
        font-size: 1.6rem;
    }
    
    .innerBlock div {
        max-width: 820px;
        margin: 0 auto; 
        
    }
    
@media screen and (max-width: 640px){
    #wrap,#main,#guide{
        float:none;
        width:100%;
        height: auto;
        margin:0;
        border:none;
        background:none;
    }
    #wrap { min-width: 0; overflow: hidden;}
    #guide{ height:52px;}
    #content {
        min-width:0;
        margin:0;
        text-align: left;
    }
}





h3 {
    position: relative;
    margin: 7rem auto 4rem;
    font-size: 1.8rem;
    max-width: 820px;
    font-weight: normal;
  }
  
  

  h3.one:before {
    content: "";
    display: block;
    border-top: solid 1px #E0E0E0;
    width: 100%;
    height: 1px;
    position: absolute;
    top: 50%;
    z-index: 1;
  }
  
  h3.one span {
    background: #fff;
    padding: 0 20px;
    position: relative;
    z-index: 5;
  }


@media screen and (max-width: 640px){
      h3 {
      font-weight: bold;
      margin: 5rem auto 2rem;
      }
      
      h3.none:before {
      border-top: none;
      }
  
      h3.none {
          text-align: left;
      }

      h3.one span {
          padding: 0 10px;
      }

      h3.none span {
      padding: 0;
      }
}


.col2L {
    float: left;
    width: 46%;
    text-align: left;
    font-size: 1.4rem;
}

.col2R {
    float: right;
    width: 46%;
    text-align: left;
    font-size: 1.4rem;
}


.col3 {
    float: left;
    width: 33%;
    text-align: left;
    font-size: 1.4rem;
}

@media screen and (max-width: 640px){
    .col3 {
    width: 100%;
/*
    display: table;
    background: red;
*/
    padding-bottom: 20px;
    }
    .col2R , .col2L {
        width: 100%;
    }

}

p.notes {
    font-size: 1.4rem;
}



#main .bnr {
    display: none;
}

@media screen and (max-width: 640px){
    #main .bnr {
    border-top: 1px solid #E0E0E0;
    display: table;
    width: 100%;
    }
    #main .bnr a {
    text-align: center;
    border: none;
    width: 100%;
    padding: 20px 0;
    }
    #main .bnr a img {
        width: 100%;
    }
}


/* --------------------------------------
  contents
-------------------------------------- */
/* ---------- index --------- */
#index.innerBlock{
    margin-top: -66px;
}

#index.innerBlock .oldPoster {
    width: 30%;
    float: right;
    font-size: 1.2rem;
    padding-left: 2rem;
    border-left: 1px solid #E0E0E0;
    text-align: left;
}

#index.innerBlock .oldPoster img {
    float: left;
    margin-right: 1rem;
}
#index.innerBlock .conceptArea {
    margin: 20px auto;
}

#index.innerBlock .conceptTxt {
    float: left;
    width: 62%;
}


@media screen and (max-width: 640px){
    #index.innerBlock{
    margin-top:-30px;
    }
    
    #content img {
        width: 90%;
    }
    
    #mv{
        min-width: 0;
        height: 140px;
    }
    
    #mv img {
        width: 100%;
    }
     
    .fitWidth{
        position: static;
        width:100%;
        height: auto;
        margin-left: 0;
    }
    
    #mainBg {
        position: absolute;
        top:0px;
        left: 0;
    }
    #index.innerBlock .conceptTxt ,
    #index.innerBlock .oldPoster 
    {
        width: 100%;
    }
    #index.innerBlock .oldPoster {
        padding: 2rem 0;
        border-top: 1px solid #E0E0E0;
        border-left: none;
    }
    #index.innerBlock .oldPoster img {
    width: 30%;
    }
}




/* ---------- show --------- */
#show.innerBlock{
    margin-top: -114px;
}

#show.innerBlock .col2L dl ,#show.innerBlock .col2R dl {
    margin-bottom: 2rem;
}



#show.innerBlock .col2L dt , #show.innerBlock .col2R dt {
    text-indent: -.7rem;
    margin-bottom: .3rem;
}

#show.innerBlock td {
    padding-bottom: 1rem;
}

#show.innerBlock td.item {
    width:12rem;
    padding-right: 1rem;
}

@media screen and (max-width: 640px){
    #show.innerBlock{
    margin-top: -40px;
    }
    #show.innerBlock .col2L dt , #show.innerBlock .col2R dt {
    margin-bottom: 1rem;
    font-size: 1.6rem;
    }
    #show.innerBlock h2 {
    margin-bottom: -2rem;
    }
    #show.innerBlock td {
    padding-bottom: 3rem;
}

}


/* ---------- figure --------- */
#figure.innerBlock{
    margin-top: -480px;
}

#figure.innerBlock .col3 img {
    width: 70%;
}
#figure.innerBlock .col3 dt {
    text-indent: -.7rem;
    margin-bottom: .3rem;
}

#figure.innerBlock .col3 dl {
    margin-bottom: 2rem;
}


#figure.innerBlock .mainFigure {
    margin: -50px auto -50px;
}

@media screen and (max-width: 640px){
    #figure.innerBlock .col3 img {
    width: 50%;
    }
    #figure.innerBlock .col3sp {
        text-align: center;
    }
    #figure.innerBlock{
    margin-top: -180px;
    }
    #figure.innerBlock .mainFigure {
    margin: -25px auto -50px;
    }
}


/* ---------- info --------- */

#info.innerBlock h2 {
    font-size: 2.8rem;
    padding: 60px 0;
    margin: 0;
    font-weight: normal;
}
#info.innerBlock dl {
    max-width: 820px;
    margin: 0 auto;
    padding: 30px 0;
    border-top: 1px solid #E0E0E0;
}

#info.innerBlock dt {
    font-size: 2.4rem;
    text-align: left;
    margin-bottom: 1rem;
}
.infoDetailTable th{
    width: 3.5em;
    padding-bottom: 1em;
    font-weight: normal;
    text-align: left;
}
.infoDetailTable td{
    text-align: left;
    padding-bottom: 1em;
}

@media screen and (max-width: 640px){
    #info.innerBlock h2 {
    font-size: 2rem;
    padding: 2rem 0;
    font-weight: bold;
    }
    #info.innerBlock dt{
    font-size: 1.8rem;
    font-weight: bold;
    }
}


/* ---------- chara --------- */

#chara.innerBlock .col2L dl ,#chara.innerBlock .col2R dl {
    margin-bottom: 2rem;
}

#chara.innerBlock .col2L dt , #chara.innerBlock .col2R dt {
    text-indent: -.7rem;
    margin-bottom: .3rem;
}

#chara.innerBlock td {
    padding-bottom: 1rem;
}

#chara.innerBlock td.item {
    width:12rem;
    padding-right: 1rem;
}

#chara .coco img{
    width: 40%;
    margin-bottom: 30px;
}

#mvChara {
    position: relative;
    width: 100%;
    height: 572px;
    background: url(images/mv_chara.gif) repeat-x;
    margin-bottom: -20px;
}

#mvChara h2 {
    margin: 20px 0;
}

#mvChara .voice{
    position: absolute;
    top: 200px;
    right: 50%;
    margin-right: -340px;
    z-index: 50;
}

#mvChara .mainFigure {
    height: 385px;
    overflow: hidden;
}


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

    #mvChara {
        margin: 0;
        height: 380px;
        position: relative;
        margin-bottom: -20px;
        text-align: center;
        background-size: contain;
        background-color: #B9E1F7;
        background-position: bottom;
    }
    
    #mvChara h2 {
    width: 240px;
    margin: 0px auto 0;
    padding: 0;
    }
    #mvChara h2 img {
        margin: 10px 0;
    }

    #mvChara .voice{
        display: none;
    }
    #mvChara .voice img{width: 100%;}
    

    #mvChara .mainFigure {
        height: 286px;
        overflow: hidden;
    }

    .mainFigure li img{
    width: 220px!important;
    text-align: center;
    }
    
    #chara .coco img{
    width: 80%;
    }
    
    
}

/* ---------- tw50 --------- */
#freepass.innerBlock{
    margin-top: -580px;
}
#freepass.innerBlock h2 {
    font-size: 2.8rem;
    padding: 60px 0 0;
    margin: 0;
    font-weight: normal;
}
#freepass .s_text{
    display: block;
    padding-bottom: 1.6rem;
    font-size: 1.4rem;
    text-align: center;
}
#caution p{
    display:block;
    float:right;
    width: 30em;
    font-size:1rem;
}

.stepBase{
    padding: 20px 0;
    background:#f4f4f4;
}
.stepBase h4{
    font-size: 1.8rem;
    padding: 10px 0;
    margin: 0 20px 5px;
    background: #fff;
    border-bottom: 1px solid #ccc;
}
.stepDetail{
    margin-left: 20px!important;
    margin-right: 20px!important;
    padding: 15px 0;
    background: #fff;
}
.stepDetail + .stepDetail{
    border-top: 1px dashed #ccc;
}
.step_next{
    margin: 10px auto 5px;
}

.stepDetail p{
    padding-bottom: 1em;
    margin: 0 auto;
    text-align: center;
        font-size: 1.4rem;
}
.stepDetail a{
    display: inline-block!important;
    float: none!important;
    border-radius: 5px;
}
.stepDetail .attention{
    display: block;
    margin-top: 1em;
}
.cpTable{
    font-size: 1.4rem;
    margin: 0 auto 4rem;
    max-width: 820px;
    text-align: left;
}
.cpTable th{
    width: 170px;
}
.cpTable th,
.cpTable td{
    padding-bottom:35px;
}
.cpTable a{
    padding: 0!important;
    display: inline!important;
    float: none!important;
    border: none!important;
    text-decoration: underline!important;
}
.cpTable a:hover{
    text-decoration: none!important;
    background: none!important;
}
.cpTable ol li{
    list-style-type: decimal;
    margin-left: 20px;
}
#mvPass{
    position: relative;
    display: block;
    width: 100%;
    min-width: 759px;
    height: 440px;
    padding: 120px 0 0;
    background: url(images/mv_bgFreepass.gif) repeat center;
    overflow: hidden;
}
@media screen and (max-width: 640px){
    #mvPass {
        margin: 0;
            padding: 8% 0 0;
        height: 250px;
        position: relative;
        top: 0;
        text-align: center;
        background-size: 100px auto;}
    #mvPass img{
        width:100%;
    }
    #caution p{
        float:none;
        width: auto;
    }
    #freepass.innerBlock{
        margin-top: -250px;
        padding:;}
    #freepass.innerBlock h2 {
        padding-top: 0!important;
        font-size: 2.8rem;
        font-weight: normal;}
    #freepass.innerBlock h2 img{margin-top:-90px;}
    .stepBase{
        margin-left: -5%!important;
        margin-right: -5%!important;
        padding: 5%;}
    .stepBase h4{
        display: block;
        margin: 0 0 5px;}
    .stepDetail{
        margin-right: 0!important;
        margin-left: 0!important;
        padding: 5%;}
    .step_next{
        width:16px!important;
        height: auto;
        margin: 3% auto 1%;}
    .cpTable th{
        display: block;
        width: 100%;
        font-size: 1.6rem;
        padding-bottom:0.6em;}
    .cpTable td{
        display: block;
        width: 100%;
        padding-bottom:1.5em;}

}