@charset 'utf-8';

/* common
------------------------------------------------ */
.l-contentBody[data-type="shops"] .m-section + .m-section { margin-top: 20px; }
.l-contentBody[data-type="shops"] .m-navCompany { margin-top: 15px; }

@media screen and (min-width: 768px) {
  .l-contentBody[data-type="shops"] .m-section + .m-section { margin-top: 60px; }
  .l-contentBody[data-type="shops"] .m-navCompany { margin-top: 20px; }
}

/* search
------------------------------------------------ */
.shops-search { position: relative; margin: 20px 0 30px; padding: 20px 15px; background-color: #fff; border: 1px solid #ea6001; }
.shops-search-title { margin: 0; text-align: center; font-size: 1.8rem; font-weight: bold; line-height: 1.2; }
.shops-search-content { position: relative; }
.shops-search-select > select { display: block; appearance: none; -webkit-appearance: none; -moz-appearance: none; -ms-progress-appearance: none; padding: 0 60px 0 10px; width: 100%; height: 50px; background: url(../images/select_arrow1.png) no-repeat center right 10px #fff; background-size: 15px; border: 1px solid #999; border-radius: 0; box-shadow: none; font-size: 1.6rem; }
.shops-search-pointcard { display: flex; gap: 8px; margin-top: 14px; }
.shops-search-pointcard__title { display: flex; align-items: center; gap: 6px; }
.shops-search-pointcard__title i { width: 20px; font-size: 1rem; line-height: 1; }
.shops-search-pointcard__title span { font-size: 1.4rem; font-weight: bold; }
.shops-search-pointcard__check > label { display: inline-flex; align-items: center; gap: 6px; }
.shops-search-pointcard__check > label span { font-size: 1.4rem; }

.shops-search[data-page="top"] { margin: 30px auto 0; border: none; }

@media screen and (max-width: 767px) {
  .shops-search-title { margin-bottom: 20px; }
  .shops-search-pointcard { flex-flow: column; }
}

@media screen and (min-width: 768px) {
  .shops-search { display: flex; margin: 30px 0 80px; padding: 35px 40px; }
  .shops-search-title { margin-right: 45px; padding-top: 10px; white-space: nowrap; font-size: 2.4rem; }
  .shops-search-content { width: 100%; }
  .shops-search-select > select { padding: 0 70px 0 24px; }
  .shops-search-pointcard { gap: 28px; margin-top: 20px; }
  .shops-search-pointcard__title { gap: 6px; }
  .shops-search-pointcard__title i { width: 26px; }
  .shops-search-pointcard__title span { font-size: 1.6rem; }
  .shops-search-pointcard__check > label { gap: 10px; }
  .shops-search-pointcard__check > label span { font-size: 1.6rem; }

  .shops-search[data-page="top"] { max-width: 980px; }
}

/* archive
------------------------------------------------ */
.shops-archive { position: relative; }
.shops-archive-block:not(:first-child) { margin-top: 35px; }
.shops-archive-block--title { margin-bottom: 18px; padding: 8px; border-top: 1px solid #960; border-bottom: 1px solid #960; font-size: 2rem; font-weight: bold; line-height: 1.425; color: #960; }
.shops-lists { position: relative; }
.shops-lists-item { position: relative; }
.shops-lists-item:not(:first-child) { margin-top: 30px; }
.shops-lists-hd { display: flex; position: relative; margin-bottom: 10px; }
.shops-lists-name { font-size: 1.6rem; font-weight: bold; line-height: 1.4375; }
.shops-lists-pointcard { margin: 4px 0 0 10px; width: 24px; }
.shops-lists-info { position: relative; }
.shops-lists-box:not(:first-child) { margin-top: 8px; }
.shops-lists-box--title,
.shops-lists-box--text { padding: 8px 10px; font-size: 1.2rem; line-height: 1.45833333333; }
.shops-lists-box--title { background-color: #F8F4E6; font-weight: bold; }
.shops-lists-box--text { background-color: #F3F3F2; }
.shops-lists-box--text a { display: inline-block; margin-left: 10px; padding: 4px 8px; border: 1px solid #c90; font-size: 1.2rem; line-height: 1.2; vertical-align: baseline; }
.shops-lists-box--text a[target='_blank']::after { content: ''; display: inline-block; margin: 2px 0 0 4px; width: 10px; height: 10px; background: url(../../../../../../assets/img/common/icn_external_02.png) no-repeat center center; background-size: 100%; vertical-align: top; }
.shops-none { margin: 40px 0 60px; text-align: center; font-size: 1.2rem; }

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

@media screen and (min-width: 768px) {
  .shops-archive-block:not(:first-child) { margin-top: 54px; }
  .shops-archive-block--title { margin-bottom: 22px; padding: 12px; font-size: 3.2rem; line-height: 1.4375; }
  .shops-lists-item:not(:first-child) { margin-top: 60px; }
  .shops-lists-hd { margin-bottom: 20px; }
  .shops-lists-name { font-size: 2.4rem; line-height: 1.45833333333; }
  .shops-lists-pointcard { margin: 8px 0 0 20px; width: 34px; }
  .shops-lists-box { display: flex; }
  .shops-lists-box:not(:first-child) { margin-top: 10px; }
  .shops-lists-box--title,
  .shops-lists-box--text { padding: 10px 12px; font-size: 1.6rem; line-height: 1.4375; }
  .shops-lists-box--title { width: 130px; }
  .shops-lists-box--text { margin-left: 10px; width: calc(100% - 140px); }
  .shops-lists-box--text a { margin-left: 10px; padding: 4px 10px; font-size: 1.2rem; }
  .shops-none { margin: 60px 0 120px; font-size: 1.6rem; }
}

/* detail
------------------------------------------------ */
.shops-detail { position: relative; }
.shops-detail-hd { display: flex; position: relative; margin-bottom: 10px; }
.shops-detail-name { font-size: 2.6rem; font-weight: bold; line-height: 1.4375; }
.shops-detail-pointcard { margin: 10px 0 0 10px; width: 28px; }
.shops-detail-description { margin-bottom: 10px; font-size: 1.2rem; line-height: 1.4375; }
.shops-detail-subtitle { margin-bottom: 10px; font-size: 1.6rem; font-weight: bold; line-height: 1.4375; }
.shops-detail-info { position: relative; }
.shops-detail-box:not(:first-child) { margin-top: 8px; }
.shops-detail-box--title,
.shops-detail-box--text { padding: 8px 10px; font-size: 1.2rem; line-height: 1.45833333333; }
.shops-detail-box--title { background-color: #F8F4E6; font-weight: bold; }
.shops-detail-box--text { background-color: #F3F3F2; }
.shops-detail-map { position: relative; margin-top: 25px; padding-bottom: 60%; width: 100%; height: 0; overflow: hidden; }
.shops-detail-map iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

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

@media screen and (min-width: 768px) {
  .shops-detail-hd { margin-bottom: 20px; }
  .shops-detail-name { font-size: 3.2rem; line-height: 1.45833333333; }
  .shops-detail-pointcard { margin: 12px 0 0 20px; width: 40px; }
  .shops-detail-description { margin-bottom: 24px; font-size: 1.6rem; }
  .shops-detail-subtitle { margin-bottom: 20px; font-size: 2.4rem; }
  .shops-detail-box { display: flex; }
  .shops-detail-box:not(:first-child) { margin-top: 10px; }
  .shops-detail-box--title,
  .shops-detail-box--text { padding: 10px 12px; font-size: 1.6rem; line-height: 1.4375; }
  .shops-detail-box--title { width: 130px; }
  .shops-detail-box--text { margin-left: 10px; width: calc(100% - 140px); }
  .shops-detail-map { margin-top: 40px; }
}

/* pointcard
------------------------------------------------ */
.shops-pointcard { display: flex; align-items: center; position: relative; margin: 20px 0 0; }
.shops-pointcard > p { position: absolute; top: 2px; left: 0; margin: 0; width: 24px; }
.shops-pointcard > div { padding-left: 30px; font-size: 1.2rem; line-height: 1.6; }
.shops-pointcard > div > p { margin-top: 0; }
.shops-pointcard > div > p + p { margin-top: 1.6em; }

@media screen and (min-width: 768px) {
  .shops-pointcard { margin-top: 40px; }
  .shops-pointcard > p { top: 3px; width: 34px; }
  .shops-pointcard > div { padding-left: 46px; font-size: 1.6rem; }
}