:root {
  --global-color-01: #ca0336;
  --global-color-02: #333;
  --global-color-03: #ccc;

  --color-01: #191818;
  --color-02: #2d2d2d;
  --color-03: #f2f2f6;

  --shop-01: #c91337;
  --shop-02: #d81617;
  --shop-03: #604338;
  --shop-04: #1ca43c;
  --shop-05: #161573;

  --leading-trim: calc((1em - 1lh) / 2);
  --ease: cubic-bezier(.36, 1.13, .7, .97);
  --nav: 56px;
}

@media (max-width: 767.98px) {
  :root {
    --max: 394;
    --gap: calc(17 / var(--max) * 100vw);
  }
}

@media (min-width: 768px) {
  :root {
    --max: 850;
    --gap: calc(20 / var(--max) * 100vw);
  }
}

/* reset and set
-------------------------------------------------------------------------------- */
*,
*::before,
*::after {
  box-sizing: border-box;
}

:where(html) {
  block-size: 100%;
  scroll-behavior: smooth;
}

:where(body) {
  overflow-x: hidden;
  overflow-y: scroll;
  display: flex;
  flex-direction: column;
  inline-size: 100%;
  block-size: 100%;
  margin: 0;
  font-family: "SF Pro JP", "SF Pro Text", "SF Pro Icons", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro W3", メイリオ, Meiryo, "ＭＳ Ｐゴシック", "Helvetica Neue", Helvetica, Arial, sans-serif;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: none;
  text-size-adjust: 100%;
  color: var(--color-01);
  background-color: #fff;
  -webkit-tap-highlight-color: transparent;
}

:where(main) {
  padding-block-start: var(--nav);
  font-size: 16px;
  font-feature-settings: "palt" 1;
}

:where(p, h1, h2, h3, h4, h5, h6) {
  margin: 0;
  font-size: 100%;
  overflow-wrap: break-word;
}

:where(a) {
  text-decoration: none;
  word-break: break-all;
  cursor: pointer;
  color: inherit;
}

:where(a, button, [tabindex]) {
  touch-action: manipulation;
}

:where(dl, dd) {
  margin: 0;
}

:where(button) {
  padding: 0;
  font: inherit;
  cursor: pointer;
  color: inherit;
  border: none;
  background-color: #0000;
  appearance: none;
}

/* :where(img, picture, svg) {
  display: block;
  max-inline-size: 100%;
} */

:where(img, svg) {
  block-size: auto;
  border: none;
  object-fit: cover;
}

:where(svg:not([fill])) {
  fill: currentColor;
}

:focus:not(:focus-visible) {
  outline: none;
}





/* Minimize non-essential motion
-------------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}





/* modules
-------------------------------------------------------------------------------- */
/* screen reader */
.screen-reader {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  inline-size: 1px;
  block-size: 1px;
  word-wrap: normal;
}

/* container */
.container {
  inline-size: calc(100% - var(--gap) * 2);
  margin-inline: auto;
}

/* heading */
.m-heading {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 64px;
  padding: 10px;
  font-size: 16px;
}

/* hover effects */
@media (any-hover: hover) {
  [data-hover="opacity"] {
    transition: opacity .25s;
  }

  [data-hover="opacity"]:is(:hover, :focus-visible) {
    outline: none;
    opacity: .5;
  }
}





/* header
-------------------------------------------------------------------------------- */
.g-header {
  position: fixed;
  inset-block-start: 0;
  inset-inline-start: 0;
  z-index: 10;
  inline-size: 100vw;
  block-size: var(--nav);
  border-block-end: 2px solid var(--global-color-01);
}

.g-header_wrap {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  inline-size: 100%;
  block-size: 100%;
  margin: auto;
  background-color: #fff;
}

.g-header_btn {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 16px;
  z-index: 11;
  inline-size: 36px;
  block-size: 36px;
  margin-block: auto;
  border-radius: 50%;
}

.g-header_btn>span {
  position: absolute;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  inline-size: 20px;
  block-size: 2px;
  background-color: var(--global-color-02);
  transition-property: inset-block-start, transform;
  transition-duration: .25s;
  transform: translate(-50%, -50%);
}

.g-header_btn>span:nth-of-type(1) {
  inset-block-start: calc(50% - 8px);
}

.g-header_btn>span:nth-of-type(3) {
  inset-block-start: calc(50% + 8px);
}

.g-header_btn.is-open>span:nth-of-type(1) {
  inset-block-start: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
}

.g-header_btn.is-open>span:nth-of-type(2) {
  transform: translate(-50%, -50%) scaleX(0);
}

.g-header_btn.is-open>span:nth-of-type(3) {
  inset-block-start: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.g-header_overlay {
  position: fixed;
  inset: 0;
  inline-size: 0;
  block-size: 100%;
  background-color: rgba(0, 0, 0, .28);
  transition-property: inline-size, opacity;
  transition-duration: 0s, .5s;
  transition-delay: .5s, 0s;
  opacity: 0;
}

.g-header_overlay.is-open {
  inline-size: 100%;
  transition-delay: 0s, 0s;
  opacity: 1;
}

.g-nav {
  position: fixed;
  inset-block: 0;
  inset-inline-start: 0;
  z-index: 10;
  visibility: hidden;
  inline-size: 81.5385%;
  max-inline-size: 375px;
  padding: var(--nav) 0;
  font-weight: 700;
  background-color: #fff;
  transition-property: visibility, transform;
  transition-duration: 0s, .5s;
  transition-timing-function: linear, var(--ease);
  transition-delay: .5s, 0s;
  transform: translate3d(-100%, 0, 0);
}

.g-nav.is-open {
  visibility: visible;
  transition-delay: 0s, 0s;
  transform: translate3d(0, 0, 0);
}

.g-nav_wrap {
  overflow-y: auto;
  max-inline-size: 390px;
  block-size: 100%;
  margin: auto;
  padding: 10px 10px 0;
}

.g-nav {
  font-size: 14px;
}

.g-nav_link {
  display: block;
  padding: 20px 20px 20px 34px;
  font-size: 16px;
}

.g-nav_link+.g-nav_link {
  border-top: 1px solid var(--global-color-03);
}

.g-nav_link.store,
.g-nav_link.flyer {
  background-position: 0 50%;
  background-repeat: no-repeat;
}

.g-nav_link.store {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 22 22'%3E%3Cpath fill='%23ca0336' d='M2.83 2.79c3.5-3.5 9.16-3.5 12.66 0a8.94 8.94 0 0 1 2.62 6.36c0 1.63-.45 3.23-1.29 4.63l4.34 4.35c.84.85.84 2.22 0 3.07-.84.84-2.2.85-3.04.01l-.01-.01-4.34-4.35A8.948 8.948 0 0 1 .21 9.15c0-2.38.94-4.67 2.62-6.36Zm2.45 10.26a5.501 5.501 0 0 0 7.79-.02 5.501 5.501 0 0 0-.02-7.79c-2.16-2.15-5.64-2.14-7.79.02s-2.14 5.64.02 7.79Z'/%3E%3C/svg%3E%0A");
  background-size: 22px;
}

.g-nav_link.flyer {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23ca0336'%3E%3Cpath d='M23.1.99v22.03c0 .32-.26.58-.58.58H1.48a.58.58 0 0 1-.58-.58V.99c0-.32.26-.58.58-.58h21.05c.32 0 .58.26.58.58Zm-1.15 21.45V1.56H2.05v20.88h19.89Z' class='cls-1'/%3E%3Cpath d='M13.02 4.34H4.17a.58.58 0 0 1 0-1.16h8.85a.58.58 0 0 1 0 1.16ZM19.41 12.72H4.12a.58.58 0 0 1-.58-.58V6.66c0-.32.26-.58.58-.58h15.29c.32 0 .58.26.58.58v5.48c0 .32-.26.58-.58.58ZM4.69 11.57h14.14V7.25H4.69v4.32ZM10.8 14.21v6.1c0 .32-.26.58-.58.58H4.11a.58.58 0 0 1-.58-.58v-6.1c0-.32.26-.58.58-.58h6.11c.32 0 .58.26.58.58Zm-1.15 5.53v-4.95H4.7v4.95h4.95ZM19.57 20.87h-7.26a.58.58 0 0 1-.58-.58v-6.11c0-.32.26-.58.58-.58h7.26c.32 0 .58.26.58.58v6.11c0 .32-.26.58-.58.58Zm-6.68-1.15H19v-4.95h-6.11v4.95Z' class='cls-1'/%3E%3C/g%3E%3C/svg%3E%0A");
  background-size: 24px;
}

.g-nav_list {
  margin-block: 0;
}

.g-nav_list .term {
  margin: 0 -10px 10px;
  padding: 4px 10px;
  background-color: var(--global-color-03);
}

.g-nav_list .desc {
  margin-inline-start: 0;
}

.g-nav_list .desc:not(:first-of-type) {
  border-block-start: 1px solid var(--global-color-03);
}

.g-nav_list .link {
  display: block;
  margin: 7px 0;
  padding: 7px 0;
}





/* footer
-------------------------------------------------------------------------------- */
footer {
  margin-block-start: auto;
  font-size: 12px;
  line-height: 32px;
  text-align: center;
  color: #fff;
  background-color: var(--global-color-02);
}