@charset "UTF-8";
/* -----------------------------------------CSS Information
File Name:base.css
Author:T.osaka
Style Info:ブラウザスタイルのサイト全体設定
-------------------------------------------------------------
01:初期設定
02:ヘッダー
03:フッター
04:UI
	_グローバルナビ
  _固定フッターナビ
  _フォーム
05:コンテンツ
  _見出し
  _文字
06:外部css
-----------------------------------------------------------*/
/* ----------------------------------------------------------
01:初期設定
-----------------------------------------------------------*/
html {
  font-size: 62.5%; }

* html ul li dl, * html ol li dl {
  display: inline; }

*:first-child + html ul li dl, *:first-child + html ol li dl {
  display: inline; }

body {
  position: relative;
  min-height: 100vh;
  margin: 0;
  padding: 0 0 270px 0;
  background-color: #ffffff;
  font-size: 1.4rem;
  font-family: "Helvetica Neue",Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
  color: #333333;
  letter-spacing: 0.05em;
  line-height: 140%;
  box-sizing: border-box; }
  @media screen and (min-width: 550px) {
    body {
      padding: 48px 0 210px 0;
      background: url("../img/body_pc_bg.jpg") repeat left top;
      background-size: 1130px 1199px; } }

img {
  width: 100%; }

a {
  color: #333333; }
  a img {
    border: 0; }

a:hover, a:active {
  opacity: 0.8; }

ul {
  list-style-type: none; }

.sp_only {
  display: inline-block; }
  @media screen and (min-width: 550px) {
    .sp_only {
      display: none; } }

.pc_only {
  display: none; }
  @media screen and (min-width: 550px) {
    .pc_only {
      display: inline-block; } }

/* ----------------------------------------------------------
02:ヘッダー
-----------------------------------------------------------*/
header {
  position: relative;
  clear: both;
  height: 135px;
  background: url("../img/header_bg.jpg") no-repeat left top;
  background-size: cover; }
  header img.item_logo {
    float: left;
    width: 27%;
    margin: 5px 0 0 5px; }
  header img.item_copy {
    float: left;
    width: 45%;
    margin: 28px 0 0 10px; }
  header h1 {
    z-index: 5;
    position: absolute;
    top: 65px;
    left: calc( (100% - 50%) / 2);
    width: 50%; }
  @media screen and (max-width: 320px) {
    header {
      /*　画面サイズ 320px以下まで適用　*/
      height: 125px; }
      header h1 {
        top: 60px;
        left: calc( (100% - 45%) / 2);
        width: 45%; } }
  @media screen and (min-width: 410px) {
    header {
      /*　画面サイズ 410px以上から適用　*/
      height: 145px; }
      header h1 {
        top: 65px;
        left: calc( (100% - 44%) / 2);
        width: 44%; } }
  @media screen and (min-width: 550px) {
    header {
      /*　画面サイズ 700px以上から適用　*/
      width: 770px;
      height: 270px;
      margin: 0 auto; }
      header img.item_logo {
        margin: 10px 0 0 10px; }
      header img.item_copy {
        width: 48%;
        margin: 53px 0 0 15px; }
      header h1 {
        top: 125px; } }

body.home header, body.pricelist header, body.beginner header, body.scoreup header {
  height: 85px; }
@media screen and (min-width: 550px) {
  body.home, body.pricelist, body.beginner, body.scoreup {
    /*　画面サイズ 550px以上から適用　*/ }
    body.home header, body.pricelist header, body.beginner header, body.scoreup header {
      height: 180px; } }

body.aboutus header h1 {
  top: 58px;
  left: calc( (100% - 60%) / 2);
  width: 60%; }
  @media screen and (max-width: 320px) {
    body.aboutus header h1 {
      /*　画面サイズ 320px以下まで適用　*/
      top: 56px; } }
  @media screen and (min-width: 410px) {
    body.aboutus header h1 {
      /*　画面サイズ 410px以上から適用　*/
      top: 65px;
      left: calc( (100% - 54%) / 2);
      width: 54%; } }
  @media screen and (min-width: 550px) {
    body.aboutus header h1 {
      /*　画面サイズ 550px以上から適用　*/
      top: 125px; } }

body.whatsnew header h1 {
  top: 58px;
  left: calc( (100% - 60%) / 2);
  width: 62%; }
  @media screen and (max-width: 320px) {
    body.whatsnew header h1 {
      /*　画面サイズ 320px以下まで適用　*/
      top: 56px; } }
  @media screen and (min-width: 410px) {
    body.whatsnew header h1 {
      /*　画面サイズ 410px以上から適用　*/
      top: 65px;
      left: calc( (100% - 54%) / 2);
      width: 54%; } }
  @media screen and (min-width: 550px) {
    body.whatsnew header h1 {
      /*　画面サイズ 550px以上から適用　*/
      top: 125px; } }

body.reservation_info header h1 {
  top: 73px;
  left: calc( (100% - 60%) / 2);
  width: 60%; }
  @media screen and (max-width: 320px) {
    body.reservation_info header h1 {
      /*　画面サイズ 320px以下まで適用　*/
      top: 56px; } }
  @media screen and (min-width: 410px) {
    body.reservation_info header h1 {
      /*　画面サイズ 410px以上から適用　*/
      top: 65px;
      left: calc( (100% - 54%) / 2);
      width: 54%; } }
  @media screen and (min-width: 550px) {
    body.reservation_info header h1 {
      /*　画面サイズ 550px以上から適用　*/
      top: 125px; } }

/* ----------------------------------------------------------
03:フッター
-----------------------------------------------------------*/
footer {
  position: absolute;
  bottom: 0;
  overflow: hidden;
  clear: both;
  width: 100%;
  height: 270px;
  padding-top: 50px;
  background-color: #000000; }
  footer ul.list_sns {
    clear: both;
    overflow: hidden;
    margin-left: calc( (100% - 95px) / 2); }
    footer ul.list_sns li {
      float: left;
      width: 25px; }
    footer ul.list_sns li + li {
      margin-left: 10px; }
  footer p.item_submenu {
    clear: both;
    overflow: hidden;
    text-align: center;
    padding: 10px 0; }
    footer p.item_submenu a {
      display: inline-block;
      font-size: 1.0rem;
      color: #ffffff; }
    footer p.item_submenu a + a {
      padding-left: 5px;
      border-left: solid 1px #cccccc; }
  footer p.item_copyright {
    padding: 5px 0 130px 0;
    background-color: #ffffff;
    text-align: center;
    font-size: 1.2rem; }
  @media screen and (min-width: 550px) {
    footer {
      /*　画面サイズ 550px以上から適用　*/
      left: calc( (100% - 770px) / 2);
      width: 770px;
      height: 210px; }
      footer p.item_copyright {
        padding: 15px 0　95px 0; } }

/* ----------------------------------------------------------
04:UI
-----------------------------------------------------------*/
/*グローバルナビ*/
nav {
  clear: both;
  overflow: hidden;
  /*チェックボックス等は非表示に*/
  /*アイコンのスペース*/
  /*閉じる用の薄黒カバー*/
  /*中身*/
  /*チェックが入ったらもろもろ表示*/ }
  nav #nav-drawer {
    position: relative;
    margin-left: 18px;
    margin-top: -27px; }
  nav .nav-unshown {
    display: none; }
  nav #nav-open {
    z-index: 100;
    position: fixed;
    top: 0;
    right: 10px;
    display: inline-block;
    width: 60px;
    height: auto;
    text-align: center;
    color: #ffffff; }
  nav #nav-close {
    display: none;
    /*はじめは隠しておく*/
    position: fixed;
    z-index: 99;
    top: 0;
    /*全体に広がるように*/
    left: 0;
    width: 100%;
    height: 100%;
    background: black;
    opacity: 0;
    transition: .3s ease-in-out; }
  nav #nav-content {
    overflow: auto;
    position: fixed;
    top: 0;
    right: -90%;
    z-index: 9999;
    /*最前面に*/
    width: 90%;
    /*右側に隙間を作る（閉じるカバーを表示）*/
    max-width: 330px;
    /*最大幅（調整してください）*/
    height: 100%;
    background: #333333;
    /*背景色*/
    transition: .3s ease-in-out;
    /*滑らかに表示*/
    -webkit-transform: translateX(105%);
    transform: translateX(105%);
    /*左に隠しておく*/ }
    nav #nav-content ul.menu_global li {
      display: block;
      width: 100%;
      padding: 10px;
      background: url("../img/nav_bg.svg") no-repeat left center;
      background-size: 100% auto;
      border-bottom: solid 1px #cccccc; }
      nav #nav-content ul.menu_global li a.link_basic {
        display: block;
        width: 100%;
        padding: 5px 0 5px 38px;
        background: url("../img/icon_delta.svg") no-repeat left center;
        background-size: 30px auto;
        font-size: 2.0rem;
        color: #ffffff; }
  nav #nav-input:checked ~ #nav-close {
    display: block;
    /*カバーを表示*/
    opacity: .5; }
  nav #nav-input:checked ~ #nav-content {
    -webkit-transform: translateX(0%);
    transform: translateX(0%);
    /*中身を表示（右へスライド）*/
    box-shadow: 6px 0 25px rgba(0, 0, 0, 0.15);
    z-index: 9998;
    right: 0; }
  nav .hamburger-top {
    height: 40px;
    margin-top: 5px; }
  nav .menu-hamburger-menu-container li {
    float: none;
    font-size: 15px;
    padding: 10px 15px 10px 15px;
    list-style: none;
    text-align: left;
    border-bottom: dashed 1px #fedbf1; }
  nav .menu-hamburger-menu-container li:last-child {
    border: none; }
  nav .menu-hamburger-menu-container li a {
    text-decoration: none;
    color: #000; }
  nav .menu-hamburger-menu-container a:before {
    font-family: FontAwesome;
    content: "\f07b";
    color: #00bb80;
    /*アイコン色*/
    margin-right: 5px; }
  nav .menu-hamburger-menu-container .menu-item-499 a:before,
  nav .menu-hamburger-menu-container .menu-item-500 a:before,
  nav .menu-hamburger-menu-container .menu-item-501 a:before,
  nav .menu-hamburger-menu-container .menu-item-504 a:before,
  nav .menu-hamburger-menu-container .menu-item-828 a:before {
    font-family: FontAwesome;
    content: "\f061";
    color: #00bb80;
    margin-right: 5px; }
  nav .cancel {
    display: inline-block;
    margin: 20px  20px 0 20px;
    padding: 20px 0;
    width: calc( 100% - 40px );
    background-size: 20px auto;
    border: solid 1px #cccccc;
    border-radius: 5px;
    text-align: center;
    font-size: 2.0rem;
    color: #ffffff;
    line-height: 100%; }
  nav .category {
    background-color: #fedbf1;
    padding: 15px 0;
    font-size: 23px;
    color: #ff69b4;
    font-weight: bold; }

/*nav END*/
@media screen and (min-width: 550px) {
  /*　画面サイズ 550px以上から適用　*/
  nav#s-navi {
    position: absolute;
    top: 0;
    left: calc( (100% - 770px) / 2);
    width: 770px;
    background-color: rgba(255, 255, 255, 0.8); }
    nav#s-navi div#nav-drawer {
      margin: 0; }
      nav#s-navi div#nav-drawer input#nav-input, nav#s-navi div#nav-drawer label#nav-open, nav#s-navi div#nav-drawer label#nav-close {
        display: none; }
      nav#s-navi div#nav-drawer div#nav-content {
        position: relative;
        top: 0;
        left: 0;
        right: 0;
        display: block;
        width: 770px;
        max-width: 770px;
        height: auto;
        margin: 0 auto;
        background-color: transparent;
        transition: .0s ease-in-out;
        /*滑らかに表示*/
        -webkit-transform: translateX(0%);
        transform: translateX(0%);
        /*左に隠しておく*/ }
        nav#s-navi div#nav-drawer div#nav-content ul.menu_global {
          clear: both;
          overflow: hidden;
          width: 770px; }
          nav#s-navi div#nav-drawer div#nav-content ul.menu_global li {
            float: left;
            width: 100px;
            padding: 10px 5px;
            background-image: none;
            background-color: #000000; }
            nav#s-navi div#nav-drawer div#nav-content ul.menu_global li a.link_basic {
              width: 100%;
              padding: 3px 0 4px 15px;
              background: url("../img/icon_delta.svg") no-repeat left top 7px;
              background-size: 10px auto;
              font-size: 1.2rem; }
          nav#s-navi div#nav-drawer div#nav-content ul.menu_global li:nth-child(6), nav#s-navi div#nav-drawer div#nav-content ul.menu_global li:nth-child(7) {
            width: 135px; }
        nav#s-navi div#nav-drawer div#nav-content div.hamburger-top {
          display: none; } }
/*固定フッターナビ*/
nav.f-navi {
  clear: both;
  overflow: hidden;
  z-index: 10;
  position: fixed;
  left: 0;
  bottom: 0;
  background-color: rgba(255, 255, 255, 0.9);
  padding: 5px; }
  nav.f-navi a {
    display: block;
    width: 100%; }
  nav.f-navi a + a {
    float: left;
    width: 49%;
    margin-top: 5px; }
  nav.f-navi a + a + a {
    margin-left: 2%; }
  @media screen and (min-width: 550px) {
    nav.f-navi {
      /*　画面サイズ 550px以上から適用　*/
      width: 770px;
      left: calc( (100% - 770px) / 2); }
      nav.f-navi a {
        float: left;
        width: 374px; }
      nav.f-navi a + a, nav.f-navi a + a + a {
        width: 175px;
        margin: 0 0 0 17px; } }

/*フォーム*/
/* iOSでのデフォルトスタイルをリセット */
input[type="submit"],
input[type="button"] {
  border-radius: 0;
  -webkit-box-sizing: content-box;
  -webkit-appearance: button;
  appearance: button;
  border: none;
  box-sizing: border-box; }
  input[type="submit"]::-webkit-search-decoration,
  input[type="button"]::-webkit-search-decoration {
    display: none; }
  input[type="submit"]::focus,
  input[type="button"]::focus {
    outline-offset: -2px; }

input[type=text], input[type=tel], input[type=email], input[type=number], input[type=password], textarea {
  width: 100%;
  padding: 10px;
  background-color: #ffffff;
  border: solid 1px #c8c9ca;
  border-radius: 3px;
  font-size: 1.8rem; }

span.item_validation {
  display: inline-block;
  margin: 5px 0 0 0;
  padding: 5px 0 5px 25px;
  background: url(../img/icon_exclamation.svg) no-repeat left center;
  background-size: 20px auto;
  line-height: 140%;
  font-weight: bold;
  color: #e50012; }

a.btn_detail {
  display: block;
  height: 20px; }
  a.btn_detail img {
    width: auto;
    height: 20px; }
  @media screen and (min-width: 550px) {
    a.btn_detail {
      /*　画面サイズ 550px以上から適用　*/ }
      a.btn_detail img {
        height: 30px; } }

a.btn_txt-link {
  text-decoration: underline;
  color: #e50012; }

/* ----------------------------------------------------------
05:コンテンツ
-----------------------------------------------------------*/
@media screen and (min-width: 550px) {
  /*　画面サイズ 550px以上から適用　*/
  main {
    width: 770px;
    margin: 0 auto; } }
/*見出し*/
h2.title_headline {
  position: relative;
  margin: 0 0 20px 0;
  padding: 0 0 5px 0;
  border-bottom: solid 2px #008cce; }
  h2.title_headline span.item_headline {
    padding: 5px 0 5px 38px;
    font-family: "ヒラギノ明朝 ProN W6", "HiraMinProN-W6", "HG明朝E", "ＭＳ Ｐ明朝", "MS PMincho", "MS 明朝", serif;
    font-size: 2.0rem; }
  h2.title_headline span.item_subline {
    position: absolute;
    bottom: 0;
    right: 0;
    font-size: 1.4rem;
    font-weight: normal;
    color: #9e9e9f; }
  @media screen and (min-width: 550px) {
    h2.title_headline {
      /*　画面サイズ 550px以上から適用　*/
      padding-bottom: 15px; }
      h2.title_headline span.item_headline {
        padding: 12px 0 12px 60px;
        font-size: 2.8rem; }
      h2.title_headline span.item_subline {
        font-size: 1.8rem; } }

main.whatsnew h2.title_headline span.item_headline {
  padding-left: 0; }

main.pricelist h2.title_headline span.item_headline {
  background: url("../img/contact_headline_bg.svg") no-repeat left center;
  background-size: 30px auto; }
  @media screen and (min-width: 550px) {
    main.pricelist h2.title_headline span.item_headline {
      /*　画面サイズ 550px以上から適用　*/
      background: url("../img/contact_headline_bg.svg") no-repeat left center;
      background-size: 50px auto; } }

main.access h2.title_headline span.item_headline {
  background: url("../img/access_headline_bg.svg") no-repeat left center;
  background-size: 30px auto; }
  @media screen and (min-width: 550px) {
    main.access h2.title_headline span.item_headline {
      /*　画面サイズ 550px以上から適用　*/
      background: url("../img/access_headline_bg.svg") no-repeat left center;
      background-size: 50px auto; } }

/*文字*/
.item_note {
  display: inline-block;
  padding-left: 1.0rem;
  text-indent: -1.0rem;
  font-size: 1.2rem; }

ol {
  margin: 0 0 0 20px; }

ul.list_basic {
  list-style-type: disc;
  margin: 0 0 0 20px; }

/*p {text-align: justify;}*/
/* ----------------------------------------------------------
06:外部css
-----------------------------------------------------------*/
