@charset "utf-8";

/*

Theme Name: スパルタ
Theme URI: https://www.sparta.jp
Description: スパルタサイトにて使用
Version: 202011
Author: tomocre

*/


/*******************************************************

  common

*******************************************************/

html {
  font-size: 100%;
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%; 
}

body,p,dl,dt,dd,h1,h2,h3,h4,h5,h6,li,div {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

ol,ul {
  margin: 0;
  padding: 0 0 0 1.5em;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

article,aside,footer,header,nav,section,figcaption,figure,main {
  display: block;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

a {
  background-color: transparent;
  -webkit-text-decoration-skip: objects;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  -o-box-sizing: border-box;
  -ms-box-sizing: border-box;
  box-sizing: border-box;
}

a:active,a:hover {
  outline-width: 0;
}

b,strong {
  font-weight: bolder;
}

small {
  font-size: 80%;
}

img {
  width: 100%;
  margin: 0;
  padding: 0;
  border-style: none;
  vertical-align: bottom;
}

table {
  border-spacing: 0;
  border-collapse: collapse;
}

td,th {
  padding: 5px 10px;
}

address {
  font-style: normal;
}

input:focus::-webkit-input-placeholder {
  color: transparent;
}
input:focus::-moz-placeholder {
  color: transparent;
}
input:focus::-ms-input-placeholder {
  color: transparent;
}
input:focus::placeholder {
  color: transparent;
}

/* 基礎
============================================ */
html {
  font-size: 62.5%;
  line-height: 1.6;
}

body {
  display: flex;
  flex-flow: column;
  min-height: 100vh;
  margin: 0;
  background: #F0F6FF;
  color: #000;
  font-size: 1.6rem;
  font-family: "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック体", YuGothic, "メイリオ",Meiryo, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", sans-serif;
}

a { color: #000; text-decoration: none; -webkit-transition: all 0.2s; transition: all 0.2s; }
a:visited { color: #565656; }
a:active { color: #0C95BA; }
a:hover { color: #0C95BA; }

a img {
  transition: 0.3s;
}

a:hover img {
  opacity: 0.8;
}

/* フェードインアニメーション
============================================ */
/* 1.フェードインアニメーションの指定 */
.scrollanime { opacity: 0; } /* 一瞬表示されるのを防ぐ */
.fadeInDown {
  animation-name: fadeInDown;
  animation-duration: 1s;
  animation-fill-mode: forwards;
}

@keyframes fadeInDown {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
    transform: translate(0);
  }
}

/* 2.上下の動きを指定 */
.updown { transform: translateY(-100px); }
.downup { transform: translateY(100px); }

/* 3.左右の動きを指定 */
.sect02{ overflow: hidden; } /*横スクロールバーを隠す */
.slide-right { transform: translateX(200px); }
.slide-left { transform: translateX(-200px); }

/* ヘッダ
============================================ */
/* ヘッダ（PC）*/
header #h-desktop {
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  min-height: 114px;
  padding: 0 15px;
  background: #F0F6FF;
}

header #h-desktop h1 {
  position: absolute;
  top: 0;
  left: 15px;
  z-index: 10000;
  box-shadow: 6px 10px 8px -10px rgba(0,0,0,0.2);
  background: #FFF;
  line-height: 0.8;
  text-align: center;
}

header #h-desktop h1 a {
  display: block;
  padding: 20px 15px;
}

header #h-desktop h1 img {
  display: block;
  margin: 0 auto 5px auto;
  max-width: 133px;
  height: auto;
}

header #h-desktop h1 .h1-copy {
  color: #0B3F85;
  font-size: 1.8rem;
  font-weight: 900;
  font-family: 'Noto Serif JP', serif;
}

header #h-desktop .language {
  position: absolute;
  top: 5px;
  right: 15px;
}

header #h-desktop .language ul {
  padding: 0;
  font-size: 1.8rem;
  font-family: 'Suez One', serif;
}

header #h-desktop .language ul li {
  display: inline-block;
  list-style: none;
  padding-right: 8px;
  padding-left: 8px;
  border-right: 1px solid #B3B3B3;
  line-height: 1;
}

header #h-desktop .language ul li:last-child {
  border-right: none;
}

header #h-desktop .language ul li a {
  color: #0B3D81;
}

header #h-desktop .language ul li.selected a,
header #h-desktop .language ul li a:hover {
  color: #6B6B6B;
}

/* グローバルナビ（PC）*/
header #h-desktop #navi-global {
  position: relative;
  z-index: 20;
  margin-left: 190px;
  font-size: 2.6rem;
  font-family: 'Suez One', serif;
}

header #h-desktop #navi-global ul {
  padding: 0;
}

header #h-desktop #navi-global ul li {
  display: inline-block;
  padding: 5px 15px;
}

header #h-desktop #navi-global ul li a {
  position: relative;
  display: inline-block;
  color: #0B3F85;
}

header #h-desktop #navi-global ul li a::after {
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 100%;
  height: 4px;
  background: #2F97DA;
  transform: scale(0, 1);
  transform-origin: center top;
  transition: transform .3s;
  content: '';
}

header #h-desktop #navi-global ul li a:hover::after {
  transform: scale(1, 1);
}

header #h-desktop #navi-global ul li.selected a {
  border-bottom: 4px solid #2F97DA;
}

/* 問い合わせ（PC）*/
header #h-desktop .reservation-warp {
  display: flex;
  justify-content: space-between;
  text-align: center;
}

header #h-desktop .reservation-block {
  margin: 10px 15px 0 auto;
}

header #h-desktop .reservation-block .tellnumber {
  position: relative;
  margin-bottom: 2px;
  padding-left: 18px;
  color: #0B3D81;
  font-weight: 900;
  font-size: 3rem;
  font-family: 'Calistoga', cursive;
  line-height: 1;
}

header #h-desktop .reservation-block .tellnumber::before {
  position: absolute;
  left: 0;
  bottom: 1px;
  padding-right : 5px;
  font-weight: 900;
  font-size: 2.2rem;
  font-family: 'Font Awesome 5 Free';
  content: '\f879';
  -webkit-transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  -o-transform: rotate(30deg);
  -ms-transform: rotate(30deg);
  transform: rotate(30deg);
}

header #h-desktop .reservation-block .telltext {
  font-size: 1.2rem;
}

header #h-desktop .reservation-block .telltext br {
  display: none;
}

header #h-desktop .reservation-bt {
  margin-top: 10px;
}

header #h-desktop .reservation-bt a.btn-flat01 {
  padding: 1.2rem 2.8rem;
}

header #h-desktop .reservation-bt a.btn-flat01 br {
  display: none;
}

/* ヘッダ固定 */
.fixed {
  position: fixed;
  top: 0;
  z-index: 1000;
  padding: 0;
  width: 100%;
}

/* ヘッダ（モバイル）*/
header #h-mobile {
  display: none;
}

/* フッタ
============================================ */
footer {
  margin-top: auto;
  padding: 30px;
  background: #0A408B;
  color: #FFF;
}

footer a,
footer a:visited {
  color: #FFF;
}

footer a:hover {
  color: #7AFAFF;
}

footer .footer-wrapper {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
}

footer .footer-wrapper address {
  display: flex;
  align-items: center;
  font-size: 1.4rem;
}

footer .footer-wrapper address img {
  width: 100%;
  max-width: 120px;
  height: auto;
  margin-right: 20px;
}

footer .footer-wrapper .footer-icon {
  display: flex;
  align-items: center;
  margin-bottom: 5px;
  padding: 0;
  font-size: 1.2rem;
}

footer .footer-wrapper .footer-icon li {
  margin-right: 10px;
  list-style: none;
}

footer .footer-wrapper .footer-icon li:last-child {
  margin-right: 0;
}

footer .footer-wrapper .footer-icon li img {
  width: 22px;
  height: auto;
}

footer .footer-wrapper .copyright {
  font-size: 1.2rem;
}

/* コンテンツ
============================================ */
/* ボタン */
a.btn-flat01 {
  display: inline-block;
  padding: 1rem 40px;
  overflow: hidden;
  background: #0B3D81;
  background-image: linear-gradient(-45deg, #318DBE 10px, transparent 0);
  color: #FFF;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

a.btn-flat01:hover {
  background: #318DBE;
}

a.btn-delivery {
  position: relative;
  display: inline-block;
  padding: 2rem 60px 2rem 60px;
  overflow: hidden;
  background: #54361D;
  background-image: linear-gradient(-45deg, #B99643 10px, transparent 0);
  color: #FFF;
  font-weight: 700;
  font-size: 2.4rem;
  line-height: 1.5;
  letter-spacing: 0.1em;
  text-decoration: none;
  text-align: center;
  vertical-align: middle;
  cursor: pointer;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
}

a.btn-delivery:hover {
  background: #B99643;
}

/* テキスト */
.copy-blue01 {
  color: #0B3D81;
  font-weight: 900;
  font-size: 2.2rem;
}

br.br-m {
  display: none;
}

.asterisk {
  padding-left: 1rem;
}

.asterisk::before {
  content: "※";
  margin-left: -1rem;
}

/* ページトップ */
#page-top {
  position: fixed;
  right: 10px;
  bottom: 10px;
  z-index: 10000;
  width: 45px;
  height: 45px;
  background: #2F97DA;
  opacity: 0.9;
  border-radius: 50%;
}

#page-top a{
  position: relative;
  display: block;
  width: 45px;
  height: 45px;
  text-decoration: none;
}
#page-top a::before{
  font-family: 'Font Awesome 5 Free';
  font-weight: 900;
  content: '\f0d8';
  font-size: 25px;
  color: #fff;
  position: absolute;
  width: 25px;
  height: 25px;
  top: -16px;
  bottom: 0;
  right: 0;
  left: 0;
  margin: auto;
  text-align: center;
}

/* パンくず */
.breadcrumbs {
  width: 1200px;
  margin: 0 auto 50px auto;
  font-size: 1.4rem;
}

/* ニュース
============================================ */
.contents-news .news-list a {
  display: flex;
  padding: 10px 0;
  border-bottom: 1px solid #B9D0D5;
}

.contents-news .news-list a time {
  margin-right: 3rem;
}