@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@100..900&display=swap');

/* ---------------------------------------------------------------------------
//  base
--------------------------------------------------------------------------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
*::before,
*::after { box-sizing: border-box; }
html, body { width: 100%; height: 100%; }
img, iframe { border: 0; vertical-align: bottom; }
ul, ol { list-style-type: none; }
a { text-decoration: none; }
mark { font-weight: bold; color: inherit; background-color: transparent; }
em { font-style: normal; }
address { font-style: normal; }
table { border-collapse: collapse; border-spacing: 0; }
input, select { vertical-align: baseline; }

.cf::after { visibility: hidden; display: block; font-size: 0; content: " "; clear: both; height: 0; }

:root {
  --sans: 'Noto Sans JP', sans-serif;
  --serif: 'Noto Serif JP', serif;
  --text-sml2: 12px;
  --text-sml1: 14px;
  --text-main: 18px;
  --text-big: 20px;
  --text-btn: 22px;
  --text-btn2: 30px;
  --text-heading1: 34px;
  --text-heading2: 26px;
  --text-tel1: 28px;
  --text-tel2: 30px;
}

/* ---------------------------------------------------------------------------
//  all
--------------------------------------------------------------------------- */
body {
  font-family: var(--sans);
  font-weight: 400;
  font-size: var(--text-main);
  color: #000;
  line-height: 1.8;
  background: #FFF;
}
h1, h2, h3, h4, h5, h6 { font-weight: 700; line-height: 1.4; }

a { transition: .3s; color: #000; }
@media screen and (min-width: 767.8px) {
  a:hover { opacity: .7; }
}
.preload a { transition: none !important; }

.wrap { min-width: 1040px; height: 100%; margin: 0 auto; }
.inner { max-width: 1000px; height: 100%; margin: 0 auto; position: relative; padding: 0 40px; }
ul.indent li { text-indent: -1em; padding-left: 1em; }
ul.dot li::before { content: "・"; }
ol.num { counter-reset: li; }
ol.num > li { text-indent: -1.2em; padding-left: 1.2em; }
ol.num > li:before { content: counter(li) "."; counter-increment: li; padding-right: 5px; }
ol.brackets { counter-reset: li; }
ol.brackets > li { text-indent: -1.55em; padding-left: 1.55em; }
ol.brackets > li:nth-child(n+10) { text-indent: -2.1em; padding-left: 2.1em; }
ol.brackets > li:before { content: "(" counter(li) ")"; counter-increment: li; padding-right: 5px; }
hr { display: block; height: 1px; border: none; border-top: 1px solid rgba(255,255,255,0.2); margin: 1em 0; }
img { max-width: 100%; height: auto; }
img.cover { width: 100%; height: 100%; object-fit: cover; }
img.contain { width: 100%; height: 100%; object-fit: contain; }
.text-overflow { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
.sml { font-size: 80%; }
.t-center { text-align: center; }
.t-right { text-align: right; }
.pc-center { text-align: center; }

.flex { display: flex; justify-content: space-between; }
.flex.jstart { justify-content: flex-start; }
.flex.jend { justify-content: flex-end; }
.flex.jcenter { justify-content: center; }
.flex.fwrap { flex-wrap: wrap; }
.flex.fwrap.bottom > * { margin-bottom: 20px; }
.flex.istart { align-items: flex-start; }
.flex.iend { align-items: flex-end; }
.flex.icenter { align-items: center; }
.flex.half > * { width: 48%; }
.flex.half50 > * { width: 50%; }
.flex.third > * { width: 31%; }
.flex.quarter > * { width: 24%; }
.flex.reverse { flex-flow: row-reverse; }
.flex.third.fwrap::after { content: ""; width: 31%; display: block; }
.flex.quarter.fwrap::before { content: ""; width: 24%; display: block; order: 1; }
.flex.quarter.fwrap::after { content: ""; width: 24%; display: block; }

a.scale { overflow: hidden; }
a.scale img { transition: .3s; }
@media screen and (min-width: 767.8px) {
  a.scale:hover img { transform: scale(1.05); }
}


/* ---------------------------------------------------------------------------
//  header
--------------------------------------------------------------------------- */
header .copy {
  padding: 8px 0;
  background: #e1ebf9;
}
header .copy h1 {
  font-size: var(--text-sml1);
  font-weight: 400;
}
header .copy .frame {
  font-size: var(--text-sml2);
  color: #2660AC;
  border: 1px solid #2660AC;
  padding: 2px 1em;
  margin-left: 10px;
  font-weight: 700;
}
header .head {
  padding: 15px 0;
}
header .logo {
  width: 440px;
  margin: 0 auto;
}
header .menu {
  background: #2660AC;
  padding: 20px 0;
}
header .btn {
  text-align: center;
  line-height: 1.4;
  color: #fff;
  border-radius: 10px;
}
header .btn .big {
  font-size: var(--text-btn);
  font-weight: 700;
}
header .btn .small {
  font-size: var(--text-sml2);
}
header .btn.link {
  background: #F39C00;
  margin-right: 10px;
  padding: 10px 30px;
}
header .btn.tel {
  background: #4CAF69;
  padding: 10px 15px;
}

header nav li {
  position: relative;
}
header nav li {
  font-weight: 700;
  line-height: 1;
  position: relative;
}
header nav li a {
  color: #fff;
}

/* ---------------------------------------------------------------------------
//  footer
--------------------------------------------------------------------------- */
footer .bg {
  background: url(../img/foot-bg.png) center top / 120px repeat-x;
  padding: 10px 0 40px;
  margin-top: 60px;
}
footer .inu {
  width: 600px;
  margin: -90px auto 30px;
}
footer .logo {
  width: 340px;
  margin: 0 auto 30px;
}
footer .text {
  display: table;
  margin: 0 auto;
  color: #fff;
  text-align: center;
}
footer .add {
  margin-bottom: 10px;
}
footer .text a {
  font-size: var(--text-tel2);
  font-weight: 700;
  color: #fff;
}
footer .text a + p {
  font-size: var(--text-sml1);
  margin-bottom: 10px;
}

footer .sns {
  margin-top: 20px;
}
footer .sns li {
  width: 50px;
  margin: 0 10px;
}

footer .foot-menu {
  margin-top: 40px;
}
footer .foot-menu li {
  margin: 0 30px;
}

.copyright {
  font-size: var(--text-sml1);
  text-align: center;
  padding: 20px 0;
}

.gotop {
  position: fixed;
  right: 20px;
  bottom: 20px;
  width: 40px;
  height: 40px;
  background: #2660ac;
  color: #fff;
  border-radius: 60px;
  display: flex;
  justify-content: center;
  align-items: center;
}

/* ---------------------------------------------------------------------------
//  common
--------------------------------------------------------------------------- */



/* ---------------------------------------------------------------------------
//  page
--------------------------------------------------------------------------- */
.sec-common {
  padding: 80px 0;
  color: #231815;
}
.sec-common .title {
  font-size: var(--text-heading1);
  color: #534121;
  display: table;
  text-align: center;
  border-bottom: 3px solid #534121;
  margin: 0 auto 45px;
}
.sec-common .subtitle {
  font-size: var(--text-heading2);
}

.btn-common {
  display: block;
  margin: 20px auto 0;
  width: 300px;
  text-align: center;
  padding: 10px;
  border-radius: 100px;
  border: 1px solid #000;
  position: relative;
}
.btn-common::after {
  content: "❯";
  display: block;
  position: absolute;
  top: 50%;
  right: 20px;
  transform: translateY(-50%);
}

.table-common {
  width: 100%;
  border: 1px solid #c1c1c1;
}
.table-common th,
.table-common td {
  padding: 15px;
  border: 1px solid #c1c1c1;
}
.table-common th {
  background: #f1f1f1;
}
.table-schedule {
  width: 100%;
  border: 3px solid #534121;
  font-size: var(--text-big);
}
.table-schedule th,
.table-schedule td {
  padding: 15px;
  border: 1px solid #534121;
  background: #fff;
  text-align: center;
}
.table-schedule th {
  background: #F0E0CD;
}
.table-schedule td {
  color: #F29600;
  font-weight: 700;
}
.table-schedule td:first-child {
  color: #000;
  font-weight: 700;
  line-height: 1.4;
}
.table-schedule td:first-child .sml {
  font-weight: 400;
}
.table-schedule td.red {
  color: #ca0303;
}

.dl-common dt {
  width: 10em;
  float: left;
  clear: left;
  font-weight: 700;
}
.dl-common dd {
  padding: 0 0 10px 10em;
  margin-bottom: 10px;
  border-bottom: 1px dotted #999;
}

/* --------------------------------------------------------------------------- */

.contents01 {
  font-size: var(--text-big);
}

.contents01 h3 {
  font-size: var(--text-big);
  color: #534121;
  text-align: center;
  display: table;
  text-align: center;
  border-bottom: 2px solid #534121;
  margin: 60px auto 20px;
}

.contents02 {
  background: #F8ECC3;
}
.contents02 h3 {
  font-size: var(--text-heading2);
  text-align: center;
  color: #534121;
  margin-bottom: 30px;
}
.contents02 h4 {
  font-size: var(--text-main);
  color: #534121;
  margin-bottom: 10px;
}
.contents02 .list {
  display: table;
  text-align: center;
  margin: 0 auto;
}
.contents02 .list li {
  font-size: var(--text-big);
  display: inline-block;
  border: 1px solid #231815;
  padding: 2px 10px;
  margin: 0 6px 10px;
  background: #fff;
}
.contents02 .text {
  font-size: var(--text-big);
  text-align: center;
  font-weight: 700;
  margin-top: 10px;
}
.contents02 .payment .flex > div {
  height: 70px;
  padding: 5px;
  background: #fff;
  margin-right: 10px;
}
.contents02 .payment .flex img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.contents02 table + p {
  text-align: center;
}

.reservation-btn {
  display: table;
  margin: 60px auto 0;
  text-align: center;
  line-height: 1.4;
  color: #fff;
  border-radius: 10px;
  background: #F39C00;
  padding: 20px 60px;
}
.reservation-btn .big {
  font-size: var(--text-btn2);
  font-weight: 700;
}
.reservation-btn .small {
  font-size: var(--text-sml1);
}

.contents03 {
  background: #F5F1EB;
}
.contents03 .frame {
  background: #e3d9c8;
  padding: 30px;
  margin-bottom: 40px;
}
.contents03 h3 {
  font-size: var(--text-big);
  text-align: center;
  color: #534121;
  margin-bottom: 30px;
}

.contents03 .flex:not(.no-bottom) .item {
  margin-bottom: 40px;
}
.contents03 p {
  text-align: center;
  font-size: var(--text-sml1);
}

.contents04 .photo {
  width: 35%;
}
.contents04 .map {
  width: 60%;
}
.contents04 .frame {
  display: table;
  padding: 2px 10px;
  font-size: var(--text-big);
  border: 2px solid #2660AC;
  color: #2660AC;
  margin-top: 15px;
}

.contents05 {
  background: #e1ebf9;
}
.contents05 .news {
  background: #fff;
  display: table;
  padding: 50px;
  margin: 0 auto;
}
.contents05 .news .date {
  font-weight: 700;
  border-bottom: 1px solid #c3c3c3;
  margin-bottom: 5px;
}




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

a.trigger,
.sp-only,
.sp-only-inline { display: none; }
br.pc { display: block; }
br.sp { display: none; }
a[href^="tel:"] { pointer-events: none; cursor: default; }

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

@media screen and (max-width: 767.8px) {

:root {
  --text-sml2: 10px;
  --text-sml1: 12px;
  --text-main: 14px;
  --text-big: 16px;
  --text-btn: 18px;
  --text-btn2: 20px;
  --text-heading1: 26px;
  --text-heading2: 22px;
  --text-tel1: 20px;
  --text-tel2: 24px;
}

html > * { -webkit-tap-highlight-color: rgba(0,0,0,0); }
html { overflow-y: visible; }
body { min-width: 100%; overflow-x: hidden; }
body.fixed { position: fixed; width: 100%; height: 100%; }

.sp-only { display: block; }
.sp-only-inline { display: inline; }
.pc-only { display: none; }
br.pc { display: none; }
br.sp { display: block; }
a[href^="tel:"] { pointer-events: auto; cursor: pointer; }

.wrap { min-width: 380px; margin: 0 auto; }
.inner { width: 100%; padding-left: 20px; padding-right: 20px; }

.flex:not(.alw) { flex-flow: column nowrap; }
.flex.icenter:not(.alw) { align-items: stretch; }
.flex.half:not(.alw) > * { width: 100%; }
.flex.half50:not(.alw) > * { width: 100%; }
.flex.third:not(.alw) > * { width: 100%; }
.flex.quarter:not(.alw) > * { width: 100%; }
.flex.reverse:not(.alw) { flex-flow: column nowrap; }
/*
.flex:not(.alw) > * { margin-bottom: 20px; }
.flex:not(.alw) > *:last-child { margin-bottom: 0; }
*/
.flex.sp-half > * { width: 49%; }

.pc-center { text-align: left; }

.table-wrapper { overflow: auto; white-space: nowrap; }
.table-wrapper table { width: auto; }

/* --------------------------------------------------------------------------- */

header .copy .inner { padding: 0 10px; }
header .logo { width: 240px; margin: 0 auto; }
header .btns { display: none; }
header nav li { font-size: 12px; }

/* --------------------------------------------------------------------------- */

footer .bg { margin-top: 20px; }
footer .inu { width: 300px; margin: -30px auto 30px; }
footer .logo { width: 240px; margin: 0 auto 20px; }

.gotop { right: 10px; bottom: 10px; }

/* --------------------------------------------------------------------------- */

.sec-common { padding: 40px 0; }
.sec-common .title { margin-bottom: 25px; }

.table-schedule { font-size: 14px; }
.table-schedule th,
.table-schedule td { padding: 3px; }

/* --------------------------------------------------------------------------- */

.contents01 h3 { margin-bottom: 10px; }

.contents02 h3 { margin-bottom: 15px; }
.contents02 h4 { margin-bottom: 5px; }

.contents02 .payment > div { margin-bottom: 20px; }
.contents02 .payment .flex > div { height: 50px; margin-right: 8px; }
.contents02 table + p { font-size: 12px; }

.contents03 .frame { padding: 20px; }
.contents03 .flex:not(.no-bottom) .item { margin-bottom: 10px; }
.contents03 .item { margin-bottom: 10px; }

.contents04 .photo { width: 100%; }
.contents04 .map { width: 100%; margin-bottom: 20px; }

.contents05 .news { padding: 20px; }


.reservation-btn { 
  margin: 20px auto 0;
  padding: 10px 30px;
}

/* --------------------------------------------------------------------------- */

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


}/* @ */


