@charset "UTF-8";

html:has(#wpadminbar) {
  margin-top: 0 !important;
}

body {
  font-family: "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "ヒラギノ角ゴシック", "Hiragino Sans", "Yu Gothic UI", sans-serif;
  margin: 0;
  padding: 0;
  line-height: 160%;
  vertical-align: top;
  text-decoration: none;
  list-style: none;
  box-sizing: border-box;
}

body * {
  margin: 0;
  padding: 0;
  line-height: 160%;
  vertical-align: top;
  text-decoration: none;
  list-style: none;
  box-sizing: border-box;
}

body img {
  width: 100%;
}

.lp {
  width: min(100%, 960px);
  margin: 0 auto;
  padding: 0;
}

.lp .lp_image_block {
  margin-top: clamp(24px, calc(60 /960 * 100vw), 60px);
}

.lp .mv_landmark {
  margin-top: min(calc(20 /390 * 100vw), 40px);
}

.lp .lp_lead_block {
  margin-top: min(calc(48 /390 * 100vw), 120px);
}

.lp .lp_image_block:nth-child(1) {
  margin-top: 0;
}

.lp .has_padding {
  padding-inline: clamp(20px, calc(60 /960 * 100vw), 60px);
}

.lp_line_btn_wrap {
  margin-top: min(calc(20 /390 * 100vw), 40px);
  padding-inline: clamp(20px, calc(60/960 * 100vw), 60px);
}

.lp .cta_add_line a {
  display: block;
  width: min(calc(618/725*100%), 620px);
  margin: 0 auto;
}

.lp .lp_contents {
  margin-top: clamp(80px, calc(180 /960 * 100%), 200px);
}

/* ============================================ */
/* =========== page/single 共通 =============== */
/* ============================================ */
.lp_lead_text.showinRest_container {
  padding-inline: clamp(20px, calc(60 / 960 * 100vw), 60px);
}

.showinRest_container p,
.showinRest_container li {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  margin-block: .8em;
}


.showinRest_container h2 {
  font-size: 21px;
  font-weight: 900;
  line-height: 1.45;
  margin-block: .8em;
}

.showinRest_container h3 {
  font-size: 18px;
  font-weight: 900;
  line-height: 1.45;
  margin-block: .8em;
  padding-left: 1.2em;
  border-left: solid 1px #000;
}

.showinRest_container h3+p {
  margin-top: 10px;
}

.showinRest_container h4+p {
  margin-top: 8px;
}

.showinRest_container h4 {
  font-size: 16px;
  font-weight: 700;
  margin-block: .8em;
  opacity: 0.45;
  letter-spacing: 0.05em;
}

.showinRest_container h4::after {
  content: "";
  display: block;
  width: min(calc(30 /390 * 100vw), 60px);
  height: 2px;
  border-radius: 50%;
  background-color: #000;
  opacity: .45;
  margin-top: .65em;
}

.showinRest_container h5 {
  font-size: 15px;
  font-weight: 700;
  margin-block: .8em;
  letter-spacing: 0.05em;
}

.showinRest_container ol,
.showinRest_container ul {
  margin-top: 8px;
}

.showinRest_container ol li:not(ul li) {
  list-style: decimal;
  list-style-position: inside;
  margin-top: 16px;
  text-indent: -1em;
  padding-left: 1em;
}

.showinRest_container ol ol {
  padding-left: 0.5em;
}

.showinRest_container ol ol li:not(ul li) {
  list-style: decimal-leading-zero;
  list-style-position: inside;
  text-indent: -1em;
  padding-left: 1em;
}

.showinRest_container ul {
  padding-left: 0.5em;
}

.showinRest_container ul li {
  list-style: disc;
  list-style-position: inside;
  margin-top: 5px;
  text-indent: -1.45em;
  padding-left: 1em;
  line-height: 1.6;
}

.showinRest_container .caption,
.showinRest_container span,
.showinRest_container em {
  display: inline-block;
  font-size: 80%;
  opacity: 0.8;
  letter-spacing: 0.075em;
  line-height: 1.5;
  margin-block: 0.65em;
  font-style: normal;
  font-weight: 900;
}

.showinRest_container a {
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}

@media screen and (min-width: 960px) {

  .showinRest_container p,
  .showinRest_container li {
    font-size: 18px;
  }

  .showinRest_container {
    max-width: 960px;
    margin-inline: auto;
  }

  .showinRest_container article {
    margin-top: 80px;
  }

  .showinRest_container h3 {
    font-size: 20px;
  }

  .showinRest_container h4 {
    font-size: 18px;
  }
}

/* ========== ========= ========== */
/* ========== 店舗  情報 ========== */
/* ========== ========= ========== */

.lp_shopinfo_block {
  width: min(calc(100% - (120/960*100%)), 960px);
  margin: min(calc(150/960*100vw), 150px) auto 0;
  padding-bottom: 96px;
  font-size: clamp(12px, calc(22/960*100vw), 24px);
  font-weight: 900;
}

.flex_title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.flex_title .logo {
  width: min(calc(235/730*100%));
}

.flex_title .name {
  font-size: clamp(18px, calc(22/390*100vw), 40px);
  text-align: center;
}

.flex_title .info {
  margin-top: clamp(32px, calc(54/960*100vw), 56px);
}

.shop_image {
  position: relative;
  width: min(100%, 960px);
  margin: clamp(20px, calc(36/960*100vw), 44px) auto 0;
  aspect-ratio: 912/645;
  overflow: hidden;
}

.shop_image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: top center;
}

.image_caption {
  position: absolute;
  bottom: 2px;
  right: 2px;
  text-align: right;
  font-size: 12px;
  color: #000;
}

.shop_detail {
  font-size: clamp(12px, calc(14/390*100vw), 18px);
  font-weight: 900;
  margin-top: clamp(20px, calc(36/960*100vw), 44px);
}

.shop_detail .landmark {
  font-size: clamp(16px, calc(20/390*100vw), 36px);
  text-align: center;
  line-height: 1.45;
  margin-bottom: clamp(8px, calc(10/390*100vw), 32px);
}

.shop_detail a {
  color: #000;
  text-decoration: underline;
  text-underline-offset: 4px;
}

.shop_detail a.solid_btn {
  padding: 10px 24px;
  display: flex;
  align-items: center;
  width: fit-content;
  margin: 24px auto 0;
  border: solid 1px #000;
  border-radius: 6px;
  line-height: 1.25;
}

.shop_detail a.arrow::after {
  content: "";
  display: block;
  border-left: solid 1px #000;
  margin-left: 16px;
  width: calc(17px + 16px);
  aspect-ratio: 1/1;
  background: url(/_sys_/wp-content/themes/fst/assets/img/lp/btn_arrow_bk.svg) no-repeat right center/ calc(100% - 16px) auto;
}

.shop_detail .embed_map {
  aspect-ratio: 320/225;
  margin-top: min(calc(24/390*100vw), 40px);
}

.shop_detail .embed_map .map_frame {
  height: 100%;
}

/* ========== ========= ========== */
/* ========== lp:footer ========== */
/* ========== ========= ========== */
footer {
  font-size: clamp(12px, calc(22 / 960 * 100vw), 24px);
  font-weight: 900;
  padding-inline: min(calc(20 /390 * 100vw), 60px);
  padding-bottom: 96px;
}

footer .inquiry_info {
  padding-top: clamp(32px, calc(60/960*100vw), 60px);
  border-top: solid 1px #000;
  font-weight: 600;
}

footer .inquiry_info .title {
  display: block;
  text-align: center;
  font-weight: 900;
  font-size: clamp(22px, calc(40/960*100vw), 40px);
}

footer .inquiry_info a {
  color: #000;
  text-decoration: underline;
  text-underline-offset: 4px;
}

footer .copyrights {
  margin-top: min(5.2083333333vw, 50px);
}

.fixed_btn {
  position: fixed;
  width: min(calc(195/960*100%), 195px);
  right: 10px;
  bottom: 10px;
}

.lp .cnt0301 {
  margin-top: clamp(80px, calc(195/960*100vw), 195px);
}

.lp .cnt0302 {
  margin-top: clamp(80px, calc(210/960*100vw), 210px);
}

/* add 20260515 */
@media screen and (max-width: 959px) {
  .is-salebanner {
    padding-top: 0;
  }

  .is-salebanner .salebanner {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
  }

  .w100 {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
  }

  .p20 {
    padding: 20px;
  }

  .pl40 {
    padding-left: 40px;
  }

  .pr40 {
    padding-right: 40px;
  }
}

@media screen and (min-width: 960px) {

  .shop_detail .info {
    width: fit-content;
    margin-inline: auto;
  }
}