@charset "UTF-8";
:root {
  --board: 1280;
  --max: 1px;
}

:root {
  --colorBlack: #333;
  --colorBg: #fff;
  --colorCurrent: #c7c7c7;
  --color-primary: #ccf04b;
  --color-primary_light: #edfed3;
  --color-primary_dark: #4ac54a;
  --color-secondary: #ff8c40;
  --color-navy: #2e2f54;
}

:root {
  --fontMain:
    "Zen Maru Gothic", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo,
    "MS Pゴシック", "MS PGothic", sans-serif;
  --fontGothic:
    "Noto Sans JP", "Yu Gothic", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo,
    "MS Pゴシック", "MS PGothic", sans-serif;
  --fontMincho:
    "Zen Old Mincho", "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝",
    "MS PMincho", serif;
  --fontEnglish: "Oswald", sans-serif;
  --fontMaru: var(--fontMain);
}

:root {
  --weightLight: 300;
  --weightRegular: 400;
  --weightMedium: 500;
  --weightBold: 700;
}

:root {
  --fontSize: 16rem;
  --letterSpacing: 0;
  --lineHeight: 1.75;
  --kerning: unset;
}

:root {
  --bodyBg: var(--colorBg);
  --speed: 0.3s;
}

@-webkit-keyframes borderReveal {
  0% {
    clip-path: polygon(0 0, 0 0, 0 0, 0 0);
  }
  50% {
    clip-path: polygon(0 0, 100% 0, 50% 100%, 50% 100%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}

@keyframes borderReveal {
  0% {
    clip-path: polygon(0 0, 0 0, 0 0, 0 0);
  }
  50% {
    clip-path: polygon(0 0, 100% 0, 50% 100%, 50% 100%);
  }
  100% {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  }
}
/* 汎用カラークラス（他コンポーネントでも利用） */
.color-orange {
  color: var(--color-secondary);
}

.color-green {
  color: var(--color-primary_dark);
}

.green-bg {
  background-color: var(--color-primary);
}

.pc-hide {
  display: none;
}

.sp-hide {
  display: block;
}

.light-bg {
  background-color: #e7ffc6;
  position: relative;
  padding-bottom: clamp(0px, 10vw / var(--board) * 10 * 60, var(--max) * 60);
}
.light-bg:before {
  content: "";
  background-image: url(../images/image_special-ellipse.svg);
  background-repeat: no-repeat;
  background-size: cover;
  display: inline-block;
  position: absolute;
  width: clamp(0px, 10vw / var(--board) * 10 * 1920, var(--max) * 1920);
  height: clamp(0px, 10vw / var(--board) * 10 * 216, var(--max) * 216);
  top: clamp(var(--max) * -216, 10vw / var(--board) * 10 * -216, 0px);
  left: 50%;
  pointer-events: none;
  -webkit-transform: translateX(-50%);
          transform: translateX(-50%);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(1px, 1px, 1px, 1px);
  white-space: nowrap;
  border: 0;
  padding: 0;
  margin: 0;
  clip-path: inset(50%);
  clip: rect(0 0 0 0);
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.button {
  border-radius: 999px;
  position: relative;
  color: white;
  text-align: center;
  margin: auto;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: end;
      -ms-flex-pack: end;
          justify-content: flex-end;
  font-weight: bold;
  padding: clamp(0px, 10vw / var(--board) * 10 * 14, var(--max) * 14);
}
.button.confirm-button {
  background-color: #4ac54a;
  font-size: clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
  width: clamp(0px, 10vw / var(--board) * 10 * 400, var(--max) * 400);
  height: clamp(0px, 10vw / var(--board) * 10 * 70, var(--max) * 70);
  margin-left: auto;
  -webkit-transition: background-color 0.2s ease-in-out;
  transition: background-color 0.2s ease-in-out;
}
.button.confirm-button svg {
  margin-left: clamp(0px, 10vw / var(--board) * 10 * 25, var(--max) * 25);
}
.button.confirm-button svg path {
  -webkit-transition: fill 0.2s ease-in-out;
  transition: fill 0.2s ease-in-out;
}
.button.dl-button {
  background-color: #184baa;
  font-size: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
  padding: clamp(0px, 10vw / var(--board) * 10 * 6, var(--max) * 6) clamp(0px, 10vw / var(--board) * 10 * 20, var(--max) * 20);
}
.button.dl-button svg {
  width: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16);
  margin-left: clamp(0px, 10vw / var(--board) * 10 * 33, var(--max) * 33);
}
.button.dl-button.dl-button--all {
  background-color: #ff8c40;
}

body {
  background-color: white;
  color: var(--color-navy);
}

rt {
  font-size: 0.5em;
  font-weight: 700;
  letter-spacing: 0;
}
.ml rt {
  margin-left: -0.3em;
}
.ml6 rt {
  margin-left: -0.6em;
}

ruby[data-ruby] {
  position: relative;
  display: inline-block;
}
ruby[data-ruby] rt {
  font-size: 0.1em;
  opacity: 0;
  max-height: 1px;
  display: inline-block;
}
ruby[data-ruby]::after {
  content: attr(data-ruby);
  position: absolute;
  left: 50%;
  top: 0;
  -webkit-transform: translate(-50%, -0.5em);
          transform: translate(-50%, -0.5em);
  display: block;
  white-space: nowrap;
  font-size: 0.5em;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  pointer-events: none;
}

ruby.ml[data-ruby]::after {
  margin-left: -0.3em;
}

ruby.ml6[data-ruby]::after {
  margin-left: -0.6em;
}

section {
  position: relative;
}

.sp-only {
  display: none;
}

.top-link {
  position: fixed;
  right: clamp(0px, 10vw / var(--board) * 10 * 32, var(--max) * 32);
  bottom: clamp(0px, 10vw / var(--board) * 10 * 100, var(--max) * 100);
  z-index: 100;
  width: clamp(0px, 10vw / var(--board) * 10 * 56, var(--max) * 56);
  height: clamp(0px, 10vw / var(--board) * 10 * 56, var(--max) * 56);
  opacity: 0;
  z-index: 1;
  visibility: hidden;
  pointer-events: none;
  -webkit-transition: opacity 0.3s ease, visibility 0.3s ease;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.top-link.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.top-link img {
  width: 100%;
}

.section-inner {
  max-width: 1080px;
  margin: auto;
  padding: 0 clamp(0px, 10vw / var(--board) * 10 * 40, var(--max) * 40);
}

.section-title {
  text-align: center;
  font-size: clamp(0px, 10vw / var(--board) * 10 * 36, var(--max) * 36);
  margin: 0 auto clamp(0px, 10vw / var(--board) * 10 * 52, var(--max) * 52);
  width: -webkit-max-content;
  width: -moz-max-content;
  width: max-content;
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  font-weight: bold;
}
.section-title:before, .section-title:after {
  content: "";
  background-image: url("../images/icon_title-treat.svg");
  background-repeat: no-repeat;
  background-size: 100%;
  display: inline-block;
  position: absolute;
  width: clamp(0px, 10vw / var(--board) * 10 * 26, var(--max) * 26);
  height: clamp(0px, 10vw / var(--board) * 10 * 47, var(--max) * 47);
}
.section-title::before {
  left: clamp(var(--max) * -44, 10vw / var(--board) * 10 * -44, 0px);
}
.section-title::after {
  right: clamp(var(--max) * -44, 10vw / var(--board) * 10 * -44, 0px);
  -webkit-transform: scale(-1, -1);
          transform: scale(-1, -1);
}

.preload {
  position: fixed;
  z-index: 99999;
  top: 0;
  left: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  width: 100vw;
  height: 100vh;
  -webkit-transition: 0.4s 0.1s;
  transition: 0.4s 0.1s;
  background-color: #fff;
}
.preload.is-loaded {
  visibility: hidden;
  opacity: 0;
}
@media screen and (min-width: 1921px){
  .light-bg:before {
    width: 100%;
  }
}
@media (max-width: 768px){
  :root {
    --board: 390;
    --max: 9999px;
  }
  .pc-hide {
    display: block;
  }
  .sp-hide {
    display: none;
  }
  .light-bg:before {
    height: clamp(0px, 10vw / var(--board) * 10 * 182, var(--max) * 182);
    top: clamp(var(--max) * -182, 10vw / var(--board) * 10 * -182, 0px);
    background-image: url(../images/image_special-ellipse_sp.svg);
    width: clamp(0px, 10vw / var(--board) * 10 * 390, var(--max) * 390);
    height: clamp(0px, 10vw / var(--board) * 10 * 90, var(--max) * 90);
    top: clamp(var(--max) * -80, 10vw / var(--board) * 10 * -80, 0px);
  }
  .button.confirm-button {
    line-height: 1.34;
    text-align: left;
    width: clamp(0px, 10vw / var(--board) * 10 * 340, var(--max) * 340);
    height: clamp(0px, 10vw / var(--board) * 10 * 80, var(--max) * 80);
    padding: clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16) clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16) clamp(0px, 10vw / var(--board) * 10 * 16, var(--max) * 16) clamp(0px, 10vw / var(--board) * 10 * 34, var(--max) * 34);
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
    gap: 0;
  }
  .button.dl-button {
    width: clamp(0px, 10vw / var(--board) * 10 * 318, var(--max) * 318);
    font-size: clamp(0px, 10vw / var(--board) * 10 * 24, var(--max) * 24);
    padding: clamp(0px, 10vw / var(--board) * 10 * 4, var(--max) * 4) clamp(0px, 10vw / var(--board) * 10 * 17, var(--max) * 17);
  }
  .button.dl-button svg {
    width: clamp(0px, 10vw / var(--board) * 10 * 22, var(--max) * 22);
    margin-left: clamp(0px, 10vw / var(--board) * 10 * 78, var(--max) * 78);
  }
  .button.dl-button.dl-button--all svg {
    margin-left: clamp(0px, 10vw / var(--board) * 10 * 48, var(--max) * 48);
  }
  rt {
    font-size: 0.37em;
  }
  ruby[data-ruby]::after {
    -webkit-transform: translate(-57%, -0.34em);
            transform: translate(-57%, -0.34em);
  }
  .sp-only {
    display: block;
  }
  .section-inner {
    padding: 0 clamp(0px, 10vw / var(--board) * 10 * 25, var(--max) * 25);
  }
  .section-title {
    font-size: clamp(0px, 10vw / var(--board) * 10 * 32, var(--max) * 32);
    margin-bottom: clamp(0px, 10vw / var(--board) * 10 * 30, var(--max) * 30);
  }
}
@media (hover: hover){
  .button.confirm-button:hover {
    background-color: #ff8c40;
    opacity: 1;
  }
  .button.confirm-button:hover svg path {
    fill: #ff8c40;
  }
}