@charset "utf-8";

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;/*borderみたいなもの*/
    vertical-align:baseline; /*ベースラインを親要素のベースラインに揃える*/
    background:transparent; /*インラインフレームの背景を透過、IEでは白色になってしまうため*/
    box-sizing: border-box;
}

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:'';
    content:none;
}
a {
    margin:0;
    padding:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
    text-decoration: none;
    color: #333333;
}

/* change colours to suit your needs*/
ins {/*追記*/
    background-color:#ff9;
    color:#000;
    text-decoration:none;
}/*アンダーラインを消して背景に色をつける*/

del {
    text-decoration: line-through;/*打ち消し線を設定*/
}

mark {/*文章のハイライト*/
    background-color:#ff9;
    color:#000;
    font-style:italic;
    font-weight:bold;
}/*デフォは背景が黄色→背景色、イタリック、太字設定*/


abbr[title]/*略語、頭文字*/, dfn[title] /*定義部*/{
    border-bottom:1px dotted;
    cursor:help;/*オンマウスでカーソルが？になる*/
}

table {
    border-collapse:collapse;/*隣接するセルのボーダーを重ねて表示*/
    border-spacing:0;/*セルのボーダーの間隔*/
}

/* change border colour to suit your needs */
hr {/*水平の横線を引くためのタグ*/
    display:block;
    height:1px;
    border:0;  
    border-top:1px solid #cccccc;
    margin:1em 0;
    padding:0;
}
input, select {
    vertical-align:middle;/*中央揃え*/
}

/*original set*/
body {
    color: #333333;
    line-height: 1.8;
}

main{
    line-height:1.8; /*行の高さ揃える、単位は指定しない*/
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box; /*paddingの計算方法*/
}

div {
    position: relative;
    z-index: 1;
}
img{
    display: block;
    width:100%;
    max-width: 100%;
    height: auto;
}
ul,ol{
    list-style: none;
}
h1,h2,h3,h4,h5,h6{font-weight: normal;}
i{display: block;}
p{
    letter-spacing: 1px;
}
picture{display: block;}


*, ::before, ::after {
background-repeat: no-repeat;
box-sizing: initial;
}
.pc{display: block;}
.sp{display: none;}
@media screen and (max-width: 768px){
    .pc{display: none!important;}
    .sp{display: block!important;}
}

.clearfix:after {
  content: "";
  clear: both;
  display: block;}

.cont-l {
  width: 86.6666%;
  max-width: 1440px;
  margin: 0 auto;
}

.cont-m {
  width: 86.6666%;
  max-width: 1200px;
  margin: 0 auto;
}

.cont-s {
  width: 86.6666%;
  max-width: 1080px;
  margin: 0 auto;
}

.l-flex {
display: -webkit-flex;
display: -moz-flex;
display: -ms-flex;
display: -o-flex;
display: flex;
justify-content: space-between;
-webkit-flex-wrap: wrap;
-moz-flex-wrap: wrap;
-ms-flex-wrap: wrap;
-o-flex-wrap: wrap;
flex-wrap: wrap;
}

.mTop150 {margin-top: 150px!important;}
.mTop140 {margin-top: 140px!important;}
.mTop120 {margin-top: 120px!important;}
.mTop100 {margin-top: 100px!important;}
.mTop90 {margin-top: 90px!important;}
.mTop80 {margin-top: 80px!important;}
.mTop70 {margin-top: 70px!important;}
.mTop60 {margin-top: 60px!important;}
.mTop50 {margin-top: 50px!important;}
.mTop40 {margin-top: 40px!important;}
.mTop30 {margin-top: 30px!important;}
.mTop20 {margin-top: 20px!important;}
.mTop15 {margin-top: 15px!important;}
.mTop10 {margin-top: 10px!important;}
@media screen and (max-width: 1200px) {
.mTop150 {margin-top: 120px!important;}
.mTop140 {margin-top: 115px!important;}
.mTop120 {margin-top: 95px!important;}
.mTop100 {margin-top: 80px!important;}
.mTop90 {margin-top: 70px!important;}
.mTop80 {margin-top: 60px!important;}
.mTop70 {margin-top: 50px!important;}
.mTop60 {margin-top: 45px!important;}
.mTop50 {margin-top: 40px!important;}
.mTop40 {margin-top: 30px!important;}
.mTop30 {margin-top: 25px!important;}
.mTop20 {margin-top: 16px!important;}
.mTop15 {margin-top: 12px!important;}
.mTop10 {margin-top: 8px!important;}
}
@media screen and (max-width: 768px) {
.mTop150 {margin-top: 95px!important;}
.mTop140 {margin-top: 90px!important;}
.mTop120 {margin-top: 75px!important;}
.mTop100 {margin-top: 60px!important;}
.mTop90 {margin-top: 50px!important;}
.mTop80 {margin-top: 40px!important;}
.mTop70 {margin-top: 37px!important;}
.mTop60 {margin-top: 35px!important;}
.mTop50 {margin-top: 30px!important;}
.mTop40 {margin-top: 25px!important;}
.mTop30 {margin-top: 20px!important;}
.mTop20 {margin-top: 14px!important;}
.mTop15 {margin-top: 10px!important;}
.mTop10 {margin-top: 7px!important;}
}

.pTop150 {padding-top: 150px!important;}
.pTop100 {padding-top: 100px!important;}
.pTop90 {padding-top: 90px!important;}
.pTop80 {padding-top: 80px!important;}
.pTop70 {padding-top: 70px!important;}
.pTop60 {padding-top: 60px!important;}
.pTop50 {padding-top: 50px!important;}
.pTop40 {padding-top: 40px!important;}
.pTop30 {padding-top: 30px!important;}
@media screen and (max-width: 1200px) {
.pTop150 {padding-top: 120px!important;}
.pTop100 {padding-top: 80px!important;}
.pTop90 {padding-top: 70px!important;}
.pTop80 {padding-top: 65px!important;}
.pTop70 {padding-top: 55px!important;}
.pTop60 {padding-top: 50px!important;}
.pTop50 {padding-top: 40px!important;}
.pTop40 {padding-top: 30px!important;}
.pTop30 {padding-top: 25px!important;}
}
@media screen and (max-width: 768px) {
.pTop100 {padding-top: 60px!important;}
.pTop90 {padding-top: 55px!important;}
.pTop80 {padding-top: 50px!important;}
.pTop70 {padding-top: 45px!important;}
.pTop60 {padding-top: 35px!important;}
.pTop50 {padding-top: 30px!important;}
.pTop40 {padding-top: 25px!important;}
.pTop30 {padding-top: 20px!important;}
}

.pTB150 { padding-top: 150px!important; padding-bottom: 150px!important;}
.pTB130 { padding-top: 130px!important; padding-bottom: 130px!important;}
.pTB110 { padding-top: 110px!important; padding-bottom: 110px!important;}
.pTB100 { padding-top: 100px!important; padding-bottom: 100px!important;}
.pTB90 { padding-top: 90px!important; padding-bottom: 90px!important;}
.pTB80 { padding-top: 80px!important; padding-bottom: 80px!important;}
.pTB70 { padding-top: 70px!important; padding-bottom: 70px!important;}
.pTB60 { padding-top: 60px!important; padding-bottom: 60px!important;}
.pTB50 { padding-top: 50px!important; padding-bottom: 50px!important;}
.pTB40 { padding-top: 40px!important; padding-bottom: 40px!important;}
.pTB30 { padding-top: 30px!important; padding-bottom: 30px!important;}
@media screen and (max-width: 1200px) {
.pTB150 { padding-top: 120px!important; padding-bottom: 120px!important;}
.pTB130 { padding-top: 105px!important; padding-bottom: 105px!important;}
.pTB110 { padding-top: 90px!important; padding-bottom: 90px!important;}
.pTB100 { padding-top: 80px!important; padding-bottom: 80px!important;}
.pTB90 { padding-top: 70px!important; padding-bottom: 70px!important;}
.pTB80 { padding-top: 60px!important; padding-bottom: 60px!important;}
.pTB70 { padding-top: 50px!important; padding-bottom: 50px!important;}
.pTB60 { padding-top: 45px!important; padding-bottom: 45px!important;}
.pTB50 { padding-top: 40px!important; padding-bottom: 40px!important;}
.pTB40 { padding-top: 30px!important; padding-bottom: 30px!important;}
.pTB30 { padding-top: 25px!important; padding-bottom: 25px!important;}
}
@media screen and (max-width: 768px) {
.pTB150 { padding-top: 95px!important; padding-bottom: 95px!important;}
.pTB130 { padding-top: 85px!important; padding-bottom: 85px!important;}
.pTB110 { padding-top: 70px!important; padding-bottom: 70px!important;}
.pTB100 { padding-top: 60px!important; padding-bottom: 60px!important;}
.pTB90 { padding-top: 55px!important; padding-bottom: 55px!important;}
.pTB80 { padding-top: 50px!important; padding-bottom: 50px!important;}
.pTB70 { padding-top: 45px!important; padding-bottom: 45px!important;}
.pTB60 { padding-top: 35px!important; padding-bottom: 35px!important;}
.pTB50 { padding-top: 30px!important; padding-bottom: 30px!important;}
.pTB40 { padding-top: 25px!important; padding-bottom: 25px!important;}
.pTB30 { padding-top: 20px!important; padding-bottom: 20px!important;}
}



/*--------------------------------------------------------------------------
 Aimation
---------------------------------------------------------------------------*/
.fade-in {
 opacity: 0;
}
.in {
 -webkit-animation-name: fadeIn;
 animation-name: fadeIn;
 animation-duration: 1s;
 animation-fill-mode: forwards;
 animation-timing-function: ease;
}

@-webkit-keyframes fadeIn {
 from {
  opacity: 0;
 }
 to {
  opacity: 1;
 }
}

@keyframes fadeIn {
 from {
  opacity: 0;
 }
 to {
  opacity: 1;
 }
}

.fade-up {
 opacity: 0;
 transform: translate(0,30px);
 -webkit-transform: translate(0,30px);
}
/* ie11 ハック*/
@media all and (-ms-high-contrast:none){
.fade-up {
 opacity: 1;
 transform: translate(0,0);
 -webkit-transform: translate(0,0);
}
}

.up {
 -webkit-animation-name: fadeUp;
 animation-name: fadeUp;
 animation-duration: 1s;
 animation-fill-mode: forwards;
 animation-timing-function: ease;
}

@-webkit-keyframes fadeUp {
 from {
  opacity: 0;
  transform: translate(0,30px);
  -webkit-transform: translate(0,30px);
 }
 to {
  opacity: 1;
  transform: translate(0,0);
  -webkit-transform: translate(0,0);
 }
}

@keyframes fadeIn {
 from {
  opacity: 0;
 }
 to {
  opacity: 1;
 }
}

.fade-left {
 transition: all 1.2s;
  -o-transition: all 1.2s; /* opera */
  -moz-transition: all 1.2s; /* firefox */
  -webkit-transition: all 1.2s; /* chrome, safari */
  -ms-transition: all 1.2s; /* ie */
 opacity: 0;
 transform: translate(-40px,0);
 -webkit-transform: translate(-40px,0);
 transition-delay: 0.1s;
}
.left {
 opacity: 1.0;
 transform: translate(0,0);
 -webkit-transform: translate(0,0);
}
.fade-right {
 transition: all 1.2s;
  -o-transition: all 1.2s; /* opera */
  -moz-transition: all 1.2s; /* firefox */
  -webkit-transition: all 1.2s; /* chrome, safari */
  -ms-transition: all 1.2s; /* ie */
 opacity: 0;
 transform: translate(40px,0);
 -webkit-transform: translate(40px,0);
 transition-delay: 0.1s;
}
.right {
 opacity: 1.0;
 transform: translate(0,0);
 -webkit-transform: translate(0,0);
}
.mask-pht { position: relative;}
.mask-txt::after {
 content: "";
 width: 100%;
 height: 100%;
 display: block;
 position: absolute;
 top: 0;
 right: 0;
 background: #FFF;
}
.is_visible.mask-txt::after {
 background: #FFF;
 animation-name: mask-txt;
 animation-delay: 0.75s;
 animation-duration: 0.75s;
 animation-fill-mode: forwards;
 animation-timing-function: ease-out;
}
@keyframes mask-txt {
 0% {
  width: 100%;
 }
 100% {
  width: 0;
 }
}
.mask-pht {
 position: relative;
}
.mask-pht::after {
 content: "";
 width: 0;
 height: 100%;
 display: block;
 position: absolute;
 top: 0;
 left: 0;
 background: #ffe5e0;
}
.is_visible.mask-pht::after {
 animation-name: mask-pht;
 animation-duration: 1.5s;
 animation-fill-mode: forwards;
 animation-timing-function: ease;
}
@keyframes mask-pht {
 0% {
  width: 0;
  left: 0;
 }
 50% {
  width: 100%;
  left: 0;
 }
 55% {
  width: 100%;
  left: auto;
  right: 0;
 }
 100% {
  width: 0;
  left: auto;
  right: 0;
 }
}
.mask-pht { overflow: hidden; }
.mask-pht figure { line-height: 0;}
.mask-pht img { opacity: 0;}
.is_visible.mask-pht img {
 animation-name: delay;
 animation-delay: 0.75s;
 animation-duration: 1s;
 animation-fill-mode: forwards;
 animation-timing-function: ease-out;
}
@keyframes delay {
 0% {
  opacity: 0;
  transform:scaleX(1)scaleY(1);
 }
 20% {
  opacity: 0;
  transform:scaleX(1)scaleY(1);
 }
 100% {
  opacity: 1;
  transform:scaleX(1.02)scaleY(1.02);
 }
}

.zoom  {
 display: block;
 -webkit-transition: .4s ease-out;
 -moz-transition: .4s ease-out;
 transition: .4s ease-out;
}
a:hover .zoom { transform:scaleX(1.05)scaleY(1.05);}

@media screen and (max-width: 920px) {
 .fade-left,
 .fade-right {
  transition: all 1.2s;
   -o-transition: all 1.2s; /* opera */
   -moz-transition: all 1.2s; /* firefox */
   -webkit-transition: all 1.2s; /* chrome, safari */
   -ms-transition: all 1.2s; /* ie */
  opacity: 0;
  transform: translate(0,40px);
  -webkit-transform: translate(0,40px);
 }
 .left,
 .right {
  opacity: 1.0;
  transform: translate(0,0);
  -webkit-transform: translate(0,0);
 }
}




