@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Zen+Kaku+Gothic+New:wght@300;400;500;700;900&display=swap");

:root {
  --rem: calc(1rem / 16);
  --color01: #333;
  --color02: #ccc;
  --color03: #C7002F;
  --con01: #10873A;
  --contxt: #1B963A;
  --con02: #E2F1E8;
  --contxt02: #3AB484;
  --duration: .25s;
  --ease: cubic-bezier(.36, 1.13, .7, .97);
  --nav: 56px;
  interpolate-size: allow-keywords;
}

.zen-kaku-gothic-new-light {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 300;
  font-style: normal;
}

/* アンカーの着地先となる要素やセクションにヘッダー分の高さを余白として設定 */
:target,
[id] {
  scroll-margin-top: 56px;
}

/* ページ全体の基本スクロール動作を滑らかにする場合 */
html {
  scroll-behavior: smooth;
}

/* 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;
  -moz-text-size-adjust: none;
  text-size-adjust: none;
  word-break: normal;
  font-family: "Noto Sans JP", sans-serif;
  color: var(--color-01);
  background-color: #fff;
  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;
  -o-object-fit: cover;
  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;
  -webkit-appearance: none;
  -moz-appearance: 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);
}

@media (max-width: 767.98px) {
  :root {
    --dome-heading-block-size: 262;
    --dome-heading-show-block-size: 64;
    font-size: 4.2666666667cqi;
  }
}

@media (min-width: 768px) {
  :root {
    --dome-heading-block-size: 250;
    --dome-heading-show-block-size: 95;
    font-size: clamp(10px, 10px + 6 * (100cqi - 768px) / 512, 16px);
  }
}

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

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.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
-------------------------------------------------------------------------------- */
/* screen reader */
.sr-only {
  position: absolute;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  width: 1px;
  height: 1px;
  word-wrap: normal;
}

/* header
-------------------------------------------------------------------------------- */
.g-header {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
  width: 100vw;
  height: var(--nav);
  border-bottom: 2px solid var(--color03);
  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(--color01);
  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(--con01);
  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, 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(--color02);
}

.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(--color02);
}

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

.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
-------------------------------------------------------------------------------- */
: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: 100% 100%, calc(var(--_main_bgsz, 531) * var(--rem));
  transition: none;
}

@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);
}

@media screen and (max-width: 440px) {
  .page-top {
    margin-block-start: 0;
  }
}

.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;
}

main * {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  font-size: 16px;
}

@media screen and (max-width: 440px) {
  main * {
    font-size: 4vw;
  }
}

main h2 {
  color: var(--contxt);
  font-size: 30px;
  font-weight: 700;
}

main .sp {
  display: none;
}

@media screen and (max-width: 440px) {
  main .sp {
    display: block;
  }
}

.g-hero {
  text-align: center;
}

.g-hero .g-hero_wrap {
  max-width: 1173px;
  margin: 0 auto;
}

.con_wrap {
  max-width: 880px;
  margin: 0 auto;
}

.con_hdr {
  margin: 40px 0;
}

.con_hdr .hdr_box {
  display: flex;
  align-items: center;
}

.con_hdr .hdr_box .img {
  width: 19.5%;
}

.con_hdr .hdr_box .txt {
  width: 80.5%;
  padding-left: 30px;
  text-align: left;
}

.con_hdr .hdr_box .txt h2 {
  margin-bottom: 10px;
  line-height: 1.4;
}

@media screen and (max-width: 440px) {
  .con_hdr .hdr_box {
    text-align: center;
    display: block;
    padding: 0 3vw;
  }

  .con_hdr .hdr_box .img {
    width: 100%;
    text-align: center;
  }

  .con_hdr .hdr_box .img img {
    display: inline-block;
  }

  .con_hdr .hdr_box .txt {
    width: 100%;
    padding-left: 0;
  }

  .con_hdr .hdr_box .txt h2 {
    text-align: center;
    font-size: 8vw;
    margin: 5px 0;
  }
}

.clm {
  margin-bottom: 40px;
}

@media screen and (max-width: 440px) {
  .clm .sp_wrap {
    padding: 0 3vw;
  }
}

.clm h3 {
  background-color: var(--con01);
  color: #fff;
  font-size: 30px;
  font-weight: 700;
  text-align: center;
  margin-bottom: 20px;
  line-height: 1.4;
}

.clm h3.typeB {
  color: var(--color01);
  background-image: url(../images/ico_ttl.png);
  background-repeat: no-repeat;
  background-position: left center;
  background-size: 60px auto;
  padding: 15px 0 15px 70px;
  border-bottom: solid 3px var(--contxt);
  text-align: left;
  background-color: transparent;
}

@media screen and (max-width: 440px) {
  .clm h3 {
    font-size: 6vw;
    padding: 3px 0;
  }

  .clm h3.typeB {
    background-position: left top 15px;
  }
}

.clm h4 {
  color: var(--contxt);
  font-size: 30px;
  font-weight: 700;
  margin-bottom: 15px;
}

@media screen and (max-width: 440px) {
  .clm h4 {
    font-size: 5vw;
    margin-bottom: 10px;
  }
}

.clm .box {
  margin-top: 30px;
}

@media screen and (max-width: 440px) {
  .clm .box {
    margin-top: 4vw;
  }
}

.clm .box dl dt {
  display: flex;
  align-items: center;
  gap: 8px;
}

.clm .box dl dt::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: var(--contxt);
  flex-shrink: 0;
}

.clm .box dl dd {
  margin-bottom: 20px;
}

.clm .box dl dd a {
  color: var(--contxt);
  border-bottom: 1px solid var(--contxt);
}

.clm .box ul li span {
  color: var(--contxt);
  margin-right: 3px;
}

.clm .grn_box {
  background-color: var(--con02);
  border-radius: 10px;
  padding: 20px 30px;
  margin: 30px 0 20px;
}

.clm .grn_box dt {
  color: var(--contxt02);
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 5px;
}

@media screen and (max-width: 440px) {
  .clm .grn_box dt {
    font-size: 5vw;
  }
}

.clm .grn_box dt::before {
  display: none !important;
}

.clm .grn_box dd {
  margin-bottom: 15px;
}

@media screen and (max-width: 440px) {
  .clm .grn_box {
    padding: 4vw 3vw;
    margin: 4vw 0 3vw;
  }
}

.clm05 .clm05_box {
  max-width: 640px;
  margin: 0 auto;
}

@media screen and (max-width: 440px) {
  .clm05 {
    margin-bottom: 0;
  }

  .clm05 h3 {
    margin-bottom: 0;
  }
}