:root {
  --rem: calc(1rem / 16);
  --leading-trim: calc((1em - 1lh) / 2);

  --color-01: #333;
  --color-02: #ccc;
  --color-03: #f7f7f7;
  --brand-01: #c91337;
  --brand-02: #d81617;
  --brand-03: #604338;
  --brand-04: #1ca43c;
  --brand-05: #161573;
  --brand-06: #bb0029;
  --duration: .25s;
  --ease: cubic-bezier(.36, 1.13, .7, .97);
  --nav: 56px;
  interpolate-size: allow-keywords;
}

@media (max-width: 767.98px) {
  :root {
    --basis: 390;
    --max: 767;
    --gap: 15;
    --_gap-start: calc(40 * var(--rem));
    --_gap-end  : calc(40 * var(--rem));
    font-size: calc(16 / 390 * 100cqi);
  }
}

@media (min-width: 768px) {
  :root {
    --basis: calc(980 + var(--gap) * 2);
    --max: var(--basis);
    --gap: 30;
    --_gap-start: calc(80 * var(--rem));
    --_gap-end  : calc(80 * var(--rem));
    font-size: clamp(10px, calc(10px + (16 - 10) * ((100cqi - 768px) / (1280 - 768))), 16px);
  }
}

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

:where(html) {
  container-type: inline-size;
  min-height: 100dvh;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  line-height: 1.5;
  -webkit-text-size-adjust: none;
          text-size-adjust: none;
  word-break: normal;
  font-family: "Noto Sans JP", sans-serif;
  color: var(--color-01);
  background-color: var(--color-03);
  overflow-wrap: anywhere;
  line-break: strict;
  scroll-behavior: auto;
  -webkit-tap-highlight-color: transparent;
}

/* safari */
_::-webkit-full-page-media, _:future, :root {
  container-type: unset;
}

:where(body) {
  margin: 0;
}

:where(main) {
  padding-block-start: var(--nav);
}

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

: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(img, svg) {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
  border: none;
  object-fit: cover;
}

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

:where(ul, ol) {
  margin: 0;
  padding: 0;
  list-style: none;
}

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

:where(button) {
  padding: 0;
  cursor: pointer;
  border: none;
  background: none;
  appearance: none;
}

:where(fieldset, legend, select) {
  all: unset;
  box-sizing: revert;
}

:where(select, label) {
  cursor: pointer;
}

:where(input, button, textarea, select) {
  font: inherit;
  color: inherit;
}

:target {
  scroll-margin-block-start: var(--nav);
}





/* 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;
  }
}





/* animation
-------------------------------------------------------------------------------- */
.loading {
  position: fixed;
  inset: 0;
  z-index: 10;
  display: grid;
  place-items: center;
  background-color: #fff;
}

.loading_logo {
  inline-size: 75vw;
}





/* modules
-------------------------------------------------------------------------------- */
.sr-only {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  word-wrap: normal;
}

.m-container {
  display: flow-root;
  inline-size: calc((var(--basis) - var(--gap) * 2) * var(--rem));
  margin-inline: auto;
  contain: layout;
}

.m-container :is(.fluid, .contain) {
  inline-size: 100cqi;
  margin-inline: calc(50% - 50cqi);
}

.m-container .contain {
  padding-inline: calc(50cqi - 50%);
}

@media (max-width: 767.98px) {
  :is(.sm-fluid, .sm-contain) {
    inline-size: 100cqi;
    margin-inline: calc(50% - 50cqi);
  }

  .sm-contain {
    padding-inline: calc(50cqi - 50%);
  }
}

.m-hgroup {
  display: grid;
  justify-items: center;
}

.m-heading {
  margin-block: var(--leading-trim);
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  color: var(--brand-06);
}

.m-lead {
  margin-block: var(--leading-trim);
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .m-hgroup {
    row-gap: calc(16 * var(--rem));
  }

  .m-heading {
    font-size: calc(24 * var(--rem));
  }

  .m-lead {
    font-size: calc(18 * var(--rem));
  }
}

@media (min-width: 768px) {
  .m-hgroup {
    row-gap: calc(22 * var(--rem));
  }

  .m-heading {
    font-size: calc(30 * var(--rem));
  }

  .m-lead {
    font-size: calc(20 * var(--rem));
  }
}

.m-card {
  overflow: clip;
  display: grid;
  grid-template-rows: subgrid;
  grid-auto-rows: max-content;
  grid-row: span 3;
  justify-items: center;
  font-weight: 600;
  border-radius: calc(10 * var(--rem));
  box-shadow: 0 calc(3 * var(--rem)) calc(6 * var(--rem)) rgb(0 0 0 / .16);
  background-color: #fff;
}

.m-card_list {
  display: grid;
  grid-template-rows: subgrid;
  grid-row: span 2;
  row-gap: calc(4 * var(--rem));
  inline-size: 100%;
}

.m-card_term {
  margin-block-start: var(--leading-trim);
  line-height: 1.2;
  text-align: center;
}

:not(:lang(en)) .m-card_desc {
  text-align: justify;
}

@media (max-width: 767.98px) {
  .m-card_rem {
    font-size: calc(14 * var(--rem));
  }

  .m-card_list {
    padding-inline: calc(12 * var(--rem));
    padding-block: calc(18 * var(--rem));
  }
}

@media (min-width: 768px) {
  .m-card_term {
    font-size: calc(20 * var(--rem));
  }

  .m-card_list {
    padding-inline: calc(15 * var(--rem));
    padding-block: calc(20 * var(--rem));
  }
}





/* swiper
-------------------------------------------------------------------------------- */
.swiper {
  position: relative;
  z-index: 1;
  display: block;
  margin-right: auto;
  margin-left: auto;
  padding: 0;
  list-style: none;
}

.swiper-wrapper {
  position: relative;
  z-index: 1;
  box-sizing: content-box;
  display: flex;
  width: 100%;
  height: 100%;
  transition-property: transform;
  transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
}

.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
  transform: translate3d(0px, 0, 0);
}

.swiper-vertical {
  touch-action: pan-x;
}

.swiper-slide {
  position: relative;
  display: block;
  flex-shrink: 0;
  width: 100%;
  height: auto;
  transition-property: transform;
}

.swiper-virtual .swiper-slide {
  -webkit-backface-visibility: hidden;
  transform: translateZ(0);
}

.swiper-controller {
  display: flex;
  justify-content: center;
  align-items: center;
  column-gap: calc(50 * var(--rem));
  margin-block-start: calc(16 * var(--rem));
}

[class*="swiper-button-"] {
  inline-size: calc(30 * var(--rem));
  block-size: calc(30 * var(--rem));
  border-radius: calc(30 * var(--rem));
  background-color: var(--brand-06);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 18'%3E%3Cpath d='M1.25 17.76a1.261 1.261 0 0 1-.89-2.14L6.98 9 .36 2.38C-.09 1.85-.03 1.06.5.61c.47-.4 1.16-.4 1.63 0l7.51 7.51c.49.49.49 1.28 0 1.77L2.13 17.4c-.23.24-.55.37-.88.37' fill='%23fff'/%3E%3C/svg%3E%0A");
  background-position: calc(50% + (1 * var(--rem))) 50%;
  background-repeat: no-repeat;
  background-size: calc(10 * var(--rem)) calc(18 * var(--rem));
}

.swiper-button-prev {
  scale: -1 1;
}

.swiper-button-disabled {
  opacity: .5;
}

.swiper-pagination {
  display: flex;
  column-gap: calc(5 * var(--rem));
}

.swiper-pagination-bullet {
  inline-size: calc(16 * var(--rem));
  block-size: calc(16 * var(--rem));
  border-radius: calc(16 * var(--rem));
  background-color: #dedede;
}

.swiper-pagination-bullet-active {
  background-color: #aaa;
}









/* header
-------------------------------------------------------------------------------- */
.g-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100vw;
  height: var(--nav);
  border-bottom: 2px solid var(--brand-01);
  background: #fff;
}

.g-header_wrap {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  justify-items: center;
  align-items: center;
  width: 100%;
  height: 100%;
  margin: auto;
}

.g-header_btn {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 16px;
  z-index: 11;
  width: 36px;
  height: 36px;
  margin-top: auto;
  margin-bottom: auto;
  border-radius: 50%;
}

.g-header_btn > span {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 20px;
  height: 2px;
  background: var(--color-01);
  transition-property: top, transform;
  transition-duration: var(--duration);
  transform: translate(-50%, -50%);
}

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

.g-header_btn.is-open > span:nth-of-type(1) {
  top: 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) {
  top: 50%;
  transform: translate(-50%, -50%) rotate(-45deg);
}

.g-header_heading {
  grid-column: 2;
}

.g-header_trans {
  grid-column: 3;
  justify-self: end;
  margin-inline-end: calc(var(--_g-header_trans_mie, 24) / 16 * 1rem);
  padding-inline: 1em 1.5em;
  font-weight: 700;
  font-size: calc(var(--_g-header_trans_fz, 14) / 16 * 1rem);
  font-feature-settings: "palt" 1;
  text-align: end;
  color: var(--brand-01);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='m8.99 16.06 8.12-14.12H.89l8.1 14.13Z' fill='%23c91337'/%3E%3C/svg%3E%0A");
  background-position: 100% 50%;
  background-repeat: no-repeat;
  background-size: 1em;
}

.g-header_overlay {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: rgba(0, 0, 0, .28);
  transition-property: width, opacity;
  transition-duration: 0s, calc(var(--duration) * 2);
  transition-delay: calc(var(--duration) * 2), 0s;
  opacity: 0;
}

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

.g-nav {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  z-index: 10;
  visibility: hidden;
  width: 81.5385%;
  max-width: 375px;
  padding: var(--nav) 0;
  font-weight: 700;
  background: #fff;
  transition-property: visibility, transform;
  transition-duration: 0s, calc(var(--duration) * 2);
  transition-timing-function: linear, var(--ease);
  transition-delay: calc(var(--duration) * 2), 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-width: 390px;
  height: 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(--color-02);
}

.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 .term {
  margin: 0 -10px 10px;
  padding: 4px 10px;
  background: var(--color-02);
}

.g-nav_list .desc:not(:first-of-type) {
  border-top: 1px solid var(--color-02);
}

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

@media (max-width: 767.98px) {
  .g-header_trans {
    --_g-header_trans_mie: 12;
    --_g-header_trans_fz: 12;
  }
}





/* main, section
-------------------------------------------------------------------------------- */
:where(main) {
  position: relative;
  background-attachment: fixed;
  background-image: linear-gradient(0deg, #fff, #fff), url(../images/main_bg.png);
  background-position: 50%, 50% var(--nav);
  background-repeat: repeat-y, repeat;
  background-size: 0% 100%, calc(var(--_main_bgsz, 531) / 16 * 1rem);
}

:where(section:not(.str-hero)) {
  padding-block-start: var(--_gap-start);
}

@media (max-width: 767.98px) {
  :where(main) {
    --_main_bgsz: 310;
  }
}





/* footer
-------------------------------------------------------------------------------- */
.page-top {
  position: sticky;
  inset-block-end: 0;
  z-index: 1;
  display: grid;
  justify-content: end;
  inline-size: min(100% - (var(--_page-top_gap, 40) / 16 * 1rem), 1116px);
  block-size: 0;
  margin-inline: auto;
  /* margin-block-start: calc(var(--_page-top_mbs, 170) / 16 * 1rem); */
}

.page-top_link {
  display: block;
  inline-size: calc(var(--_page-top_size, 68) / 16 * 1rem);
  block-size: calc(var(--_page-top_size, 68) / 16 * 1rem);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 68 68'%3E%3Cpath d='M0 0h68v68H0z' opacity='.56'/%3E%3Cpath d='M51.46 41.83a2.601 2.601 0 0 1-4.44 1.84L33.27 29.91 19.51 43.67c-1.05.98-2.69.93-3.67-.12a2.6 2.6 0 0 1 0-3.56l15.6-15.6a2.595 2.595 0 0 1 3.68 0s15.6 15.6 15.6 15.6c.49.49.76 1.15.76 1.84' fill='%23fff'/%3E%3C/svg%3E%0A");
  background-size: calc(var(--_page-top_size, 68) / 16 * 1rem);
  translate: 0 calc(var(--_page-top_trans, -102) / 16 * 1rem);
}

@media (max-width: 767.98px) {
  .page-top {
    --_page-top_mbs: 102;
    --_page-top_gap: 30;
    --_page-top_trans: -53;
    --_page-top_size: 43;
  }
}

footer {
  margin-top: auto;
  font-size: 12px;
  line-height: 32px;
  text-align: center;
  color: #fff;
  background: #333;
}





/* contents hero
-------------------------------------------------------------------------------- */
.str-hero {
  display: grid;
  align-items: end;
  block-size: var(--_block-size);
  font-weight: 700;
  background-color: #eee;
  contain: layout;
}

.str-hero > * {
  grid-area: 1 / -1;
}

.str-hero_media {
  block-size: var(--_block-size);
}

.str-hero_image {
  inline-size: 100%;
  block-size: 100%;
}

.str-hero_hgroup {
  display: grid;
  place-content: center;
  place-items: center;
  margin-inline: auto;
  color: #fff;
  background-repeat: no-repeat;
  background-size: cover;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 490 306'%3E%3Cellipse cx='245' cy='153' rx='245' ry='153' fill='%23c91337'/%3E%3C/svg%3E%0A");
}

.str-hero_lead.\--en-break {
  line-height: 1;
  text-align: center;
}

@media (max-width: 767.98px) {
  .str-hero {
    --_block-size: calc(220 * var(--rem));
    font-size: calc(21 * var(--rem));
  }

  .str-hero_hgroup {
    row-gap: calc(4 * var(--rem));
    inline-size: calc(336 * var(--rem));
    block-size: calc(96 * var(--rem));
    padding-block-start: calc(14 * var(--rem));
  }

  .str-hero_hgroup svg {
    inline-size: calc(70 * var(--rem));
  }
}

@media (min-width: 768px) {
  .str-hero {
    --_block-size: min(456 * var(--rem), 456px);
    font-size: calc(32 * var(--rem));
  }

  .str-hero_hgroup {
    row-gap: calc(10 * var(--rem));
    inline-size: calc(490 * var(--rem));
    block-size: calc(153 * var(--rem));
    padding-block-start: calc(10 * var(--rem));
  }

  .str-hero_hgroup svg {
    inline-size: calc(100 * var(--rem));
  }
}





/* contents sec01
-------------------------------------------------------------------------------- */
.sec01 {
  padding-block-end: var(--_gap-end);
  background-color: var(--color-03);
}

.sec01_body {
  display: grid;
}

@media (max-width: 767.98px) {
  .sec01_body {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(12 * var(--rem));
    margin-block-start: calc(32 * var(--rem));
  }

  .sec01_item {
    row-gap: calc(6 * var(--rem));
    padding-block-start: calc(28 * var(--rem));
  }

  .sec01_icon {
    inline-size: calc(78 * var(--rem));
    block-size: calc(78 * var(--rem));
  }

  .sec01_desc {
    font-weight: 400;
    font-size: calc(14 * var(--rem));
  }
}

@media (min-width: 768px) {
  .sec01_body {
    grid-template-columns: repeat(4, 1fr);
    column-gap: calc(20 * var(--rem));
    margin-block-start: calc(56 * var(--rem));
  }

  .sec01_item {
    row-gap: calc(16 * var(--rem));
    padding-block-start: calc(36 * var(--rem));
  }

  .sec01_icon {
    inline-size: calc(104 * var(--rem));
    block-size: calc(104 * var(--rem));
  }
}





/* contents sec02
-------------------------------------------------------------------------------- */
.sec02 {
  background-color: #fff;
}

.sec02_body {
  position: relative;
}

.sec02_heading {
  position: absolute;
  font-weight: 600;
  line-height: 1.2;
  color: var(--brand-06);
}

.sec02_item {
  position: relative;
  overflow: visible;
}

.sec02_item:not(:last-of-type)::after {
  position: absolute;
  inset-block: 0;
  z-index: -1;
  margin-block: auto;
  background-color: #b7e9ff;
  content: "";
  clip-path: polygon(0 0, 0% 100%, 100% 50%);
}

.sec02_image {
  overflow: clip;
  inline-size: 100%;
  border-top-left-radius: calc(10 * var(--rem));
  border-top-right-radius: calc(10 * var(--rem));
}

@media (max-width: 767.98px) {
  .sec02_swiper {
    padding-inline: calc(var(--gap) * var(--rem));
  }

  .sec02_body {
    margin-block-start: calc(32 * var(--rem));
    padding-block-start: calc(32 * var(--rem));
  }

  .sec02_body.\--en-break {
    margin-block-start: calc(32 * var(--rem));
    padding-block-start: calc(48 * var(--rem));
  }

  .sec02_heading {
    inset-inline: 0;
    text-align: center;
  }

  .sec02_item {
    inline-size: calc(208 * var(--rem));
  }

  .sec02_item:not(:last-of-type)::after {
    inset-inline-end: calc(-18 * var(--rem));
    inline-size: calc(18 * var(--rem));
    block-size: calc(88 * var(--rem));
  }

  .sec02_desc {
    font-size: calc(14 * var(--rem));
  }
}

@media (min-width: 768px) {
  .sec02_body {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: calc(32 * var(--rem)) calc(20 * var(--rem));
    margin-block-start: calc(56 * var(--rem));
    padding-block-start: calc(56 * var(--rem));
    transform: none !important;
  }

  .sec02_heading {
    font-size: calc(20 * var(--rem));
  }

  .sec02_item {
    display: grid;
    row-gap: 0;
    inline-size: calc(230 * var(--rem)) !important;
  }

  .sec02_item:not(:last-of-type)::after {
    inset-inline-end: calc(-20 * var(--rem));
    inline-size: calc(20 * var(--rem));
    block-size: calc(100 * var(--rem));
  }
}





/* contents sec03
-------------------------------------------------------------------------------- */
.sec03 {
  background-color: #fff;
  background-image: linear-gradient(#fff var(--_half), var(--color-03) var(--_half));
}

.sec03_body > iframe {
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.sec03_address {
  text-align: center;
}

@media (max-width: 767.98px) {
  .sec03 {
    --_half: 52.45%;
  }

  .sec03_body {
    block-size: calc(300 * var(--rem));
    margin-block-start: calc(32 * var(--rem));
  }

  .sec03_address {
    margin-block-start: calc(10 * var(--rem));
    font-size: calc(14 * var(--rem));
  }
}

@media (min-width: 768px) {
  .sec03 {
    --_half: 56.82%;
  }

  .sec03_body {
    block-size: calc(450 * var(--rem));
    margin-block-start: calc(40 * var(--rem));
  }

  .sec03_address {
    margin-block-start: calc(30 * var(--rem));
    font-size: calc(20 * var(--rem));
  }
}





/* contents sec04
-------------------------------------------------------------------------------- */
.sec04 {
  padding-block-end: var(--_gap-end);
  background-color: var(--color-03);
}

.sec04_body {
  display: grid;
  border-radius: calc(10 * var(--rem));
  box-shadow: 0 calc(3 * var(--rem)) calc(6 * var(--rem)) rgb(0 0 0 / .16);
  background-color: #fff;
}

.sec04_list,
.sec04_desc_list {
  display: grid;
  row-gap: 1lh;
}

.sec04_term {
  font-weight: 600;
  background-position: 0;
  background-repeat: no-repeat;
}

.sec04_term.\--01 { background-image: url(../images/stores/icon_05.svg); }
.sec04_term.\--02 { background-image: url(../images/stores/icon_06.svg); }
.sec04_term.\--03 { background-image: url(../images/stores/icon_07.svg); }
.sec04_term.\--04 { background-image: url(../images/stores/icon_08.svg); }
.sec04_term.\--05 { background-image: url(../images/stores/icon_09.svg); }
.sec04_term.\--06 { background-image: url(../images/stores/icon_10.svg); }

.sec04_desc_term {
  font-weight: 600;
}

@media (max-width: 767.98px) {
  .sec04_body {
    row-gap: 1lh;
    margin-block-start: calc(32 * var(--rem));
    padding-inline: calc(20 * var(--rem));
    padding-block: calc(40 * var(--rem));
  }

  .sec04_item {
    display: grid;
    row-gap: .5em;
  }

  .sec04_term {
    padding-inline-start: calc(32 * var(--rem));
    background-size: calc(24 * var(--rem));
  }

  .sec04_desc {
    font-size: calc(14 * var(--rem));
  }
}

@media (min-width: 768px) {
  .sec04_body {
    grid-template-columns: repeat(2, 1fr);
    column-gap: calc(32 * var(--rem));
    margin-block-start: calc(40 * var(--rem));
    padding-inline: calc(72 * var(--rem)) calc(40 * var(--rem));
    padding-block: calc(56 * var(--rem));
  }

  .sec04_term {
    padding-inline-start: calc(36 * var(--rem));
    font-size: calc(20 * var(--rem));
    background-size: calc(26 * var(--rem));
  }

  .sec04_desc {
    padding-inline-start: calc(36 * var(--rem));
  }
}

.to-top {
  display: grid;
  justify-content: center;
}

.to-top_link {
  display: grid;
  place-items: center;
  font-weight: 700;
  color: #fff;
  border-radius: 10lh;
  background-color: var(--brand-06);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 18'%3E%3Cpath d='M1.25 17.76a1.261 1.261 0 0 1-.89-2.14L6.98 9 .36 2.38C-.09 1.85-.03 1.06.5.61c.47-.4 1.16-.4 1.63 0l7.51 7.51c.49.49.49 1.28 0 1.77L2.13 17.4c-.23.24-.55.37-.88.37' fill='%23fff'/%3E%3C/svg%3E%0A");
  background-repeat: no-repeat;
}

@media (max-width: 767.98px) {
  .to-top {
    padding-block: calc(24 * var(--rem)) calc(64 * var(--rem));
  }

  .to-top_link {
    inline-size: calc(214 * var(--rem));
    block-size: calc(46 * var(--rem));
    /* font-size: calc(20 * var(--rem)); */
    background-position: right calc(18 * var(--rem)) top 50%;
    background-size: calc(8 * var(--rem)) calc(14 * var(--rem));
  }
}

@media (min-width: 768px) {
  .to-top {
    padding-block: calc(72 * var(--rem));
  }

  .to-top_link {
    inline-size: calc(280 * var(--rem));
    block-size: calc(60 * var(--rem));
    font-size: calc(20 * var(--rem));
    background-position: right calc(24 * var(--rem)) top 50%;
    background-size: calc(10 * var(--rem)) calc(18 * var(--rem));
  }
}





/* utilities
-------------------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .sm   { display: block; }
  .smib { display: inline-block; }
  .smf  { display: flex; }
  .smg  { display: grid; }
  :is(.md, .smib, .mdf, .mdg) { display: none; }
}

@media (min-width: 768px) {
  .md   { display: block; }
  .mdib { display: inline-block; }
  .mdf  { display: flex; }
  .mdg  { display: grid; }
  :is(.sm, .smib, .smf, .smg) { display: none; }
}
