@charset "utf-8";

/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*    サイト共通 細かい要素の装飾定義               */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */


/* レスポンシブ 表示ON/OFF */

            /* + + + + + レスポンシブ + + + + +  */
            body.rsbp-under-bp2 .hide-narrow{
              display: none;
            }
            body.rsbp-over-bp2  .hide-wide{
              display: none;
            }


/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   images                                         */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
img{
  max-width: 100%;
}




/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   Text and Heading                               */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */


/* 見出し common
--------------------------------------------------- */
.Heading{
  /*line-height: 1.75;*/
  /*margin: 2em 0;*/
  font-family: 'Noto Sans JP', sans-serif;
}
.Heading:first-child,
.Heading[class*="Type"]:first-child{
  margin-top: 0;
}





/* 見出しバリエーション
--------------------------------------------------- */

/* PageTitle :::::::::::::::::::::::::  */
.Heading.PageTitle{
  text-align: center;
}
.Heading.PageTitle .Main,
.Heading.PageTitle .Sub{
  display: block;
  
}
.Heading.PageTitle .Main{
  color: #c5af55;
  font-size: 400%;
  font-weight: bold;
  line-height: 1.25;
  margin-bottom: 0.25em;
}
.Heading.PageTitle .Sub{
  letter-spacing: 0.125em;
  font-size: 150%;
  font-weight: normal;
}

    /* 装飾付加 */
    .Heading.PageTitle{
      position: relative;
    }
    .Heading.PageTitle::before{
      content: "";
      display: block;
      height: 5em;
      background: url(../img/common/decoration/page_title_bg.png) no-repeat 50% 50%;
      background-size: contain;
      margin: 0 auto;
      width: 90%;
    }


            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .Heading.PageTitle{
                }
                body.rsbp-under-bp2 .Heading.PageTitle .Main{
                  font-size: 350%;
                }
                body.rsbp-under-bp2 .Heading.PageTitle .Sub{
                  font-size: 125%;
                }




/* Type1 （賞タイトル） :::::::::::::::::::::::::  */
.Heading.Type1{
  text-align: center;
  position: relative;
  margin: 2em 0 2em;
}
.Heading.Type1 > .Main,
.Heading.Type1 > .Sub{
  display: block;
}
.Heading.Type1 > .Main{
  color: #c5af55;
  font-size: 200%;
  font-weight: bold;
}
    /* 最優秀賞 */
    .FirstPrizeArea .Heading.Type1 > .Main{
      font-size: 300%;
    }
.Heading.Type1 > .Sub{
  font-weight: normal;
  font-size: 100%;
}
    /* 装飾付加 */
    .Heading.Type1 > .Main{
      position: relative;
      display: inline-block;
      padding: 0 0.25em;
    }
    .Heading.Type1 > .Main::before,
    .Heading.Type1 > .Main::after{
      content: "";
      display: block;
      width:  70px;
      height: 70px;
      background-repeat: no-repeat;
      background-position: 50% 50%;
      background-size: contain;
      position: absolute;
      bottom: 0%;
    }
    .Heading.Type1 > .Main::before{
      background-image: url(../img/common/decoration/h_type1_bg_left.png);
      right: 100%;
    }
    .Heading.Type1 > .Main::after{
      background-image: url(../img/common/decoration/h_type1_bg_right.png);
      left: 100%;
    }


            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .PrizeArea .Heading.Type1 > .Main{
                  font-size: 175%;
                }
                body.rsbp-under-bp2 .FirstPrizeArea .Heading.Type1 > .Main{
                  font-size: 225%;
                }
                

/* Type2（種別） :::::::::::::::::::::::::  */
.Heading.Type2{
  text-align: center;
  font-size: 125%;
  font-size: 112.5%;
  margin: 2em auto;
  width: 75%;
  background: #c5af55;
  color: #000;
  font-weight: 500;
  line-height: 2;
}
.Heading.Type2,
.Heading.Type2 > .Main{
  
}
.Heading.Type2 > .Main{
  letter-spacing: 0.125em;
}
    /* 装飾付加 */
    .Heading.Type2 > .Main{
      position: relative;
      display: block;
      padding: 0 0.25em;
    }
    .Heading.Type2 > .Main::before,
    .Heading.Type2 > .Main::after{
      content: "";
      position: absolute;
      top: 0px;
      border-top:    1.0em solid transparent;
      border-bottom: 1.0em solid transparent;
    }
    .Heading.Type2 > .Main::before{
      left: 100%;
      border-left:   1.0em solid #c5af55;
    }
    .Heading.Type2 > .Main::after{
      right: 100%;
      border-right:   1.0em solid #c5af55;
    }


            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .Heading.Type2 > .Main,
                body.rsbp-under-bp2 .Heading.Type2 > .Sub{
                }



/* Type3（受賞者） :::::::::::::::::::::::::  */
.Heading.Type3{
  padding-bottom: 1.25em;
  margin-bottom:  1.0em;
}
.Heading.Type3 > .Main,
.Heading.Type3 > .Sub{
  display: block;
}
.Heading.Type3 > .Main{
  font-size: 150%;
  font-weight: bold;
  margin-bottom: 0.375em;
}
.Heading.Type3 > .Sub{
  font-weight: normal;
  font-size: 87.5%;
}
    /* 装飾付加 */
    .Heading.Type3{
      position: relative;
    }
    .Heading.Type3::after{
      content: "";
      display: block;
      position: absolute;
      top: 100%;
      left: 10%;
      width: 80%;
      height: 1px;
      background: #fff;
    }

            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .Heading.Type3 .Main{
                  font-size: 125%;
                }
                body.rsbp-under-bp2 .Heading.Type3 .Sub{
                  font-size: 75%;
                }



/* Type4 （小分類） :::::::::::::::::::::::::  */
.Heading.Type4{
  text-align: center;
  margin: 3em 0 0.75em!important;
}
.Heading.Type4 .Main{
  display: inline-block;
}
    /* 装飾付加 */
    .Heading.Type4 .Main{
      position: relative;
      padding: 0 2em;
    }
    .Heading.Type4 .Main::before,
    .Heading.Type4 .Main::after { 
      position: absolute;
      top: 0;
      content:'';
      width: 8px;
      height: 100%;
      display: inline-block;
    }
    
    .Heading.Type4 .Main::before {
      border-left:   solid 2px;
      border-top:    solid 2px;
      border-bottom: solid 2px;
      left: 0;
    }
    
    .Heading.Type4 .Main::after {
      border-top:    solid 2px;
      border-right:  solid 2px;
      border-bottom: solid 2px;
      right: 0;
    }

            /* + + + + + レスポンシブ + + + + +  */
            
                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .Heading.Type4{
                
                }








/* DefaultText
--------------------------------------------------- */
.DefaultText{
  font-size: 112.5%;
  line-height: 2;
  letter-spacing: 0em;
}
.ContentsDivision .DefaultText{
  line-height: 2em;
}
        .DefaultText em{
        }
        .DefaultText .Sub{
          font-size: 75%;
        }


            /* + + + + + レスポンシブ + + + + +  */
            
                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .DefaultText{
                  font-size: 112.5%;
                }




/* Name
--------------------------------------------------- */
.Name{
  white-space: nowrap;
}




/* tel link
--------------------------------------------------- */
.TelLink{
}
.TelLink:hover{
}


/* sup
--------------------------------------------------- */
sup{
  font-size: x-small;
  line-height: 1.1;
}


/* 丸付き文字
--------------------------------------------------- */
.Circled{
  color: #282832;
  border: 1px solid #282832;
  background: #fff;
  border-radius: 3em;
  display: inline-block;
  width: 1.5em;
  width: calc(1.5em + 2px);
  line-height: 1.5em;
  text-align: center;
  vertical-align: middle;
}




/* リスト（汎用）
--------------------------------------------------- */

/* ※印付きリスト :  */
.AsteriskList{
  list-style: none;
  padding-left: 1em;
  line-height: 1.5;
}
    .AsteriskList > li{
      position: relative;
      margin: 1em 0;
    }

    .AsteriskList > li::before{
      content: "※";
      position: absolute;
      left: -1.25em;
      top: 0;
    }
    



/* TextOverFlowNone
--------------------------------------------------- */
.TextOverFlowNone{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* NoWrap
--------------------------------------------------- */
.NoWrap{
  white-space: nowrap;
}





/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   GoPageTop                                      */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* GoPageTop
--------------------------------------------------- */
.GoPageTop{
  display: inline-block;
  line-height: 1;
  vertical-align: bottom;
  margin-left: -3.5em;
}
.GoPageTop *{
  line-height: 1;
  vertical-align: bottom;
}
    .GoPageTop p{
      display: inline-block;
    }
    .GoPageTop p a,
    .GoPageTop p a *,
    .GoPageTop p a *::before{
      -webkit-transition: all .2s;
              transition: all .2s;
    }
    .GoPageTop p a{
      width:  8em;
      height: 8em;
      text-align: center;
      vertical-align: middle;
      display: block;
      position: relative;
      font-weight: normal;
    }
    .GoPageTop p a{
      background: #f3f3f3;
    }
    .GoPageTop p a *{
      color: #000;
    }
    .GoPageTop p a .Label{
      position: absolute;
      top: 60%;
      left: 0%;
      width: 100%;
      text-align: center;
    }
    .GoPageTop p a .Icon{
      width: 100%;
      display: block;
      text-align: center;
      position: absolute;
      bottom: 55%;
    }
    .GoPageTop p a .Icon::before{
      font-size: 225%;
      margin-bottom: -0.25em;
      border-top: 2px solid;
    }


    /* hover */
    .GoPageTop p a:hover,
    .GoPageTop p a:focus{
      background: #ddd;
    }
    .GoPageTop p a:hover *,
    .GoPageTop p a:focus *{
    }

            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より広いディスプレイ用 */
                body.rsbp-over-bp2 .GoPageTop{
                  font-size: 75%;
                  position: fixed;
                  bottom: 20px;
                  right:  20px;
                  z-index: 100;
                }

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .GoPageTop{
                  font-size: 62.5%;
                  position: absolute;
                  position: fixed;
                  bottom: 10px;
                  right:  10px;
                  z-index: 50;
                  display: none;
                }







/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   Button 等                                      */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* ボタンのバリエーション（ベースはtemlpate）
--------------------------------------------------- */

    /* デフォルト */
    .SknTplTextButton .Button {
    }
    .SknTplTextButton .Button .Icon{
      color: inherit;
    }
    .SknTplTextButton .Button:hover,
    .SknTplTextButton .Button:focus {
      color: #fff;
      background:    #f66;
      background: #e75b5b;
      border-color:  #fff;
    }





/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   link                                           */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* anchor
--------------------------------------------------- */
a{
  text-decoration: none;
  color: inherit;
      -webkit-transition: all .2s;
              transition: all .2s;
}
a:link {

}
a:visited {
}
a:active{
}
a:hover {
}



/* リンク設置 画像
--------------------------------------------------- */
a img{
  -webkit-transition: all .1s;
          transition: all .1s;
}
a:hover img,
a:focus img{
  opacity: 0.75;
}






/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   アイコン 等                                    */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* アイコンに下線が付くのを回避 */
.Icon,
.Icon::before{
  text-decoration: none!important;
}


/* icon position left  */
.icon-pos-left{
  position: absolute;
  left: 0.5em;
  right: auto;
  top: 50%;
  margin: 0;
  margin-top: -0.5em;
}
[class^="icon-"].icon-pos-left:before,
[class*=" icon-"].icon-pos-left:before {
  margin: 0;
}
/* icon position right  */
.icon-pos-right{
  position: absolute;
  left: auto;
  right: 0.5em;
  top: 50%;
  margin: 0;
  margin-top: -0.5em;
}
[class^="icon-"].icon-pos-right:before,
[class*=" icon-"].icon-pos-right:before {
  margin: 0;
}


/* icon position bottom */
.icon-pos-bottom{
  position: absolute;
  left:  50%;
  bottom: 0.25em;
  margin: 0;
  margin-left: -0.5em;
}
[class^="icon-"].icon-pos-bottom:before,
[class*=" icon-"].icon-pos-bottom:before {
}


/* icon position top */
.icon-pos-top{
  padding-top: 3em;
  display: block;
}
.icon-pos-top.FontSizeXLarge{
  font-size: 300%;
  padding-bottom: 0.125em;
  margin-bottom:  0.25em;
  border-bottom: 1px solid rgba(125,125,125,0.5);
}
[class^="icon-"].icon-pos-top:before,
[class*=" icon-"].icon-pos-top:before {
  display: block;
  text-align: center;
  margin: 0 auto 0.25em;
}







/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   ThumbnailList Setting                          */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* ThumbnailList
--------------------------------------------------- */
.ThumbnailList{
  list-style: none;
}
    .ThumbnailList .ImageItem{
      margin-bottom: 1.5em;
    }
    .ThumbnailList .TextItem{
      
    }


/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   Table Setting                                  */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* ProfileTable
--------------------------------------------------- */
.ProfileTable{
  margin: 0.5em auto;
  text-align: left;
  border-collapse: collapse;
  font-size: 87.5%;
}
    .ProfileTable th,
    .ProfileTable td{
      padding: 0.125em 10px;
      font-weight: normal;
    }
    /* tbody */
    .ProfileTable tbody{
    }
    .ProfileTable tbody th,
    .ProfileTable tbody td{
      vertical-align: top;
    }
    .ProfileTable tbody th{
      width: 3em;
      white-space: nowrap;
    }
    .ProfileTable tbody td{
      text-align: left;
    }



            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より広いディスプレイ用 */
                body.rsbp-over-bp2 .ProfileTable{
                  width: 250px;
                }

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .ProfileTable{
                  width: 100%;
                  font-size: 75%;
                }


/* RecordListTable
--------------------------------------------------- */
.RecordListTable{
  margin: 0.5em auto;
  text-align: left;
  border-collapse: collapse;
  border-top: 1px solid rgba(255,255,255,0.75);
}
    .RecordListTable th,
    .RecordListTable td{
      vertical-align: middle;
      padding: 0.5em 0;
      border-bottom: 1px solid rgba(255,255,255,0.75);
    }
    .RecordListTable th{
      white-space: nowrap;
      padding-right: 2em;
    }
    .RecordListTable td{
      font-weight: normal;
      padding-right: 2em;
      
    }

                .RecordListTable th{
                  width: 15em;
                }
                .RecordListTable td:nth-child(2){
                }
                .RecordListTable td:nth-child(3){
                  width: 10.0em;
                }
                .RecordListTable td:nth-child(4){
                  width: 10.0em;
                }


            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より広いディスプレイ用 */
                body.rsbp-over-bp2 .RecordListTable{
                  width: 80%;
                }
                body.rsbp-over-bp2 .RecordListTable th{
                  font-size: 100%;
                }
                body.rsbp-over-bp2 .RecordListTable td{
                  font-size: 87.5%;
                }

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .RecordListTable{
                  width: 600px!important;
                }
                body.rsbp-under-bp2 .RecordListTable th{
                  font-size: 100%;
                  width: 13em;
                }
                body.rsbp-under-bp2 .RecordListTable td{
                  font-size: 75%;
                  white-space: normal;
                }





/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*   Column Setting                                 */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* ColumnGroup
--------------------------------------------------- */
.ColumnGroup{
  text-align: center;
  letter-spacing: -0.5em; /* 余白を除去するためletter-spacing */
}
    /* - - column common - -  */
    .ColumnGroup > .Column{
      width: 100%;
      margin: 0 auto 2em;
      margin: 0 auto;
      display: inline-block;
      vertical-align: top;
    }
    .ColumnGroup > *{
      letter-spacing: 0; /* letter-spacing をデフォルトに戻す */
    }
    .ColumnGroup > * > .inner{
      padding: 15px;
    }
    .ColumnGroup.FixedNumber {
      white-space: nowrap;
    }
    .ColumnGroup.FixedNumber  > * > .inner{
      white-space: normal;
    }



            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より広いディスプレイ用 */
                body.rsbp-over-bp2 .ColumnGroup > .Column{
                  max-width: 450px;
                }
                body.rsbp-over-bp2 .ColumnGroup > * > .inner{
                }

                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .ColumnGroup > .Column{
                  max-width: 380px;
                }
                body.rsbp-under-bp2 .ColumnGroup > * > .inner{
                  padding: 10px;
                }
    
    /* 要素数をクラス名に持たせて自動配置 ※ulにクラス名をつけて使用  */
    /* ColumnGroup（数字）elements が横並び数                         */
    /* FixedNumber をつけた場合は数を固定。それ以外は幅に応じて変化   */
    
    /* - - two columns - - */
    body.rsbp-under-bp2              .ColumnGroup4elements >             .Column:nth-child(1n),
    body.rsbp-over-bp2               .ColumnGroup2elements >             .Column:nth-child(1n),
    body:not([class*="rsbp"])        .ColumnGroup2elements >             .Column:nth-child(1n),
    body[class*="rsbp"]              .ColumnGroup2elements.FixedNumber > .Column:nth-child(1n) {
      width: 50%;
      margin-bottom: 0;
    }


    /* - - three columns - - */
    body.rsbp-under-bp2              .ColumnGroup6elements >             .Column:nth-child(1n),
    body.rsbp-under-bp2              .ColumnGroup5elements >             .Column:nth-child(1n),
    body.rsbp-over-bp2               .ColumnGroup3elements >             .Column:nth-child(1n),
    body:not([class*="rsbp"])        .ColumnGroup3elements >             .Column:nth-child(1n),
    body[class*="rsbp"]              .ColumnGroup3elements.FixedNumber > .Column:nth-child(1n) {
      width: 33.3%;
      margin-bottom: 0;
    }

    /* - - four columns - - */
    body.rsbp-over-bp2               .ColumnGroup4elements >             .Column:nth-child(1n),
    body:not([class*="rsbp"])        .ColumnGroup4elements >             .Column:nth-child(1n),
    body[class*="rsbp"]              .ColumnGroup4elements.FixedNumber > .Column:nth-child(1n) {
      width: 25%;
      margin-bottom: 0;
    }

    /* - - five columns - - */
    body.rsbp-over-bp2               .ColumnGroup5elements >             .Column:nth-child(1n),
    body:not([class*="rsbp"])        .ColumnGroup5elements >             .Column:nth-child(1n),
    body[class*="rsbp"]              .ColumnGroup5elements.FixedNumber > .Column:nth-child(1n) {
      width: 20%;
      margin-bottom: 0;
    }

    /* - - six columns - - */
    body.rsbp-over-bp2               .ColumnGroup6elements >             .Column:nth-child(1n),
    body:not([class*="rsbp"])        .ColumnGroup6elements >             .Column:nth-child(1n),
    body[class*="rsbp"]              .ColumnGroup6elements.FixedNumber > .Column:nth-child(1n) {
      width: 16.6%;
      margin-bottom: 0;
    }





/* Scrollable 横スクロール (bp2より狭いディスプレイ用)
--------------------------------------------------- */
body .Scrollable {
  overflow: auto;
  position: relative;
}
            /* + + + + + レスポンシブ + + + + +  */

                /* bp2より広いディスプレイ用 */
                body.rsbp-over-bp2 .Scrollable {
                }
                    body.rsbp-over-bp2 .Scrollable .ScrollableIcon{
                      display: none!important;
                    }
                
                /* bp2より狭いディスプレイ用 */
                body.rsbp-under-bp2 .Scrollable {
                  white-space: nowrap;
                }
                    body.rsbp-under-bp2 .Scrollable .TextItem *{
                      white-space:  normal;
                    }
                    /* Table用の特殊処理 */
                    body.rsbp-under-bp2 .Scrollable > table {
                      width: 660px; /* ここはスクロール対象の最大幅を入れる */
                      margin-bottom: 0!important;
                    }
                    body.rsbp-under-bp2 .Scrollable th{
                      white-space: nowrap;
                    }
                    /* スクロールバー装飾 */
                    body.rsbp-under-bp2 .Scrollable::-webkit-scrollbar{
                      height: 2px;
                      margin-top: 5px;
                    }
                    body.rsbp-under-bp2 .Scrollable::-webkit-scrollbar-track{
                      background: rgba(0,0,0,0.25);
                    }
                    body.rsbp-under-bp2 .Scrollable::-webkit-scrollbar-thumb {
                      background: #03c;
                    }
                    /* アイコン */
                    body.rsbp-under-bp2 .Scrollable .ScrollableIcon{
                      position: absolute;
                      top: 40%;
                      left: 175px;
                      z-index: 10;
                      padding: 28px 25px;
                      border-radius: 100%;
                      background: rgba(255,255,255,0.95);
                      box-shadow: 0 0 20px 0 rgba(0,0,0,0.25);
                      display: inline-block;
                    }
                    body.rsbp-under-bp2  .Scrollable:hover .ScrollableIcon{
                      display: none;
                    }
                    body.rsbp-under-bp2  .Scrollable .ScrollableIcon img{
                      width: 60px;
                    }











/* ++++++++++++++++++++++++++++++++++++++++++++++++ */
/*    背景 ・ 装飾                                  */
/* ++++++++++++++++++++++++++++++++++++++++++++++++ */

/* 固定背景
--------------------------------------------------- */
.bg-fixed{
  
}

