@charset "UTF-8";

/*
 * KIPSアプリ対応店舗・施設の絞り込み（店舗・施設一覧共通）
 * app-target: 表示を残す行。app-keep: 見出しなど常に残す行。
 * 対象行を強制表示しないことで、既存の for_pc / for_sp を維持する。
 */
html.kips-app-only table.search_list > tbody > tr:not(.app-target):not(.app-keep),
html.kips-app-only .kips-app-exclude {
  display: none !important;
}

/* 0件の間は、一覧の説明やマーク紹介を案内に置き換える。 */
html.kips-app-no-results .kips-app-empty-content,
.kips-app-empty[hidden] {
  display: none !important;
}

.kips-app-empty {
  box-sizing: border-box;
  margin: 0 0 48px;
  padding: 28px;
  border: 1px solid #d9deeb;
  border-radius: 6px;
  background: #f7f8fc;
  color: #161457;
  line-height: 1.8;
}

.kips-app-empty .kips-app-empty__title {
  margin: 0 0 8px;
  font-size: 18px;
  font-weight: bold;
  line-height: 1.6;
}

.kips-app-empty .kips-app-empty__description {
  margin: 0 0 24px;
  color: #3f4f5c;
  font-size: 15px;
}

.kips-app-empty__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.kips-app-empty__action,
.kips-app-empty__actions a.kips-app-empty__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 48px;
  padding: 12px 20px;
  border: 1px solid #161457;
  border-radius: 4px;
  appearance: none;
  -webkit-appearance: none;
  background: #161457;
  color: #fff;
  font: inherit;
  line-height: 1.6;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.kips-app-empty__action:hover,
.kips-app-empty__actions a.kips-app-empty__action:hover {
  background: #29267a;
  color: #fff;
  text-decoration: none;
}

.kips-app-empty__action--secondary {
  background: #fff;
  color: #161457;
}

.kips-app-empty__action--secondary:hover {
  background: #eef0f7;
  color: #161457;
}

.kips-app-empty__action:focus-visible {
  outline: 3px solid #397f27;
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .kips-app-empty {
    margin-bottom: 32px;
    padding: 20px 16px;
  }

  .kips-app-empty .kips-app-empty__title {
    font-size: 16px;
  }

  .kips-app-empty__actions {
    flex-direction: column;
  }
}

/* カテゴリトップの見出し下と案内文下の余白。 */
.kips-category-page > .main-subtitle {
  margin-bottom: 24px;
  padding-bottom: 0;
}

.kips-category-page .search--category-index {
  margin-top: 0;
  padding-top: 0;
}

.kips-category-intro {
  margin-bottom: 24px;
}

/* 対象外のカテゴリも位置を残し、オンの間だけ無効にする。 */
html.kips-app-only .kips-app-category-unavailable {
  filter: grayscale(1);
  opacity: 0.4;
  cursor: not-allowed;
}

html.kips-app-only .kips-app-category-unavailable > a {
  pointer-events: none;
}

/* アプリ表示時だけ、指定したセルの上罫線と上下余白を消す。 */
html.kips-app-only th.app-no-border-top,
html.kips-app-only td.app-no-border-top {
  border-top: hidden !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.kips-app-filter {
  margin: 0 0 24px;
  padding: 16px 20px;
  border: 1px solid #6aa44f;
  border-radius: 6px;
  background: #f5faf2;
  color: #24451d;
  font-size: 16px;
  line-height: 1.6;
}

.kips-app-filter[hidden] {
  display: none !important;
}

.kips-app-filter__label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-weight: bold;
}

.kips-app-filter__input {
  appearance: auto;
  -webkit-appearance: checkbox;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  margin: 0;
  padding: 0;
  accent-color: #397f27;
  cursor: pointer;
}

.kips-app-filter__input:focus-visible {
  outline: 2px solid #245e19;
  outline-offset: 3px;
}

.kips-app-filter__status {
  margin: 8px 0 0;
  font-size: 14px;
  font-weight: normal;
}

@media (max-width: 767px) {
  .kips-app-filter {
    padding: 14px;
  }
}

/* PC：元の欄が画面上へ消えたときだけ、右下に追従欄を表示する。 */
.kips-app-filter--floating {
  position: fixed;
  right: 16px;
  bottom: var(--kips-app-floating-desktop-bottom, 88px);
  z-index: 5;
  box-sizing: border-box;
  width: 300px;
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 112px);
  overflow: auto;
  margin: 0;
  padding: 12px 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.kips-app-filter-spacer {
  display: none;
}

/* スマホ：本文内の欄を隠し、画面最下部に横幅いっぱいで固定する。 */
@media (max-width: 767px) {
  .kips-app-filter--original {
    display: none !important;
  }

  .kips-app-filter--floating {
    right: 0;
    bottom: 0;
    left: 0;
    width: auto;
    max-width: none;
    max-height: calc(100vh - 24px);
    padding: 12px 14px;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.12);
  }

  .kips-app-filter--floating .kips-app-filter__status {
    font-size: 12px;
  }

  .kips-app-filter-spacer {
    display: block;
  }
}


@media (max-width: 767px){
	.kips-app-filter--floating{
		background: #c62828;
		border-color: #c62828;
		color: #fff;
	}

	.kips-app-filter--floating .kips-app-filter__input{
		accent-color: #fff;
		outline-color: #fff;
	}
}