@charset "UTF-8";
/*!
 * ress.css • v4.0.0
 * MIT License
 * github.com/filipelinhares/ress
 */
@import url("https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@700;900&display=swap");
html {
  box-sizing: border-box;
  -webkit-text-size-adjust: 100%;
  word-break: normal;
  -moz-tab-size: 4;
  tab-size: 4; }

*, :after, :before {
  background-repeat: no-repeat;
  box-sizing: inherit; }

:after, :before {
  text-decoration: inherit;
  vertical-align: inherit; }

* {
  padding: 0;
  margin: 0; }

hr {
  overflow: visible;
  height: 0;
  color: inherit; }

details, main {
  display: block; }

summary {
  display: list-item; }

small {
  font-size: 80%; }

[hidden] {
  display: none; }

abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted; }

a {
  background-color: transparent; }

a:active, a:hover {
  outline-width: 0; }

code, kbd, pre, samp {
  font-family: monospace,monospace; }

pre {
  font-size: 1em; }

b, strong {
  font-weight: bolder; }

sub, sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sub {
  bottom: -.25em; }

sup {
  top: -.5em; }

table {
  border-color: inherit;
  text-indent: 0; }

input {
  border-radius: 0; }

[disabled] {
  cursor: default; }

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
  height: auto; }

[type=search] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

[type=search]::-webkit-search-decoration {
  -webkit-appearance: none; }

textarea {
  overflow: auto;
  resize: vertical; }

button, input, optgroup, select, textarea {
  font: inherit; }

optgroup {
  font-weight: 700; }

button {
  overflow: visible; }

button, select {
  text-transform: none; }

[role=button], [type=button], [type=reset], [type=submit], button {
  cursor: pointer;
  color: inherit; }

[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
  border-style: none;
  padding: 0; }

[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button:-moz-focusring {
  outline: 1px dotted ButtonText; }

[type=reset], [type=submit], button, html [type=button] {
  -webkit-appearance: button; }

button, input, select, textarea {
  background-color: transparent;
  border-style: none; }

a:focus, button:focus, input:focus, select:focus, textarea:focus {
  outline-width: 0; }

select {
  -moz-appearance: none;
  -webkit-appearance: none; }

select::-ms-expand {
  display: none; }

select::-ms-value {
  color: currentColor; }

legend {
  border: 0;
  color: inherit;
  display: table;
  white-space: normal;
  max-width: 100%; }

::-webkit-file-upload-button {
  -webkit-appearance: button;
  color: inherit;
  font: inherit; }

img {
  border-style: none; }

progress {
  vertical-align: baseline; }

[aria-busy=true] {
  cursor: progress; }

[aria-controls] {
  cursor: pointer; }

[aria-disabled=true] {
  cursor: default; }

/*$en:"Ultra", serif;*/
/*$kcl:#E0452C;*/
* {
  box-sizing: border-box; }

html {
  font-size: 62.5%; }

body {
  background: #fff;
  line-height: 1.8em;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: clamp(1.4rem, calc(1rem + 0.625vw), 1.6rem);
  font-weight: 700;
  color: #1A1311;
  -webkit-text-size-adjust: 100%; }

img {
  max-width: 100%;
  height: auto; }

a {
  color: #1A1311;
  text-decoration: none;
  transition: .3s;
  font-weight: 700; }
  a:hover {
    transition: .3s;
    text-decoration: none; }
  a img {
    transition: .3s; }
    a img:hover {
      opacity: .7;
      transition: .3s; }

li {
  list-style: none; }

.flb_sb, .linksnav li a, .nav .global li a, .nav .sns, .number .inner form ul {
  display: flex;
  justify-content: space-between; }

.flb_ct, header .menubtn, header .langbtn, header .linksbtn, .about .box h4, .about .box .luckybtn, .popup.active, .popup .numbox, .friends .chara, .friends .shiuma h4 span, .charanav, .number .arc-slider li span, .number .btn a, .number .inner form input[type=number], .number .inner button, .goods .goodsbtn li a, .shopcat, .contact input[type=submit], .contact input[type=button] {
  display: flex;
  justify-content: center; }

.flb_st, .friends .shiuma h4, .luckyno .box .cat, .contact dl dt {
  display: flex;
  justify-content: flex-start; }

.flb_ed, header {
  display: flex;
  justify-content: flex-end; }

.sp {
  display: block; }
  @media screen and (min-width: 701px) {
    .sp {
      display: none; } }

.sptab {
  display: block; }
  @media screen and (min-width: 961px) {
    .sptab {
      display: none; } }

.tab {
  display: none; }
  @media screen and (min-width: 701px) {
    .tab {
      display: block; } }
  @media screen and (min-width: 961px) {
    .tab {
      display: none; } }

.tabpc {
  display: none; }
  @media screen and (min-width: 701px) {
    .tabpc {
      display: block; } }

.pc {
  display: none; }
  @media screen and (min-width: 961px) {
    .pc {
      display: block; } }

.inner {
  width: calc(100% - 2rem);
  margin: auto;
  position: relative;
  z-index: 5; }
  @media screen and (min-width: 375px) {
    .inner {
      width: min(calc(100% - 6rem), 102.4rem); } }

.fadeIn {
  opacity: 0;
  transition: 1s; }
  .fadeIn.is-show {
    opacity: 1; }

.fadeIn_up {
  opacity: 0;
  transform: translate(0, 50px);
  transition: 1s; }
  .fadeIn_up.is-show {
    transform: translate(0, 0);
    opacity: 1; }

.fadeIn_left {
  opacity: 0;
  transform: translate(-50px, 0);
  transition: 2s; }
  .fadeIn_left.is-show {
    transform: translate(0, 0);
    opacity: 1; }

.fadeIn_right {
  opacity: 0;
  transform: translate(50px, 0);
  transition: 2s; }
  .fadeIn_right.is-show {
    transform: translate(0, 0);
    opacity: 1; }

@keyframes infinity-scroll-left {
  from {
    transform: translateX(0); }
  to {
    transform: translateX(-100%); } }
@keyframes fade-in {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes poyo {
  0%, 100% {
    transform: translateY(0) scaleY(1); }
  20% {
    transform: translateY(-6px) scaleY(0.98); }
  40% {
    transform: translateY(0) scaleY(1); }
  60% {
    transform: translateY(-4px) scaleY(0.99); }
  80% {
    transform: translateY(0) scaleY(1); } }
@keyframes flow {
  0% {
    transform: translateX(0); }
  100% {
    transform: translateX(-50%); } }
.wrapper {
  background: #D9F4F8;
  padding: 1.6rem;
  position: relative;
  overflow: hidden; }
  @media screen and (min-width: 701px) {
    .wrapper {
      padding: 2.4rem; } }
  .wrapper::after {
    content: "";
    display: block;
    width: 100%;
    height: 100dvh;
    background: url("../images/common/mvbg_sp.webp") center center no-repeat;
    background-size: cover;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 0; }
    @media screen and (min-width: 701px) {
      .wrapper::after {
        background: url("../images/common/mvbg.webp") center center no-repeat;
        background-size: cover; } }

.frame {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100dvh;
  pointer-events: none;
  z-index: 999;
  border: #fff 1.6rem solid;
  box-sizing: border-box; }
  @media screen and (min-width: 701px) {
    .frame {
      border: #fff 2.4rem solid; } }
  .frame::before {
    content: "";
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    outline: #fff 1.6rem solid;
    border-radius: 2rem;
    box-sizing: border-box; }
    @media screen and (min-width: 701px) {
      .frame::before {
        outline: #fff 2.4rem solid; } }

/* ヘッダー */
header {
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 1.8rem 2.4rem;
  z-index: 99; }
  @media screen and (min-width: 701px) {
    header {
      padding: 3rem 4rem; } }
  header .logo {
    display: block;
    margin-right: auto;
    width: 14rem; }
    @media screen and (min-width: 701px) {
      header .logo {
        width: 20rem; } }
    @media screen and (min-width: 961px) {
      header .logo {
        width: 28.6rem; } }
  header .menubtn, header .langbtn, header .linksbtn {
    align-items: center;
    height: 4rem;
    background: #fff;
    border: #000 2px solid;
    border-radius: 50%;
    transition: .3s;
    cursor: pointer; }
    @media screen and (min-width: 701px) {
      header .menubtn, header .langbtn, header .linksbtn {
        height: 6rem;
        border: #000 4px solid;
        border-radius: 4rem; } }
    header .menubtn::before, header .langbtn::before, header .linksbtn::before {
      content: "";
      display: block;
      transition: .3s; }
      @media screen and (min-width: 701px) {
        header .menubtn::before, header .langbtn::before, header .linksbtn::before {
          margin-right: 1.2rem; } }
    header .menubtn img, header .langbtn img, header .linksbtn img {
      display: none; }
      @media screen and (min-width: 701px) {
        header .menubtn img, header .langbtn img, header .linksbtn img {
          display: block; } }
    header .menubtn:hover, header .langbtn:hover, header .linksbtn:hover {
      background: #000; }
      header .menubtn:hover::before, header .menubtn:hover img, header .langbtn:hover::before, header .langbtn:hover img, header .linksbtn:hover::before, header .linksbtn:hover img {
        filter: brightness(0) invert(1); }
  header .menubtn {
    width: 4rem;
    margin-left: 1rem; }
    @media screen and (min-width: 701px) {
      header .menubtn {
        width: 14.9rem;
        margin-left: 1.6rem; } }
    header .menubtn::before {
      width: 1.6rem;
      aspect-ratio: 9 / 8;
      background: url("../images/common/menu.svg") center center no-repeat;
      background-size: 100% auto; }
      @media screen and (min-width: 701px) {
        header .menubtn::before {
          width: 1.8rem; } }
    header .menubtn img {
      width: 5.2rem; }
  header .langbtn {
    width: 4rem;
    margin-left: 1rem; }
    @media screen and (min-width: 701px) {
      header .langbtn {
        width: 19.7rem;
        margin-left: 1.6rem; } }
    header .langbtn::before {
      width: 2rem;
      aspect-ratio: 1 / 1;
      background: url("../images/common/lang.svg") center no-repeat;
      background-size: 100% auto; }
  header .linksbtn {
    width: 4rem; }
    @media screen and (min-width: 701px) {
      header .linksbtn {
        width: 14.9rem; } }
    header .linksbtn::before {
      width: 2rem;
      aspect-ratio: 1 / 1;
      background: url("../images/common/links.svg") center no-repeat;
      background-size: 100% auto; }
  header .gtranslate_wrapper {
    display: flex;
    flex-wrap: wrap;
    background: #fff;
    border-radius: 4rem;
    position: absolute;
    top: 80%;
    right: 6%;
    padding: 0.8rem 2rem 1.2rem;
    border: #000 2px solid;
    text-align: center;
    transform: translateY(-1rem);
    opacity: 0;
    transition: .5s;
    text-align: left; }
    @media screen and (min-width: 701px) {
      header .gtranslate_wrapper {
        width: 19.7rem;
        border: #000 4px solid;
        border-radius: 4rem;
        padding: 1rem 0 1.4rem;
        right: 20.7rem; } }
    header .gtranslate_wrapper a {
      display: block;
      width: 80%;
      margin: auto; }
    header .gtranslate_wrapper.active {
      transform: translateY(0);
      opacity: 1; }
    header .gtranslate_wrapper a[data-gt-lang="zh-CN"] {
      color: transparent;
      position: relative;
      order: 3; }
      header .gtranslate_wrapper a[data-gt-lang="zh-CN"]::after {
        content: "简体中文";
        position: absolute;
        color: #1A1311;
        left: 0;
        top: 0; }
    header .gtranslate_wrapper a[data-gt-lang="zh-TW"] {
      color: transparent;
      position: relative;
      order: 2; }
      header .gtranslate_wrapper a[data-gt-lang="zh-TW"]::after {
        content: "繁體中文";
        position: absolute;
        color: #1A1311;
        left: 0;
        top: 0; }
    header .gtranslate_wrapper a[data-gt-lang="en"] {
      color: transparent;
      position: relative;
      order: 1; }
      header .gtranslate_wrapper a[data-gt-lang="en"]::after {
        content: "English";
        position: absolute;
        color: #1A1311;
        left: 0;
        top: 0; }
    header .gtranslate_wrapper a[data-gt-lang="ja"] {
      color: transparent;
      position: relative;
      order: 5; }
      header .gtranslate_wrapper a[data-gt-lang="ja"]::after {
        content: "日本語";
        position: absolute;
        color: #1A1311;
        left: 0;
        top: 0; }
    header .gtranslate_wrapper a[data-gt-lang="ko"] {
      color: transparent;
      position: relative;
      order: 4; }
      header .gtranslate_wrapper a[data-gt-lang="ko"]::after {
        content: "한국어";
        position: absolute;
        color: #1A1311;
        left: 0;
        top: 0; }

.linksnav {
  width: min(90%, 53.4rem);
  background: #FFCBCB;
  border-radius: 4rem;
  padding: 3.2rem;
  position: fixed;
  top: 8rem;
  right: 5%;
  z-index: 99;
  transform: translate(105%);
  transition: .5s; }
  @media screen and (min-width: 701px) {
    .linksnav {
      padding: 6.4rem;
      top: 12.4rem;
      right: 4rem;
      transform: translate(calc(100% + 4rem)); } }
  .linksnav.active {
    transform: translateX(0); }
  .linksnav::before, .linksnav::after {
    content: "";
    display: block;
    position: absolute; }
  .linksnav::before {
    width: 3rem;
    aspect-ratio: 37 / 31;
    background: url("../images/common/star-top.svg") center center no-repeat;
    background-size: 100% auto;
    top: 1.6rem;
    left: 1.6rem; }
    @media screen and (min-width: 701px) {
      .linksnav::before {
        width: 3.7rem;
        top: 2rem;
        left: 2rem; } }
  .linksnav::after {
    width: 2.8rem;
    aspect-ratio: 1 / 1;
    background: url("../images/common/star-btm.svg") center center no-repeat;
    background-size: 100% auto;
    bottom: 1.6rem;
    right: 1.6rem; }
    @media screen and (min-width: 701px) {
      .linksnav::after {
        width: 3.4rem;
        bottom: 2rem;
        right: 2rem; } }
  .linksnav li {
    border-bottom: #fff 2px solid;
    font-size: clamp(1.6rem, calc(1.528rem + 0.23vw), 1.8rem); }
    .linksnav li a {
      align-items: center;
      padding: 1.2rem 0; }
      @media screen and (min-width: 701px) {
        .linksnav li a {
          padding: 2.4rem 0; } }
      .linksnav li a::after {
        content: "";
        display: block;
        width: 1.8rem;
        aspect-ratio: 21 / 17;
        background: url("../images/common/arrow.svg") center center no-repeat;
        background-size: 100% auto;
        transition: .3s; }
        @media screen and (min-width: 701px) {
          .linksnav li a::after {
            width: 2.1rem; } }
      .linksnav li a:hover {
        color: #fff; }
        .linksnav li a:hover::after {
          filter: brightness(0) invert(1); }
    .linksnav li:first-child a {
      padding-top: 0; }

/* グローバルナビ */
.nav {
  width: min(90%, 53.4rem);
  max-height: calc(100dvh - 8rem);
  background: #FFCBCB;
  border-radius: 4rem;
  padding: 3.2rem;
  position: fixed;
  top: 8rem;
  right: 5%;
  z-index: 99;
  transform: translate(105%);
  transition: .5s;
  overflow-y: scroll; }
  @media screen and (min-width: 701px) {
    .nav {
      max-height: calc(100vh - 12.4rem);
      padding: 6.4rem;
      top: 12.4rem;
      right: 4rem;
      transform: translate(calc(100% + 4rem)); } }
  .nav.active {
    transform: translateX(0); }
  .nav::before, .nav::after {
    content: "";
    display: block;
    position: absolute; }
  .nav::before {
    width: 3rem;
    aspect-ratio: 37 / 31;
    background: url("../images/common/star-top.svg") center center no-repeat;
    background-size: 100% auto;
    top: 1.6rem;
    left: 1.6rem; }
    @media screen and (min-width: 701px) {
      .nav::before {
        width: 3.7rem;
        top: 2rem;
        left: 2rem; } }
  .nav::after {
    width: 2.8rem;
    aspect-ratio: 1 / 1;
    background: url("../images/common/star-btm.svg") center center no-repeat;
    background-size: 100% auto;
    bottom: 1.6rem;
    right: 1.6rem; }
    @media screen and (min-width: 701px) {
      .nav::after {
        width: 3.4rem;
        bottom: 2rem;
        right: 2rem; } }
  .nav .global li {
    border-bottom: #fff 2px solid;
    font-size: clamp(1.6rem, calc(1.528rem + 0.23vw), 1.8rem); }
    .nav .global li a {
      align-items: center;
      padding: 1.2rem 0; }
      @media screen and (min-width: 701px) {
        .nav .global li a {
          padding: 2.4rem 0; } }
      .nav .global li a::after {
        content: "";
        display: block;
        width: 1.8rem;
        aspect-ratio: 21 / 17;
        background: url("../images/common/arrow.svg") center center no-repeat;
        background-size: 100% auto;
        transition: .3s; }
        @media screen and (min-width: 701px) {
          .nav .global li a::after {
            width: 2.1rem; } }
      .nav .global li a:hover {
        color: #fff; }
        .nav .global li a:hover::after {
          filter: brightness(0) invert(1); }
    .nav .global li:first-child a {
      padding-top: 0; }
  .nav .sns {
    padding-top: 4rem; }
    .nav .sns li {
      display: flex;
      gap: 1rem;
      font-size: clamp(1.2rem, calc(1.05rem + 0.45vw), 1.6rem); }
      .nav .sns li img {
        display: block;
        width: 1.8rem; }
      .nav .sns li a {
        font-weight: 700; }

/* フッター */
.imgs_wrap {
  overflow: hidden;
  display: flex;
  position: relative;
  z-index: 10;
  margin-bottom: 2.4rem; }
  @media screen and (min-width: 701px) {
    .imgs_wrap {
      margin-bottom: 3.6rem; } }
  @media screen and (min-width: 961px) {
    .imgs_wrap {
      margin-bottom: 4rem; } }
  .imgs_wrap ul {
    display: flex;
    list-style: none;
    animation: infinity-scroll-left 80s infinite linear 0.5s both; }
    @media screen and (min-width: 701px) {
      .imgs_wrap ul {
        animation: infinity-scroll-left 120s infinite linear 0.5s both; } }
    .imgs_wrap ul li {
      display: block;
      width: 9.6rem;
      margin: 0 0.8rem; }
      @media screen and (min-width: 701px) {
        .imgs_wrap ul li {
          width: 14rem;
          margin: 0 1.4rem; } }
      @media screen and (min-width: 961px) {
        .imgs_wrap ul li {
          width: 17.6rem;
          margin: 0 1.8rem; } }
      .imgs_wrap ul li img {
        display: block; }

.copy {
  font-size: 1.2rem !important;
  text-align: center;
  position: relative; }

/* コンテンツ */
/* トップページ */
.mv {
  width: 100%;
  position: relative;
  z-index: 2;
  background: url("../images/common/rep.webp") repeat-x;
  background-size: auto 4.5rem; }
  @media screen and (min-width: 701px) {
    .mv {
      height: calc(100dvh - 4.8rem);
      background-size: auto 6rem; } }
  @media screen and (min-width: 961px) {
    .mv {
      background-size: auto 9.6rem; } }
  .mv .scroll {
    display: none;
    width: clamp(7rem, 20vw, 12rem);
    margin: 2rem auto 0; }
    @media screen and (min-width: 701px) {
      .mv .scroll {
        display: block;
        position: absolute;
        width: 2.4rem;
        right: 2.6rem;
        bottom: 2.6rem;
        margin: 0; } }
    .mv .scroll img {
      display: block; }
  .mv .inner {
    width: calc(100% - 1rem);
    padding-top: 2.5rem; }
    @media screen and (min-width: 701px) {
      .mv .inner {
        padding-top: 3.2rem;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%); } }
    @media screen and (min-width: 961px) {
      .mv .inner {
        width: min(85%, 132rem); } }
    .mv .inner .scroll {
      display: block; }
      @media screen and (min-width: 701px) {
        .mv .inner .scroll {
          display: none; } }
  .mv h1 {
    margin-top: -8rem; }
    @media screen and (min-width: 701px) {
      .mv h1 {
        margin-top: -8rem; } }
    @media screen and (min-width: 961px) {
      .mv h1 {
        margin-top: -12rem; } }
    .mv h1 img {
      display: block;
      width: min(calc(100% - 3.28rem), 31rem);
      margin: auto;
      position: relative; }
      @media screen and (min-width: 701px) {
        .mv h1 img {
          width: 41rem;
          margin-top: -1.2rem; } }
      @media screen and (min-width: 961px) {
        .mv h1 img {
          width: 53.2rem;
          margin-top: -1.4rem; } }
  .mv .chara {
    display: block;
    margin-bottom: 1.5rem; }
    @media screen and (min-width: 701px) {
      .mv .chara {
        margin-top: -4vw; } }
    @media screen and (min-width: 961px) {
      .mv .chara {
        margin-bottom: 0; } }
    @media screen and (min-width: 1201px) {
      .mv .chara {
        margin-top: -10rem; } }

.about {
  background: linear-gradient(#D9F4F8, #F5FFBC);
  position: relative;
  padding-top: 11rem;
  padding-bottom: 8rem;
  text-align: center; }
  @media screen and (min-width: 701px) {
    .about {
      padding-top: 0;
      padding-bottom: 10rem; } }
  @media screen and (min-width: 961px) {
    .about {
      padding-top: 8rem;
      padding-bottom: 13rem; } }
  .about h2 {
    font-size: clamp(1.85rem, calc(1.582rem + 0.68vw), 2.4rem);
    position: relative;
    margin-bottom: 2.6rem;
    z-index: 1; }
    .about h2 span {
      display: inline-block;
      font-weight: 900;
      background: #FF693D;
      color: #fff;
      padding: 1.4rem 2rem;
      border-radius: 4rem;
      position: relative;
      z-index: 2; }
      @media screen and (min-width: 701px) {
        .about h2 span {
          padding: 1.8rem 3rem; } }
    .about h2::before, .about h2::after {
      content: "";
      display: block;
      position: absolute;
      left: 50%;
      transform: translateX(-50%); }
    .about h2::before {
      width: 7.7rem;
      aspect-ratio: 59 / 61;
      background: url("../images/common/shisa0.webp") center center no-repeat;
      background-size: 100% auto;
      bottom: 52%;
      z-index: -1;
      transform: translateY(100%) translateX(-50%);
      opacity: 0;
      transition: opacity .5s ease, transform .5s ease; }
    .about h2::after {
      border: 7px solid transparent;
      border-top: 7px solid #FF693D;
      top: 100%; }
    .about h2.is-show::before {
      transform: translateY(0) translateX(-50%);
      opacity: 1;
      transition-delay: .3s; }
  .about h3 {
    display: inline-block;
    font-size: clamp(2.8rem, calc(1.2rem + 5vw), 7.2rem);
    font-weight: 900;
    color: #FF693D;
    line-height: 1.45em;
    text-shadow: 0 4px 0 #fff;
    margin-bottom: 2rem;
    position: relative;
    z-index: 1; }
    @media screen and (min-width: 701px) {
      .about h3 {
        margin-bottom: 4rem; } }
    .about h3::before, .about h3::after {
      content: "";
      display: block;
      width: 3.2rem;
      aspect-ratio: 32 / 39;
      position: absolute;
      top: 0; }
      @media screen and (min-width: 701px) {
        .about h3::before, .about h3::after {
          width: 6.4rem;
          top: 50%;
          transform: translateY(-50%); } }
    .about h3::before {
      background: url("../images/top/about-star1.svg") center center no-repeat;
      background-size: 100% auto;
      right: 96%; }
      @media screen and (min-width: 701px) {
        .about h3::before {
          right: 105%; } }
    .about h3::after {
      background: url("../images/top/about-star2.svg") center center no-repeat;
      background-size: 100% auto;
      left: 96%; }
      @media screen and (min-width: 701px) {
        .about h3::after {
          left: 105%; } }
  .about .lead {
    width: min(100%, 90rem);
    margin: auto;
    margin-bottom: 5.5rem;
    position: relative;
    z-index: 1; }
    @media screen and (min-width: 701px) {
      .about .lead {
        margin-bottom: 7rem; } }
    @media screen and (min-width: 961px) {
      .about .lead {
        margin-bottom: 11rem; } }
    .about .lead::before, .about .lead::after {
      content: "";
      display: block;
      width: 3.2rem;
      aspect-ratio: 32 / 39;
      background: url("../images/top/about-star3.svg") center center no-repeat;
      background-size: 100% auto;
      position: absolute;
      top: 0; }
      @media screen and (min-width: 701px) {
        .about .lead::before, .about .lead::after {
          width: 6.4rem;
          top: 50%; } }
    .about .lead::before {
      left: 2%; }
      @media screen and (min-width: 701px) {
        .about .lead::before {
          left: 0;
          transform: translateY(-50%); } }
    .about .lead::after {
      right: 2%;
      transform: scale(-1, 1); }
      @media screen and (min-width: 701px) {
        .about .lead::after {
          right: 0;
          transform: scale(-1, 1) v translateY(-50%); } }
    .about .lead p {
      font-size: clamp(1.4rem, calc(1.222rem + 0.45vw), 1.8rem);
      font-weight: 700;
      line-height: 1.8em; }
  .about .box {
    width: min(90%, 86.4rem);
    margin: auto;
    position: relative;
    z-index: 1; }
    .about .box::before, .about .box::after {
      content: "";
      display: block;
      width: 100%;
      aspect-ratio: 1728 / 49;
      background: url("../images/top/luchy-bg.webp") center center no-repeat;
      background-size: 100% auto; }
    .about .box::after {
      transform: scale(1, -1); }
    .about .box .inbox {
      position: relative;
      background: url("../images/top/lucky-rep.webp") repeat-y;
      background-size: 100% auto;
      padding-top: 2rem;
      padding-bottom: 3.8rem; }
      @media screen and (min-width: 961px) {
        .about .box .inbox {
          padding-top: 0; } }
      .about .box .inbox::before, .about .box .inbox::after {
        content: "";
        position: absolute; }
      .about .box .inbox::before {
        width: 110%;
        top: -20%;
        left: -5%;
        aspect-ratio: 1942 / 431;
        background: url("../images/top/lucky-top.webp") center center no-repeat;
        background-size: 100% auto; }
        @media screen and (min-width: 961px) {
          .about .box .inbox::before {
            width: 97rem;
            top: -40%;
            left: -10%; } }
      .about .box .inbox::after {
        width: 110%;
        bottom: -20%;
        left: 0;
        aspect-ratio: 923 / 202;
        background: url("../images/top/lucky-btm.webp") center center no-repeat;
        background-size: 100% auto;
        z-index: 2; }
        @media screen and (min-width: 701px) {
          .about .box .inbox::after {
            bottom: -30%; } }
        @media screen and (min-width: 961px) {
          .about .box .inbox::after {
            width: 89rem;
            bottom: -40%; } }
    .about .box h4 {
      align-items: center;
      font-size: clamp(1.8rem, calc(1.145rem + 2.05vw), 3.6rem);
      font-weight: 900;
      letter-spacing: 0.08em;
      color: #FF693D;
      background: #fff;
      width: min(70%, 35.9rem);
      height: 8rem;
      border-radius: 48%;
      margin: auto;
      position: relative;
      transform: translateY(-60%); }
      @media screen and (min-width: 701px) {
        .about .box h4 {
          height: 12.3rem; } }
      .about .box h4::before {
        content: "";
        display: block;
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        border: 7px solid transparent;
        border-top: 7px solid #fff;
        top: 100%; }
    .about .box p {
      font-size: clamp(1.4rem, calc(1.182rem + 0.68vw), 2rem);
      font-weight: 700;
      letter-spacing: 0;
      color: #fff; }
    .about .box .luckybtn {
      align-items: center;
      width: min(80%, 31.4rem);
      height: 6rem;
      background: #FFDB64;
      border-radius: 10rem;
      margin: 3.2rem auto 0;
      font-size: clamp(1.6rem, calc(1.454rem + 0.45vw), 2rem);
      font-weight: 700;
      left: 0;
      box-shadow: 0 8px 0 #E3A42C;
      cursor: pointer;
      position: relative;
      z-index: 3;
      transition: .3s; }
      @media screen and (min-width: 961px) {
        .about .box .luckybtn {
          height: 8rem; } }
      .about .box .luckybtn::after {
        content: "";
        display: block;
        width: 1.8rem;
        aspect-ratio: 21 / 17;
        background: url("../images/common/arrow-or.svg") center center no-repeat;
        background-size: 100% auto;
        margin-left: 1.2rem; }
        @media screen and (min-width: 701px) {
          .about .box .luckybtn::after {
            width: 2.1rem; } }
      .about .box .luckybtn:hover {
        transform: translateY(8px);
        box-shadow: none; }

.popup {
  align-items: center;
  width: 100vw;
  height: 100vh;
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(5px);
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99;
  display: none;
  transition: .5s;
  opacity: 0; }
  .popup.active {
    animation: fade-in 0.5s forwards;
    opacity: 1; }
  .popup .numbox {
    align-items: center;
    flex-direction: column;
    width: min(90%, 64rem);
    height: min(calc(100vh - 20rem), 68.7rem);
    border: #FF693D 5px solid;
    background: #fff;
    border-radius: 40px;
    position: relative;
    text-align: center; }
    .popup .numbox h2 {
      font-size: clamp(1.8rem, calc(0.872rem + 2.27vw), 3.6rem);
      font-weight: 900;
      letter-spacing: 0.08em;
      color: #FF693D; }
      .popup .numbox h2 span {
        display: block;
        font-size: clamp(1.6rem, calc(0.982rem + 0.68vw), 2rem);
        font-weight: 900;
        padding-bottom: 1rem; }
        @media screen and (min-width: 701px) {
          .popup .numbox h2 span {
            padding-bottom: 2rem; } }
    .popup .numbox h3 {
      display: inline-block;
      font-size: clamp(10rem, calc(5.636rem + 13.64vw), 22rem);
      font-weight: 900;
      letter-spacing: 0;
      position: relative;
      color: #FF693D;
      line-height: 1em;
      margin-bottom: 2.8rem; }
      @media screen and (min-width: 701px) {
        .popup .numbox h3 {
          margin-bottom: 5.6rem; } }
      .popup .numbox h3::before, .popup .numbox h3::after {
        content: "";
        display: block;
        position: absolute; }
      .popup .numbox h3::before {
        width: 5rem;
        aspect-ratio: 37 / 31;
        background: url("../images/common/star-top.svg") center center no-repeat;
        background-size: 100% auto;
        top: 1.6rem;
        right: 100%; }
        @media screen and (min-width: 701px) {
          .popup .numbox h3::before {
            width: 8.5rem;
            top: 2rem; } }
      .popup .numbox h3::after {
        width: 5.2rem;
        aspect-ratio: 1 / 1;
        background: url("../images/common/star-btm.svg") center center no-repeat;
        background-size: 100% auto;
        bottom: 0;
        left: 100%; }
        @media screen and (min-width: 701px) {
          .popup .numbox h3::after {
            width: 8.7rem; } }
    .popup .numbox p {
      font-size: clamp(1.2rem, calc(0.982rem + 0.68vw), 1.8rem);
      font-weight: 700;
      letter-spacing: 0;
      line-height: 1.8em;
      text-align: left;
      padding: 0 2rem; }
      @media screen and (min-width: 701px) {
        .popup .numbox p {
          padding: 0 3.2rem; } }
  .popup .inbox {
    display: inline-block;
    position: relative; }
  .popup .closebtn {
    display: block;
    width: 5.4rem;
    height: 5.4rem;
    position: absolute;
    right: 0;
    bottom: calc(100% + 1.6rem);
    border-radius: 50%;
    background: #FF693D;
    box-shadow: 0 4px 0 #E54D1F;
    cursor: pointer; }
    @media screen and (min-width: 701px) {
      .popup .closebtn {
        width: 6.4rem;
        height: 6.4rem; } }
    .popup .closebtn span {
      display: block;
      width: 2.2rem;
      height: 5px;
      background: #fff;
      border-radius: 10rem;
      position: absolute;
      top: 50%;
      left: 30%; }
      @media screen and (min-width: 701px) {
        .popup .closebtn span {
          left: 34%; } }
      .popup .closebtn span:nth-of-type(1) {
        transform: rotate(45deg); }
      .popup .closebtn span:nth-of-type(2) {
        transform: rotate(-45deg); }

.friends {
  background: linear-gradient(#F5FFBC, #FFBCBC);
  position: relative; }
  .friends::before {
    content: "";
    display: block;
    width: 100%;
    aspect-ratio: 16 / 1;
    background: url("../images/top/round.webp") center center no-repeat;
    background-size: 100% auto; }
  .friends .inbox {
    background: linear-gradient(rgba(255, 255, 255, 0.3), #fff);
    text-align: center;
    padding-bottom: 8rem; }
    @media screen and (min-width: 701px) {
      .friends .inbox {
        padding-bottom: 10rem; } }
    @media screen and (min-width: 961px) {
      .friends .inbox {
        padding-bottom: 12rem; } }
  .friends h2 {
    display: inline-block;
    font-size: clamp(2.2rem, calc(1.4rem + 2.5vw), 4.4rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.45em;
    color: #FF693D;
    text-shadow: 0 4px 0 #fff;
    position: relative;
    margin-bottom: 2rem; }
    @media screen and (min-width: 701px) {
      .friends h2 {
        margin-bottom: 4rem; } }
    .friends h2::before, .friends h2::after {
      content: "";
      display: block;
      width: 3.2rem;
      aspect-ratio: 32 / 55;
      background: url("../images/top/line.svg") center center no-repeat;
      background-size: 100% auto;
      position: absolute;
      top: 50%; }
    .friends h2::before {
      transform: translateY(-50%);
      right: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .friends h2::before {
          right: calc(100% + 3.2rem); } }
    .friends h2::after {
      transform: scale(-1, 1) translateY(-50%);
      left: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .friends h2::after {
          left: calc(100% + 3.2rem); } }
  .friends p {
    font-size: clamp(1.3rem, calc(1.044rem + 0.8vw), 2rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.44em; }
  .friends .chara {
    flex-wrap: wrap;
    padding-bottom: 0.8rem; }
    @media screen and (min-width: 701px) {
      .friends .chara {
        padding-bottom: 0.9rem; } }
    .friends .chara li {
      display: block;
      width: min(33%, 10rem);
      padding: 0 1.2rem 2.4rem;
      animation: poyo 1.2s ease-in-out infinite; }
      @media screen and (min-width: 701px) {
        .friends .chara li {
          width: min(16.6%, 18.2rem);
          padding: 0 1.2rem 3.8rem; } }
      @media screen and (min-width: 701px) {
        .friends .chara li:nth-child(even) {
          margin-top: 4rem; } }
  .friends .sp .chara {
    padding-top: 2.4rem; }
  .friends .tabpc .chara:first-of-type {
    padding-top: 3.6rem;
    padding-bottom: 0; }
  .friends .shiuma {
    background: linear-gradient(135deg, #fff, #FFF7F5);
    border: #FF693D 4px solid;
    border-radius: 1.6rem;
    width: min(calc(100% - 2rem), 76rem);
    margin: auto;
    padding: 2rem 1.6rem 0;
    position: relative;
    text-align: left; }
    @media screen and (min-width: 375px) {
      .friends .shiuma {
        padding: 2rem 1.8rem 0; } }
    @media screen and (min-width: 701px) {
      .friends .shiuma {
        padding: 3rem 40% 3rem 3rem; } }
    @media screen and (min-width: 961px) {
      .friends .shiuma {
        padding: 4rem 31rem 4rem 4rem; } }
    .friends .shiuma h4 {
      align-items: center;
      font-size: 1.55rem;
      font-weight: 700;
      margin-bottom: 1.3rem; }
      @media screen and (min-width: 375px) {
        .friends .shiuma h4 {
          font-size: 2rem; } }
      @media screen and (min-width: 701px) {
        .friends .shiuma h4 {
          font-size: 2.4rem;
          margin-bottom: 1.6rem; } }
      .friends .shiuma h4 span {
        align-items: center;
        font-size: 1.2rem;
        color: #fff;
        width: 3.8rem;
        height: 2.3rem;
        border-radius: 1.4rem;
        background: #FF693D;
        margin-right: 0.6rem; }
        @media screen and (min-width: 375px) {
          .friends .shiuma h4 span {
            font-size: 1.4rem;
            width: 4.8rem;
            margin-right: 0.8rem; } }
        @media screen and (min-width: 701px) {
          .friends .shiuma h4 span {
            font-size: 1.8rem;
            width: 5.8rem;
            height: 2.8rem;
            margin-right: 1.6rem; } }
    .friends .shiuma p {
      font-size: clamp(1.4rem, calc(1rem + 0.625vw), 1.6rem);
      line-height: 1.8em; }
    .friends .shiuma figure {
      display: block;
      width: min(53%, 19.5rem);
      margin: 1.6rem auto 0; }
      @media screen and (min-width: 701px) {
        .friends .shiuma figure {
          width: min(32.5%, 24.7rem);
          position: absolute;
          bottom: 0;
          right: 3rem; } }
      @media screen and (min-width: 961px) {
        .friends .shiuma figure {
          width: 24.7rem;
          right: 4rem; } }
      .friends .shiuma figure img {
        display: block; }

#prof .inbox {
  width: min(90%, 89.2rem); }

.charanav {
  align-items: center;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  z-index: 10; }
  @media screen and (min-width: 701px) {
    .charanav {
      padding-left: 28.2%; } }
  .charanav li {
    display: block;
    font-size: clamp(1.4rem, calc(1.182rem + 0.68vw), 1.6rem);
    font-weight: 700;
    left: 0; }
    .charanav li.cnav {
      width: 4.8rem;
      aspect-ratio: 1 / 1;
      background: url("../images/top/arrow.webp") center center no-repeat;
      background-size: 100% auto;
      cursor: pointer; }
      .charanav li.cnav.prev {
        transform: scale(-1, 1); }
    .charanav li.current {
      margin: 0 4rem; }

.prof {
  display: none;
  opacity: 0;
  transition: opacity 0.5s;
  position: relative;
  padding-left: 28.2%;
  padding-bottom: 6.4rem; }
  @media screen and (min-width: 701px) {
    .prof {
      padding-left: 28.2%;
      padding-bottom: 10rem; } }
  .prof.active {
    display: block;
    opacity: 1; }
  .prof .img {
    display: block;
    width: 34%;
    position: absolute;
    left: 0;
    bottom: 80%;
    z-index: 3; }
    @media screen and (min-width: 701px) {
      .prof .img {
        bottom: 0; } }
    .prof .img img {
      display: block; }
  .prof .txt {
    border: #A7B6BC 2px solid;
    background: #fff;
    padding: 3rem 2rem;
    border-radius: 2rem;
    position: relative;
    overflow: hidden; }
    @media screen and (min-width: 701px) {
      .prof .txt {
        border: #A7B6BC 5px solid;
        padding: 9rem 18.75%;
        border-radius: 4rem; } }
    .prof .txt h2, .prof .txt p {
      position: relative;
      z-index: 2; }
    .prof .txt h2 {
      font-size: clamp(1.6rem, calc(1.017rem + 1.82vw), 3.2rem);
      font-weight: 900;
      letter-spacing: 0;
      margin-bottom: 1.6rem; }
      @media screen and (min-width: 701px) {
        .prof .txt h2 {
          margin-bottom: 2.5rem; } }
  .prof .bgimg {
    display: block;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0; }
    .prof .bgimg img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover; }

.number {
  background: linear-gradient(#D1FFDF, #F5FFBC);
  padding-bottom: 6rem;
  text-align: center;
  position: relative; }
  @media screen and (min-width: 701px) {
    .number {
      padding-bottom: 8.8rem; } }
  .number::before {
    content: "";
    display: block;
    width: 100%;
    aspect-ratio: 1600 / 99;
    background: url("../images/top/round-r.webp") center center no-repeat;
    background-size: 100% auto;
    position: absolute;
    top: 0;
    left: 0; }
  .number .catch {
    font-size: clamp(1.85rem, calc(1.582rem + 0.68vw), 2.4rem);
    position: relative;
    z-index: 1;
    transform: translateY(-50%); }
    .number .catch span {
      display: inline-block;
      font-weight: 900;
      background: #FF693D;
      color: #fff;
      padding: 1.4rem 2rem;
      border-radius: 4rem;
      position: relative;
      z-index: 2; }
      @media screen and (min-width: 701px) {
        .number .catch span {
          padding: 1.8rem 3rem; } }
    .number .catch::after {
      content: "";
      display: block;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      border: 7px solid transparent;
      border-top: 7px solid #FF693D;
      top: 100%; }
  .number h2 {
    display: inline-block;
    font-size: clamp(2rem, calc(0.982rem + 3.18vw), 4.8rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.45em;
    color: #FF693D;
    text-shadow: 0 4px 0 #fff;
    position: relative;
    margin-bottom: 36vw;
    z-index: 1; }
    @media screen and (min-width: 701px) {
      .number h2 {
        margin-bottom: 20vw; } }
    .number h2::before, .number h2::after {
      content: "";
      display: block;
      width: 2.6rem;
      aspect-ratio: 32 / 55;
      background: url("../images/top/line.svg") center center no-repeat;
      background-size: 100% auto;
      position: absolute;
      bottom: 0; }
      @media screen and (min-width: 701px) {
        .number h2::before, .number h2::after {
          width: 3.2rem; } }
    .number h2::before {
      right: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .number h2::before {
          right: calc(100% + 3.2rem); } }
    .number h2::after {
      transform: scale(-1, 1);
      left: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .number h2::after {
          left: calc(100% + 3.2rem); } }
  .number .arc-slider {
    position: absolute;
    top: 10vw;
    left: 0;
    width: 200%;
    height: 60rem;
    overflow: hidden;
    z-index: 1;
    transform-origin: center center;
    margin-left: -50%; }
    @media screen and (min-width: 701px) {
      .number .arc-slider {
        top: 4rem;
        width: 130%;
        margin-left: -15%; } }
    @media screen and (min-width: 961px) {
      .number .arc-slider {
        top: 7rem;
        width: 100%;
        margin-left: 0; } }
    @media screen and (min-width: 1201px) {
      .number .arc-slider {
        top: 7rem; } }
    @media screen and (min-width: 1801px) {
      .number .arc-slider {
        top: 0; } }
    .number .arc-slider li {
      width: 28vw;
      max-width: 20rem;
      min-width: 5.8rem;
      height: auto; }
      @media screen and (min-width: 701px) {
        .number .arc-slider li {
          width: 18vw; } }
      @media screen and (min-width: 961px) {
        .number .arc-slider li {
          width: 12.5vw; } }
      .number .arc-slider li span {
        font-size: clamp(0.8rem, calc(0.508rem + 0.91vw), 1.6rem);
        line-height: 1.5em;
        align-items: center;
        padding-top: 40%;
        width: 100%;
        aspect-ratio: 397 / 378;
        background: url("../images/top/ema.webp") center center no-repeat;
        background-size: 100% auto;
        transform: rotate(180deg); }
        @media screen and (min-width: 701px) {
          .number .arc-slider li span {
            line-height: 1.4em; } }
        @media screen and (min-width: 961px) {
          .number .arc-slider li span {
            line-height: 1.6em; } }
      .number .arc-slider li img {
        display: block;
        transform: rotate(180deg); }
  .number .lead {
    text-align: center;
    position: relative;
    z-index: 1; }
  .number .btn {
    position: relative; }
    @media screen and (min-width: 701px) {
      .number .btn {
        display: inline-block; } }
    .number .btn::before, .number .btn::after {
      content: "";
      display: block; }
      @media screen and (min-width: 701px) {
        .number .btn::before, .number .btn::after {
          position: absolute; } }
    .number .btn::before {
      width: 48%;
      aspect-ratio: 50 / 43;
      background: url("../images/top/num1.webp") center center no-repeat;
      background-size: 100% auto;
      position: absolute;
      bottom: 0;
      left: 0; }
      @media screen and (min-width: 701px) {
        .number .btn::before {
          width: 20rem;
          top: 0;
          right: 110%;
          left: auto;
          bottom: auto; } }
    .number .btn::after {
      width: 48%;
      aspect-ratio: 229 / 204;
      background: url("../images/top/num2.webp") center center no-repeat;
      background-size: 100% auto;
      margin-left: auto; }
      @media screen and (min-width: 701px) {
        .number .btn::after {
          width: 22.9rem;
          left: 105%;
          top: 0; } }
    .number .btn a {
      align-items: center;
      width: min(100%, 30rem);
      height: 6rem;
      background: #FFDB64;
      border-radius: 10rem;
      margin: 3.2rem auto 2rem;
      font-size: clamp(1.6rem, calc(1.454rem + 0.45vw), 2rem);
      font-weight: 700;
      box-shadow: 0 8px 0 #E3A42C;
      position: relative;
      z-index: 3;
      transition: .3s; }
      @media screen and (min-width: 701px) {
        .number .btn a {
          width: 30rem;
          margin-bottom: 0; } }
      @media screen and (min-width: 961px) {
        .number .btn a {
          margin-top: 6rem;
          height: 8rem; } }
      .number .btn a::after {
        content: "";
        display: block;
        width: 1.8rem;
        aspect-ratio: 21 / 17;
        background: url("../images/common/arrow-or.svg") center center no-repeat;
        background-size: 100% auto;
        margin-left: 1.2rem;
        position: absolute;
        right: 2rem;
        top: 0;
        bottom: 0;
        margin: auto; }
        @media screen and (min-width: 701px) {
          .number .btn a::after {
            width: 2.1rem; } }
      .number .btn a:hover {
        transform: translateY(8px);
        box-shadow: none; }
  .number .inner {
    background: rgba(255, 255, 255, 0.8);
    border-radius: 2rem;
    padding-bottom: 4rem; }
    @media screen and (min-width: 701px) {
      .number .inner {
        border-radius: 4rem;
        padding-bottom: 8rem; } }
    .number .inner h2 {
      margin-bottom: 3.2rem; }
    .number .inner h3 {
      margin-bottom: 1.6rem; }
      @media screen and (min-width: 701px) {
        .number .inner h3 {
          margin-bottom: 3.2rem; } }
    .number .inner form {
      display: block;
      width: min(90%, 59rem);
      margin: auto;
      position: relative;
      padding-bottom: 4rem; }
      @media screen and (min-width: 701px) {
        .number .inner form {
          padding-bottom: 8rem; } }
      .number .inner form ul {
        padding-bottom: 1.6rem; }
        @media screen and (min-width: 701px) {
          .number .inner form ul {
            padding-bottom: 3.2rem; } }
        .number .inner form ul li {
          display: block;
          width: 22%; }
      .number .inner form input[type=number] {
        font-family: "Zen Maru Gothic", sans-serif;
        font-size: clamp(2rem, calc(0.982rem + 3.18vw), 4.8rem);
        font-weight: 700;
        align-items: center;
        border: #E7E7E6 2px solid;
        background: #fff;
        border-radius: 1rem;
        width: 100%;
        aspect-ratio: 136 / 165;
        text-align: center; }
        @media screen and (min-width: 701px) {
          .number .inner form input[type=number] {
            border: #E7E7E6 4px solid;
            border-radius: 4rem; } }
        .number .inner form input[type=number]::-webkit-outer-spin-button, .number .inner form input[type=number]::-webkit-inner-spin-button {
          -webkit-appearance: none;
          -moz-appearance: none;
          appearance: none;
          margin: 0; }
      .number .inner form p {
        font-size: clamp(1.1rem, calc(1.064rem + 0.11vw), 0.75rem); }
    .number .inner button {
      align-items: center;
      width: min(100%, 30rem);
      height: 6rem;
      background: #FFDB64;
      border-radius: 10rem;
      margin: 0 auto 2rem;
      font-size: clamp(1.6rem, calc(1.454rem + 0.45vw), 2rem);
      font-weight: 900;
      box-shadow: 0 8px 0 #E3A42C;
      position: relative;
      z-index: 3;
      transition: .3s; }
      @media screen and (min-width: 701px) {
        .number .inner button {
          width: 30rem;
          margin-bottom: 3.6rem; } }
      @media screen and (min-width: 961px) {
        .number .inner button {
          height: 8rem; } }
      .number .inner button::after {
        content: "";
        display: block;
        width: 1.8rem;
        aspect-ratio: 21 / 17;
        background: url("../images/common/arrow-or.svg") center center no-repeat;
        background-size: 100% auto;
        margin-left: 1.2rem;
        position: absolute;
        right: 2rem;
        top: 0;
        bottom: 0;
        margin: auto; }
        @media screen and (min-width: 701px) {
          .number .inner button::after {
            width: 2.1rem; } }
      .number .inner button:hover {
        transform: translateY(8px);
        box-shadow: none; }
    .number .inner #total {
      font-size: clamp(1.6rem, calc(1.454rem + 0.45vw), 2rem);
      font-weight: 900; }
  .number .about-no {
    width: min(90%, 110.4rem);
    margin: auto; }
    .number .about-no::before {
      content: "";
      display: block;
      width: 100%;
      height: 4rem;
      background: url("../images/top/dash.webp") repeat-x;
      background-size: auto 4px;
      margin-bottom: 2.8rem; }
      @media screen and (min-width: 701px) {
        .number .about-no::before {
          margin-bottom: 5.6rem; } }
    @media screen and (min-width: 701px) {
      .number .about-no dl {
        display: flex;
        justify-content: space-between;
        align-items: flex-start; } }
    .number .about-no dl dt {
      display: block;
      width: min(100%, 22rem);
      background: #FFCBCB;
      color: #FF3D3D;
      padding: 1.4rem 0;
      position: relative;
      font-size: clamp(1.5rem, calc(1.318rem + 0.57vw), 2rem);
      font-weight: 900;
      letter-spacing: 0.04em;
      border-radius: 10rem;
      margin-bottom: 3rem; }
      @media screen and (min-width: 701px) {
        .number .about-no dl dt {
          padding: 2rem 0;
          width: 28.2rem; } }
      .number .about-no dl dt::after {
        content: "";
        display: block;
        width: 2.2rem;
        aspect-ratio: 11 / 13;
        background: url("../images/top/dot.svg") center center no-repeat;
        background-size: 100% auto;
        position: absolute;
        left: 5%;
        top: 84%; }
        @media screen and (min-width: 701px) {
          .number .about-no dl dt::after {
            left: 90%; } }
    .number .about-no dl dd {
      text-align: left;
      letter-spacing: 0; }
      @media screen and (min-width: 701px) {
        .number .about-no dl dd {
          width: calc(100% - 32.2rem); } }

#number {
  margin-top: 14rem; }

.goods {
  background: linear-gradient(#F5FFBC, #F4CCC5);
  text-align: center;
  padding-top: 6rem; }
  @media screen and (min-width: 701px) {
    .goods {
      padding-top: 8.8rem; } }
  @media screen and (min-width: 375px) {
    .goods .inner {
      width: min(calc(100% - 6rem), 120rem); } }
  .goods h2 {
    display: inline-block;
    font-size: clamp(2.2rem, calc(1.4rem + 2.5vw), 4.4rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.45em;
    color: #FF693D;
    text-shadow: 0 4px 0 #fff;
    position: relative;
    margin-bottom: 4rem; }
    @media screen and (min-width: 701px) {
      .goods h2 {
        margin-bottom: 5.6rem; } }
    .goods h2::before, .goods h2::after {
      content: "";
      display: block;
      width: 3.2rem;
      aspect-ratio: 32 / 55;
      background: url("../images/top/line.svg") center center no-repeat;
      background-size: 100% auto;
      position: absolute;
      top: 50%; }
    .goods h2::before {
      transform: translateY(-50%);
      right: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .goods h2::before {
          right: calc(100% + 3.2rem); } }
    .goods h2::after {
      transform: scale(-1, 1) translateY(-50%);
      left: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .goods h2::after {
          left: calc(100% + 3.2rem); } }
  .goods .list {
    padding-bottom: 3.2rem; }
    @media screen and (min-width: 701px) {
      .goods .list {
        display: flex;
        justify-content: space-between;
        padding-bottom: 6.4rem; } }
    .goods .list .box {
      margin-bottom: 3rem; }
      @media screen and (min-width: 701px) {
        .goods .list .box {
          width: 32%;
          margin-bottom: 0; } }
      .goods .list .box:last-of-type {
        margin-bottom: 0; }
      .goods .list .box figure {
        width: 86%;
        margin: auto; }
        .goods .list .box figure img {
          display: block; }
      .goods .list .box h3 {
        margin-top: -1.4rem;
        padding-bottom: 1.6rem; }
        @media screen and (min-width: 701px) {
          .goods .list .box h3 {
            padding-bottom: 3.2rem; } }
        .goods .list .box h3 b {
          display: inline-block;
          font-size: clamp(1.5rem, calc(1.17rem + 1.02vw), 2.4rem);
          font-weight: 900;
          letter-spacing: 0;
          padding: .8rem 2rem;
          max-width: 100%;
          background: #FF693D;
          color: #fff;
          border-radius: 10rem; }
          @media screen and (min-width: 701px) {
            .goods .list .box h3 b {
              padding: 1rem 3.2rem; } }
        .goods .list .box h3 span {
          display: block;
          font-size: clamp(1.4rem, calc(1rem + 0.625vw), 1.6rem);
          font-weight: 900; }
      .goods .list .box p {
        text-align: left;
        line-height: 1.8em; }
  .goods .goodsbtn {
    padding-bottom: 4rem; }
    @media screen and (min-width: 701px) {
      .goods .goodsbtn {
        display: flex;
        justify-content: center;
        padding-bottom: 8rem; } }
    @media screen and (min-width: 701px) {
      .goods .goodsbtn li {
        width: min(48%, 38rem); } }
    .goods .goodsbtn li:first-child {
      margin-bottom: 2rem; }
      @media screen and (min-width: 701px) {
        .goods .goodsbtn li:first-child {
          margin-bottom: 0;
          margin-right: min(4%, 4rem); } }
    .goods .goodsbtn li a {
      align-items: center;
      width: 100%;
      height: 6rem;
      background: #FFDB64;
      border-radius: 10rem;
      margin: 3.2rem auto 0;
      font-size: clamp(1.6rem, calc(1.454rem + 0.45vw), 2rem);
      font-weight: 700;
      left: 0;
      box-shadow: 0 8px 0 #E3A42C;
      cursor: pointer;
      position: relative;
      z-index: 3;
      transition: .3s; }
      @media screen and (min-width: 961px) {
        .goods .goodsbtn li a {
          height: 8rem; } }
      .goods .goodsbtn li a::after {
        content: "";
        display: block;
        width: 1.8rem;
        aspect-ratio: 21 / 17;
        background: url("../images/common/arrow-or.svg") center center no-repeat;
        background-size: 100% auto;
        margin-left: 1.2rem;
        position: absolute;
        right: 2rem;
        top: 0;
        bottom: 0;
        margin: auto; }
        @media screen and (min-width: 701px) {
          .goods .goodsbtn li a::after {
            width: 2.1rem; } }
      .goods .goodsbtn li a:hover {
        transform: translateY(8px);
        box-shadow: none; }
  .goods .other {
    width: min(100%, 43rem);
    margin: auto;
    position: relative; }
    .goods .other img {
      display: block; }
    .goods .other figcaption {
      display: block;
      width: auto;
      font-size: clamp(1rem, calc(0.636rem + 1.14vw), 2rem);
      font-weight: 900;
      line-height: 1.6em;
      position: absolute;
      top: 0;
      left: 0; }
      .goods .other figcaption span {
        display: inline-block;
        background: #fff;
        border-radius: 10rem;
        padding: 1.5rem 2.8rem;
        font-weight: 900;
        position: relative; }
        .goods .other figcaption span::before {
          content: "";
          display: block;
          width: 2.2rem;
          aspect-ratio: 11 / 13;
          background: url("../images/top/dot.svg") center center no-repeat;
          position: absolute;
          left: 10%;
          top: 95%;
          filter: brightness(0) invert(1); }

.topcontact {
  background: linear-gradient(#F4CCC5, #D2FEE1);
  padding-top: 6rem; }
  @media screen and (min-width: 701px) {
    .topcontact {
      padding-top: 9rem; } }
  @media screen and (min-width: 961px) {
    .topcontact {
      padding-top: 12rem; } }
  .topcontact .inner {
    background: #fff;
    text-align: center;
    padding: 4rem 0;
    margin-bottom: 8rem;
    border-radius: 2rem; }
    @media screen and (min-width: 701px) {
      .topcontact .inner {
        padding: 6rem 0;
        margin-bottom: 12rem;
        border-radius: 3rem; } }
    @media screen and (min-width: 961px) {
      .topcontact .inner {
        padding: 8rem 0;
        margin-bottom: 16rem;
        border-radius: 4rem; } }
  .topcontact h2 {
    display: inline-block;
    font-size: clamp(2.2rem, calc(1.4rem + 2.5vw), 4.4rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.45em;
    color: #FF693D;
    text-shadow: 0 4px 0 #fff;
    position: relative;
    margin-bottom: 4rem; }
    @media screen and (min-width: 701px) {
      .topcontact h2 {
        margin-bottom: 5.4rem; } }
    .topcontact h2::before, .topcontact h2::after {
      content: "";
      display: block;
      width: 3.2rem;
      aspect-ratio: 32 / 55;
      background: url("../images/top/line.svg") center center no-repeat;
      background-size: 100% auto;
      position: absolute;
      top: 50%; }
    .topcontact h2::before {
      transform: translateY(-50%);
      right: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .topcontact h2::before {
          right: calc(100% + 3.2rem); } }
    .topcontact h2::after {
      transform: scale(-1, 1) translateY(-50%);
      left: calc(100% + 1.2rem); }
      @media screen and (min-width: 701px) {
        .topcontact h2::after {
          left: calc(100% + 3.2rem); } }
  .topcontact p {
    font-size: clamp(1.5rem, calc(1.17rem + 1.02vw), 2.4rem);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.8em; }
  .topcontact .btn {
    display: block;
    width: min(80%, 26rem);
    margin: 3.6rem auto 0;
    position: relative; }
    .topcontact .btn span {
      font-size: clamp(1.45rem, calc(1.128rem + 0.68vw), 1.25rem);
      font-weight: 900;
      color: #fff;
      position: absolute;
      width: 100%;
      top: 59%;
      left: 0;
      padding-left: 3rem; }

/* 下層ページ */
.page {
  position: relative;
  padding-top: 9rem;
  padding-bottom: 2.4rem;
  z-index: 2; }
  @media screen and (min-width: 701px) {
    .page {
      padding-top: 17.5rem;
      padding-bottom: 8rem; } }

.pagettl {
  text-align: center;
  font-size: clamp(2.6rem, calc(2.036rem + 3vw), 6.4rem);
  font-weight: 900;
  letter-spacing: 0.04em;
  line-height: 1.45em;
  color: #FF693D;
  padding-bottom: 4rem; }
  @media screen and (min-width: 701px) {
    .pagettl {
      padding-bottom: 6.5rem;
      letter-spacing: 0.08em; } }

.luckyno::before {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 100vh);
  background: linear-gradient(#D9F4F8, #F5FFBC, #F5FFBC, #F9C4C0, #D1FFDF, #D9F4F8, #E4F8E3);
  position: absolute;
  left: 0;
  top: 100vh; }
.luckyno .inner {
  padding-bottom: 6rem; }
  @media screen and (min-width: 701px) {
    .luckyno .inner {
      padding-bottom: 8rem; } }
.luckyno .box {
  background: #fff;
  padding: 2rem;
  border-radius: 2rem;
  margin-bottom: 2rem;
  margin-bottom: 3rem; }
  @media screen and (min-width: 701px) {
    .luckyno .box {
      padding: 3rem;
      border-radius: 4rem;
      margin-bottom: 3rem;
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-bottom: 4rem; } }
  @media screen and (min-width: 961px) {
    .luckyno .box {
      padding: 6rem 8rem;
      margin-bottom: 4rem; } }
  .luckyno .box h3 {
    display: block;
    width: 25%;
    margin: auto; }
    @media screen and (min-width: 701px) {
      .luckyno .box h3 {
        width: min(12%, 10.4rem);
        margin: 0; } }
  .luckyno .box .txt {
    padding-bottom: 2rem; }
    @media screen and (min-width: 701px) {
      .luckyno .box .txt {
        width: min(50%, 43.2rem);
        padding-bottom: 0; } }
    .luckyno .box .txt p {
      line-height: 1.8em; }
  .luckyno .box .cat {
    flex-wrap: wrap;
    padding-bottom: 1.6rem; }
    @media screen and (min-width: 701px) {
      .luckyno .box .cat {
        padding-bottom: 2.2rem; } }
    .luckyno .box .cat li {
      display: inline-block;
      font-size: clamp(1.5rem, calc(1.39rem + 0.34vw), 1.8rem);
      font-weight: 900;
      letter-spacing: 0;
      padding: .8rem 2rem;
      border: #000 2px solid;
      border-radius: 3rem;
      margin-right: 1.6rem; }
      @media screen and (min-width: 701px) {
        .luckyno .box .cat li {
          padding: 1rem 3.2rem;
          border: #000 4px solid; } }
  .luckyno .box figure {
    width: 50%;
    margin: auto; }
    @media screen and (min-width: 701px) {
      .luckyno .box figure {
        width: min(25%, 21.6rem);
        margin: 0; } }

.shop::before {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 100vh);
  background: linear-gradient(#D9F4F8, #F5FFBC, #F5FFBC, #F9C4C0);
  position: absolute;
  left: 0;
  top: 100vh; }
.shop .inner {
  padding-bottom: 6rem; }
  @media screen and (min-width: 701px) {
    .shop .inner {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap;
      padding-bottom: 8rem; } }
  .shop .inner .box {
    background: #fff;
    padding: 2rem;
    border-radius: 2rem;
    margin-bottom: 2rem; }
    @media screen and (min-width: 701px) {
      .shop .inner .box {
        width: 48%;
        padding: 3rem;
        border-radius: 4rem;
        margin-bottom: 3rem; } }
    @media screen and (min-width: 961px) {
      .shop .inner .box {
        padding: 4rem;
        margin-bottom: 4rem; } }
    .shop .inner .box h3 {
      font-size: clamp(1.6rem, calc(1.308rem + 0.91vw), 2.4rem);
      font-weight: 900;
      letter-spacing: 0;
      line-height: 1.6em;
      color: #FF693D;
      padding-bottom: 1.6rem; }
      @media screen and (min-width: 701px) {
        .shop .inner .box h3 {
          padding-bottom: 2.4rem; } }
    .shop .inner .box p {
      padding-bottom: .8rem; }
      @media screen and (min-width: 701px) {
        .shop .inner .box p {
          padding-bottom: 1.6rem; } }
      .shop .inner .box p:last-of-type {
        padding-bottom: 0; }
      .shop .inner .box p a {
        display: inline-block;
        position: relative; }
        .shop .inner .box p a::before {
          content: "";
          display: inline-block;
          width: 1.4rem;
          aspect-ratio: 1 / 1;
          background: url("../images/common/blank.svg") center center no-repeat;
          background-size: 100% auto;
          margin-right: 1.4rem; }
        .shop .inner .box p a::after {
          content: "";
          display: block;
          width: 100%;
          height: 1px;
          background: #000;
          position: absolute;
          top: 100%;
          left: 0;
          transition: .3s; }
        .shop .inner .box p a:hover::after {
          transform: translateY(-5px);
          opacity: 0; }

.shopcat {
  flex-wrap: wrap;
  padding-bottom: 3.2rem; }
  @media screen and (min-width: 701px) {
    .shopcat {
      padding-bottom: 6.4rem; } }
  .shopcat li {
    display: inline-block;
    font-size: clamp(1.5rem, calc(1.29rem + 0.34vw), 1.8rem);
    letter-spacing: 0;
    margin: 0 .8rem 1rem; }
    .shopcat li a {
      display: inline-block;
      font-weight: 700;
      padding: 1rem 3.2rem;
      border-radius: 10rem;
      background: #fff;
      border: #ffdb64 4px solid;
      color: #f16334;
      position: relative;
      overflow: hidden;
      z-index: 1; }
      .shopcat li a::before {
        content: "";
        display: block;
        width: 100%;
        height: 100%;
        background: #ffdb64;
        position: absolute;
        top: 0;
        left: 0;
        z-index: -1;
        transition: .3s;
        transform: translateX(-100%); }
      .shopcat li a:hover::before {
        transform: translateX(0);
        z-index: -1; }
    .shopcat li.current a {
      color: #fff;
      background: #f16334;
      pointer-events: none; }

.contact::before {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 100vh);
  background: linear-gradient(#D9F4F8, #F5FFBC, #F7EFBC);
  position: absolute;
  left: 0;
  top: 100vh; }
.contact h3 {
  text-align: center;
  font-size: clamp(1.6rem, calc(1.536rem + 0.45vw), 2rem);
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1.8em;
  padding-bottom: 2.6rem; }
.contact .lead {
  padding-bottom: 4rem; }
  @media screen and (min-width: 701px) {
    .contact .lead {
      text-align: center;
      padding-bottom: 8rem; } }
  .contact .lead p {
    line-height: 1.8em; }
    .contact .lead p.pb {
      padding-bottom: 4rem; }
      @media screen and (min-width: 701px) {
        .contact .lead p.pb {
          padding-bottom: 6rem; } }
      @media screen and (min-width: 961px) {
        .contact .lead p.pb {
          padding-bottom: 8rem; } }
.contact .inner {
  background: #fff;
  border-radius: 2.4rem;
  padding: 3.2rem 1.6rem;
  margin-bottom: 4rem; }
  @media screen and (min-width: 701px) {
    .contact .inner {
      border-radius: 3.2rem;
      padding: 5rem 4rem 6rem;
      padding-bottom: 4.5rem;
      margin-bottom: 8rem; } }
  @media screen and (min-width: 961px) {
    .contact .inner {
      border-radius: 4rem;
      padding: 8rem;
      margin-bottom: 12rem; } }
.contact .agree {
  text-align: center;
  margin-bottom: 2rem; }
  @media screen and (min-width: 701px) {
    .contact .agree {
      margin-bottom: 3rem; } }
  @media screen and (min-width: 961px) {
    .contact .agree {
      margin-bottom: 4rem; } }
  .contact .agree a {
    text-decoration: underline; }
    .contact .agree a:hover {
      text-decoration: none; }
.contact .wpcf7-acceptance .wpcf7-list-item {
  display: inline-block;
  width: 1.6rem;
  aspect-ratio: 1 / 1;
  position: relative;
  margin-right: 1.6rem;
  vertical-align: -0.2rem; }
  .contact .wpcf7-acceptance .wpcf7-list-item::before, .contact .wpcf7-acceptance .wpcf7-list-item::after {
    content: "";
    display: inline-block;
    position: absolute; }
  .contact .wpcf7-acceptance .wpcf7-list-item::before {
    width: 100%;
    aspect-ratio: 1 / 1;
    background: #fff;
    border: #000 1px solid;
    top: 0;
    left: 0; }
  .contact .wpcf7-acceptance .wpcf7-list-item::after {
    width: 0.8rem;
    height: 1.4rem;
    border-bottom: #FF693D 2px solid;
    border-right: #FF693D 2px solid;
    transform: rotate(45deg);
    top: -0.2rem;
    left: 0.35rem;
    opacity: 0; }
  .contact .wpcf7-acceptance .wpcf7-list-item:has(input:checked)::after {
    opacity: 1; }
  .contact .wpcf7-acceptance .wpcf7-list-item input {
    display: inline-block;
    width: 100%;
    aspect-ratio: 1 / 1;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 3; }
.contact input, .contact textarea {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }
.contact input[type=text], .contact input[type=email], .contact textarea {
  width: 100%;
  background: #F3F3F3;
  font-family: "Zen Maru Gothic", sans-serif;
  font-size: 1em;
  padding: 0.8rem 1rem;
  border-radius: .8rem; }
  @media screen and (min-width: 701px) {
    .contact input[type=text], .contact input[type=email], .contact textarea {
      padding: 1.6rem 2rem; } }
.contact textarea {
  width: 100%;
  height: 12rem;
  background: #F3F3F3;
  border-radius: .8rem;
  padding: 0.8rem 1rem; }
  @media screen and (min-width: 701px) {
    .contact textarea {
      height: 18rem;
      padding: 1.2rem 1.5rem; } }
  @media screen and (min-width: 961px) {
    .contact textarea {
      height: 24rem;
      padding: 1.6rem 2rem; } }
.contact dl {
  margin-bottom: 4rem; }
  @media screen and (min-width: 701px) {
    .contact dl {
      display: flex;
      justify-content: space-between;
      flex-wrap: wrap; } }
  @media screen and (min-width: 701px) {
    .contact dl.confirm dt {
      padding-top: 3.2rem; } }
  .contact dl dt, .contact dl dd {
    font-weight: 700; }
  .contact dl dt {
    padding: 1.6rem 0;
    align-items: flex-start; }
    @media screen and (min-width: 701px) {
      .contact dl dt {
        justify-content: space-between;
        padding: 5.2rem 0 3.2rem;
        border-bottom: rgba(26, 19, 17, 0.1) 1px dashed;
        width: 21rem; } }
    @media screen and (min-width: 701px) {
      .contact dl dt:first-of-type {
        padding-top: 3.2rem; } }
    .contact dl dt span {
      display: block;
      width: 5.1rem;
      line-height: 2.6rem;
      text-align: center;
      color: #fff;
      font-size: 1.2rem;
      border-radius: 10rem;
      margin-top: 0.1rem;
      margin-left: 1.6rem; }
      @media screen and (min-width: 701px) {
        .contact dl dt span {
          margin-left: 0; } }
      .contact dl dt span.req {
        background: #FF693D; }
  .contact dl dd {
    padding-bottom: 1.6rem;
    border-bottom: rgba(26, 19, 17, 0.1) 1px dashed; }
    @media screen and (min-width: 701px) {
      .contact dl dd {
        padding: 3.2rem 0;
        width: calc(100% - 25rem); } }
.contact .wpcf7-list-item {
  margin-left: 0; }
.contact .wpcf7-radio {
  text-align: left; }
  .contact .wpcf7-radio .wpcf7-list-item {
    display: block;
    margin-bottom: 1.2rem; }
    @media screen and (min-width: 701px) {
      .contact .wpcf7-radio .wpcf7-list-item {
        margin-bottom: 2.4rem; } }
    .contact .wpcf7-radio .wpcf7-list-item:last-child {
      margin-bottom: 0; }
    .contact .wpcf7-radio .wpcf7-list-item label {
      display: block;
      position: relative;
      padding-left: 2rem; }
      @media screen and (min-width: 701px) {
        .contact .wpcf7-radio .wpcf7-list-item label {
          padding-left: 3.4rem; } }
      .contact .wpcf7-radio .wpcf7-list-item label::before, .contact .wpcf7-radio .wpcf7-list-item label::after {
        content: "";
        display: block;
        border-radius: 50%;
        position: absolute;
        top: 0;
        bottom: 0;
        margin: auto; }
      .contact .wpcf7-radio .wpcf7-list-item label::before {
        border: #CBCBCB 2px solid;
        width: 1.6rem;
        height: 1.6rem;
        left: 0; }
        @media screen and (min-width: 701px) {
          .contact .wpcf7-radio .wpcf7-list-item label::before {
            width: 2rem;
            height: 2rem; } }
      .contact .wpcf7-radio .wpcf7-list-item label::after {
        background: #FF693D;
        width: 1rem;
        height: 1rem;
        left: .3rem;
        opacity: 0; }
        @media screen and (min-width: 701px) {
          .contact .wpcf7-radio .wpcf7-list-item label::after {
            left: .5rem; } }
      .contact .wpcf7-radio .wpcf7-list-item label:has(input:checked)::after {
        opacity: 1; }
.contact input[type=submit], .contact input[type=button] {
  align-items: center;
  border-radius: 10rem;
  font-size: clamp(1.4rem, calc(1rem + 0.625vw), 1.6rem);
  font-weight: 700;
  letter-spacing: 0;
  margin: auto;
  background: #FFDB64;
  border: #FFDB64 2px solid;
  width: min(100%, 28rem);
  height: 6rem;
  transition: .3s; }
  .contact input[type=submit]:hover, .contact input[type=button]:hover {
    background: #fff;
    transition: .3s; }
.contact .formbtn {
  width: min(100%, 58rem);
  margin: auto; }
  @media screen and (min-width: 701px) {
    .contact .formbtn {
      display: flex;
      justify-content: space-between; } }
  @media screen and (min-width: 701px) {
    .contact .formbtn li {
      width: 48%; } }
  .contact .formbtn li:first-child {
    margin-bottom: 1rem; }
    @media screen and (min-width: 701px) {
      .contact .formbtn li:first-child {
        margin-bottom: 0; } }
  @media screen and (min-width: 701px) {
    .contact .formbtn li input[type=submit], .contact .formbtn li input[type=button] {
      margin: 0; } }

/* プライバシーポリシー */
.policy::before {
  content: "";
  display: block;
  width: 100%;
  height: calc(100% - 100vh);
  background: linear-gradient(#D9F4F8, #F5FFBC, #FFBCBC);
  position: absolute;
  left: 0;
  top: 100vh; }
.policy .inner {
  background: #fff;
  padding: 3rem 2rem;
  border-radius: 2rem;
  margin-bottom: 6rem; }
  @media screen and (min-width: 701px) {
    .policy .inner {
      padding: 4rem;
      border-radius: 4rem;
      margin-bottom: 8rem; } }
  @media screen and (min-width: 961px) {
    .policy .inner {
      padding: 8rem;
      border-radius: 4rem;
      margin-bottom: 12rem; } }
  .policy .inner dl dt {
    font-size: clamp(1.8rem, calc(1.582rem + 0.68vw), 2.4rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: 1.66em;
    color: #FF693D;
    padding-top: 2.8rem;
    padding-bottom: 1.2rem; }
    @media screen and (min-width: 701px) {
      .policy .inner dl dt {
        padding-top: 5.6rem;
        padding-bottom: 2.4rem; } }
  .policy .inner dl dd ul {
    padding-top: 1.2rem; }
    @media screen and (min-width: 701px) {
      .policy .inner dl dd ul {
        padding-top: 2.4rem; } }
    .policy .inner dl dd ul li::before {
      content: "・"; }

.company {
  font-size: 1.4rem !important;
  text-align: center;
  margin-bottom: 1rem;
  position: relative;
  z-index: 100; }
