@charset "UTF-8";

.shop {
  position: relative
}
@media screen and (min-width:768px) {
  .shop {
    margin-inline: auto;
    max-width: max(124.8rem, 1px);
    padding-bottom: max(14.4rem, 1px)
  }
}
@media screen and (max-width:767px) {
  .shop {
    padding-bottom: max(8rem, 1px)
  }
}
.shop-header {
  border: 0 solid var(--color-beige-light)
}
@media screen and (min-width:768px) {
  .shop-header {
    padding: max(21.6rem, 1px) 0 max(7.2rem, 1px)
  }
}
@media screen and (max-width:767px) {
  .shop-header {
    margin: 0 max(2rem, 1px);
    padding: max(6rem, 1px) 0 max(4rem, 1px)
  }
}
.shop-ttl {
  margin-inline: auto
}
.shop-detail-ttl {
  display: flex;
  justify-content: flex-start;
  font-size: 5.8rem;
  padding: 0 4vw;
}

@media screen and (min-width:768px) {
  .shop-ttl {
    width: max(28rem, 1px)
  }
}
@media screen and (max-width:767px) {
  .shop-ttl {
    width: max(18.7rem, 1px)
  }
  .shop-detail-ttl {
    font-size: 2.8rem;
    padding: 0;
  }
}
.news-body {
  align-items: start;
  display: grid;
  position: relative
}
@media screen and (min-width:768px) {
  .news-body {
    gap: max(7.2rem, 1px);
    grid-template-columns: max(21.6rem, 1px) 1fr;
    margin-top: max(7.2rem, 1px)
  }
}
@media screen and (max-width:767px) {
  .news-body {
    gap: max(4rem, 1px);
    grid-template-columns: 1fr;
    margin: max(4rem, 1px) max(4rem, 1px) 0
  }
}

:root {
  --primary-color: #E84121;
  --secondary-color: #45B300;
  --secondary-dark-color: #2F7B00;
  --color-background: #fbfaf7;
}

.mc-shop {
  .c-hoverLine--text {
    background-position: left bottom;
    background-repeat: no-repeat;
    background-size: 100% 1px;
    transition: background-size .35s cubic-bezier(.39, .575, .565, 1), color .1s ease-out;
    will-change: background-size, color;
  }

  .mc-shop_overlay-inner {
    position: fixed;
    top: 0;
    left: 0;
    background: rgba(255, 255, 255, 0.9);
    width: 100%;
    height: 100%;
    z-index: 10000;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .mc-shop_loading {
    width: 50px;
    padding: 8px;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--primary-color);
    --_m: conic-gradient(#0000 0%, #000),
    linear-gradient(#000 0 0) content-box;
    -webkit-mask: var(--_m);
    mask: var(--_m);
    -webkit-mask-composite: source-out;
    mask-composite: subtract;
    animation: l3 1s infinite linear;
  }

  @keyframes l3 {
    to {
      transform: rotate(1turn)
    }
  }

  .p-searchIndex {
    padding-bottom: 45px;
  }

  .p-searchIndex--wrapper {
    max-width: 1040px;
    margin-right: auto;
    margin-left: auto;
    padding: 100px 0 0 0;
  }

  .p-searchIndex--wrapper > *:first-child {
    margin-top: 0 !important;
  }

  /* pc */
  @media (min-width: 768px) {
    .p-searchIndex--wrapper {
      padding-right: 70px;
      padding-left: 70px;
    }
  }
  /* sp ToDo */
  @media not all and (min-width: 768px) {
    .p-searchIndex {
      padding-bottom: 40px;
    }

    .p-searchIndex--wrapper {
      padding-right: 20px;
      padding-left: 20px;
    }
  }

  .p-searchError {
    display: none;
    padding: 80px 0;
  }

  .p-searchError.is_visible {
    display: block;
  }

  .p-searchError--wrapper {
    max-width: 1040px !important;
    margin-right: auto;
    margin-left: auto;
  }

  .c-searchError {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-flow: column;
    font-feature-settings: 'palt' on;
    padding: 0;
  }

  .c-searchError__text {
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.45;
    padding-right: 28px;
    text-align: center;
  }

  .c-searchError__text .emp {
    font-size: 28px;
    color: var(--primary-color);
  }

  .c-searchError__caption {
    font-size: 16px;
    letter-spacing: -0.05em;
    line-height: 1.429;
    color: #000;
    padding-right: 32px;
    margin-top: 20px;
    opacity: 0.5;
    text-align: center;
  }

  .c-searchError__captionList {
    list-style: disc;
    font-size: 16px;
    letter-spacing: -0.05em;
    line-height: 1.429;
    color: #000;
    padding-right: 32px;
    margin-top: 20px;
    opacity: 0.5;
  }

  /* sp */
  @media not all and (min-width: 768px) {
    .c-searchError {
      padding: 70px 0 60px;
    }

    .c-searchError__text {
      font-size: 16px;
      line-height: 1.4375;
      padding: 0 0 0 10px;
    }

    .c-searchError__text .emp {
      font-size: 24px;
    }

    .c-searchError__caption {
      font-size: 13px;
      letter-spacing: -0.05em;
      line-height: 1.4167;
      padding-right: 10px;
      margin-top: 30px;
    }
  }

  .c-searchInput {
    position: relative;
    margin-top: 24px;
  }

  .c-searchInput.is-prefectures {
    display: none;
  }

  [data-search="prefectures"] .is-prefectures {
    display: block;
  }

  .c-searchInput.js-city {
    display: none;
  }

  .js-city.is-visible {
    display: block;
  }

  .c-searchInput + .c-searchInput {
    margin-top: 2rem;
  }

  .c-searchInput--input {
    width: 100%;
    height: 58px;
    font-size: 16px;
    letter-spacing: -0.05em;
    background: #F7F7F7;
    border: 1px solid #E6E6E6;
    box-sizing: border-box;
    border-radius: 0.3em;
    padding: 0 60px 0 23px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    box-shadow: none;
  }

  .c-searchInput--input::placeholder {
    color: rgba(0, 0, 0, 0.2);
  }

  .c-searchInput--input::-webkit-search-decoration,
  .c-searchInput--input::-webkit-search-cancel-button,
  .c-searchInput--input::-webkit-search-results-button,
  .c-searchInput--input::-webkit-search-results-decoration {
    display: none;
  }

  .c-searchInput--reset {
    background: none;
    position: absolute;
    inset: 0 65px 0 auto;
    display: none;
    width: 50px;
    height: 50px;
    border: none;
    border-radius: 0.3em;
    padding: 0;
    margin: auto 0;
    cursor: pointer;
    z-index: 3;
  }
  .c-searchInput--reset img {
    display: inline;
    width: 15px;
  }
  .c-searchInput--reset.is-visible {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .c-searchInput--reset:before {
    position: absolute;
    inset: 5px;
    display: block;
    content: '';
  }

  .c-searchInput--icon {
    transition: opacity .35s cubic-bezier(.39, .575, .565, 1) 0s;
    position: absolute !important;
    inset: 0 5px 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 50px !important;
    height: 50px !important;
    background: #E6E6E6;
    border: none;
    border-radius: 0.3em;
    padding: 0;
    margin: auto 0 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    z-index: 3;
  }

  .c-searchInput--icon:before {
    position: absolute;
    inset: -0.5rem;
    display: block;
    content: '';
  }

  .c-searchInput--icon:hover {
    opacity: 0.5;
  }

  .c-searchInput--icon img {
    width: 26px !important;
    pointer-events: none;
    display: inline;
  }

  .c-searchInput--select {
    display: flex;
    align-items: center;
    width: 100%;
    height: 58px;
    font-size: 16px;
    letter-spacing: -0.05em;
    color: rgba(0, 0, 0, 0.2);
    background: #fff;
    border: 1px solid #E6E6E6;
    border-radius: 0.3em;
    appearance: none;
    padding: 0 60px 0 23px;
    option {
      color: rgba(0,0,0,0.8);
      &:disabled {
        color: rgba(0,0,0,0.2);
      }
    }
  }

  .c-searchInput--arw {
    position: absolute;
    inset: 0 24px 0 auto;
    display: block;
    width: 16px;
    height: auto;
    margin: auto 0;
  }

  /* sp */
  @media not all and (min-width: 768px) {
    .c-searchInput + .c-searchInput {
      margin-top: 16px;
    }

    .c-searchInput--input {
      font-size: 16px;
      height: 13.3334vw;
      border-radius: 1.333334vw;
      padding: 0 13.3334vw 0 4vw;
    }

    .c-searchInput--reset {
      inset: 0 14.3334vw 0 auto;
    }

    .c-searchInput--icon {
      inset: 0 1.333334vw 0 auto;
      width: 10.667vw;
      height: 10.667vw;
      border-radius: 1.066667vw;
    }

    .c-searchInput--icon:before {
      inset: -1.333334vw;
    }

    .c-searchInput--icon img {
      width: 4.26667vw;
      height: auto;
      aspect-ratio: 1/1;
    }

    .c-searchInput--select {
      font-size: 16px;
      height: 13.3334vw;
      border-radius: 1.333334vw;
      padding: 0 13.3334vw 0 4vw;
    }

    .c-searchInput--arw {
      inset: 0.5334vw 4.8vw 0 auto;
      width: 3.2vw;
    }
  }

  /* c-searchWidget */

  .c-searchWidget {
    margin-top: 0;
  }

  .c-searchWidget--head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 60px 0 0;
  }

  .c-searchWidget--head.is_disabled {
    display: none;
  }

  .c-searchWidget--result {
    font-size: 16px;
    letter-spacing: 0;
    line-height: 1.6;
  }

  .c-searchWidget--result .emp {
    font-weight: 700;
  }

  .c-searchWidget--result .red {
    color: var(--primary-color);
  }

  .c-mapSwitch {
    position: relative;
    display: flex;
    align-items: center;
    letter-spacing: 0;
    color: inherit;
  }

  .c-mapSwitchButton {
    width: 46px;
    height: 24px;
    position: relative;
    border: none;
    border-radius: 12px;
    background-color: #BCBDBD;
    cursor: pointer;
  }

  .c-mapSwitchButton:after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    border-radius: 100%;
    left: 3px;
    top: 2px;
    background: #FFFFFF;
    border: 1px solid #BCBDBD;
    transition: all 0.1s ease 0s;
  }

  .c-mapSwitchLabel {
    color: #1E2121;
    margin-right: 12px;
    cursor: pointer;
  }

  .is_active .c-mapSwitchButton {
    background: var(--primary-color);
  }

  .is_active .c-mapSwitchButton::after {
    border-color: var(--primary-color);
    transform: translateX(100%);
  }

  .c-searchWidget--map {
    display: none;
    aspect-ratio: 1100 / 450;
    border-radius: 0.3em;
    margin: 5rem max(calc((100% - 100vw + 4rem) / 2), -10rem) 0;
    overflow: hidden;
  }

  .c-searchWidget--map.is_visible {
    display: block;
  }

  /* sp */
  @media not all and (min-width: 768px) {
    .c-searchWidget {
      margin-top: 8vw;
    }

    .c-searchWidget--head {
      margin: 7.73334vw 0 0;
    }

    .c-searchWidget--result {
      font-size: 3.73334vw;
      line-height: 1.429;
    }

    .c-searchWidget--filter {
      font-size: 3.2vw;
      line-height: 1.667;
      padding-right: 5.33334vw;
      margin: 0 0 0 auto;
    }

    .c-searchWidget--filter:after {
      top: 1.33334vw;
      width: 3.4667vw;
    }

    .c-searchWidget--filter .count {
      bottom: 3.73334vw;
      left: 20.53334vw;
      font-size: 1.6vw;
      padding: 0 0.8vw;
    }

    .c-searchWidget--map {
      aspect-ratio: 375 / 500;
      border-radius: 0;
      margin: 8vw -4vw 0;
    }
  }

  /* p-searchList */

  .p-searchList {
    background-position: left top;
    background-size: 30rem auto;
    background-repeat: repeat;
    padding: 7rem 0 9.5rem;
  }

  .p-searchList.is_disabled {
    display: none !important;
  }

  .p-searchList--wrapper {
    max-width: 1040px !important;
    margin-right: auto;
    margin-left: auto;
  }

  .p-searchList--head {
    display: none;
  }

  .p-searchList--list {
    display: grid;
    gap: 1.5rem;
  }

  .p-searchList--foot {
    margin-top: 6rem;
  }

  html[data-switch='map'] .p-searchList {
    display: none;
  }

  /* pc */
  @media (min-width: 768px) {
    .p-searchList--wrapper {
      padding-right: 70px;
      padding-left: 70px;
    }
  }
  /* sp */
  @media not all and (min-width: 768px) {
    .p-searchList {
      padding: 5.3334vw 0 17.3334vw;
    }

    .p-searchList--wrapper {
      padding-right: 2.6667vw;
      padding-left: 2.6667vw;
    }

    .p-searchList--head {
      display: flex;
      align-items: center;
      padding: 0 1.33334vw 0 0.53334vw;
      margin-bottom: 3.2vw;
    }

    .p-searchList--title {
      font-size: 4.26667vw;
      font-weight: 700;
      letter-spacing: 0;
      line-height: 1.4375;
    }

    .p-searchList--list {
      gap: 4vw;
    }

    .p-searchList--foot {
      margin-top: 16vw;
    }
  }

  /* mc-shop */

  .mc-shop {
    background: #fff;
    border-radius: 0.6em;
    border: 1px solid #e1d8c7;
    padding: 37px 40px 38px;
  }

  .mc-shop__head {
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    padding-bottom: 13px;
  }

  .mc-shop__name {
    position: relative;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.45;
    color: #1c0f9d !important;
    overflow-wrap: anywhere;
  }

  .mc-shop__name .number {
    position: absolute;
    top: 2px;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    aspect-ratio: 1/1;
    font-size: 18px;
    line-height: 1;
    color: #fff;
    background: var(--primary-color);
    box-sizing: border-box;
    padding-bottom: 2px;
  }

  .mc-shop__name .number[data-length="2"] {
    font-size: 14px;
  }

  .mc-shop__name .number[data-length="3"] {
    font-size: 12px;
  }

  @media not all and (min-width: 768px) {
    .mc-shop__name .number[data-length="2"] {
      font-size: 12px;
    }

    .mc-shop__name .number[data-length="3"] {
      font-size: 9px;
    }
  }

  .mc-shop__name .number:after {
    position: absolute;
    inset: auto 0 -5px;
    display: block;
    content: '';
    width: 0;
    height: 0;
    border-top: 6px solid var(--primary-color);
    border-right: 3px solid transparent;
    border-left: 3px solid transparent;
    margin: 0 auto;
  }

  .mc-shop__name .c-hoverLine {
    position: relative;
    display: block;
    padding-left: 36px;
  }

  .mc-shop__details {
    display: flex;
    align-items: flex-start;
    margin-top: 14px;
  }

  .mc-shop__distance {
    color: var(--primary-color);
    font-weight: 700;
    position: relative;
    display: flex;
    align-items: flex-end;
    line-height: 1.3;
    padding-left: 14px;
  }

  .mc-shop__distance:before {
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    content: '';
    width: 16px;
    aspect-ratio: 9/12;
    background-image: url('../img/icon/search_shop_pin.svg');
    background-repeat: no-repeat;
    background-size: contain;
    translate: 0 -50%;
    margin-top: 1px;
  }

  .mc-shop__distance .number {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.05em;
    padding-left: 6px;
    color: var(--primary-color);
  }

  .mc-shop__distance .suffix {
    font-size: 16px;
    letter-spacing: -0.05em;
    color: var(--primary-color);
  }

  .mc-shop__distance .caption {
    color: #000;
    font-weight: normal;
    font-size: 16px;
    letter-spacing: 0;
    margin-left: 1rem;
  }

  .mc-shop__access {
    font-size: 16px;
    letter-spacing: 0;
    line-height: 1.2;
    margin-top: 12px;
    overflow-wrap: anywhere;
  }

  .mc-shop__business_hour {
    position: relative;
    font-size: 16px;
    font-weight: 700 !important;
    letter-spacing: 0;
    line-height: 1.5;
    padding-top: 18px;
    padding-bottom: 18px;
    margin-top: 22px;
    border-top: 1px dashed rgba(0, 0, 0, .2);
    border-bottom: 1px dashed rgba(0, 0, 0, .2);
    overflow-wrap: anywhere;
  }

  .mc-shop__business_hour em {
    display: block;
    font-weight: 700 !important;
    font-style: normal;
    width: 100%;
  }

  .mc-shop__business_hour strong {
    display: block;
    font-weight: 700 !important;
    width: 100%;
  }

  .mc-shop__business_hour .opening_time_extra,
  .mc-shop__business_hour .opening_time_note {
    display: block;
    padding-top: 90px;
  }

  .mc-shop__foot {
    position: relative;
    padding-top: 26px;
    margin-top: 22px;
  }

  .mc-shop__services {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .mc-shop__services-item {
    font-size: 1.4rem;
    letter-spacing: 0;
    line-height: 1;
    color: var(--primary-color);
    border: 1px solid var(--primary-color);
    border-radius: 2rem;
    padding: 0.4rem 0.9rem 0.6rem;
  }

  .mc-shop__equipments {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    margin-top: 1.6rem;
  }

  .mc-shop__equipments:first-child {
    margin-top: 0;
  }

  .mc-shop__equipments-item {
    position: relative;
    font-size: 1.6rem;
    letter-spacing: 0;
    line-height: 1.5;
    padding-left: 1.7rem;
    margin: -0.7rem 0 -0.5rem;
  }

  .mc-shop__equipments-item:before {
    position: absolute;
    top: 0.7rem;
    left: 0;
    display: block;
    content: '';
    width: 1.2rem;
    aspect-ratio: 1/1;
    border: 3px solid var(--secondary-color);
    border-radius: 50%;
    box-sizing: border-box;
  }

  .mc-shop__reservation, .mc-shop__mobileOrder {
    transition: opacity .35s cubic-bezier(.39, .575, .565, 1) 0s;
    display: block;
    width: 100%;
    font-size: 22.5px;
    text-decoration: none;
    text-shadow: 0 0 18px var(--secondary-dark-color);
    font-family: inherit;
    font-weight: 700;
    font-feature-settings: 'palt' on;
    letter-spacing: 0;
    line-height: 1.278;
    color: #fff;
    background: var(--secondary-color);
    border: none;
    border-radius: 0.5rem;
    box-shadow: 0 0.15em 0 0 var(--secondary-dark-color);
    cursor: pointer;
    padding: 22px 0 23px;
    margin-top: 0 !important;
    text-align: center;
  }

  @media (hover) {
    .mc-shop__reservation:hover, .mc-shop__mobileOrder:hover {
      opacity: 0.7;
    }
  }

  .mc-shop_order {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
  }

  .mc-shop_pagination .c-hoverLine--text {
    pointer-events: none;
  }

  .mc-shop_pagination .page-numbers {
    transition: opacity .35s cubic-bezier(.39, .575, .565, 1) 0s !important;
  }

  @media (hover) {
    .mc-shop_pagination .page-numbers:not(.current):hover {
      opacity: 0.5;
    }
  }

  .mc-shop_map-popup {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    font-size: 14px;
    font-weight: 700;
    font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Helvetica Neue", arial, meiryo, sans-serif;
    font-feature-settings: 'palt' on;
    background-color: var(--primary-color);
  }

  .mc-shop_map-popup[data-length="2"] {
    font-size: 13px;
  }

  .mc-shop_map-popup[data-length="3"] {
    font-size: 11px;
  }

  .mc-shop_map-popup::after {
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 8px solid var(--primary-color);
    content: "";
    height: 0;
    left: 50%;
    position: absolute;
    top: 95%;
    transform: translate(-50%, 0);
    width: 0;
  }

  .mc-shop_map-popup .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    padding-bottom: 0;
  }

  .mc-shop_map-popup .icon svg {
    height: 18px;
    width: auto;
  }

  .mc-shop_map-popup .details {
    display: none;
    flex-direction: column;
    flex: 1;
    font-weight: 400;
    position: relative;
  }

  .mc-shop_map-popup .mc-shop_shop-name {
    position: relative;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.5;
    padding-left: 23px;
  }

  .mc-shop_map-popup .mc-shop_shop-name .number {
    position: absolute;
    top: 3px;
    left: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    aspect-ratio: 1/1;
    font-size: 13px;
    line-height: 1;
    color: #fff;
    background: var(--primary-color);
  }

  .mc-shop_map-popup[data-length="2"] .mc-shop_shop-name .number {
    font-size: 10px;
  }

  .mc-shop_map-popup[data-length="3"] .mc-shop_shop-name .number {
    font-size: 8px;
  }

  .mc-shop_map-popup .mc-shop_shop-name .number:after {
    position: absolute;
    inset: auto 0 -0.5em;
    display: block;
    content: '';
    width: 0;
    height: 0;
    border-top: 7px solid var(--primary-color);
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    margin: 0 auto;
  }

  .mc-shop_map-popup .mc-shop_shop-name .c-hoverLine {
    color: #1c0f9d !important;
  }

  .mc-shop_map-popup .info {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    padding-top: 10px;
    margin-top: 10px;
  }

  .mc-shop_map-popup .info .number {
    color: var(--primary-color);
    font-weight: 700;
  }

  .mc-shop_map-popup .info .caption {
    position: relative;
    bottom: 2px;
    font-size: 12px;
    letter-spacing: 0;
    margin-left: 6px;
  }

  .mc-shop_map-popup .distance {
    color: var(--primary-color);
    position: relative;
    font-size: 16px;
    letter-spacing: -0.05em;
    line-height: 1.25;
    padding-left: 18px;
  }

  .mc-shop_map-popup .distance:before {
    position: absolute;
    top: 50%;
    left: 0;
    display: block;
    content: '';
    width: 12px;
    aspect-ratio: 9/12;
    background-image: url('../img/icon/search_shop_pin.svg');
    background-repeat: no-repeat;
    background-size: contain;
    translate: 0 -50%;
  }

  .mc-shop_map-popup .distance .caption {
    color: #000;
  }

  .mc-shop_map-popup .waiting {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.667;
  }

  .mc-shop_map-popup .waiting .number {
    position: relative;
    top: 2px;
    font-size: 16px;
    letter-spacing: -0.05em;
    line-height: 1;
    margin: 0 2px 0 5px;
  }

  .mc-shop_address {
    font-size: 14px;
    letter-spacing: 0;
    line-height: 1.215;
    margin: 9px 0 -3px;
  }

  .mc-shop_reservation, .mc-shop_mobileOrder {
    transition: opacity .35s cubic-bezier(.39, .575, .565, 1) 0s;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 48px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    text-decoration: none;
    color: #fff;
    background: var(--secondary-color);
    box-shadow: 0 3px 0 0 var(--secondary-dark-color);
    border-radius: 0.3em;
    padding-bottom: 2px;
    margin: 20px 4px 0 0;
    width: 100%;
  }

  @media (hover) {
    .mc-shop_reservation:hover, .mc-shop_mobileOrder:hover {
      opacity: 0.7;
    }
  }

  .mc-shop_map-popup.is_visible {
    width: 345px;
    height: auto;
    background-color: #fff;
    border-radius: 1rem;
    box-shadow: 3px 3px 6px 3px rgba(0, 0, 0, 0.1);
    padding: 12px 18px 15px;
  }

  .mc-shop_map-popup.is_visible::after {
    top: 99.55555%;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid #fff;
  }

  .mc-shop_map-popup.is_visible .details {
    display: flex;
  }

  .mc-shop_map-popup.is_visible .mc-shop_pin-num {
    display: none;
  }

  .mc-shop_map-popup.is_visible .mc-shop_map-popup-close {
    transition: background-color .35s cubic-bezier(.39, .575, .565, 1) 0s;
    position: absolute;
    top: -22px;
    right: -26px;
    width: 26px;
    aspect-ratio: 1/1;
    background: #000;
    color: #fff;
    border-radius: 50%;
    border: 1px solid #fff;
    box-shadow: 0 0 1px rgba(0, 0, 0, 0.25);
  }

  .mc-shop_map-popup.is_visible .mc-shop_map-popup-close:before {
    position: absolute;
    inset: 0;
    display: block;
    content: '';
    width: 16px;
    height: 1px;
    background: #fff;
    border-radius: 10rem;
    margin: auto;
    rotate: -45deg;
  }

  .mc-shop_map-popup.is_visible .mc-shop_map-popup-close:after {
    position: absolute;
    inset: 0;
    display: block;
    content: '';
    width: 16px;
    height: 1px;
    background: #fff;
    border-radius: 10rem;
    margin: auto;
    rotate: 45deg;
  }

  @media (hover) {
    .mc-shop_map-popup.is_visible .mc-shop_map-popup-close:hover {
      background: var(--primary-color);
    }
  }

  .c-shopReservation-popup {
    transition: all .35s cubic-bezier(.39, .575, .565, 1) 0s;
    transition-property: opacity, visibility;
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 65px 35px;
    z-index: 100005;
    overflow-y: auto;
    overscroll-behavior: none;
    opacity: 0;
    visibility: hidden;
  }

  .c-shopReservation-popup.is-open {
    opacity: 1;
    visibility: visible;
  }

  .c-shopReservation-popup:before {
    position: absolute;
    inset: -1px 0;
    display: block;
    content: '';
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(2px);
    z-index: -1;
  }

  .c-shopReservation-subtitle {
    font-size: 20px;
    margin: 0 0 15px 0;
  }

  .c-shopReservation-popup__close {
    transition: opacity .35s cubic-bezier(.39, .575, .565, 1) 0s;
    position: relative;
    display: block;
    width: fit-content;
    font-size: 18px;
    font-family: inherit;
    font-feature-settings: 'palt' on;
    letter-spacing: 0;
    line-height: 1.445;
    color: #fff;
    background: transparent;
    border: none;
    padding-right: 30px;
    margin: 0 0 17px auto;
    cursor: pointer;
  }

  @media (hover) {
    .c-shopReservation-popup__close:hover {
      opacity: 0.7;
    }
  }

  .c-shopReservation-popup__close:before {
    position: absolute;
    inset: 1px 0 0 auto;
    display: block;
    content: '';
    width: 26px;
    height: 1px;
    background: currentColor;
    margin: auto;
    rotate: 45deg;
  }

  .c-shopReservation-popup__close:after {
    position: absolute;
    inset: 1px 0 0 auto;
    display: block;
    content: '';
    width: 26px;
    height: 1px;
    background: currentColor;
    margin: auto;
    rotate: -45deg;
  }

  .c-shopReservation-popup__body {
    position: relative;
    width: 580px;
    background: #fff;
    border-radius: 1rem;
    box-sizing: border-box;
    padding: 52px 28px;
    margin: auto;
    z-index: 1;
  }

  .c-shopReservation-popup__head {
    font-size: 25px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.45;
    text-align: center;
    margin: -10px 0 25px;
  }

  .c-shopReservation-popup__head .name {
    color: var(--primary-color);
  }

  .c-shopReservation-popup__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px 18px;
  }

  .c-shopReservation-popup__list a {
    display: block;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.45;
    color: #fff;
    text-align: center;
    text-decoration: none;
    text-shadow: 0 0 18px var(--secondary-dark-color);
    background: var(--secondary-color);
    box-shadow: 0 0.2em 0 0 var(--secondary-dark-color);
    border-radius: 0.3em;
    padding: 38px;
  }

  .c-shopReservation-popup__list .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 140px;
    aspect-ratio: 1/1;
    border-radius: 16px;
    background-color: rgba(0, 0, 0, .1);
    background-repeat: no-repeat;
    background-position: center center;
    margin: 0 auto;
  }

  .c-shopReservation-popup__list .app {
    background-image: url('../img/icon/shop_logo.png');
    background-size: contain;
  }

  .c-shopReservation-popup__list .wait {
    background-image: url('../img/icon/ico_line_reservation.svg');
    background-size: 40%;
  }

  .c-shopReservation-popup__list .date {
    background-image: url('../img/icon/ico_date_reservation.svg');
    background-size: 60%;
  }

  .c-shopReservation-popup__list .telephone {
    background-image: url('../img/icon/ico_telephone.svg');
    background-size: 50%;
  }

  .c-shopReservation-popup__list .ttl {
    display: block;
    margin-top: 15px;
  }

  .c-shopReservation-popup__dial {
    text-align: center;
    padding-top: 25px;
    text-decoration: underline;
  }

  @media not all and (min-width: 768px) {
    .c-shopReservation-popup__list [data-click-reserve="epark"] {
      display: none;
    }
  }
  @media (min-width: 768px) {
    .c-shopReservation-popup__list [data-click-reserve="app"] {
      display: none !important;
    }
  }

  .c-shopReservation-popup__status {
    padding-top: 22px;
    text-align: center;
    font-weight: 700;
  }

  .c-shopReservation-popup__status .number {
    color: var(--primary-color);
    font-size: 25px;
  }

  .c-shopReservation-popup__reservable {
    text-align: center;
    font-size: 16px;
  }

  /* pc */
  @media (min-width: 768px) {
    .mc-shop__name .c-hoverLine--text {
      background-image: linear-gradient(currentColor, currentColor);
      color: #1c0f9d !important;
    }

    .mc-shop_map-popup .mc-shop_shop-name .c-hoverLine--text {
      background-image: linear-gradient(currentColor, currentColor);
      color: #1c0f9d !important;
    }
  }
  /* sp */
  @media not all and (min-width: 768px) {
    .mc-shop {
      border-radius: 2.66667vw;
      padding: 5.06667vw 4vw 8vw;
    }

    .mc-shop__head {
      padding-bottom: 3.73334vw;
    }

    .mc-shop__name {
      font-size: 4.26667vw;
      line-height: 1.4375;
    }

    .mc-shop__name .number {
      top: 0.8vw;
      width: 4.8vw;
      font-size: 3.2vw;
    }

    .mc-shop__name .number:after {
      inset: auto 0 -1.066667vw;
      border-top-width: 1.6vw;
      border-right-width: 0.8vw;
      border-left-width: 0.8vw;
    }

    .mc-shop__name .c-hoverLine {
      padding-left: 6.13334vw;
    }

    .mc-shop__name .c-hoverLine--text {
      color: #1c0f9d !important;
    }

    .mc-shop__details {
      padding-left: 0.266667vw;
      margin-top: 3.46667vw;
    }

    .mc-shop__distance {
      flex-shrink: 0;
      align-items: flex-start;
      padding-left: 3.73334vw;
    }

    .mc-shop__distance:before {
      width: 2.4vw;
      margin-top: 0.266667vw;
    }

    .mc-shop__distance .number {
      font-size: 4.8vw;
    }

    .mc-shop__distance .suffix {
      font-size: 4.26667vw;
      line-height: 1;
      margin-top: 1.066667vw;
    }

    .mc-shop__distance .caption {
      font-size: 2.83334vw;
      line-height: 1;
      padding-top: 1.6vw;
      margin-left: 1.066667vw;
    }

    .mc-shop__waiting {
      font-size: 2.83334vw;
      line-height: 1;
      margin-right: 0;
      margin-top: 1.73334vw;
      display: inline-block;
      padding-left: 1rem;
    }

    .mc-shop__waiting .number {
      font-size: 3.73334vw;
      margin-left: 1.6vw;
    }

    .mc-shop__waiting .caption {
      font-size: 2.83334vw;
      line-height: 1;
    }

    .mc-shop__access {
      font-size: 3.73334vw;
      line-height: 1.215;
      margin: 5.06667vw 0.266667vw 0;
    }

    .mc-shop__business_hour {
      font-size: 3.73334vw;
      padding-top: 4.8vw;
      margin-top: 5.86667vw;
    }

    .mc-shop__foot {
      padding-top: 6.66667vw;
      margin-top: 5.6vw;
    }

    .mc-shop__services {
      gap: 1.33334vw;
    }

    .mc-shop__services-item {
      font-size: 2.66667vw;
      border-radius: 5.33334vw;
      padding: 1.06667vw 2.13334vw 1.33334vw 1.86667vw;
    }

    .mc-shop__equipments {
      gap: 2.66667vw;
      margin-top: 4.266667vw;
    }

    .mc-shop__equipments-item {
      font-size: 3.2vw;
      line-height: 1;
      padding-left: 3.7334vw;
      margin: 0;
    }

    .mc-shop__equipments-item:before {
      top: 0.266667vw;
      width: 2.66667vw;
      border-width: 0.53334vw;
    }

    .mc-shop__reservation, .mc-shop__mobileOrder {
      font-size: 4.266667vw;
      line-height: 1.25;
      border-radius: 1.333334vw;
      padding: 3.733334vw 0 4.266667vw;
      margin-top: 7.46667vw;
    }

    .mc-shop_map-popup {
      width: 7.2vw;
      height: 7.2vw;
    }

    .mc-shop_map-popup::after {
      border-left-width: 1.06667vw;
      border-right-width: 1.06667vw;
      border-top-width: 2.13334vw;
    }

    .mc-shop_map-popup .icon {
      padding-bottom: 0.53334vw;
    }

    .mc-shop_map-popup .icon svg {
      height: 5.33334vw;
    }

    .mc-shop_map-popup .mc-shop_shop-name {
      font-size: 4.26667vw;
      padding-left: 6.13334vw;
    }

    .mc-shop_map-popup .mc-shop_shop-name .number {
      top: 0.8vw;
      width: 4.8vw;
      font-size: 3.2vw;
    }

    .mc-shop_map-popup .mc-shop_shop-name .number:after {
      inset: auto 0 -1.33334vw;
      border-top-width: 1.6vw;
      border-right-width: 0.8vw;
      border-left-width: 0.8vw;
    }

    .mc-shop_map-popup .mc-shop_shop-name .c-hoverLine {
      color: #1c0f9d !important;
    }

    .mc-shop_map-popup .info {
      padding-top: 1.866667vw;
      margin-top: 2.4vw;
    }

    .mc-shop_map-popup .info .caption {
      bottom: 0.533334vw;
      font-size: 3.2vw;
      margin-left: 1.066667vw;
    }

    .mc-shop_map-popup .distance {
      font-size: 4.266667vw;
      padding-left: 3.73334vw;
    }

    .mc-shop_map-popup .distance:before {
      width: 2.4vw;
    }

    .mc-shop_map-popup .waiting {
      font-size: 3.2vw;
    }

    .mc-shop_map-popup .waiting .number {
      top: 0.266667vw;
      font-size: 4.26667vw;
      margin: 0 0.53334vw 0 1.33334vw;
    }

    .mc-shop_address {
      font-size: 3.73334vw;
      line-height: 1.429;
      margin: 1.866667vw 0 -1.066667vw;
    }

    .mc-shop_reservation, .mc-shop_mobileOrder {
      height: 13.33334vw;
      font-size: 4.26667vw;
      border-radius: 1.333334vw;
      padding-bottom: 0.53334vw;
      margin: 4.533334vw 0.266667vw 0 0;
    }

    .mc-shop_map-popup.is_visible {
      width: 92vw;
      border-radius: 2.666667vw;
      padding: 2.66667vw 4vw 4vw;
    }

    .mc-shop_map-popup.is_visible .mc-shop_map-popup-close {
      top: -5.555555vw;
      right: -6.666667vw;
      width: 6.933334vw;
    }

    .mc-shop_map-popup.is_visible .mc-shop_map-popup-close:before {
      width: 4.266667vw;
      height: 0.266667vw;
    }

    .mc-shop_map-popup.is_visible .mc-shop_map-popup-close:after {
      width: 4.266667vw;
      height: 0.266667vw;
    }

    .c-shopReservation-popup {
      padding: 26.66667vw 4vw;
    }

    .c-shopReservation-popup__close {
      font-size: 3.2vw;
      line-height: 1.4167;
      padding-right: 4.8vw;
      margin-bottom: 3.2vw;
    }

    .c-shopReservation-popup__close:before {
      width: 3.733334vw;
    }

    .c-shopReservation-popup__close:after {
      width: 3.733334vw;
    }

    .c-shopReservation-popup__wrapper {
      width: 100%;
    }

    .c-shopReservation-popup__body {
      width: auto;
      border-radius: 1.333334vw;
      padding: 5.866667vw 4vw 7.733334vw 4.266667vw;
    }

    .c-shopReservation-popup__head {
      font-size: 4.266667vw;
      line-height: 1.4375;
      margin: 0 0 3.2vw;
    }

    .c-shopReservation-popup__list {
      gap: 2.666667vw;
    }

    .c-shopReservation-popup__list a {
      font-size: 4.8vw;
      line-height: 1.444445;
      border-radius: 1.333334vw;
      padding: 5.6vw 0 5.866667vw;
    }

    .c-shopReservation-popup__list .icon {
      width: 18.666667vw;
    }

    .c-shopReservation-popup__list .ttl {
      margin-top: 1.333334vw;
    }
  }

  /* page--shopDetail */

  #page--shopDetail .c-pageHeader--detail {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0 2rem;
  }

  .c-pageHeader--research {
    transition: opacity .35s cubic-bezier(.39, .575, .565, 1) 0s;
    flex-shrink: 0;
    display: block;
    width: fit-content;
    font-size: 1.6rem;
    letter-spacing: -0.05em;
    line-height: 1.25;
    text-decoration: none;
    background: #F7F7F7;
    border: 1px solid #E5E5E5;
    border-radius: 0.5rem;
    padding: 0.8rem 1.4rem 1rem;
    margin-top: -0.1rem;
    overflow: hidden;
  }

  @media (hover) {
    .c-pageHeader--research:hover {
      opacity: 0.7;
    }
  }
  /* sp */
  @media not all and (min-width: 768px) {
    #page--shopDetail .l-newsballoon {
      display: none;
    }

    #page--shopDetail .l-modalTrigger {
      display: none;
    }

    #page--shopDetail .l-bottomNav {
      display: none;
    }

    .c-pageHeader--research {
      display: none;
    }
  }

  /* c-shopDetailNews */

  .c-shopDetailNews {
    font-feature-settings: normal;
    background: #FFFAFA;
    border: 1px solid var(--primary-color);
    border-radius: 0.3em;
    padding: 22px 28px 28px 29px;
    margin: 0 auto;
  }

  .c-shopDetailNews dt {
    font-size: 18px;
    letter-spacing: 0;
    line-height: 1.612;
    font-weight: 700;
    color: var(--primary-color);
  }

  .c-shopDetailNews dd {
    font-size: 16px;
    letter-spacing: 0;
    line-height: 1.625;
    margin-top: 4px;
  }

  /* sp */
  @media not all and (min-width: 768px) {
    .c-shopDetailNews {
      border-radius: 1.333334vw;
      padding: 3.73334vw 4.8vw 5.86667vw 5.06667vw;
    }

    .c-shopDetailNews dt {
      font-size: 3.73334vw;
      line-height: 1.572;
    }

    .c-shopDetailNews dd {
      font-size: 3.2vw;
      line-height: 1.5834;
      margin-top: 1.6vw;
    }
  }

  /* p-shopDetail */
  .c-pageHeader {
    padding: 0 4vw 100px 4vw;
    max-width: 1224px;
    margin: 0 auto;
  }
  @media not all and (min-width: 768px) {
    .c-pageHeader {
      padding: 0 4vw 40px 4vw;
    }
  }

  .c-pageHeader--heading {
    font-size: 40px;
  }
  .c-pageHeader--detail {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0 2rem;
    margin-bottom: 50px;
    padding-bottom: 20px;
    position: relative;
  }
  .c-pageHeader--detail:after {
    background: rgba(0, 0, 0, .1);
    border: none;
    bottom: 0;
    content: " ";
    height: 1px;
    left: 0;
    position: absolute;
    width: 100%;
  }

  .p-shopDetail {
    padding-top: 100px;
    padding-bottom: 100px;
  }

  .p-shopDetail--heading {
    overflow-wrap: anywhere;
  }

  .p-shopDetail--wrapper {
    margin-right: auto;
    margin-left: auto;
  }

  .p-shopDetail--block {
    position: relative;
    display: grid;
    grid-template-columns: auto 75%;
    align-items: start;
    padding: 65px 0 90px;
  }

  .p-shopDetail--block:last-child {
    padding-bottom: 0;
  }

  .p-shopDetail--block:before {
    position: absolute;
    top: -1px;
    left: 0;
    display: block;
    content: '';
    width: 20px;
    height: 2px;
    background: var(--primary-color);
  }

  .p-shopDetail--block:after {
    position: absolute;
    inset: 0 0 auto 30px;
    display: block;
    content: '';
    height: 1px;
    background: rgba(0, 0, 0, 0.1);
  }

  .p-shopDetail--block dt {
    font-size: 30px;
    font-weight: 700;
    letter-spacing: -0.05em;
    line-height: 1.267;
    padding-bottom: 3px;
  }

  .p-shopDetail--block dd {
    font-size: 16px;
    font-feature-settings: normal;
    letter-spacing: 0;
    line-height: 1.625;
    padding-top: 4px;
  }

  .p-shopDetail--flex {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    margin-bottom: 20px;
  }

  .p-shopDetail--flex li {
    width: 100%;
    background: url(../img/icon/shop_circle.svg) left center no-repeat;
    padding: 0 0 0 22px;
  }

  .p-shopDetail--flex li.disabled {
    background: url(../img/icon/shop_cross.svg) left center no-repeat;
    color: #aaa;
  }

  .p-shopDetail--deliveries {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    font-size: 14px;
    text-decoration: underline;
    font-feature-settings: 'palt' on;
    letter-spacing: 0;
    line-height: 1.3;
    margin-top: 0.3rem;
    max-width: 660px;
  }

  .p-shopDetail--deliveries .icon {
    border: 1px solid #E5E5E5;
    border-radius: 0.8em;
    position: relative;
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 0.7rem;
  }

  .p-shopDetail--deliveries .icon img {
    max-width: 70%;
  }

  .p-shopDetail--imgs {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3rem 2.5rem;
  }

  .p-shopDetail--businessHour {
    strong {
      font-weight: normal;
    }
  }

  /* pc */
  @media (min-width: 768px) {
    .p-shopDetail--reservation {
      position: fixed;
      bottom: 20px;
      right: 20px;
      background: #f7f7f7;
      border-radius: 10px;
      z-index: 10000;
      padding: 16px 22px;
      display: flex;
      flex-flow: column;
      align-items: center;
      min-width: 660px;
      &.isNarrow {
        min-width: 460px;
      }
    }

    .p-shopDetail--reservationModal {
      display: none;
    }

    .p-shopDetail--mobile-order.underline {
      border-bottom: 1px solid #E5E5E5;
      padding-bottom: 20px;
      margin-bottom: 40px;
    }

    .p-shopDetail--mobile-order .c-buttonBracket {
      margin: 20px 0 !important;
      padding: 10px 0 !important;
      max-width: 300px;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 20px;
      border-radius: 0.3em;
      box-shadow: 0 0.3rem 0 0 var(--secondary-dark-color);
    }

    .p-shopDetail--reservation .c-buttonBracket,
    .p-shopDetail--reservation .c-buttonMobileOrder {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0 10px;
      height: 3vw;
      width: 100%;
      margin: 5px 0;
      padding: 0 16px;
      font-size: 20px;
      text-decoration: none;
      border-radius: 5px;
      box-shadow: 0 3px 0 0 var(--secondary-dark-color);
      text-shadow: 0 0 18px var(--secondary-dark-color);
    }

    .p-shopDetail--reservation__waiting {
      font-size: 13px;
      font-weight: 700;
    }

    .p-shopDetail--reservation__waiting .number {
      color: var(--primary-color);
      font-size: 16px;
    }

    .p-shopDetail--reservation__reservable {
      font-size: 12px;
    }
  }

  .p-shopDetail .c-searchNav {
    margin-top: 10rem;
  }

  .p-shopDetail--block .c-buttonBracket {
    margin-top: 3rem;
    box-shadow: 0 0.3rem 0 0 var(--secondary-dark-color);
    color: #fff;
  }

  .c-buttonBracket, .c-buttonMobileOrder {
    background: var(--secondary-color) !important;
    border-color: var(--secondary-color) !important;
    color: #fff;
  }

  .c-buttonBracket .c-bracketIcon:before,
  .c-buttonMobileOrder .c-bracketIcon:before {
    background: #fff;
  }

  .c-buttonBracket .c-bracketIcon:after,
  .c-buttonMobileOrder .c-bracketIcon:after {
    transform: scale(1);
  }

  .c-buttonMobileOrder .c-mobileOrderIcon--img {
    content: '';
    display: block;
    width: 2.6rem;
    height: 2.6rem;
    background-image: url('../img/icon/mobileOrder.svg');
    background-repeat: no-repeat;
    background-position: center center;
  }

  .c-buttonBracket .c-deliveryIcon--img {
    content: '';
    display: block;
    width: 2.6rem;
    height: 2.6rem;
    background-image: url('../img/icon/delivery.svg');
    background-repeat: no-repeat;
    background-position: center center;
  }

  .c-buttonBracket .c-bracketIcon--img,
  .c-buttonMobileOrder .c-bracketIcon--img {
    content: '';
    display: block;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 45em;
    background: #fff;
    background-image: url('../img/icon/circle_arrow.svg');
    background-repeat: no-repeat;
  }

  .p-shopDetail--text {
    margin: 1.7rem 0 0 -0.1rem;
  }

  /* pc */
  @media (min-width: 768px) {
    .p-shopDetail--wrapper {
      padding-right: 4vw;
      padding-left: 4vw;
      max-width: 1224px;
    }
  }
  /* sp */
  @media not all and (min-width: 768px) {
    .p-shopDetail {
      padding: 11.2vw 0 13.33334vw;
    }

    .p-shopDetail--wrapper {
      padding-right: 4vw;
      padding-left: 4vw;
    }

    .p-shopDetail--block {
      grid-template-columns: auto 73.9131%;
      padding: 3.73334vw 0 9.333334vw;
    }

    .p-shopDetail--mobile-order.underline {
      border-bottom: 1px solid #E5E5E5;
      padding-bottom: 20px;
      margin-bottom: 40px;
    }

    .p-shopDetail--mobile-order .c-buttonBracket {
      margin: 20px 0 !important;
      padding: 10px 0 !important;
      display: flex;
      justify-content: center;
      align-items: center;
      font-size: 20px;
      border-radius: 0.3em;
      box-shadow: 0 0.3rem 0 0 var(--secondary-dark-color);
    }

    .p-shopDetail--block:before {
      display: none;
    }

    .p-shopDetail--block:after {
      inset: 0 0 auto;
    }

    .p-shopDetail--block.--imgs {
      grid-template-columns: auto;
      gap: 2.66667vw;
    }

    .p-shopDetail--block.--takeout {
      grid-template-columns: auto;
      gap: 2.666667vw;
    }

    .p-shopDetail--block.--delivery {
      grid-template-columns: auto;
      gap: 2.666667vw;
      padding-bottom: 10.933334vw;
    }

    .p-shopDetail--block dt {
      font-size: 3.73334vw;
      letter-spacing: 0;
      line-height: 1.429;
      padding-bottom: 0;
    }

    .p-shopDetail--block dd {
      font-size: 3.73334vw;
      font-feature-settings: 'palt' on;
      line-height: 1.5;
      padding: 0;
    }

    .p-shopDetail--subTitle {
      font-size: 3.73334vw;
      font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Helvetica Neue", arial, meiryo, sans-serif;
      font-weight: 400;
      letter-spacing: 0;
      line-height: 1.5;
      background: transparent;
      padding: 0 0 0 0.266667vw;
      margin-top: 0;
    }

    .p-shopDetail--subTitle:before {
      display: none;
    }

    .p-shopDetail--subTitle:after {
      display: none;
    }

    .p-shopDetail--deliveries {
      grid-template-columns: repeat(2, 1fr);
      gap: 5.6vw 3.666667vw;
      font-size: 3.266667vw;
      margin: 0 0.2666667vw 0 0;
    }

    .p-shopDetail--deliveries .icon {
      aspect-ratio: 16/9;
      margin-bottom: 0.533334vw;
    }
    .p-shopDetail--deliveries .icon img {
      max-height: 80px;
    }

    .p-shopDetail--imgs {
      grid-template-columns: auto;
      gap: 5.333334vw;
    }

    .p-shopDetail--reservation {
      position: fixed;
      inset: auto 0 0;
      display: block;
      background: #F7F7F7;
      padding: 2.133334vw 4vw 5.333334vw;
      filter: drop-shadow(0 -2px 4px rgba(0, 0, 0, 0.1));
      z-index: 100000;
      bottom: 15vw;
    }

    .p-shopDetail--reservation__waiting {
      font-size: 3.733334vw;
      letter-spacing: 0;
      line-height: 1;
      text-align: center;
      margin-bottom: 2.4vw;
    }

    .p-shopDetail--reservation__waiting .number {
      font-size: 4.266667vw;
      font-weight: 700;
      letter-spacing: 0;
      color: var(--primary-color);
    }

    .p-shopDetail--reservation .c-buttonBracket,
    .p-shopDetail--reservation .c-buttonMobileOrder {
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 2.833334vw;
      text-decoration: none;
      padding: 0 2.466667vw;
      border-radius: 0.3em;
      box-shadow: 0 0.3rem 0 0 var(--secondary-dark-color);
    }

    .c-buttonBracket .c-bracketIcon--img,
    .c-buttonMobileOrder .c-bracketIcon--img {
      min-width: 1.6rem;
      min-height: 1.6rem;
      max-width: 1.6rem;
      max-height: 1.6rem;
    }

    .p-shopDetail--reservation__reservable {
      font-size: 1.5rem;
      padding-top: .5rem;
      text-align: center;
    }

    .p-shopDetail--reservationModal {
      transition: all .35s cubic-bezier(.39, .575, .565, 1) 0s;
      transition-property: opacity, visibility;
      position: fixed;
      inset: 0;
      display: grid;
      place-items: center;
      padding: 26.66667vw 4vw;
      z-index: 100005;
      overflow-y: auto;
      overscroll-behavior: none;
      opacity: 0;
      visibility: hidden;
    }

    .p-shopDetail--reservationModal.is-open {
      opacity: 1;
      visibility: visible;
    }

    .p-shopDetail--reservationModal:before {
      position: absolute;
      inset: -1px 0;
      display: block;
      content: '';
      background: rgba(0, 0, 0, 0.4);
      backdrop-filter: blur(2px);
      z-index: -1;
    }

    .p-shopDetail--reservationModal__wrapper {
      width: 100%;
    }

    .p-shopDetail--reservationModal__close {
      position: relative;
      display: block;
      width: fit-content;
      font-size: 3.2vw;
      font-family: inherit;
      font-feature-settings: 'palt' on;
      letter-spacing: 0;
      line-height: 1.4167;
      color: #fff;
      background: transparent;
      border: none;
      padding-right: 4.8vw;
      margin: 0 0 3.2vw auto;
      cursor: pointer;
    }

    .p-shopDetail--reservationModal__close:before {
      position: absolute;
      inset: 1px 0 0 auto;
      display: block;
      content: '';
      width: 3.733334vw;
      height: 1px;
      background: currentColor;
      margin: auto;
      rotate: 45deg;
    }

    .p-shopDetail--reservationModal__close:after {
      position: absolute;
      inset: 1px 0 0 auto;
      display: block;
      content: '';
      width: 3.733334vw;
      height: 1px;
      background: currentColor;
      margin: auto;
      rotate: -45deg;
    }

    .p-shopDetail--reservationModal__body {
      position: relative;
      background: #fff;
      border-radius: 1.333334vw;
      padding: 5.866667vw 4vw 7.733334vw 4.266667vw;
      z-index: 1;
    }

    .p-shopDetail--reservationModal__title {
      font-size: 4.266667vw;
      font-weight: 700;
      letter-spacing: 0;
      line-height: 1.4375;
      text-align: center;
      margin: 0 0 3.2vw;
    }

    .p-shopDetail--reservationModal__title .name {
      color: var(--primary-color);
    }

    .p-shopDetail--reservationModal__items {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 2.666667vw;
    }

    .p-shopDetail--reservationModal__items a {
      display: block;
      font-size: 4.8vw;
      font-weight: 700;
      letter-spacing: 0;
      line-height: 1.444445;
      color: #fff;
      text-align: center;
      text-decoration: none;
      background: var(--secondary-color);
      border-radius: 1.333334vw;
      box-shadow: 0 0.3rem 0 0 var(--secondary-dark-color);
      padding: 5.6vw 0 5.866667vw;
    }

    .p-shopDetail--reservationModal__items .icon {
      display: block;
      width: 18.666667vw;
      aspect-ratio: 1/1;
      background-repeat: no-repeat;
      background-size: contain;
      margin: 0 auto;
    }

    .p-shopDetail--reservationModal__items .app {
      background-image: url('../img/icon/shop_logo.png');
    }

    .p-shopDetail--reservationModal__items .wait {
      background-image: url('../img/icon/shop_wait.png');
    }

    .p-shopDetail--reservationModal__items .date {
      background-image: url('../img/icon/shop_date.png');
    }

    .p-shopDetail--reservationModal__items .telephone {
      background-image: url('../img/icon/ico_telephone.svg');
    }

    .p-shopDetail--reservationModal__items .ttl {
      display: block;
      margin-top: 1.333334vw;
    }

    .p-shopDetail .c-searchNav {
      padding-bottom: 0;
      margin-top: 10.66667vw;
    }

    .p-shopDetail .c-recommendMenu {
      margin-top: 13.33334vw;
    }

    .p-shopDetail--block .c-buttonBracket {
      margin-top: 3.466667vw;
    }

    .c-buttonBracket,
    .c-buttonMobileOrder {
      width: 100%;
      height: 13.33334vw;
      font-size: 4.266667vw;
    }

    .c-buttonBracket .c-bracketIcon--img {
      background-image: url('../img/icon/circle_arrow.svg');
      width: 4.2666666667vw;
      height: 4.2666666667vw;
      z-index: 1;
    }

    .p-shopDetail--text {
      margin: 2.4vw 0 0 0.2666667vw;
    }
  }
}

.c-button-group {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  width: 100%;
}

#global-footer {
  z-index: 0;
}