
/*
* cmn_layout.css
*
*/

body {
  font-family: 'Noto Serif JP', "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  -webkit-text-size-adjust: 100%;
  background: #fff;
  font-size: 14px;
  color: #000000;
  text-align: center;
  line-height:240%;
  word-wrap: break-word;
  letter-spacing: 0.1em;
}

@media all and (-ms-high-contrast:none) {
  body {
    font-family: 'Noto Serif JP', "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  }
}

h2 {
  font-family: 'Libre Baskerville', serif;
  letter-spacing: 0.1em;
  margin: 0 auto;
  font-size: 30px;
}

h3 {
  margin: 15px auto 0 auto;
  line-height: 100%;
}

#wrapper,
#contents {
  position: relative;
  width: 100%;
  margin:0 auto;
  padding:0;
}

a{
  color: #000000;
  text-decoration: none;
}


@keyframes anime_zoom {
  0% {
    transform: scale(1.0);
  }
  100% {
    transform: scale(1.1);
  }
}

/*===============================================
●画面の横幅が813px以上(タブレット・PC)
===============================================*/
@media screen and (min-width: 813px) {

  #wrapper{
    min-width: 1080px;
  }

  /* !共通
  ---------------------------------------------------------- */
  .pcNone{
    display:none !important;
  }

  a:hover{
    opacity: 0.8;
  }

  .list-flex{
    display:-webkit-box !important;
    display:-moz-box !important;
    display:-ms-box !important;
    display:-webkit-flexbox !important;
    display:-moz-flexbox !important;
    display:-ms-flexbox !important;
    display:-webkit-flex !important;
    display:-moz-flex !important;
    display:-ms-flex !important;
    display:flex !important;
    -webkit-box-lines:multiple !important;
    -moz-box-lines:multiple !important;
    -webkit-flex-wrap:wrap !important;
    -moz-flex-wrap:wrap !important;
    -ms-flex-wrap:wrap !important;
    flex-wrap:wrap !important;
  }


  /* !header ヘッダー
  ---------------------------------------------------------- */
  #header {
    width: 100%;
    height: 250px;
    margin: 0 auto;
    padding: 0;
    text-align: center;
    background-color: #fff;
  }

  header {
    position: relative;
    width: 100%;
    min-width: 1080px;
    margin: 0 auto;
    padding: 60px 0 0 0;
  }

  header > div {
    width: 200px;
    margin: 0 auto;
  }

  header > div a {
    display: block;
    width: 180px;
  }

  header > div a img {
    width: 180px;
  }

  /* メニュー */
  header > ul {
    display: inline-block;
    margin: 35px auto 0 auto;
  }

  header > ul > li {
    display: inline-block;
    height: 50px;
    margin: 0 20px;
  }

  header > ul > li > a {
    font-family: 'Libre Baskerville', serif;
    display: inline-block;
    height: 50px;
    padding: 10px 0 0 0;
    font-weight: bold;
  }


  /* !固定ヘッダー
  ---------------------------------------------------------- */
  #header-fix {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    min-width: 975px;
    height: 84px;
    background-color: #fff;
    z-index: 99999;
  }

  #header-fix > div {
    position: absolute;
    top: 20px;
    left: 40px;
    width: 120px;
  }

  #header-fix > div a {
    display: block;
    width: 120px;
  }

  #header-fix > div a img {
    width: 120px;
  }

  #header-fix > ul {
    display: inline-block;
    margin: 15px auto 0 auto;
  }

  #header-fix > ul > li {
    display: inline-block;
    height: 50px;
    margin: 0 20px;
  }

  #header-fix > ul > li > a {
    font-family: 'Libre Baskerville', serif;
    display: inline-block;
    height: 50px;
    padding: 10px 0 0 0;
    font-weight: bold;
  }


  /* メイン画像
  ---------------------------------------------------------- */
  #mainImage {
    position: relative;
    width: 100%;
  }

  .top-slider li[aria-hidden="false"] {
    animation: anime_zoom 4s linear;
  }

  .top-slider li[aria-hidden="true"] {
    transform: scale(1.1);
  }

  .top-slider img {
    width: 100%;
  }




  #mainImage > img {
    position: absolute;
    width: 282px;
    bottom: 100px;
    right: 120px;
    z-index: 9999;
  }

  #mainImage > a {
    position: absolute;
    width: 69px;
    bottom: 35px;
    right: 0;
    left: 0;
    margin: 0 auto;
    z-index: 9999;
  }


  /* コンテンツ部分
  ---------------------------------------------------------- */
  #contents{
    width:100%;
    min-width: 1080px;
  }


  /* コンセプト
  ---------------------------------------------------------- */
  #concept {
    width: 100%;
    height: 674px;
    margin: 0 auto;
    padding: 110px 0 0 0;
    background: url(../images/concept.jpg) center center no-repeat;
    background-size: cover;
  }

  #concept h2 {
    color: #fff;
  }

  #concept h3 {
    color: #fff;
  }

  #concept > p:nth-of-type(1) {
    margin: 35px auto 0 auto;
    font-size: 32px;
    color: #fff;
    line-height: 150%;
  }

  #concept hr {
    margin: 35px auto 0 auto;
    width: 60px;
    border-top: 1px solid #d50505;
  }

  #concept > p:nth-of-type(2) {
    margin: 30px auto 0 auto;
    color: #fff;
  }


  /* サービス
  ---------------------------------------------------------- */
  #service {
    position: relative;
    width: 100%;
    margin: 120px 0 0 0;
  }

  #service p.title {
    font-size: 32px;
  }

  #service hr {
    margin: 35px auto 0 auto;
    width: 60px;
    border-top: 1px solid #d50505;
  }

  #service p.txt01 {
    margin: 30px auto 0 auto;
    text-align: left;
  }

  .service01 {
    width: 100%;
    margin: 80px auto 0 auto;
  }

  .service01 > div:nth-of-type(1) {
    float: left;
    width: 45%;
  }

  .service01 > div:nth-of-type(1) > img {
    width: 100%;
  }

  .service01 > div:nth-of-type(2) {
    float: right;
    width: 55%;
  }

  .service01 > div:nth-of-type(2) > div {
    width: 91%;
    max-width: 630px;
    margin: 0 0 0 9%;
    padding: 110px 0 0 0;
  }

  .service01 > div:nth-of-type(2) > div > img {
    width: 100%;
    margin: 70px auto 0 auto;
  }


  .service02 {
    width: 100%;
    margin: 120px auto 0 auto;
  }

  .service02 > div:nth-of-type(1) {
    float: right;
    width: 60%;
  }

  .service02 > div:nth-of-type(1) > img {
    width: 100%;
  }

  .service02 > div:nth-of-type(2) {
    float: left;
    width: 40%;
  }

  .service02 > div:nth-of-type(2) > div {
    float: right;
    width: 91%;
    max-width: 315px;
    margin: 0 9% 0 0;
    padding: 110px 0 0 0;
  }


  .service03 {
    width: 100%;
    max-width: 1150px;
    margin: 120px auto 0 auto;
  }

  .service03 > div:nth-of-type(1) {
    float: left;
    width: 450px;
  }

  .service03 > div:nth-of-type(1) > img {
    width: 100%;
  }

  .service03 > div:nth-of-type(2) {
    float: right;
    width: 520px;
  }

  .service03 > div:nth-of-type(2) > img {
    width: 520px;
  }

  .service03 > div:nth-of-type(2) > p {
    margin: 50px 0 0 0;
    text-align: left;
  }


  .service04 {
    width: 100%;
    max-width: 1030px;
    margin: 105px auto 0 auto;
  }

  .service04 > table:nth-of-type(1) {
    float: left;
    width: 505px;
  }

  .service04 > table:nth-of-type(2) {
    float: right;
    width: 460px;
  }

  .service04 > table th {
    width: 160px;
    padding: 15px 0 15px 20px;
    font-size: 18px;
    border-bottom: #dedede 1px solid;
  }

  .service04 > table td {
    padding: 15px 0 15px 0;
    text-align: left;
    font-size: 18px;
    border-bottom: #dedede 1px solid;
  }


  /* ギャラリー
  ---------------------------------------------------------- */
  #gallery {
    width: 100%;
    margin: 100px auto 0 auto;
  }

  .gallery-slider {
    width: 100%;
  }

  .gallery-slider li img {
    width: 100%;
  }

  #gallery .slide-arrow {
    top: 45%;
    cursor: pointer;
    margin: auto;
    position: absolute;
    z-index: 10;
    width: 50px !important;
  }

  #gallery .prev-arrow {
    left: 30px;
  }

  #gallery .next-arrow {
    right: 30px;
  }


  /* スケジュール
  ---------------------------------------------------------- */
  #schedule {
    width: 100%;
    margin: 120px auto 0 auto;
  }

  #schedule p.title {
    margin: 60px auto 0 auto;
    font-size: 32px;
  }

  #schedule img.bus {
    width: 60px;
    margin: 30px auto 0 auto;
  }

  #schedule img.house {
    width: 58px;
    margin: 30px auto 0 auto;
  }

  #schedule p.txt01 {
    margin: 30px auto 0 auto;
  }

  #schedule div.time-table {
    width: 1030px;
    margin: 50px auto 40px auto;
  }

  #schedule div.time-table > div {
    width: 270px;
    margin: 0 110px 0 0;
  }

  #schedule div.time-table > div:nth-of-type(3) {
    margin: 0;
  }

  #schedule div.time-table > div > table {
    width: 100%;
    margin: 0;
    font-size: 18px;
  }

  #schedule div.time-table > div > table th {
    position: relative;
    width: 130px;
    margin: 0;
    padding: 4px 0 60px 60px;
    text-align: left;
    background: url(../images/schedule-line.png) top left 12px repeat-y;
    background-size: 6px;
    line-height: 120%;
    vertical-align: top;
  }

  #schedule div.time-table > div > table th.last {
    background-image: none;
  }

  #schedule div.time-table > div > table th img {
    position: absolute;
    width: 30px;
    top: 0;
    left: 0;
  }

  #schedule div.time-table > div > table td {
    padding: 4px 0 0 0;
    text-align: left;
    vertical-align: top;
    line-height: 100%;
  }


  .sugoshikata {
    width: 94%;
    max-width: 1240px;
    margin: 50px auto 0 auto;
  }

  .sugoshikata-slider {
    width: 100%;
  }

  .sugoshikata-slider li img {
    display: block;
    width: 100%;
  }

  .sugoshikata-slider li p:nth-of-type(1) {
    margin: 40px auto 30px auto;
    font-size: 32px;
  }


  /* アクセス
  ---------------------------------------------------------- */
  #access {
    width: 100%;
    height: 600px;
    margin: 150px auto 0;
  }

  #access iframe {
    width: 100% !important;
    height: 600px !important;
    border: none !important;
  }


  /* フッター
  ----------------------------------------------------------*/
  footer {
    width: 100%;
    margin: 0 auto;
    padding: 0 0 110px 0;
  }

  footer > div:nth-of-type(1) {
    width: 100%;
    height: 450px;
    padding: 120px 0 0 0;
    margin: 0 auto;
    background-color: #333333;
  }

  footer > div:nth-of-type(1) img {
    width: 185px;
    margin: 0 auto 50px auto;
  }


  footer > div:nth-of-type(1) p {
    color: #fff;
    letter-spacing: 0.2em;
  }


  footer > div:nth-of-type(2) {
    display: inline-block;
    margin: 50px auto 0 auto;
  }

  footer > div:nth-of-type(2) > ul {
    display: inline-block;
    margin: 0 auto;
  }

  footer > div:nth-of-type(2) > ul > li {
    display: inline-block;
    margin: 0 15px;
  }

  footer > div:nth-of-type(2) > ul > li > a {
    font-family: 'Libre Baskerville', serif;
    display: inline-block;
    font-size: 16px;
  }

  footer > div:nth-of-type(2) > img {
    display: block;
    width: 247px;
    margin: 45px auto 0 auto;
  }

  footer > div:nth-of-type(2) small {
    margin: 50px auto 0 auto;
    display: block;
    font-size: 12px;
    color: #bdbdbd;
  }


  /* ページトップへ
  ----------------------------------------------------------*/
  #pageTop {
    position:fixed;
    display:none;
    bottom: 40px;
    right: 40px;
    width: 40px;
    z-index: 99999;
  }

}


/*===============================================
●画面の横幅が812px以下(スマホのみ)
===============================================*/
@media screen and (max-width: 812px) {

  body {
    line-height:180%;
  }

  #wrapper {
    width:100%;
    height:100%;
    padding: 70px 0 0 0;
    display:block;
    position:relative;
    padding-top: constant(safe-area-inset-top);
    padding-right: constant(safe-area-inset-right);
    padding-bottom: constant(safe-area-inset-bottom);
    padding-left: constant(safe-area-inset-left);
  }

  /* !共通
  ---------------------------------------------------------- */
  h2 {
    font-size: 24px;
  }

  h3 {
    font-size: 11px;
  }

  .spNone{
    display:none !important;
  }

  .sp-list-flex{
    display:-webkit-box !important;
    display:-moz-box !important;
    display:-ms-box !important;
    display:-webkit-flexbox !important;
    display:-moz-flexbox !important;
    display:-ms-flexbox !important;
    display:-webkit-flex !important;
    display:-moz-flex !important;
    display:-ms-flex !important;
    display:flex !important;
    -webkit-box-lines:multiple !important;
    -moz-box-lines:multiple !important;
    -webkit-flex-wrap:wrap !important;
    -moz-flex-wrap:wrap !important;
    -ms-flex-wrap:wrap !important;
    flex-wrap:wrap !important;
  }

  /*------------------------------------
  clearfix
  --------------------------------------*/
  .clearfix-sp {
    zoom:1;
    overflow:hidden;
  }
  .clearfix-sp:after {
    content: " ";
    display: block;
    visibility: hidden;
    clear: both;
    height: 0;
    line-height: 0;
  }


  /* !header ヘッダー
  ---------------------------------------------------------- */
  header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 70px;
    background-color: #fff;
    z-index: 99998;
  }

  header > div {
    position: absolute;
    top: 18px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100px;
  }

  header > div a {
    display: block;
    width: 100px;
  }

  header > div a img {
    width: 100px;
  }

  header > img.sp-menu {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 50px;
  }


  /* #menu メニュー
  ---------------------------------------------------------- */
  #menu-sp {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width:100%;
    height: 100%;
    padding: 60px 0 0 0;
    z-index:99999;
    background-color: #333333;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }

  #menu-sp > img {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 50px;
  }

  #menu-sp > ul {
    width: 100%;
    height: 100%;
    padding: 0 0 200px 0;
    overflow-y: auto;
  }

  #menu-sp > ul > li {
    width: 100%;
    margin: 0 auto;
    text-align: center;
  }

  #menu-sp > ul > li > a {
    font-family: 'Libre Baskerville', serif;
    display: block;
    padding: 14px 0;
    font-size: 16px;
    color: #fff;
    line-height: 100%;
  }

  #menu-sp > ul > li.tel {
    margin: 30px auto 0 auto;
  }

  #menu-sp > ul > li.tel > a {
    padding: 0;
    font-size: 27px;
  }

  #menu-sp > ul > li.tel > a > img {
    display: inline-block;
    width: 15px;
    margin: 3px 8px 0 0;
    vertical-align: top;
  }

  #menu-sp > ul > li.open {
    margin: 5px auto 0;
    font-size: 14px;
    color: #fff;
  }


  /* メイン画像
  ---------------------------------------------------------- */
  #mainImage {
    position: relative;
    width: 100%;
  }

  .top-slider li[aria-hidden="false"] {
    animation: anime_zoom 4s linear;
  }

  .top-slider li[aria-hidden="true"] {
    transform: scale(1.1);
  }

  .top-slider img {
    width: 100%;
  }

  #mainImage > img {
    position: absolute;
    width: 95%;
    max-width: 275px;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    z-index: 9999;
  }

  #mainImage > a {
    position: absolute;
    width: 60px;
    bottom: 20px;
    right: 0;
    left: 0;
    margin: 0 auto;
    z-index: 9999;
  }

  /* コンテンツ部分
  ---------------------------------------------------------- */
  #contents{
    width:100%;
  }


  /* コンセプト
  ---------------------------------------------------------- */
  #concept {
    width: 100%;
    margin: 0 auto;
    padding: 45px 0 55px 0;
    background: url(../images/concept_sp.jpg) center center no-repeat;
    background-size: cover;
  }

  #concept h2 {
    color: #fff;
  }

  #concept h3 {
    color: #fff;
  }

  #concept > p:nth-of-type(1) {
    margin: 25px auto 0 auto;
    font-size: 21px;
    color: #fff;
    line-height: 150%;
  }

  #concept hr {
    margin: 20px auto 0 auto;
    width: 50px;
    border-top: 1px solid #d50505;
  }

  #concept > p:nth-of-type(2) {
    width: 94%;
    margin: 20px auto 0 auto;
    color: #fff;
  }


  /* サービス
  ---------------------------------------------------------- */
  #service {
    position: relative;
    width: 100%;
    margin: 60px 0 0 0;
  }

  #service p.title {
    font-size: 21px;
  }

  #service hr {
    margin: 20px auto 0 auto;
    width: 50px;
    border-top: 1px solid #d50505;
  }

  #service p.txt01 {
    margin: 15px auto 0 auto;
    text-align: left;
  }

  .service01 {
    width: 100%;
    margin: 35px auto 0 auto;
  }

  .service01 > div:nth-of-type(1) {
    width: 94%;
    margin: 0 auto;
  }

  .service01 > div:nth-of-type(1) > img {
    width: 100%;
  }

  .service01 > div:nth-of-type(2) {
    width: 94%;
    margin: 40px auto 0 auto;
  }

  .service01 > div:nth-of-type(2) > div {
    width: 100%;
    margin: 0 auto;
  }

  .service01 > div:nth-of-type(2) > div > img {
    width: 100%;
    margin: 30px auto 0 auto;
  }


  .service02 {
    width: 100%;
    margin: 60px auto 0 auto;
  }

  .service02 > div:nth-of-type(1) {
    width: 100%;
  }

  .service02 > div:nth-of-type(1) > img {
    width: 100%;
  }

  .service02 > div:nth-of-type(2) {
    width: 94%;
    margin: 35px auto 0 auto;
  }

  .service02 > div:nth-of-type(2) > div {
    width: 100%;
  }


  .service03 {
    width: 94%;
    margin: 30px auto 0 auto;
  }

  .service03 > div:nth-of-type(1) {
    float: left;
    width: 55%;
  }

  .service03 > div:nth-of-type(1) > img {
    width: 100%;
  }

  .service03 > div:nth-of-type(2) {
    width: 100%;
    margin: 0 auto;
  }

  .service03 > div:nth-of-type(2) > img {
    float: right;
    width: 60%;
    margin: 30px auto 0 auto;
  }

  .service03 > div:nth-of-type(2) > p {
    width: 100%;
    margin: 30px auto 0 auto;
    text-align: left;
  }


  .service04 {
    width: 94%;
    margin: 40px auto 0 auto;
  }

  .service04 > table {
    width: 100%;
    margin: 0 auto;
  }

  .service04 > table th {
    width: 100px;
    padding: 15px 0 15px 10px;
    font-size: 16px;
    border-bottom: #dedede 1px solid;
  }

  .service04 > table td {
    padding: 15px 0 15px 0;
    text-align: left;
    font-size: 16px;
    border-bottom: #dedede 1px solid;
  }


  /* ギャラリー
  ---------------------------------------------------------- */
  #gallery {
    width: 100%;
    margin: 60px auto 0 auto;
  }

  .gallery-slider {
    width: 100%;
  }

  .gallery-slider li img {
    width: 100%;
  }

  #gallery .slide-arrow {
    top: 45%;
    cursor: pointer;
    margin: auto;
    position: absolute;
    z-index: 10;
    width: 23px !important;
  }

  #gallery .prev-arrow {
    left: 10px;
  }

  #gallery .next-arrow {
    right: 10px;
  }


  /* スケジュール
  ---------------------------------------------------------- */
  #schedule {
    width: 94%;
    margin: 60px auto 0 auto;
  }

  #schedule p.title {
    margin: 35px auto 0 auto;
    font-size: 21px;
  }

  #schedule img.bus {
    width: 45px;
    margin: 15px auto 0 auto;
  }

  #schedule img.house {
    width: 40px;
    margin: 15px auto 0 auto;
  }

  #schedule p.txt01 {
    margin: 15px auto 0 auto;
  }

  #schedule div.time-table {
    width: 90%;
    max-width: 280px;
    margin: 30px auto 40px auto;
  }

  #schedule div.time-table > div {
    width: 100%;
    margin: 0 auto;
  }

  #schedule div.time-table > div:nth-of-type(2),
  #schedule div.time-table > div:nth-of-type(3) {
    margin: 20px auto 0 auto;
  }

  #schedule div.time-table > div > table {
    margin: 0;
    font-size: 16px;
  }

  #schedule div.time-table > div > table th {
    position: relative;
    width: 110px;
    margin: 0;
    padding: 0 0 30px 40px;
    text-align: left;
    background: url(../images/schedule-line.png) top left 9px repeat-y;
    background-size: 5px;
    line-height: 120%;
    vertical-align: top;
  }

  #schedule div.time-table > div > table th.last {
    background-image: none;
  }

  #schedule div.time-table > div > table th img {
    position: absolute;
    width: 23px;
    top: 0;
    left: 0;
  }

  #schedule div.time-table > div > table td {
    padding: 0;
    text-align: left;
    vertical-align: top;
    line-height: 100%;
  }


  .sugoshikata {
    width: 100%;
    margin: 35px auto 0 auto;
  }

  .sugoshikata-slider {
    width: 100%;
  }

  .sugoshikata-slider li img {
    display: block;
    width: 100%;
  }

  .sugoshikata-slider li p:nth-of-type(1) {
    margin: 15px auto 10px auto;
    font-size: 18px;
  }

  .sugoshikata-slider li p:nth-of-type(2) {
    text-align: left;
  }



  /* アクセス
  ---------------------------------------------------------- */
  #access {
    width: 100%;
    height: 300px;
    margin: 100px auto 0;
  }

  #access iframe {
    width: 100% !important;
    height: 300px !important;
    border: none !important;
  }


  /* !footer フッター
  ----------------------------------------------------------*/
  footer {
    width: 100%;
    margin: 0 auto;
    padding: 0 0 35px 0;
  }

  footer > div:nth-of-type(1) {
    width: 100%;
    padding: 60px 0;
    margin: 0 auto;
    background-color: #333333;
  }

  footer > div:nth-of-type(1) img {
    width: 150px;
    margin: 0 auto 30px auto;
  }

  footer > div:nth-of-type(1) p {
    color: #fff;
    letter-spacing: 0.15em;
  }

  footer > div:nth-of-type(1) a {
    color: #fff;
    letter-spacing: 0.15em;
  }


  footer > div:nth-of-type(2) {
    display: inline-block;
    margin: 25px auto 0 auto;
  }

  footer > div:nth-of-type(2) > ul {
    margin: 0 auto;
  }

  footer > div:nth-of-type(2) > ul > li {
    float: left;
    width: 30%;
    margin: 0 1%;
  }

  footer > div:nth-of-type(2) > ul > li > a {
    font-family: 'Libre Baskerville', serif;
    display: inline-block;
    font-size: 12px;
  }

  footer > div:nth-of-type(2) > img {
    display: block;
    width: 210px;
    margin: 30px auto 0 auto;
  }

  footer > div:nth-of-type(2) small {
    margin: 35px auto 0 auto;
    display: block;
    font-size: 11px;
    color: #bdbdbd;
  }


  /* page-top
  ---------------------------------------------------------- */
  #pageTop {
    position:fixed;
    display:none;
    bottom:20px;
    right:20px;
    width: 40px;
    z-index:100;
  }


}


