@charset "UTF-8";
@font-face {
  font-family: 'MyHonoka';
  src: url("../fonts/font_1_honokamin.eot");
  /* IE9 Compat Modes */
  src: url("../fonts/font_1_honokamin.eot?#iefix") format("embedded-opentype"), url("../fonts/font_1_honokamin.woff") format("woff"), url("../fonts/font_1_honokamin.ttf") format("truetype");
  /* Safari, Android, iOS */ }

/* 
4.5vw		16px		1rem
5vw			18px		1.1rem(1vw = 3.6px)
6vw			21px		1.3rem
9vw			32px		2rem
*/
html {
  font-size: 100%;
  /* 16px */
  line-height: 1em; }
  @media (min-width: 600px) {
    html {
      font-size: 14px; } }

body {
  font-family: Helvetica, "游ゴシック", "Yu Gothic", sans-serif; }

/*
以降、フォントサイズの指定はremで行う
*/
.clearfix:after {
  content: " ";
  display: block;
  visibility: hidden;
  height: 0.1px;
  font-size: 0.1em;
  line-height: 0;
  clear: both; }

img {
  display: block;
  width: 100%;
  vertical-align: bottom; }

@media (min-width: 600px) {
  a:hover img,
  a:hover {
    opacity: 0.55;
    filter: alpha(opacity=55);
    -ms-filter: "alpha( opacity=55 )";
    border: 0; } }

a {
  text-decoration: none;
  border-bottom: 1px dashed #0000ff;
  color: #0000ff; }

.none {
  display: none !important; }

.view {
  display: block !important; }

/* 
（主に）ブロック単位で使用するモジュール

[共通のルール]
・marginは上下：0（改行で対応する）

 */
/* ボタンスタイル **************************************************** */
.button {
  margin: 0 auto;
  width: 95%;
  display: block;
  padding: 0.8em 0 0.7em 0;
  cursor: pointer;
  border-radius: 5px;
  color: #000;
  border: 1px solid #000;
  background-color: #fff;
  font-size: 1.1rem;
  text-align: center;
  text-decoration: none; }

.button:hover {
  border: 1px solid #666;
  color: #666; }

.button.half,
input[type="submit"].half {
  width: 50%; }

.button.small {
  width: 50%;
  font-size: 1rem;
  padding: 0.5em 0 0.4em 0;
  background-size: 1vw auto; }
  @media (min-width: 600px) {
    .button.small {
      font-size: 1.1rem;
      padding: 0.8em 0 0.7em 0; } }

.button.close,
.button.back,
.button.follow,
.button.up,
.button.down {
  background-size: 5vw auto;
  background-position: 5% center;
  background-repeat: no-repeat; }
  @media (min-width: 600px) {
    .button.close,
    .button.back,
    .button.follow,
    .button.up,
    .button.down {
      background-size: 1.1rem auto;
      background-position: 2.5% center; } }

.button.close.small,
.button.back.small,
.button.follow.small,
.button.up.small,
.button.down.small {
  background-size: 0.9rem auto; }
  @media (min-width: 600px) {
    .button.close.small,
    .button.back.small,
    .button.follow.small,
    .button.up.small,
    .button.down.small {
      background-size: 1.1rem auto; } }

.button.close {
  background-image: url(../images/icon_close.svgz); }

.button.back {
  background-image: url(../images/link_arrow_back.svgz); }

.button.follow {
  background-image: url(../images/link_arrow_follow.svgz); }

.button.up {
  background-image: url(../images/link_arrow_up.svgz); }

.button.down {
  background-image: url(../images/link_arrow_down.svgz); }

.button.icon.up.down {
  background-image: url(../images/link_arrow_up.svgz); }

.marge_button .button:nth-child(1) {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px; }

.marge_button .button:nth-last-child(1) {
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px; }

.marge_button .button {
  border-radius: 0;
  margin: -1px auto 0 auto; }

/* ブロック要素の並列配置用 ***************** */
@media (min-width: 600px) {
  .column2 > * {
    width: 48% !important; }
  .column2 > *:nth-child(odd) {
    clear: both;
    float: left; }
  .column2 > *:nth-child(even) {
    float: right; }
  .column3 > * {
    width: 32% !important; }
  .column3 > *:nth-child(3n+1) {
    clear: both;
    float: left; }
  .column3 > *:nth-child(3n+2) {
    margin-left: 2%;
    float: left; }
  .column3 > *:nth-child(3n+3) {
    float: right; }
  .column4 > * {
    width: 24% !important; }
  .column4 > *:nth-child(4n+1) {
    clear: both;
    float: left; }
  .column4 > *:nth-child(4n+2),
  .column4 > *:nth-child(4n+3) {
    margin-left: 1.33%;
    float: left; }
  .column4 > *:nth-child(4n+4) {
    float: right; } }

/* サムネイル ************************** */
.thum a {
  display: block;
  float: left;
  width: 33%;
  padding-top: 33%;
  overflow: hidden;
  border: none;
  position: relative;
  margin: 0.2% 0.15%; }
  @media (min-width: 600px) {
    .thum a {
      width: 19.7%;
      padding-top: 19.7%; } }

.thum img {
  position: absolute;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  width: 160%;
  height: auto; }

ul.list {
  width: 90%;
  margin: 0 auto;
  padding: 0;
  border-bottom: 1px dotted #666;
  list-style: none; }

ul.list li {
  width: 100%;
  border-top: 1px dotted #666;
  padding: 0.8em 0.5em; }

.list.anchor a {
  display: block;
  width: 100%;
  font-size: 20px;
  color: #282828;
  border: none; }

.list_qa {
  width: 90%;
  margin: 0 auto 2em auto;
  border-top: 1px solid #d8be7a;
  list-style: none;
  line-height: 135%; }

.text_q {
  display: block;
  width: 100%;
  border-bottom: 1px solid #d8be7a;
  padding: 0.5em 0.3em; }

.text_a {
  width: 98%;
  margin: 0.4em auto;
  padding: 0.6em;
  background-color: #ebe8d7; }

.icon_q {
  width: auto;
  height: 2.4em;
  float: left;
  margin-right: 0.5em;
  margin-bottom: 0.5em; }

.icon_a {
  width: auto;
  height: 2.4em;
  float: left;
  margin-right: 0.2em; }

/* 画像スタイル ************************ */
.img_frame {
  display: block;
  width: 90%;
  margin: 0 auto;
  padding: 2%;
  border: 1px solid #dedede; }
  @media (min-width: 600px) {
    .img_frame {
      padding: 1.5%; } }

/* セパレーター ************************* */
.sep1 {
  display: block;
  width: 100%;
  margin: 2rem auto; }

.sep1 .pigeon {
  display: block;
  width: 20%;
  margin: 0 auto; }

.sep2 {
  display: block;
  width: 100%;
  border: 0; }

.sep2.gold {
  border-top: 8px solid #938152; }

.short {
  display: block;
  width: 20%;
  border: 0;
  border-top: 1px solid #938152;
  margin: 1.5em auto; }

/* Googleマップ埋め込み ================================== */
.googlemap-wrap {
  position: relative;
  padding-top: 100%;
  height: 0;
  overflow: hidden; }

.googlemap-wrap iframe, .googlemap object, .googlemap embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/* YOUTUBE埋め込み ======================================= */
.movie-wrap {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden; }

.movie-wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%; }

/* SNSボタン **************************** */
.sns {
  text-align: center;
  margin: 2rem auto; }

.sns img {
  display: inline-block;
  width: 15%;
  margin: 0 2%; }
  @media (min-width: 600px) {
    .sns img {
      width: 8%;
      margin: 0 1%; } }

.sns a {
  border: none; }

/* toTOPボタン ****************************************** */
.totop {
  position: fixed;
  bottom: 6rem;
  right: 0.8rem;
  display: block;
  width: 3rem;
  height: 3rem;
  font-size: 1rem;
  font-weight: bold;
  color: #fff;
  text-align: center;
  border: none;
  border-radius: 1.5rem;
  padding-top: 0.95rem;
  background-color: rgba(0, 0, 0, 0.3); }
  @media (min-width: 600px) {
    .totop {
      bottom: 120px;
      right: 15px;
      width: 50px;
      height: 50px;
      font-size: 30px;
      border-radius: 25px;
      padding-top: 14px; } }

/* メインナビゲーション ************************************** */
/* ナビゲーション部分(menu.php) ************************ */
.main_navi {
  width: 100%;
  position: fixed;
  bottom: 0;
  left: 0;
  background-color: #fff;
  color: #fff;
  z-index: 9999; }

.main_navi a {
  border: none; }

/* メニューバー部分 */
.main_navi .bar {
  position: relative; }

.main_navi .bar.top {
  height: 12vw;
  background-color: #e8ead5; }
  @media (min-width: 600px) {
    .main_navi .bar.top {
      height: 3rem; } }

.main_navi .bar.bottom {
  height: 12vw;
  background-color: #f6f3ec; }
  @media (min-width: 600px) {
    .main_navi .bar.bottom {
      height: 3rem; } }

/* メニューボタン部分 */
.main_navi .menu_button {
  position: absolute;
  top: 0.8em;
  border: 1px solid #ff0000;
  cursor: pointer; }

.main_navi .menu_button.left {
  left: 1.5%; }

.main_navi .menu_button.right {
  right: 1.5%; }

/* 中央のメニューボタン */
.menu_button_center {
  display: block;
  position: absolute;
  bottom: 2vw;
  left: 50vw;
  width: 20vw;
  margin-left: -10vw;
  border: 1px solid #ff0000;
  cursor: pointer;
  text-align: center; }
  @media (min-width: 600px) {
    .menu_button_center {
      width: 100px;
      margin-left: -50px; } }

/* メニューリスト部分 ************************ */
.menu_box {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: rgba(255, 255, 255, 0.85); }

.list_menu {
  width: 100%;
  border-bottom: 1px solid #ccc;
  background-color: #fff;
  padding-bottom: 1px;
  position: fixed;
  bottom: 22.1vw;
  left: 0; }
  @media (min-width: 600px) {
    .list_menu {
      bottom: 6em; } }

.list_menu a {
  display: block;
  width: 100%;
  font-size: 5.2vw;
  padding: -0.7em 0;
  text-decoration: none;
  border: none;
  color: #666; }
  @media (min-width: 600px) {
    .list_menu a {
      font-size: 1.2rem; } }

.list_menu li {
  display: block;
  width: 50%;
  text-align: center;
  float: left;
  margin-bottom: -1px;
  font-size: 5.2vw;
  padding: 0.7em 0;
  cursor: pointer;
  border-bottom: 1px solid #fff;
  border-top: 1px solid #ccc;
  color: #666; }
  @media (min-width: 600px) {
    .list_menu li {
      font-size: 1.2rem; } }

.list_menu > li:nth-of-type(odd) {
  border-right: 1px solid #ccc; }

.list_menu li.marge {
  border-right: none;
  width: 100%; }

.list_menu li.selected {
  background-color: #999;
  color: #333;
  border-top: 1px dashed #ccc;
  font-weight: bold; }

.list_menu li.marge.selected {
  border-top: 1px solid #ccc; }

.list_menu .sub {
  display: none; }

.list_menu .sub li {
  width: 100%;
  border-top: 1px dashed #ccc;
  border-bottom: 1px dashed #ccc;
  background-color: #fff; }

.list_menu .sub li:nth-of-type(1) {
  border-top: 1px solid #ccc; }

.list_menu .sub li:last-of-type {
  border-bottom: 1px solid #ccc; }

/* メインコンテンツ ====================================== */
.contents {
  margin: 0 auto; }
  @media (min-width: 600px) {
    .contents {
      width: 95%; } }
  @media (min-width: 960px) {
    .contents {
      width: 95%; } }

.inner {
  width: 100%;
  margin: 0 auto; }
  @media (min-width: 600px) {
    .inner {
      width: 95%; } }
  @media (min-width: 960px) {
    .inner {
      width: 95%; } }

h1 {
  text-align: center;
  margin: 1em 0; }

.to_admin {
  text-align: right;
  margin-top: 1em; }
  @media (max-width: 599px) {
    .to_admin {
      width: 95%;
      margin-left: auto;
      margin-right: auto; } }

nav form {
  text-align: center;
  padding-bottom: 0; }
  @media (max-width: 599px) {
    nav form {
      padding-bottom: 1em; } }

nav .prev {
  float: left; }

nav .next {
  float: right; }

@media (max-width: 599px) {
  nav .clearfix {
    width: 95%;
    margin: 0 auto; } }

.cal {
  width: 100%;
  margin: 10px auto;
  border-collapse: collapse;
  border-top: 1px solid #ccc;
  border-left: 1px solid #ccc; }
  .cal th {
    border-bottom: 1px solid #ccc;
    border-right: 1px solid #ccc;
    width: 12.5%;
    background-color: #eee;
    padding: 0.3em 0; }
  .cal td {
    border-bottom: 1px solid #ccc;
    border-right: 1px solid #ccc;
    vertical-align: top;
    width: 13.2%; }
    .cal td .date {
      display: block;
      width: 100%;
      padding: 0.3em 0;
      text-align: center;
      border-bottom: 1px solid #ccc;
      font-weight: bold; }
      .cal td .date br {
        display: none; }
        @media (max-width: 599px) {
          .cal td .date br {
            display: inline; } }
    .cal td .date.prev_month,
    .cal td .date.next_month {
      color: #999; }
    .cal td .sat {
      background-color: #c9fef1; }
    .cal td .sun {
      background-color: #fecdbf; }
    .cal td .hol {
      color: #ff0000; }
    .cal td > div {
      min-height: 8em;
      padding: 0.3em;
      width: 100%;
      border-bottom: 1px dashed #ccc; }
      @media (max-width: 599px) {
        .cal td > div {
          min-height: 16em; } }
      .cal td > div > span {
        display: inline-block;
        padding: 0.2em;
        margin: 0 0 0.3em 0;
        background-color: #ccc;
        font-size: 12px;
        text-align: center;
        font-weight: bold; }
  .cal td.base_name {
    vertical-align: top;
    width: 7% !important; }
    .cal td.base_name .date {
      background: none; }
    .cal td.base_name .base_name {
      display: block;
      min-height: 8em;
      padding-top: 3.5em;
      text-align: center;
      background-color: #ccc; }
      @media (max-width: 599px) {
        .cal td.base_name .base_name {
          min-height: 16em;
          padding-top: 7em; } }
  .cal td.today {
    background-color: #fff8bc; }

.detail .cal {
  width: 90%;
  max-width: 600px; }
  .detail .cal td {
    width: 80%; }
    .detail .cal td > div {
      min-height: 14em; }
      @media (max-width: 599px) {
        .detail .cal td > div {
          min-height: 20em; } }
      .detail .cal td > div > span {
        font-size: 14px; }
        @media (min-width: 600px) {
          .detail .cal td > div > span {
            width: 49%;
            margin-bottom: 0.3em; } }
        @media (max-width: 599px) {
          .detail .cal td > div > span {
            display: block;
            font-size: 4vw; } }
  .detail .cal td.base_name {
    width: 20% !important; }
    .detail .cal td.base_name .base_name {
      min-height: 14em;
      padding-top: 6.5em; }
      @media (max-width: 599px) {
        .detail .cal td.base_name .base_name {
          min-height: 20em;
          padding-top: 9.5em; } }

.detail .close {
  position: fixed;
  left: 0;
  width: 100%; }
  @media (max-width: 599px) {
    .detail .close {
      bottom: 0; } }
  @media (min-width: 600px) {
    .detail .close {
      top: 0;
      text-align: right; } }
  .detail .close a:not(.button) {
    display: inline-block;
    margin: 0.5em 1em; }
    @media (max-width: 599px) {
      .detail .close a:not(.button) {
        display: none; } }
  .detail .close .button {
    width: 80%;
    margin-bottom: 1.5em;
    background-color: rgba(255, 255, 255, 0.6);
    border: 1px solid #aaa; }
    @media (min-width: 600px) {
      .detail .close .button {
        display: none; } }

/* 入力フォーム ****************************************************************** */
form {
  margin: 0 auto;
  width: 95%;
  padding-bottom: 50px; }

fieldset {
  border: none;
  margin: 0 auto 1.5em auto;
  font-size: 1.2rem; }

legend {
  font-size: 1.3rem;
  padding: 0.5em 0 0.4em 0;
  width: 100%;
  background-color: #efefef;
  text-align: center;
  margin-bottom: 10px; }

legend span {
  font-size: 1rem; }

input[type="text"],
input[type="email"],
input[type="url"],
input[type="tel"],
input[type="number"],
input[type="search"],
input[type="date"],
input[type="submit"],
select,
textarea {
  border: 1px solid #cccccc;
  height: 2em;
  font-size: 1.1rem;
  margin: 3px 0;
  padding-left: 0.5em;
  padding-right: 0.5em; }

textarea {
  height: 4em; }

input[type="file"] {
  height: 2em;
  font-size: 1.1rem;
  width: 100%;
  margin: 3px 0; }

/* 2カラム ================================ */
form .half {
  width: 49%; }

/* チェックボックスボタン化 ======================= */
label {
  font-size: 1.2rem;
  display: block;
  margin-top: 0.5em; }

legend + label {
  margin-top: 0; }

.check-group input {
  display: none; }

@media (min-width: 600px) {
  .check-group {
    margin-bottom: 10px;
    font-size: 16px; } }

.check-group label {
  cursor: pointer;
  padding: 1.1em 0 1em 0;
  border: solid 1px #ccc;
  margin-top: 0;
  margin-bottom: -1px;
  background: #fff;
  width: 100%;
  text-align: center; }

.check-group label:first-of-type {
  border-radius: 5px 5px 0 0;
  margin-top: 0.2rem; }

.check-group label:last-of-type {
  border-radius: 0 0 5px 5px;
  margin-bottom: 0.2rem; }

.check-group.clearfix label {
  width: 50%;
  float: left; }

.check-group.clearfix label:nth-of-type(1) {
  border-top-left-radius: 5px;
  border-top-right-radius: 0;
  margin-top: 0.2rem; }

.check-group.clearfix label:nth-of-type(2) {
  border-top-right-radius: 5px;
  border-top-left-radius: 0;
  margin-top: 0.2rem; }

.check-group.clearfix label:nth-last-of-type(2) {
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 0;
  margin-bottom: 0.2rem; }

.check-group.clearfix label:nth-last-of-type(1) {
  border-bottom-right-radius: 5px;
  border-bottom-left-radius: 0;
  margin-bottom: 0.2rem; }

.check-group.clearfix label:nth-of-type(odd) {
  border-right: 0; }

.check-group input:checked + label {
  background: #efefef; }

/* 必須・任意表示 ================================== */
fieldset span.icon {
  font-size: 12px;
  font-weight: bold;
  color: #ffffff;
  background-color: #1374bf;
  padding: 0.25em 0.3em;
  margin-right: 0.2em;
  vertical-align: 25%;
  border-radius: 3px; }

fieldset span.require {
  background-color: #f2444d; }

/* エラー表示 ========================================= */
input.error,
select.error,
textarea.error {
  border: 1px solid #ff0000; }

.check-group label.error {
  border-color: #ff0000;
  color: #000; }

fieldset span.error {
  color: #ff0000;
  line-height: 1.2em;
  font-size: 16px;
  display: block;
  margin-top: 0.2em; }

div.error {
  width: 100%;
  text-align: center;
  color: #ff0000;
  margin: 2em 0; }

/* 送信ボタン ================================================ */
/* メールフォーム（ヘッダー部分）========================= */
.form_header {
  margin: 0em auto 2em auto; }

.form_header .flow {
  text-align: center;
  margin-top: 1em;
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
  padding: 0.7em 0 0.5em 0;
  font-size: 0.85em; }

.form_header .this {
  font-weight: bold; }

/* 入力内容の確認 ========================================= */
form.confirm > div {
  font-size: 18px;
  text-align: center;
  margin-bottom: 1.5em; }

form.confirm > div div {
  font-size: 20px;
  background-color: #efefef; }

form.confirm > div div span {
  font-size: 16px; }

form.confirm > div p {
  margin: 1% 2%; }

/* 送信完了 =============================================== */
form.send {
  text-align: center;
  width: 96%;
  max-width: 500px; }

form.send p {
  margin: 80px 0; }

/* ページ別 */
.customer {
  display: none; }

@media (max-width: 599px) {
  /* スマホ用 */ }

@media (min-width: 600px) {
  /* 小型タブレット用 */
  form {
    max-width: 500px; } }

@media (min-width: 960px) {
  /* PC用 */ }

@media (min-width: 1280px) {
  /* 大型ディスプレイ用 */ }
