@charset "utf-8";

html {
  scroll-behavior: auto; /* ブラウザの自動スクロール無効 */
}

li {
  list-style-type: none;
}

.box {
  padding: 0;
  /*上書き*/
}

/*スマホの左右グラつきの対策手順 start*/

html, body {
  max-width: 100%;
}

.top_visual img {
  width: 100%;
  height: auto;
  display: block;
}

@media screen and (max-width: 1048px) {
    .top_visual {
        height: inherit;
    }
}

.contents {
  box-sizing: border-box;
  padding: 0;
}
/*スマホの左右グラつきの対策手順 end*/


/* 2025年3月30日 */
/* 【重要】space.cssの上書き start */
  .search_container {
    top: 0;
    padding: 0;
  }
/* 【重要】space.cssの上書き start */



/*---------------------*/
/*--box style-- start--*/
/*---------------------*/

.business-hours {
  list-style: none;
  padding: 0;
  margin: 0;
}

.business-hours li {
  padding: 8px 0;
  border-bottom: 1px solid #ddd;
  color: #333;
  font-size: 14px;
}

.card-left {
  flex: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  height: auto;
  padding-left: 24px;
  background: #f5faff;
  padding-right: 16px;
}

.card-center {
  position: relative;
  width: 256px;
  padding: 16px;
}

.card-center::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 1px;
  background: #ddd;
}

.card-right {
  width: 256px;
  padding: 16px;
  padding-right: 48px;
  background: white;
}

.card {
  border: 1px solid #ddd;
  border-radius: 8px;
  overflow: hidden;
}

.card-left,
.card-center,
.card-right {
  margin: 0;
  padding: 16px;
}

.buttons {
  margin-left: 11px;
  display: flex;
  gap: 8px;
}

.btn {
  padding: 8px 16px;
  border: none;
  border-radius: 4px;
  font-size: 14px;
  cursor: pointer;
}

/* 法人会員・個人会員の切り分け */
.buttons .on {
  background: #002e4e;
  color: white;
}

.buttons .off {
  background: #ddd;
  color: #fff;
}

.card-center {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.business-hours {
  margin-bottom: 16px;
}

.buttons {
  align-self: flex-start;
  margin-top: auto;
}

.card-right {
  position: relative;
}

/* 高さを揃えるための調整 */
.card {
  display: flex;
  gap: 16px;
  padding: 0;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: white;
  margin-bottom: 24px; /* 2025年1月9日　拠点ごとの上下調整 */
  align-items: stretch;
  /* 高さを統一 */
}

.card-center,
.card-right {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  /* 子要素間のスペース調整 */
  width: 256px;
  padding: 16px;
}

.card-center {
  margin-left: -16px;
  width: 58%;/* 料金表示なし　2025年6月13日 */
}

.card-center::before {
  content: "";
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 1px;
  background: #ddd;
}

.card-right {
  padding-right: 48px;
}

/* business-hoursの高さ調整 */
.business-hours {
  margin-bottom: 16px;
  flex-grow: 1;
  /* リストを伸縮可能に */
}

.buttons {
  align-self: flex-start;
  margin-top: auto;
}

/*---------------------*/
/*--box style-- end--*/
/*---------------------*/

.arrow {
  padding: 0;
  /*上書*/
  display: inline-block;
  color: #333;
  line-height: 1;
  position: absolute;
  top: 50%;
  right: 12px;
  width: 16px;
  height: 16px;
  transform: translateY(-50%) translateX(-25%) rotate(45deg);
}

.arrow::before,
.arrow::after {
  content: "";
  position: absolute;
  background: currentColor;
  border-radius: 0.1em;
}

.arrow::before {
  top: 0;
  left: 0;
  right: 0;
  height: 0.1em;
}

.arrow::after {
  top: 0;
  right: 0;
  bottom: 0;
  width: 0.1em;
}

/* ナビ */
.regionSummary {
  width: 100%;
  margin: 0 auto;
  padding: 16px 0;
  background: white;
}

.regionSummary ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: space-between;
}

.regionSummary li {
  text-align: center;
  cursor: pointer;
}

.regionSummary li a:hover {
  background: #0056b3;
}

.regionSummary a {
  background: #007bff;
  border-radius: 22px;
  color: white;
  text-decoration: none;
  display: block;
  width: 114px;
  height: 40px;
  line-height: 40px;
  transition: background 0.3s ease;
}

/* カレント追加 2025年1月24日 */
.regionSummary .current {
  background: #0056b3;
}

.search_box {
    margin-top: 40px;
  }

@media screen and (max-width: 800px) {
  .arrow {
    display: none;
  }

  /*リセット*/
  .card-center,
  .card-right {
    display: block;
    flex-direction: initial;
    justify-content: initial;
    width: auto;
    padding: initial;
  }

  .card {
    display: block;
    width: 99.5%;
    overflow: hidden;
  }

  .card-left {
    width: 100%;
    padding: 16px 11px;
    border-bottom: 1px solid #ddd;
    font-size: 14px;
    float: none;
  }

  .card-left p {
    width: 95%;
  }

  .card-right {
    width: 48%;
    padding: 8px;
    float: left;
    box-sizing: border-box;
  }

  .card::after {
    content: "";
    display: block;
    clear: both;
  }

  .business-hours li {
    font-size: 11.5px;
  }

  .card-center .business-hours {
    margin-bottom: 8px;
  }
}




  .categorySummary {
    background: #ffffff;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 16px;
  }
  
  .categorySummary ul {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  
  .categorySummary ul li {
    font-size: 20px;
    color: #333;
  }
  
  #hokkaido,
  #tohoku,
  #kanto,
  #chubu,
  #kinki,
  #chugoku,
  #shikoku,
  #kyushu {
    font-size: 26px;
    color: #333;
    padding: 16px 0 16px 0;
  }
  
  #hokkaido {
    margin-top: -4px;
    padding-top: 26px;
  }
  #tohoku,
  #kanto,
  #chubu,
  #kinki,
  #chugoku,
  #shikoku,
  #kyushu {
    margin-top: -24px;
    padding-top: 26px;
  }


#searchInput {
    width: 100%;
    margin: 0 auto;
}

#allShow {
    width: 98%;
    margin: 0 auto;
}

  .serch_wrap {
    position: sticky;
    padding: 16px 0;
    top: 75px;
    z-index: 110;
    width: 100%;
    background: white;
    display: flex;
    justify-content: center;
    margin: 0 auto;
    z-index: 4;

}

.search_box {
    width: 100%;
    padding: 8px;
    margin-top: 0px;
    box-sizing: border-box;
}


/* PC 設定 重要 */
  #searchResults {
    position: sticky;
    width: 100%;
    margin: 0 auto;
    top: 132px;
    z-index: 3;
  }
  

/* レスポンシブ: search_container ブレイクポイント 1048px */
@media screen and (max-width: 1048px) {

  .search_box {
    margin-top: 16px;
  }

  .serch_wrap,
  .regionSummary {
    background-color:white; /* デバッグ用カラー。不要なら削除 */
  }


  .regionSummary .selected {
    width: 100%;/* 重要 2025年3月30日 */
    display: block;
    padding: 8px 0;
    background: white;
    border: 1px solid #ccc;
    border-radius: 24px;
    cursor: pointer;
    text-align: center;
    font-size: 16px;
    font-family: Arial, sans-serif;
    position: relative;
  }

  .regionSummary .selected::after {
    content: "";
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 6px solid #555;
    transition: transform 0.3s ease, border-top 0.3s ease, border-bottom 0.3s ease;
  }

  .regionSummary.active .selected::after {
    border-top: none;
    border-bottom: 6px solid #555;
  }

  .regionSummary ul {
    position: absolute;
    width: 100%;
    background: white;
    border-radius: 16px;
    box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.2);
    padding: 0;
    margin: 0;
    z-index: 10;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-1px);
    transition: max-height 0.6s ease, opacity 0.6s ease, transform 0.6s ease;
  }

  .regionSummary.active ul {
    max-height: none;
    opacity: 1;
    transform: translateY(0);
    overflow: visible;
  }

  .regionSummary ul li {
    border-bottom: 1px solid #eee;
    text-align: left;
    cursor: pointer;
    background: white;
    text-indent: 16px;
    font-size: 16px;
    font-family: Arial, sans-serif;
    display: block;
    width: 100%;
    border-radius: 0;
    transition: background 0.6s ease, border-radius 0.6s ease;
  }

  .regionSummary ul li a {
    display: block;
    width: 100%;
  }

  .regionSummary ul li:last-child {
    border-bottom: none;
  }

  .regionSummary ul li:hover {
    background: #f0f0f0;
  }

  .regionSummary a {
    color: #555;
    background: transparent;
  }

  .regionSummary li a:hover {
    background: transparent;
  }

  .regionSummary ul li:first-child {
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
  }

  .regionSummary ul li:last-child {
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
    border-bottom: none;
  }

  .regionSummary ul li a.current {
    background: #0056b3;
    color: white;
    border-radius: 0;
  }

  .regionSummary ul li:first-child a.current {
    border-top-left-radius: 16px;
    border-top-right-radius: 16px;
  }

  .regionSummary ul li:last-child a.current {
    border-bottom-left-radius: 16px;
    border-bottom-right-radius: 16px;
  }
}


.opening_times {
  margin-bottom: 4px;
  margin-left: 11px;
}

.icon_time {
  display: inline-block;
  vertical-align: middle;
  margin-right: 0.5em;
}

.icon_time img {
  width: 1em;
  height: 1em;
  margin-top: -5px;
}


/* 並び方を変更 */

/* ここから */
table.business-hours {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

table.business-hours td {
  text-align: center;
  vertical-align: middle;
  padding: 8px 0;
  box-sizing: border-box;
  word-break: break-word;
  border-bottom: 1px solid #ddd;
  color: #333;
}

table.business-hours td.slash {
  width: 16px;
  padding: 0;
  text-align: center;
  border-bottom: 1px solid #ddd;
}

@media screen and (max-width: 800px) {

  .card-center {
    padding-left: 16px;
  }

  .card-center h3 {
    text-align: center;
    margin: 12px auto 0;
  }

  table.business-hours {
    display: flex;
    flex-wrap: wrap;
    justify-content: center !important;
    width: 100%;
  }

  table.business-hours tbody,
  table.business-hours tr {
    display: contents;
  }

  table.business-hours td {
    width: calc(24% - 24px);
    padding: 1em 0;
    text-align: center;
    border-bottom: 1px solid #ddd;
    box-sizing: border-box;
    width: 30%;
    font-size: 14px;
    align-items: center;
  }

  table.business-hours td.slash {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /*ボタン*/
    .buttons {
      display: flex;
      justify-content: center;
      flex-wrap: wrap;
      gap: 1.5em;
      margin: 1em 0;
      text-align: center;
    }
  
    .buttons .btn {
      min-width: 25%;
      text-align: center;
      padding: 8px;
    }

    .business-hours td:empty[style*="border-bottom"] {
      display: none;
    }

    .tr_1 td {
      /*border-bottom: 1px solid #ddd!important; スマホ2行目 */
    }

    .tr_1 td:last-child {
      border: none!important;
    }

    .tr_2 td:last-child {
      /* border: none!important; */
    }

}

 /* スマホの最低幅設定 */
@media screen and (max-width: 800px) {
  .contents {
    min-width: 320px;
  }
}

/* 20250813 SP版の修正・調整 */
.sp_pd_top {
  padding-top: 8px;
}

/* ここまで */