@charset "UTF-8";
.btn {
  position: relative;
  display: inline-block;
  background-color: #ED0000;
  border: 2px solid #ED0000;
  box-sizing: border-box;
  padding: 1em 2em;
  cursor: pointer;
  transition: all 0.3s;
  color: white;
  text-decoration: none !important;
  border-radius: 0.5em;
  max-width: 450px;
  width: 100%;
  text-align: center;
  box-shadow: 0 5px 0px 0 rgb(157, 0, 0);
}
.btn.float:hover {
  background-color: black;
  color: white;
  box-shadow: 5px 5px 10px 0 rgba(0, 0, 0, 0.5);
}
.btn.filled:hover {
  background-color: white;
  color: #ED0000;
  box-shadow: none;
}
.btn.letter-spacing:hover {
  background-color: black;
  letter-spacing: 3px;
  color: white;
}
.btn.shadow {
  box-shadow: none;
}
.btn.shadow:hover {
  transform: translate(-2.5px, -2.5px);
  box-shadow: 5px 5px 0 0 black;
}
.btn.solid {
  box-shadow: 2px 2px 0 0 black;
  border-radius: 7px;
}
.btn.solid:hover {
  transform: translate(2px, 2px);
  box-shadow: none;
}
.btn.slide-bg {
  position: relative;
  overflow: hidden;
  z-index: 1;
}
.btn.slide-bg::before {
  content: "";
  display: inline-block;
  width: 100%;
  height: 100%;
  background-color: black;
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(-100%);
  transition: transform 0.3s;
  z-index: -1;
}
.btn.slide-bg:hover {
  color: white;
}
.btn.slide-bg:hover::before {
  transform: none;
}

.btn.blue {
  background-color: #389696;
  border: 1px solid #389696;
}

.btn-cubic {
  position: relative;
  display: inline-block;
  transform-style: preserve-3d;
  perspective: 300px;
  width: 150px;
  height: 50px;
  margin: 0 auto;
  cursor: pointer;
  font-weight: 600;
}
.btn-cubic span {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 1px solid black;
  box-sizing: border-box;
  line-height: 48px;
  text-align: center;
  transition: all 0.3s;
  transform-origin: center center -25px;
  color: black;
}
.btn-cubic .hovering {
  background-color: black;
  color: white;
  transform: rotateX(90deg);
}
.btn-cubic .default {
  background-color: white;
  color: black;
  transform: rotateX(0);
}
.btn-cubic:hover .hovering {
  transform: rotateX(0);
}
.btn-cubic:hover .default {
  transform: rotateX(-90deg);
}

i {
  font-size: 1em;
  padding-right: 0.5em;
}

body {
  font-family: "Noto Sans JP", system-ui;
  background-color: #FFFCDB;
}

.sans-h, .l-tokuten .c-lead_tokuten, .l-info .c-title_sub, .l-cta .c-title_cta {
  font-family: "Noto Sans JP", system-ui;
  font-weight: 700;
}

.sans-b, .l-faq .faq_q {
  font-family: "Noto Sans JP", system-ui;
  font-weight: 600;
}

.sans-m {
  font-family: "Noto Sans JP", system-ui;
  font-weight: 400;
}

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

.mb-sm {
  margin-bottom: clamp(2rem, 10vw, 6rem);
}

.mb-lg {
  margin-bottom: clamp(3rem, 10vw, 12rem);
}

.content-width, .l-mv_inner, .l-footer_inner, .l-cta, .l-faq,
.l-exhibition,
.l-shopinfo, .l-tokuten,
.l-info {
  width: 90%;
  margin: 0 auto;
  max-width: 920px;
}

.content-maxwidth, header .l-header, main, .l-footer {
  width: 90%;
  margin: 0 auto;
  max-width: 1080px;
}
@media screen and (max-width: 799px) {
  .content-maxwidth, header .l-header, main, .l-footer {
    width: 100%;
  }
}

.font-16, .l-shopinfo .c-txt_shopinfo, .l-shopinfo .p-block_staff {
  font-size: clamp(0.75rem, 0.636rem + 0.57vw, 1rem);
}
@media screen and (max-width: 479px) {
  .font-16, .l-shopinfo .c-txt_shopinfo, .l-shopinfo .p-block_staff {
    line-height: 1.7em;
  }
}

.font-18, .l-faq .faq_q, .l-faq .faq_a, .l-exhibition .p-list_check li, .l-shopinfo .c-name_store, .p-block-fixed-menu .c-item-fixed-menu a, .c-lead {
  font-size: clamp(0.75rem, 0.58rem + 0.85vw, 1.125rem);
}
@media screen and (max-width: 479px) {
  .font-18, .l-faq .faq_q, .l-faq .faq_a, .l-exhibition .p-list_check li, .l-shopinfo .c-name_store, .p-block-fixed-menu .c-item-fixed-menu a, .c-lead {
    line-height: 1.7em;
  }
}

.font-22 {
  font-size: clamp(0.75rem, 0.466rem + 1.42vw, 1.375rem);
}
@media screen and (max-width: 479px) {
  .font-22 {
    line-height: 1.7em;
  }
}

.font-26 {
  font-size: clamp(0.875rem, 0.534rem + 1.7vw, 1.625rem);
}
@media screen and (max-width: 479px) {
  .font-26 {
    line-height: 1.7em;
  }
}

.font-28, .l-tokuten .c-lead_tokuten, .l-info .c-title_sub, .l-cta .c-title_cta, .p-title_h2_dotline {
  font-size: clamp(1rem, 0.659rem + 1.7vw, 1.75rem);
}
@media screen and (max-width: 479px) {
  .font-28, .l-tokuten .c-lead_tokuten, .l-info .c-title_sub, .l-cta .c-title_cta, .p-title_h2_dotline {
    line-height: 1.7em;
  }
}

.font-32, .p-title_h2 {
  font-size: clamp(1rem, 0.545rem + 2.27vw, 2rem);
}
@media screen and (max-width: 479px) {
  .font-32, .p-title_h2 {
    line-height: 1.7em;
  }
}

.font-36 {
  font-size: clamp(1rem, 0.487rem + 2.56vw, 2.25rem);
}
@media screen and (max-width: 479px) {
  .font-36 {
    line-height: 1.7em;
  }
}

.font-44 {
  font-size: clamp(1rem, 0.432rem + 2.84vw, 2.25rem);
}
@media screen and (max-width: 479px) {
  .font-44 {
    line-height: 1.7em;
  }
}

ul {
  padding: 0;
}

main {
  padding-bottom: 5vh;
}

.l-tokuten,
.l-info {
  background-color: white;
  border-radius: clamp(20px, 4vw, 40px);
  margin-bottom: 5%;
}
.l-tokuten_inner,
.l-info_inner {
  max-width: 700px;
  width: 90%;
  margin: 0 auto;
  padding: 5% 0;
  text-align: center;
}
.l-tokuten_inner .c-img_tokuten,
.l-info_inner .c-img_tokuten {
  width: 100%;
}

.l-faq,
.l-exhibition,
.l-shopinfo {
  background-color: white;
  border-radius: clamp(20px, 4vw, 40px);
  padding: 5% 0;
  margin-bottom: 5%;
}
.l-faq_inner,
.l-exhibition_inner,
.l-shopinfo_inner {
  max-width: 780px;
  width: 90%;
  margin: 0 auto;
  text-align: center;
}
@media screen and (max-width: 479px) {
  .l-faq_inner,
  .l-exhibition_inner,
  .l-shopinfo_inner {
    text-align: left;
  }
}

.l-cta {
  background-color: #F5733C;
  border-radius: clamp(20px, 4vw, 40px);
  padding: 5% 0;
  margin-bottom: 5%;
}
.l-cta_inner {
  width: 90%;
  margin: 0 auto;
}

.p-title_h2 {
  border-radius: clamp(20px, 4vw, 40px) clamp(20px, 4vw, 40px) 0 0;
  color: white;
  padding: 0.5em 0;
  text-align: center;
}

.p-title_h2.red {
  background-color: #ED0000;
}

.p-title_h2.green {
  background-color: #559869;
}

.p-title_h2_dotline {
  position: relative;
  z-index: 0;
  text-align: center;
  line-height: 1.5;
  background-color: white;
  margin-bottom: 5%;
}
.p-title_h2_dotline::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 1em;
  background-image: radial-gradient(#FFCB1E 30%, transparent 30%);
  background-size: 0.3rem 0.3rem;
  background-repeat: repeat;
  z-index: -1;
}
.p-title_h2_dotline > span {
  position: relative;
  z-index: 1;
  display: inline-block;
  padding: 0 1em;
  background: white;
}

.c-lead {
  margin: 2em 0;
}

header .l-header {
  background-color: white;
  padding-top: 2%;
  padding-bottom: 1%;
}
header .l-header_inner {
  width: 90%;
  margin: 0 auto;
}
header .l-header_inner img {
  width: clamp(300px, 50vw, 420px);
}

main {
  background-color: #FFCB1E;
}

.l-mv {
  margin-bottom: 5%;
}
.l-mv .p-block_illust {
  background-color: white;
}
.p-btn_mv {
  margin-top: 1rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1em;
}

.l-mv_photo {
  margin-bottom: 5%;
}

.l-tokuten .c-lead_tokuten {
  margin-top: 1em;
}

.l-info .p-list_merit {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.l-info .c-title_sub {
  color: #559869;
  margin-bottom: 1em;
}

.l-faq .p-block_faq {
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 2em;
}
@media screen and (max-width: 479px) {
  .l-faq .p-block_faq {
    gap: 1em;
  }
}
.l-faq .faq_item {
  list-style: none;
}
.l-faq .faq_q {
  position: relative;
  padding-left: 2.5em;
}
.l-faq .faq_q::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 1.8em;
  height: 1.8em;
  background-image: url(../images/icon_question.png);
  background-size: contain;
  background-repeat: no-repeat;
}
.l-faq .faq_q::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  width: 1em;
  height: 1em;
  background-image: url(../images/icon_arrow.png);
  background-size: contain;
  background-repeat: no-repeat;
  transition: transform 0.3s;
}
.l-faq details[open] > .faq_q::after {
  background-image: url(../images/icon_arrow_gaku.png);
}
.l-faq .faq_a {
  margin-top: 1em;
  padding: 0 2.6em;
}

details summary {
  list-style: none;
}

details summary::-webkit-details-marker {
  display: none;
}

details summary {
  cursor: pointer;
}

.l-exhibition .c-img_exhibition {
  max-width: 700px;
  width: 100%;
  margin: 0 auto;
}
.l-exhibition .p-list_check {
  display: grid;
  justify-content: space-around;
  list-style: none;
  text-align: left;
  margin-bottom: 3em;
}
.l-exhibition .p-list_check li {
  position: relative;
  padding-left: 1.8em;
  margin-bottom: 0.25em;
}
.l-exhibition .p-list_check li::before {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%);
  width: 1.25em;
  height: 1.25em;
  background-image: url(../images/icon_check.png);
  background-size: contain;
  background-repeat: no-repeat;
}

.l-shopinfo .p-list_shop {
  display: flex;
  justify-content: center;
  gap: 2rem;
  list-style: none;
  margin-bottom: 3rem;
}
@media screen and (max-width: 479px) {
  .l-shopinfo .p-list_shop {
    gap: 1rem;
  }
}
.l-shopinfo .p-list_shop li {
  flex-basis: 50%;
}
.l-shopinfo .c-name_store {
  margin-bottom: 1em;
}
.l-shopinfo .c-txt_shopinfo {
  text-align: left;
  margin: 1em 0;
}
.l-shopinfo .c-img_shop {
  width: 100%;
}
.l-shopinfo .p-block_staff {
  display: flex;
  align-items: flex-end;
  gap: 1em;
  text-align: left;
}
@media screen and (max-width: 479px) {
  .l-shopinfo .p-block_staff {
    flex-direction: column;
    align-items: flex-start;
  }
}
.l-shopinfo .c-img_staff {
  width: 50%;
}

/* 電話番号PCではリンク無効化 */
@media (hover: hover) and (pointer: fine) {
  .tel-link {
    pointer-events: none; /* クリックできない */
    color: inherit;
    text-decoration: none;
  }
}
.l-cta .c-title_cta {
  color: white;
  text-align: center;
  margin-bottom: 1em;
}
.l-cta .btn {
  max-width: 400px;
}

.l-footer {
  background-color: #FFCB1E;
  text-align: center;
  padding-bottom: 2%;
}
.l-footer_inner a {
  display: inline-block;
  line-height: 0;
}
.l-footer_inner img {
  width: clamp(300px, 50vw, 500px);
}
.l-footer .c-txt_copyright {
  font-size: 12px;
  color: black;
  margin-top: 1em;
}

.p-block-fixed-menu_wrap {
  display: none;
}
@media screen and (max-width: 799px) {
  .p-block-fixed-menu_wrap {
    display: block;
  }
}

.p-block-fixed-menu {
  position: fixed;
  width: 100%;
  bottom: 0;
  z-index: 99;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  list-style: none;
  margin: 0;
  left: 0;
}
.p-block-fixed-menu .c-item-fixed-menu {
  text-align: center;
  background-color: #ED0000;
  border-right: 3px solid black;
}
.p-block-fixed-menu .c-item-fixed-menu:last-child {
  border-right: none;
}
.p-block-fixed-menu .c-item-fixed-menu a {
  font-weight: bold;
  color: white;
  text-decoration: none;
  display: block;
  padding: 1rem;
}

html {
  scroll-behavior: smooth;
}
html dd {
  margin: 0;
}

h2,
h4,
h3,
h5,
h6 {
  margin: 0;
}/*# sourceMappingURL=style.css.map */