@charset "utf-8";

/*======================================================
	Original style
======================================================== */

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding: 0;
  color: #333;
  font-size: clamp(1.6rem,4vw,2rem);
  font-weight: 500;
  font-family: "noto-sans-cjk-jp", "Hiragino Kaku Gothic ProN",
    "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "Yu Gothic",
    "Yu Gothic Medium", "游ゴシック Medium", "游ゴシック体", "メイリオ",
    "Meiryo", sans-serif;
  line-height: 1.7;
  word-wrap: break-word;
  transition: 0.3s;
}

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

li {
  list-style-type: none;
}

hr {
  display: none;
}

section button {
  margin: 0 auto;
}

a:hover {
  opacity: 0.6;
}

.flex {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.nowrap {
  white-space: nowrap;
}

/*======================================================
	main
======================================================== */

.wrapper {
  padding: 1em 0;
  background: #fff0f0;
}

.inner {
  margin: auto;
  width: 90%;
  max-width: 780px;
}

.wrapper .inner:first-child {
  width: 100%;
}

/*
table
----------------------------------*/
.table-wrap {
  margin-top: 4em;
  overflow-x: auto;
  font-size: clamp(1.4rem,2vw,2rem);
}

table {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
  background: #fff;
  border: 1px solid #333;
  border-radius: 12px;
  overflow: hidden;
}

caption {
  margin-bottom: .5em;
  padding: .2em;
  font-size: clamp(2rem,3vw,3rem);
  font-weight: 700;
  caption-side: top;
}

thead th {
  background: var(--head);
  font-weight: 700;
  text-align: left;
  border-bottom: 1px solid #333;
  background: #ffd9db;
}
thead th:first-child {
  border-radius: 12px 0 0 0;
}
thead th:nth-child(2) {
  border-left: 1px solid #333;
  border-right: 1px solid #333;
}
thead th:last-child {
  border-radius: 0 12px 0 0;
}

th, td {
  padding: 12px 16px;
  vertical-align: middle;
  border-bottom: 1px solid #333;
}

tbody tr:last-child td,
tbody tr:last-child th {
  border-bottom: none;
}

tbody th {
  font-size: 130%;
  font-weight: 700;
  white-space: nowrap;
}

.name {
  font-weight: 700;
  border-left: 1px solid #333;
  border-right: 1px solid #333;
}

/* カラム幅指定 */
.col-open { width: 23%; }
.col-name { width: 36%; }
.col-cat  { width: 41%; }


.sp {
  display: none !important;
}
.pc {
  display: block !important;
}

/* SP用（767.98px以下） */
@media screen and (max-width: 767.98px) {

  .wrapper {
    padding: 0 0 1em;
  }

  .sp {
    display: block !important;
  }
  .pc {
    display: none !important;
  }

  thead,
  tbody,
  th,
  td,
  tr {
    display: block;
    width: 100%;
  }

  thead {
    display: none;
  }

  tbody th,
  tbody td {
    border: none;
    border-bottom: 1px solid #aaaaaa;
    text-align: left;
  }

  tbody tr:last-child td,
  tbody tr:last-child th {
    border-bottom: none;
  }

  tbody th {
    padding: .7em 1em .5em;
    font-weight: 700;
    background: #ffd9db;
  }

  tbody tr:first-child th {
    border-radius: 12px 12px 0 0;
  }

  tbody td {
    position: relative;
  }

  .name {
    padding: 1em 0 .2em 7em;
    border: none;
  }

  .cat {
    padding: .2em 0 .8em 7em;
  }

  tbody td:before {
    content: attr(data-label);
    position: absolute;
    left: 1em;
    top: 50%;
    transform: translateY(-50%);
    font-size: 90%;
    white-space: nowrap;
  }

  /* tdごとにラベル付け */
  td.name::before {
    content: "店名・名称";
    padding: 1em 0 .2em 0;
  }
  td.cat::before {
    content: "カテゴリー";
    padding: .2em 0 .8em 0;
  }
}



/*
footer
--------------------------------*/

footer {
  margin-top: 5em;
}

.store-name {
  margin-bottom: 1em;
}

.shop-hp {
  display: block;
  position: relative;
  margin-bottom: 1.5em;
  padding: 1em 2em;
  background: #A62287;
  text-align: center;
  color: #fff;
  font-size: clamp(2rem,5vw,5rem);
  font-weight: 700;
  line-height: 1.4;
  border-radius: 20px;
}

.dli-caret-right {
  position: absolute;
  top: 50%;
  right: 1em;
  transform: translateY(-50%);
  vertical-align: middle;
  color: #fff;
  line-height: 1;
  width: 0;
  height: 0;
  border-style: solid;
  border-color: transparent;
  border-width: 0.375em 0.64952em;
  border-left-color: currentColor;
  border-right: 0;
}

address {
  font-size: clamp(1.6rem,3vw,3rem);
}

/* SP用（767.98px以下） */
@media screen and (max-width: 767.98px) {
  footer {
    margin-top: 3em;
  }
}