body {
  font-family: "Zen Kaku Gothic New", sans-serif
}

#wpadminbar {
  position: fixed !important;
  top: auto !important;
  bottom: 0 !important;
  opacity: .3;
  transition: opacity .3s ease-in-out
}

#wpadminbar:hover {
  opacity: 1
}

body::before {
  content: "";
  width: 100vw;
  height: 100lvh;
  background-image: url("./images/global/noise.webp"), url("./images/global/bg-pc.webp");
  background-repeat: repeat, no-repeat;
  background-position: top left, center top;
  background-size: auto, cover;
  position: fixed;
  inset: 0;
  opacity: .06
}

@media(max-width: 1024px) {
  body::before {
    background-image: url("./images/global/noise.webp"), url("./images/global/bg-tab.webp")
  }
}

@media(max-width: 480px) {
  body::before {
    background-image: url("./images/global/noise.webp"), url("./images/global/bg-sp.webp")
  }
}

.noise-bg::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("./images/global/noise.webp");
  background-repeat: repeat;
  background-position: top left;
  background-size: auto;
  opacity: .06;
  position: absolute;
  inset: 0
}

@media(max-width: 768px) {
  body::before {
    background-image: url("./images/global/noise.webp"), url("./images/global/bg-tab.webp")
  }
}

.l-article {
  max-width: initial
}

h2.wp-block-heading {
  position: relative;
  background: color-mix(in srgb, var(--color_main) 86%, transparent)
}

h2.wp-block-heading::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("./images/global/noise.webp");
  background-repeat: repeat;
  background-position: top left;
  background-size: auto;
  opacity: .06;
  position: absolute;
  top: 0;
  left: 0
}

.wp-block-list li::marker {
  color: var(--color_link)
}

.home #header {
  width: 100%;
  margin: 0;
  border-radius: 0
}

#header {
  position: fixed !important;
  top: 0;
  left: 0;
  width: calc(100% - 20px);
  margin: 10px;
  border-top: 0;
  border-radius: 6px;
  transition: transform .3s ease-in-out, opacity .3s ease-in-out;
  opacity: 1;
  transform: translateY(0)
}

@media(max-width: 768px) {
  #header {
    width: 100%;
    margin: 0;
    border-radius: 0;
    padding: .5rem
  }
}

#header.is-hide {
  transform: translateY(-80%);
  opacity: 0;
  pointer-events: none
}

#header::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("./images/global/noise.webp");
  background-repeat: repeat;
  background-position: top left;
  background-size: auto;
  opacity: .06;
  position: absolute;
  inset: 0
}

.home #header::before {
  display: none
}

@media(max-width: 768px) {
  #header {
    height: 60px
  }

  #header .c-headLogo__link {
    padding: 0
  }
}

#header .l-container {
  max-width: initial;
  height: 100%
}

#header .c-headLogo__link {
  transition: opacity .3s ease
}

#header .c-headLogo__link:hover {
  opacity: .6
}

#header .menu-item a {
  display: flex !important;
  flex-direction: column-reverse !important;
  gap: 4px;
  align-items: center;
  line-height: 1.2;
  padding-top: 10px;
  padding-bottom: 10px;
  transition: color .3s ease-in-out, opacity .3s ease
}

.home #header .menu-item a {
  color: var(--color_text)
}

#header .menu-item a::after {
  display: none
}

#header .menu-item a:hover {
  opacity: .7
}

.home #header .menu-item a:hover {
  color: var(--color_link)
}

#header .menu-item .desc {
  top: 0;
  font-family: "Montserrat", sans-serif;
  letter-spacing: .05em
}

#header .menu-item .ttl {
  font-weight: 500
}

.home .l-header__logo .c-catchphrase {
  display: none
}

.l-header__logo .c-catchphrase {
  font-weight: 400
}

#footer .copyright {
  opacity: .6
}

.l-footer__nav .menu-item {
  position: relative
}

.l-footer__nav .menu-item::before {
  content: "";
  width: 1px;
  height: 70%;
  background: hsla(0, 0%, 100%, .5);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%)
}

.l-footer__nav .menu-item:last-child::after {
  content: "";
  width: 1px;
  height: 70%;
  background: hsla(0, 0%, 100%, .5);
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%)
}

.l-footer__nav .menu-item a {
  opacity: .8;
  border: none !important;
  transition: all .3s
}

.l-footer__nav .menu-item a:hover {
  opacity: .4;
  text-decoration: none
}

.p-spMenu__inner {
  width: 100%;
  background: var(--color_main);
  color: #fff;
  position: relative;
  transform: translateX(0) !important
}

.p-spMenu__inner::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("./images/global/noise.webp");
  background-repeat: repeat;
  background-position: top left;
  background-size: auto;
  opacity: .06;
  position: absolute;
  inset: 0;
  pointer-events: none
}

.p-spMenu .c-widget__title {
  background: rgba(0, 0, 0, 0);
  font-family: "Montserrat", sans-serif;
  font-style: italic;
  font-weight: 600;
  opacity: .8
}

.p-spMenu__closeBtn {
  background: var(--color_link);
  border-radius: 50%;
  top: .5rem;
  right: .5rem !important
}

#sp_menu {
  opacity: 0 !important;
  visibility: hidden !important;
  transition: opacity .4s ease, visibility .4s ease !important;
  transform: none !important
}

#sp_menu .p-spMenu__body {
  transform: none !important
}

[data-spmenu=opened] #sp_menu {
  opacity: 1 !important;
  visibility: visible !important
}

.archive__card-list {
  display: flex;
  flex-wrap: wrap;
  gap: 30px
}

@media(max-width: 480px) {
  .archive__card-list {
    gap: 16px
  }
}

.c-postTitle {
  padding-bottom: 1rem;
  margin-bottom: 1.25rem;
  border-bottom: 2px solid color-mix(in srgb, var(--color_text) 30%, transparent)
}

.c-postTitle__date {
  font-family: "Montserrat", sans-serif;
  opacity: .6;
  border: none;
  position: relative
}

.c-postTitle__date::after {
  content: "";
  width: 2px;
  height: 60%;
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  background: var(--color_text);
  opacity: .6
}

.c-postTitle__date .__y {
  font-weight: 600
}

.c-postTitle__date .__md {
  font-weight: 500
}

.p-articleThumb img {
  box-shadow: 0 2px 12px rgba(0, 0, 0, .05), 0 4px 8px -4px rgba(0, 0, 0, .1)
}

.c-categoryList::before {
  opacity: .8
}

.c-categoryList__link {
  padding: .35rem .5rem
}

.c-categoryList__link[data-cat-id="19"] {
  background: #d2442a
}

.l-content[data-postid="2"],
.l-content[data-postid="3"],
.l-content[data-postid="267"] {
  max-width: 1000px
}

.p-articleThumb img {
  margin-top: 1rem
}

.single-about #sidebar,
.single-about #breadcrumb,
.single-gadgets #sidebar,
.single-gadgets #breadcrumb,
.single-books #sidebar,
.single-books #breadcrumb {
  display: none
}

@media(max-width: 480px) {

  .single-about #breadcrumb,
  .single-gadgets #breadcrumb,
  .single-books #breadcrumb {
    display: block;
    margin-top: 60px
  }
}

.single-about .l-content,
.single-gadgets .l-content,
.single-books .l-content {
  margin: 0;
  padding: 0;
  max-width: initial;
  width: 100vw;
  min-height: 100vh
}

.custom-single__pr-notice__text {
  display: inline-block;
  font-size: .75rem;
  opacity: .8;
  padding: .5rem;
  margin-bottom: 3rem;
  background: linear-gradient(-45deg, transparent 25%, color-mix(in srgb, #63523F 40%, transparent) 25%, color-mix(in srgb, #63523F 40%, transparent) 50%, transparent 50%, transparent 75%, color-mix(in srgb, #63523F 40%, transparent) 75%, color-mix(in srgb, #63523F 40%, transparent));
  background-clip: padding-box;
  background-size: 4px 4px;
  position: relative;
  color: color-mix(in srgb, #63523F 80%, transparent)
}

.custom-single__pr-notice__text::before {
  content: "";
  width: 100%;
  height: 100%;
  background: hsla(0, 0%, 100%, .65);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1
}

.custom-single__content #breadcrumb {
  display: block
}

@media(max-width: 480px) {
  .custom-single__content #breadcrumb {
    display: none
  }
}

.custom-single__content .p-breadcrumb__list {
  padding-left: 0
}

.custom-single__main {
  width: 100%;
  min-height: 100%
}

.custom-single__article,
.custom-single__inner {
  width: 100%;
  min-height: 100%
}

.custom-single__inner {
  display: flex;
  align-items: flex-start;
  padding: 0 2rem 2rem;
  gap: 1rem;
  min-height: 100vh;
  max-width: 1200px;
  margin: 0 auto
}

@media(max-width: 480px) {
  .custom-single__inner {
    flex-direction: column;
    min-height: auto
  }
}

.custom-single__thumbnail {
  width: calc(40% - .5rem);
  height: calc(100vh - 80px);
  position: sticky;
  top: 40px
}

.custom-single__thumbnail__image {
  width: 90%;
  height: auto;
  max-width: 260px;
  object-fit: cover;
  position: absolute;
  top: 140px;
  right: 10%
}

@media(max-width: 480px) {
  .custom-single__thumbnail__image {
    width: 100%;
    max-width: initial;
    position: relative;
    top: 0;
    left: 0;
    right: auto
  }
}

.custom-single__thumbnail__image img {
  width: 100%;
  height: auto
}

@media(max-width: 480px) {
  .custom-single__thumbnail {
    position: relative;
    width: 100%;
    flex: none;
    height: auto;
    margin-bottom: 20px
  }
}

.custom-single__content {
  width: calc(60% - .5rem);
  padding-top: 20px
}

@media(max-width: 480px) {
  .custom-single__content {
    width: 100%;
    padding-top: 0
  }
}

.custom-single__content .p-toc {
  display: none
}

.custom-single__header {
  padding-top: 3rem
}

.custom-single__title {
  font-size: 1.5rem
}

.custom-single__subtitle {
  font-family: "Montserrat", sans-serif;
  font-style: italic;
  font-weight: 600;
  color: var(--color_link);
  font-size: .875rem
}

.custom-single__body {
  min-height: 100vh;
  padding-top: 2rem;
  padding-right: 5%
}

@media(max-width: 480px) {
  .custom-single__body {
    padding-right: 0
  }
}

.custom-single__body h2 {
  background: rgba(0, 0, 0, 0);
  color: var(--color_text)
}

@media(max-width: 480px) {
  .custom-single__body h2 {
    padding: .75em .85em
  }
}

.custom-single__body h2::before {
  width: calc(100% - 2rem);
  height: 1px;
  background: color-mix(in srgb, var(--color_text) 30%, transparent);
  position: absolute;
  bottom: -1px;
  left: 1rem;
  top: auto;
  opacity: 1
}

@media(max-width: 480px) {
  .custom-single__body h2::before {
    width: 100%;
    left: 0
  }
}

.custom-single__body h2::after {
  content: "";
  width: 40px;
  height: 1px;
  background: var(--color_link);
  position: absolute;
  bottom: -1px;
  left: 1rem
}

@media(max-width: 480px) {
  .custom-single__body h2::after {
    left: 0
  }
}

.custom-single__nav {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  margin: 60px 0;
  padding: 40px 1rem 4rem;
  border-top: 1px solid rgba(0, 0, 0, .08)
}

@media(max-width: 480px) {
  .custom-single__nav {
    gap: 15px;
    text-align: center
  }
}

.custom-single__nav a {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: opacity .2s ease;
  background: hsla(0, 0%, 100%, .6);
  padding: .25rem 2.5rem;
  border-radius: 40px;
  text-align: center;
  border: 1px solid color-mix(in srgb, var(--color_text) 30%, transparent);
  transition: all .2s ease
}

@media(max-width: 480px) {
  .custom-single__nav a {
    justify-content: center;
    padding: 10px 0
  }
}

.custom-single__nav a:hover {
  transform: translateY(-4px);
  opacity: .7
}

.custom-single__nav .nav-label {
  font-size: .75rem;
  letter-spacing: .05em;
  color: color-mix(in srgb, var(--color_text) 40%, transparent);
  line-height: 1
}

.custom-single__nav .nav-title {
  font-size: .95rem;
  font-weight: 500;
  line-height: 1.4;
  color: var(--color_text)
}

@media(max-width: 480px) {
  .custom-single__nav .nav-title {
    display: none
  }
}

.custom-single__nav-prev .nav-label {
  padding-right: .25rem
}

@media(max-width: 480px) {
  .custom-single__nav-prev .nav-label {
    padding-right: 0;
    font-size: 0
  }

  .custom-single__nav-prev .nav-label::before {
    content: "前へ";
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color_text)
  }
}

.custom-single__nav-next .nav-label {
  padding-left: .25rem
}

@media(max-width: 480px) {
  .custom-single__nav-next .nav-label {
    padding-left: 0;
    font-size: 0
  }

  .custom-single__nav-next .nav-label::before {
    content: "次へ";
    font-size: .95rem;
    font-weight: 500;
    line-height: 1.4;
    color: var(--color_text)
  }
}

.custom-single__nav-back {
  justify-self: center
}

.custom-single__nav-back .custom-single__back-btn {
  display: inline-block;
  padding: 10px 24px;
  font-size: .85rem;
  font-weight: 500;
  color: #fff;
  background-color: var(--color_link);
  border-radius: 30px;
  text-decoration: none;
  transition: all .2s ease
}

.p-profileBox {
  background: hsla(0, 0%, 100%, .4)
}

.p-profileBox::before {
  content: "";
  width: 100%;
  height: 100%;
  background-image: url("./images/global/noise.webp");
  background-repeat: repeat;
  background-position: top left;
  background-size: auto;
  opacity: .04;
  position: absolute;
  inset: 0;
  z-index: -1
}

.p-snsCta__figure img.p-snsCta__img {
  opacity: 0
}

.p-snsCta__figure {
  background-image: url("./images/global/snsCta-bg.webp");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: inherit;
  overflow: hidden;
  display: block;
  height: 0;
  padding-top: 56.25%
}

.p-snsCta__figure noscript {
  display: none
}

.p-snsCta__body {
  background: color-mix(in srgb, var(--color_main) 80%, transparent)
}

#main_content .p-toc {
  width: 100%;
  position: relative;
  border-color: color-mix(in srgb, var(--color_main) 60%, transparent) !important
}

#main_content .p-toc::after {
  content: "";
  width: 100%;
  height: 100%;
  background: hsla(0, 0%, 100%, .4);
  position: absolute;
  top: 0;
  left: 0;
  z-index: -1
}

.p-toc__list.is-style-index li::before {
  font-family: "Montserrat", sans-serif;
  content: counters(toc, "-", decimal-leading-zero)
}

ol.is-style-index ol > li,
ol.is-style-index > li {
  margin-left: 3em;
  padding-left: 0;
  position: relative
}

.p-indexModal .p-indexModal__inner {
  background: rgba(0, 0, 0, 0);
  position: relative
}

.p-indexModal .p-indexModal__inner::before,
.p-indexModal .p-indexModal__inner::after {
  content: "";
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0
}

.p-indexModal .p-indexModal__inner::before {
  background: hsla(0, 0%, 100%, .85);
  z-index: -2
}

.p-indexModal .p-indexModal__inner::after {
  background: linear-gradient(-45deg, transparent 25%, var(--color_gray) 25%, var(--color_gray) 50%, transparent 50%, transparent 75%, var(--color_gray) 75%, var(--color_gray));
  background-clip: padding-box;
  background-size: 4px 4px;
  border-bottom: 4px double color-mix(in srgb, var(--color_main) 60%, transparent);
  border-top: 4px double color-mix(in srgb, var(--color_main) 60%, transparent);
  z-index: -1
}

.swell-block-capbox.is-style-onborder_ttl .cap_box_content {
  background: rgba(0, 0, 0, 0) !important;
  border-top: none;
  border-color: color-mix(in srgb, var(--capbox-color) 60%, transparent);
  position: relative
}

.swell-block-capbox.is-style-onborder_ttl .cap_box_content::before {
  content: "";
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  z-index: -1;
  position: absolute;
  top: 2px;
  left: 2px;
  background: hsla(0, 0%, 100%, .4)
}

.swell-block-capbox.is-style-onborder_ttl > .cap_box_ttl {
  display: flex;
  font-size: .85em;
  left: 0;
  line-height: 1;
  margin-bottom: 0;
  padding: 0;
  position: relative;
  text-align: center;
  top: 4px;
  z-index: 1;
  background: rgba(0, 0, 0, 0) !important;
  opacity: .6
}

.swell-block-capbox.is-style-onborder_ttl > .cap_box_ttl::before,
.swell-block-capbox.is-style-onborder_ttl > .cap_box_ttl::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--capbox-color)
}

.swell-block-capbox.is-style-onborder_ttl > .cap_box_ttl::before {
  flex: .05
}

.swell-block-box-menu__figure > img {
  height: 48px !important;
  object-fit: cover;
  width: auto
}

.swell-block-box-menu.is-style-default {
  --the-border-color: #989492
}

.swell-block-box-menu__item {
  position: relative
}

.swell-block-box-menu__item::before {
  content: "";
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  z-index: -1;
  position: absolute;
  top: 2px;
  left: 2px;
  background: hsla(0, 0%, 100%, .4)
}

.swell-block-box-menu__link {
  padding: 1.25rem 1rem
}

.single-about #fix_tocbtn {
  display: none
}

.single-about .custom-single__thumbnail__bg {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 0;
  background: #fcfbfa;
  border-radius: 4px;
  overflow: hidden;
  z-index: -1
}

.single-gadgets #fix_tocbtn {
  display: none
}

.single-gadgets .custom-single__rating {
  font-size: .875rem;
  color: #d08e00;
  padding: 2rem 0
}

.single-gadgets .custom-single__features {
  letter-spacing: .01em;
  line-height: 1.8
}

.single-gadgets .custom-single__body {
  padding-bottom: 4rem
}

.single-gadgets .custom-single__section {
  padding-top: 3rem
}

.single-gadgets .custom-single__section__title {
  opacity: .8;
  padding-bottom: .5rem;
  margin-bottom: 1.5rem;
  border-bottom: 1px solid color-mix(in srgb, #63523F 60%, transparent)
}

@media(max-width: 480px) {
  .single-gadgets .custom-single__section__title {
    padding-left: .25rem
  }
}

.single-gadgets .custom-single__specs-table {
  width: 100%;
  border-collapse: collapse;
  border-top: 1px solid color-mix(in srgb, #63523F 30%, transparent)
}

.single-gadgets .custom-single__specs-table th,
.single-gadgets .custom-single__specs-table td {
  padding: 12px 10px;
  border-bottom: 1px solid color-mix(in srgb, #63523F 30%, transparent);
  font-size: .95rem;
  line-height: 1.5
}

.single-gadgets .custom-single__specs-table th {
  text-align: left;
  width: 30%;
  background-color: color-mix(in srgb, var(--color_main) 60%, transparent);
  font-weight: bold;
  white-space: nowrap;
  color: #fff
}

.single-gadgets .custom-single__specs-table td {
  background-color: hsla(0, 0%, 100%, .6)
}

.single-gadgets .custom-single__list li {
  padding-left: 1.125rem;
  line-height: 1.8;
  position: relative
}

.single-gadgets .custom-single__list li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color_link);
  position: absolute;
  top: 50%;
  left: 0;
  transform: translateY(-50%)
}

.single-gadgets .custom-single__btn-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem
}

.single-gadgets .custom-single__btn-wrap .btn {
  color: #fff;
  padding: .5rem 1.25rem;
  border-radius: 6px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: .5rem;
  transition: all .3s;
  position: relative
}

@media(max-width: 480px) {
  .single-gadgets .custom-single__btn-wrap .btn {
    width: 100%
  }
}

.single-gadgets .custom-single__btn-wrap .btn .icon {
  width: 24px;
  height: 24px
}

.single-gadgets .custom-single__btn-wrap .btn span {
  position: relative;
  z-index: 2
}

.single-gadgets .custom-single__btn-wrap .btn::before {
  content: "";
  width: 100%;
  height: 100%;
  z-index: 1;
  position: absolute;
  top: 0;
  left: 0;
  transition: all .3s;
  opacity: 0
}

.single-gadgets .custom-single__btn-wrap .btn:hover::before {
  opacity: 1
}

.single-gadgets .custom-single__btn-wrap .btn-amazon {
  background: linear-gradient(135deg, #ffb347 0%, #ff8c00 100%)
}

.single-gadgets .custom-single__btn-wrap .btn-amazon::before {
  background: linear-gradient(135deg, #ffa126 0%, #e07b00 100%)
}

.single-gadgets .custom-single__btn-wrap .btn-rakuten {
  background: linear-gradient(135deg, #e60012 0%, #bf0000 100%)
}

.single-gadgets .custom-single__btn-wrap .btn-rakuten::before {
  background: linear-gradient(135deg, #ff1a2b 0%, #a30000 100%)
}

.single-gadgets .custom-single__btn-wrap .btn-yahoo {
  background: linear-gradient(135deg, #ff3366 0%, #d9002b 100%)
}

.single-gadgets .custom-single__btn-wrap .btn-yahoo::before {
  background: linear-gradient(135deg, #ff1a4d 0%, #b80024 100%)
}

.p-pageTitle {
  padding-bottom: 1rem;
  border-bottom: 2px solid color-mix(in srgb, var(--color_main) 60%, transparent)
}

.p-pageTitle__main {
  font-size: 1.8rem
}

.p-pageTitle__sub {
  color: var(--color_link);
  font-weight: 600;
  font-family: "Montserrat", sans-serif;
  font-style: italic;
  padding-left: .35rem
}

.top #content {
  padding: 0;
  width: 100%;
  max-width: initial
}

.fv {
  width: 100%;
  height: 100svh;
  position: relative
}

@media(max-width: 480px) {
  .fv .l-content {
    margin-bottom: 3rem
  }
}

.fv__inner {
  width: 100%;
  height: 100%;
  max-width: 1920px;
  max-height: 1040px;
  margin: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

@media(max-width: 480px) {
  .fv__inner {
    max-height: 800px
  }
}

.fv__character__list {
  width: 80%;
  height: 100%;
  max-height: 700px;
  pointer-events: none;
  margin-top: 60px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

@media screen and (max-height: 800px) {
  .fv__character__list {
    max-height: 550px
  }
}

@media(max-width: 480px) {
  .fv__character__list {
    max-height: 480px;
    width: 90%;
    margin-top: 50px
  }
}

.fv__character__item {
  aspect-ratio: 320/595;
  width: auto;
  height: 100%;
  position: absolute;
  left: 53%;
  transform: translateX(-50%);
  bottom: 0;
  transition: opacity .4s ease-in-out, visibility .4s ease-in-out;
  opacity: 0;
  visibility: hidden;
  pointer-events: none
}

@media(max-width: 768px) {
  .fv__character__item {
    left: 62%
  }
}

.fv__character__item.active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto
}

.fv__character__item.active .fv__character__speech:not([style*="display: none"]) {
  opacity: 1;
  visibility: visible
}

.fv__character__item.active[data-step="1"] .fv__character__img,
.fv__character__item.active[data-step="2"] .fv__character__img,
.fv__character__item.active[data-step="12"] .fv__character__img,
.fv__character__item.active[data-step="13"] .fv__character__img {
  animation: fvWalkIn .8s cubic-bezier(0.16, 1, 0.3, 1) forwards
}

.fv__character__item.active[data-step="3"] .fv__character__img,
.fv__character__item.active[data-step="4"] .fv__character__img,
.fv__character__item.active[data-step="5"] .fv__character__img,
.fv__character__item.active[data-step="6"] .fv__character__img,
.fv__character__item.active[data-step="7"] .fv__character__img,
.fv__character__item.active[data-step="8"] .fv__character__img,
.fv__character__item.active[data-step="9"] .fv__character__img,
.fv__character__item.active[data-step="10"] .fv__character__img,
.fv__character__item.active[data-step="11"] .fv__character__img {
  animation: fvFadePop .6s cubic-bezier(0.34, 1.56, 0.64, 1) forwards
}

.fv__character__item.active[data-step="3"] .fv__character__overlay,
.fv__character__item.active[data-step="4"] .fv__character__overlay,
.fv__character__item.active[data-step="5"] .fv__character__overlay,
.fv__character__item.active[data-step="6"] .fv__character__overlay,
.fv__character__item.active[data-step="7"] .fv__character__overlay,
.fv__character__item.active[data-step="8"] .fv__character__overlay,
.fv__character__item.active[data-step="9"] .fv__character__overlay,
.fv__character__item.active[data-step="10"] .fv__character__overlay,
.fv__character__item.active[data-step="11"] .fv__character__overlay {
  animation: fvFadePop .6s cubic-bezier(0.34, 1.56, 0.64, 1) 1s forwards
}

.fv__character__item.active[data-step="99"] .fv__character__img {
  opacity: 0;
  visibility: hidden;
  animation: fvFadePopCenter 1.6s cubic-bezier(0.34, 1.56, 0.64, 1) 2s forwards
}

.fv__character__item[data-step="1"] {
  left: 100%;
  transform: translateX(0)
}

.fv__character__item[data-step="1"] .fv__character__speech {
  opacity: 0 !important
}

.fv__character__item[data-step="2"] {
  left: 70%;
  transform: translateX(0)
}

@media(max-width: 768px) {
  .fv__character__item[data-step="2"] {
    left: 60%
  }
}

@media screen and (max-width: 375px) {
  .fv__character__item[data-step="2"] {
    left: 71%
  }
}

.fv__character__item[data-step="3"] .fv__character__overlay {
  width: 32%;
  top: -5.6%;
  left: -8.9%
}

.fv__character__item[data-step="4"] .fv__character__overlay {
  width: 64%;
  top: -8.6%;
  left: -29%
}

@media(max-width: 480px) {
  .fv__character__item[data-step="4"] .fv__character__overlay {
    width: 58%;
    top: -12.6%;
    left: -15%
  }
}

.fv__character__item[data-step="5"] .fv__character__overlay {
  width: 31%;
  top: -0.5%;
  left: -8%
}

.fv__character__item[data-step="6"] .fv__character__overlay {
  width: 36.5%;
  top: -7%;
  left: -16%
}

@media(max-width: 480px) {
  .fv__character__item[data-step="6"] .fv__character__overlay {
    left: -11%
  }
}

.fv__character__item[data-step="7"] .fv__character__overlay {
  width: 59%;
  top: -15.7%;
  left: -34%
}

@media(max-width: 480px) {
  .fv__character__item[data-step="7"] .fv__character__overlay {
    width: 53%;
    top: -10.7%;
    left: -12%
  }
}

.fv__character__item[data-step="8"] .fv__character__overlay {
  width: 59%;
  top: -13%;
  left: -36%
}

@media(max-width: 480px) {
  .fv__character__item[data-step="8"] .fv__character__overlay {
    width: 54%;
    top: -14%;
    left: -13%
  }
}

.fv__character__item[data-step="9"] .fv__character__overlay {
  width: 58%;
  top: -10%;
  left: -27%
}

@media(max-width: 480px) {
  .fv__character__item[data-step="9"] .fv__character__overlay {
    width: 53%;
    left: -13%
  }
}

.fv__character__item[data-step="10"] .fv__character__overlay {
  width: 50%;
  top: -7.6%;
  left: -22.4%
}

@media(max-width: 480px) {
  .fv__character__item[data-step="10"] .fv__character__overlay {
    left: -14.4%
  }
}

.fv__character__item[data-step="11"] .fv__character__overlay {
  width: 56%;
  top: -15.6%;
  left: -26.4%
}

@media(max-width: 480px) {
  .fv__character__item[data-step="11"] .fv__character__overlay {
    width: 51%;
    top: -13.6%;
    left: -15.4%
  }
}

.fv__character__item[data-step="12"] {
  left: 5%;
  transform: translateX(0)
}

@media(max-width: 768px) {
  .fv__character__item[data-step="12"] {
    left: -20%
  }
}

@media(max-width: 480px) {
  .fv__character__item[data-step="12"] {
    left: -50%
  }
}

.fv__character__item[data-step="13"] {
  left: -20%;
  transform: translateX(0)
}

.fv__character__item[data-step="99"] {
  width: 100%;
  aspect-ratio: auto
}

.fv__character__item[data-step="99"] img {
  width: auto;
  height: 62vh;
  position: absolute;
  top: -90px;
  left: 50%;
  transform: translateX(-50%);
  object-fit: contain
}

@media screen and (max-height: 1080px) {
  .fv__character__item[data-step="99"] img {
    top: -30px
  }
}

@media(max-width: 768px) {
  .fv__character__item[data-step="99"] img {
    width: 90vw;
    aspect-ratio: 134/169;
    position: fixed;
    top: calc(50% - 60px);
    left: 40%;
    transform: translate(-50%, -50%)
  }
}

@media screen and (max-width: 768px)and (max-width: 375px) {
  .fv__character__item[data-step="99"] img {
    left: 38%
  }
}

.fv__character__item[data-step="100"] img {
  display: none
}

.fv__character__img {
  width: auto;
  height: 100%;
  z-index: 2;
  position: relative;
  transition: opacity .4s ease-in-out, visibility .4s ease-in-out
}

.fv__character__overlay {
  z-index: 3;
  width: 100%;
  height: auto;
  position: absolute;
  top: 0;
  left: 0;
  transition: opacity .4s ease-in-out, visibility .4s ease-in-out;
  opacity: 0
}

.fv__controller-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
  width: 80%;
  max-width: 800px;
  margin: 0 auto;
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  padding: 1rem
}

.fv__progress-bar {
  position: relative;
  width: 100%;
  height: 2px;
  background-color: hsla(0, 0%, 100%, .3);
  border-radius: 3px;
  overflow: visible;
  backdrop-filter: blur(4px)
}

.fv__progress-fill {
  width: 0%;
  height: 100%;
  background-color: var(--color_text);
  border-radius: 3px;
  transition: width .4s ease
}

.fv__progress-thumb {
  position: absolute;
  top: 50%;
  left: 0%;
  transform: translateY(-50%);
  width: 10px;
  height: 10px;
  background-color: var(--color_link);
  border-radius: 50%;
  transition: left .4s ease;
  pointer-events: none
}

.fv__controls {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  position: relative;
  z-index: 2
}

.fv__ctrl-btn {
  background-color: rgba(0, 0, 0, 0);
  border: rgba(0, 0, 0, 0);
  border-radius: 0;
  color: var(--color_text);
  padding: 0;
  flex-shrink: 0;
  transition: all .3s
}

.fv__ctrl-btn:hover {
  opacity: .8;
  transform: translateY(-2px)
}

.fv__ctrl-btn img {
  width: 100%
}

.fv__ctrl-btn.prev,
.fv__ctrl-btn.next {
  width: 1.25rem;
  height: 1.25rem
}

.fv__ctrl-btn.play-pause {
  border: 1px solid var(--color_text);
  border-radius: 50%;
  padding: .5rem;
  width: 42px;
  height: 42px;
  position: relative
}

.fv__ctrl-btn.play-pause img {
  width: 1.5rem;
  height: 1.5rem;
  transition: all .3s
}

.fv__ctrl-btn.play-pause img:nth-child(2) {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  opacity: 0
}

.fv__ctrl-btn.is-play img:nth-child(1) {
  opacity: 0
}

.fv__ctrl-btn.is-play img:nth-child(2) {
  opacity: 1
}

.fv__ctrl-btn.is-pause img:nth-child(1) {
  opacity: 1
}

.fv__ctrl-btn.is-pause img:nth-child(2) {
  opacity: 0
}

.guide__inner,
.greeting__inner {
  padding: 100px 0;
  width: 90%;
  max-width: 1060px;
  margin: 0 auto
}

@media(max-width: 480px) {

  .guide__inner,
  .greeting__inner {
    padding: 50px 0
  }
}

.guide__title,
.greeting__title {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 1060px;
  margin: 0 auto 50px
}

@media(max-width: 480px) {

  .guide__title,
  .greeting__title {
    margin-bottom: 60px
  }
}

.guide__title .en,
.greeting__title .en {
  font-family: "Montserrat", sans-serif;
  font-size: .875rem;
  letter-spacing: .2em;
  color: var(--color_link);
  margin-bottom: 2px;
  opacity: .9
}

.guide__title .ja,
.greeting__title .ja {
  font-size: 1.8rem;
  font-weight: 700;
  letter-spacing: .1em
}

.greeting__content {
  max-width: 900px;
  margin: 0 auto
}

@media(max-width: 480px) {
  .greeting__image__pc {
    display: none
  }
}

.greeting__image__sp {
  display: none
}

@media(max-width: 480px) {
  .greeting__image__sp {
    display: block
  }
}

.greeting__text {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
  padding-top: 1rem
}

.greeting__text__box {
  width: calc((100% - 1.5rem)/2)
}

@media(max-width: 480px) {
  .greeting__text__box {
    width: 100%
  }
}

.greeting__text__box p {
  display: inline-block;
  font-size: .875rem
}

@keyframes fvWalkIn {
  0% {
    opacity: 0;
    transform: translateX(20px) scale(0.95)
  }

  100% {
    opacity: 1;
    transform: translateX(0) scale(1)
  }
}

@keyframes fvIdleBreath {

  0%,
  100% {
    transform: translateY(0)
  }

  50% {
    transform: translateY(-6px)
  }
}

@keyframes fvFadePop {
  0% {
    opacity: 0;
    transform: scale(0.95)
  }

  100% {
    opacity: 1;
    transform: scale(1)
  }
}

@keyframes fvFadePopCenter {
  0% {
    display: block
  }

  1% {
    opacity: 0;
    visibility: hidden;
    transform: transformX(-50%) .95
  }

  100% {
    opacity: 1;
    visibility: visible;
    transform: transformX(-50%) scale(1)
  }
}

@keyframes fvFadeOut {
  0% {
    opacity: 1;
    transform: scale(1)
  }

  100% {
    opacity: 0;
    transform: scale(0.95)
  }
}

@keyframes fvFadeOutCenter {
  0% {
    opacity: 1;
    visibility: visible;
    transform: transformX(-50%) scale(1)
  }

  99% {
    opacity: 0;
    visibility: hidden;
    transform: transformX(-50%) scale(0.95)
  }

  100% {
    display: none
  }
}

@keyframes fvShiver {

  0%,
  100% {
    transform: translate(0, 0) rotate(0deg)
  }

  25% {
    transform: translate(0.3px, 0.3px) rotate(0.3deg)
  }

  50% {
    transform: translate(-0.4px, -0.2px) rotate(-0.2deg)
  }

  75% {
    transform: translate(0.3px, -0.2px) rotate(-0.3deg)
  }

  100% {
    transform: translate(-0.4px, 0.3px) rotate(0.3deg)
  }
}

@keyframes fvShiverStop {
  0% {
    transform: translate(0, 0) rotate(0deg)
  }

  25% {
    transform: translate(0.3px, 0.3px) rotate(0.3deg)
  }

  50% {
    transform: translate(-0.4px, -0.2px) rotate(-0.2deg)
  }

  75% {
    transform: translate(0.3px, -0.2px) rotate(-0.3deg)
  }

  100% {
    transform: translate(0, 0) rotate(0deg)
  }
}

@keyframes waveHand {
  0% {
    transform: rotate(0deg)
  }

  100% {
    transform: rotate(2deg)
  }
}

@keyframes downHand {
  0% {
    transform: translateY(0)
  }

  100% {
    transform: translateY(3px)
  }
}

@keyframes fvStep99Timeline {
  0% {
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) scale(0.95)
  }

  15% {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) scale(1)
  }

  62% {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) scale(1)
  }

  75% {
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) scale(0.95)
  }

  100% {
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) scale(0.95)
  }
}

.blog #sidebar {
  display: none
}

.wpcf7-form br {
  display: none
}

.wpcf7-form .contact__field {
  margin-bottom: 1.75rem
}

.wpcf7-form .contact__label {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  cursor: pointer
}

.wpcf7-form .contact__label-text {
  font-size: 1rem;
  font-weight: 700;
  opacity: .8;
  color: var(--color_main);
  position: relative
}

.wpcf7-form .contact__required {
  color: var(--color_link);
  font-size: .65rem;
  font-weight: 700;
  position: absolute;
  left: -0.65rem;
  top: -0.35rem
}

.wpcf7-form .contact__fieldset {
  border: none;
  padding: 0;
  margin: 0 0 1.5rem 0
}

.wpcf7-form .contact__fieldset .contact__label-text {
  display: block;
  margin-bottom: .4rem
}

.wpcf7-form input[type=text],
.wpcf7-form input[type=email],
.wpcf7-form textarea {
  width: 100%;
  background: color-mix(in srgb, #fff 40%, transparent);
  border: 1px solid color-mix(in srgb, var(--color_main) 30%, transparent);
  padding: .4rem .875rem;
  border-radius: .3rem;
  color: var(--color_main);
  font-family: inherit;
  line-height: 1.6;
  font-weight: 500;
  transition: all .3s ease;
  box-sizing: border-box
}

.wpcf7-form input[type=text]:focus,
.wpcf7-form input[type=email]:focus,
.wpcf7-form textarea:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--color_main) 60%, transparent);
  background: color-mix(in srgb, #fff 60%, transparent)
}

.wpcf7-form input[type=text]::placeholder,
.wpcf7-form input[type=email]::placeholder,
.wpcf7-form textarea::placeholder {
  color: color-mix(in srgb, var(--color_main) 60%, transparent);
  font-size: .9em;
  font-weight: 500;
  font-family: "Zen Kaku Gothic New", sans-serif
}

.wpcf7-form textarea {
  height: 150px;
  resize: vertical
}

.wpcf7-form .contact__radio-group {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  margin-top: .5rem
}

.wpcf7-form .contact__radio-group p {
  display: flex;
  flex-direction: column;
  gap: .75rem
}

.wpcf7-form .contact__radio-label {
  position: relative;
  padding-left: 1.7rem;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-size: .875rem;
  font-weight: 700;
  opacity: .8;
  color: var(--color_main)
}

.wpcf7-form .contact__radio-label .contact__radio-input {
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  z-index: 50;
  cursor: pointer
}

.wpcf7-form .contact__radio-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: .3rem;
  background: color-mix(in srgb, #fff 40%, transparent);
  border: 1px solid color-mix(in srgb, var(--color_main) 30%, transparent);
  z-index: 1;
  transition: all .3s ease
}

.wpcf7-form .contact__radio-label::after {
  content: "";
  position: absolute;
  left: 7.5px;
  top: calc(50% - 6px);
  width: 5px;
  height: 10px;
  border-right: 2px solid var(--color_link);
  border-bottom: 2px solid var(--color_link);
  transform: rotate(45deg);
  opacity: 0;
  transition: all .2s ease;
  z-index: 2;
  pointer-events: none
}

.wpcf7-form .contact__radio-label:has(.contact__radio-input:checked)::after {
  opacity: 1
}

.wpcf7-form .contact__submit-wrap {
  text-align: left;
  margin-top: 1rem
}

.wpcf7-form .contact__submit-wrap .contact__btn {
  width: 100%;
  max-width: 200px;
  padding: .75rem 1rem;
  background: var(--color_link);
  border: none;
  border-radius: .3rem;
  color: #fff;
  font-size: 1rem;
  font-weight: 500;
  cursor: pointer;
  transition: all .3s ease;
  display: block
}

.wpcf7-form .contact__submit-wrap .contact__btn:hover {
  opacity: .6
}

.wpcf7-form .wpcf7-not-valid-tip {
  color: var(--color_link);
  font-size: .8rem;
  margin-top: .3rem
}

.wpcf7-form .wpcf7-response-output {
  border-radius: .3rem;
  font-size: .9rem;
  margin-top: 1.5rem !important;
  border-color: color-mix(in srgb, var(--color_link) 40%, transparent) !important
}

.wpcf7-turnstile {
  margin-top: 2rem;
  padding-top: 1rem;
  border-top: 1px solid color-mix(in srgb, var(--color_main) 30%, transparent);
  display: flex;
  justify-content: end
}

.wpcf7-turnstile div {
  transform-origin: right;
  transform: scale(0.6)
}

.contact__privacy-field {
  margin: 1.5rem 0
}

.contact__checkbox-label {
  position: relative;
  padding-left: 1.2rem;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  font-size: .875rem;
  font-weight: 700;
  opacity: .8;
  color: var(--color_main)
}

.contact__checkbox-label .wpcf7-checkbox,
.contact__checkbox-label input[type=checkbox] {
  opacity: 0;
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  z-index: 50;
  cursor: pointer
}

.contact__checkbox-label::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  border-radius: .3rem;
  background: color-mix(in srgb, #fff 40%, transparent);
  border: 1px solid color-mix(in srgb, var(--color_main) 30%, transparent);
  z-index: 1;
  transition: all .3s ease
}

.contact__checkbox-label::after {
  content: "";
  position: absolute;
  left: 7.5px;
  top: calc(50% - 6px);
  width: 5px;
  height: 10px;
  border-right: 2px solid var(--color_link);
  border-bottom: 2px solid var(--color_link);
  transform: rotate(45deg);
  opacity: 0;
  transition: all .2s ease;
  z-index: 2;
  pointer-events: none
}

.contact__checkbox-label a {
  color: var(--color_main);
  text-decoration: underline;
  transition: opacity .3s, color .3s
}

.contact__checkbox-label a:hover {
  opacity: .8;
  color: var(--color_link)
}

.contact__checkbox-label:has(input[type=checkbox]:checked)::after {
  opacity: 1
}

.contact__turnstile-wrap {
  margin: 1.5rem 0
}

.btn-design {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: var(--color_link);
  height: 65px;
  border-radius: 32.5px;
  padding: 0 10px;
  width: 100%;
  overflow: hidden;
  transition: all .4s;
  font-family: "Zen Kaku Gothic New", sans-serif;
  text-decoration: none
}

.btn-design__icon {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: var(--color_text);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px auto
}

.btn-design.is-profile .btn-design__icon {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 90 90'%3E%3Cpath fill='%23fff' d='m31.84 61.4c-2.0267 0-3.7733-.4133-5.24-1.24s-2.6-2.0133-3.4-3.56c-.7733-1.5733-1.16-3.4533-1.16-5.64 0-2.48.3333-4.8267 1-7.04.6933-2.2133 1.6667-4.1733 2.92-5.88s2.76-3.04 4.52-4c1.7867-.96 3.76-1.44 5.92-1.44 2.0267 0 3.76.4133 5.2 1.24 1.4667.8267 2.5867 2.0133 3.36 3.56.8 1.5467 1.2 3.4267 1.2 5.64 0 2.48-.3467 4.8267-1.04 7.04-.6667 2.2133-1.6267 4.1733-2.88 5.88s-2.76 3.04-4.52 4-3.72 1.44-5.88 1.44zm.44-4.52c1.3867 0 2.6133-.4267 3.68-1.28 1.0933-.88 2-2 2.72-3.36.7467-1.3867 1.3067-2.88 1.68-4.48s.56-3.1333.56-4.6c0-2.0267-.44-3.5333-1.32-4.52-.88-1.0133-2.0933-1.52-3.64-1.52-1.4133 0-2.6667.44-3.76 1.32-1.0933.8533-2.0133 1.9733-2.76 3.36-.72 1.36-1.2667 2.84-1.64 4.44s-.56 3.1333-.56 4.6c0 2 .44 3.5067 1.32 4.52.9067 1.0133 2.1467 1.52 3.72 1.52zm22.6759 4.12 5.16-25.8 1.84 2.16h-8.24l.88-4.36h11.16l-5.6 28z'/%3E%3C/svg%3E")
}

.btn-design.is-mail .btn-design__icon {
  background-image: url("data:image/svg+xml,%3Csvg ... 別のSVGのパス ... %3E%3C/svg%3E")
}

.btn-design__arrow {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  position: relative
}

.btn-design__arrow svg {
  width: auto;
  height: 13px;
  position: absolute;
  top: 50%;
  right: 11px;
  transform: translateY(-50%);
  transition: all .4s;
  color: #fff
}

.btn-design__text {
  display: inline-block;
  letter-spacing: .1em;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: 500;
  color: #fff;
  position: relative;
  transition: transform .4s ease-in-out
}

.btn-design__text::after {
  content: attr(data-text);
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  transform: translateY(65px);
  white-space: nowrap
}

.btn-design:hover {
  filter: brightness(1.1)
}

.btn-design:hover .btn-design__text {
  transform: translateY(-65px)
}

.btn-design:hover .btn-design__arrow svg {
  right: 7px
}

#breadcrumb {
  margin-top: 74px;
  background: rgba(0, 0, 0, 0);
  box-shadow: none
}

@media(max-width: 480px) {
  #breadcrumb {
    margin-top: 60px
  }
}

a.p-breadcrumb__text {
  transition: all .3s
}

a.p-breadcrumb__text:hover {
  color: var(--color_link)
}

.category-nav {
  margin-top: 2rem;
  margin-bottom: 2.5rem;
  position: relative;
  z-index: 100
}

.category-nav__list {
  display: flex;
  gap: 8px;
  list-style: none;
  padding: 0;
  margin: 0
}

@media(max-width: 480px) {
  .category-nav__list {
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch
  }
}

.category-nav__list {
  scrollbar-width: none
}

.category-nav__list::-webkit-scrollbar {
  display: none
}

.category-nav__link {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 16px;
  color: var(--color_text);
  border-radius: 4px;
  font-size: .875rem;
  text-decoration: none;
  transition: all .2s ease;
  position: relative;
  white-space: nowrap;
  cursor: pointer
}

.category-nav__link::before {
  content: "";
  width: 100%;
  height: 100%;
  border-radius: 4px;
  border: 1px solid var(--color_text);
  opacity: .6;
  position: absolute;
  top: 0;
  left: 0
}

.category-nav__arrow {
  font-size: .5rem;
  transition: transform .2s ease;
  opacity: .8
}

.category-nav__item {
  position: relative;
  flex-shrink: 0
}

.category-nav__item:not(.is-active):hover .category-nav__link {
  opacity: .8
}

.category-nav__item.is-active {
  cursor: not-allowed
}

.category-nav__item.is-active .category-nav__link {
  background: var(--color_link);
  color: #fff
}

@media(min-width: 769px) {
  .category-nav__item.is-active .category-nav__link {
    pointer-events: none;
    cursor: not-allowed
  }
}

@media(min-width: 769px) {
  .category-nav__item.has-child:hover .category-nav__megamenu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0)
  }

  .category-nav__item.has-child:hover .category-nav__arrow {
    transform: rotate(180deg)
  }
}

.category-nav__item.is-open .category-nav__megamenu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0)
}

.category-nav__item.is-open .category-nav__arrow {
  transform: rotate(180deg)
}

.category-nav__megamenu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  min-width: 220px;
  background: hsla(0, 0%, 100%, .9);
  border: 1px solid #e2ddd5;
  border-radius: 6px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, .08);
  padding: 10px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: all .25s cubic-bezier(0.25, 1, 0.5, 1);
  z-index: 20
}

@media(max-width: 480px) {
  .category-nav__megamenu {
    top: calc(100% + 14px);
    width: 100%;
    background: hsla(0, 0%, 100%, .9)
  }
}

.category-nav__megamenu.is-open {
  opacity: 1;
  visibility: visible
}

.category-nav__megamenu-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px
}

.category-nav__megamenu-list li:not(:last-child) {
  padding-bottom: 4px;
  margin-bottom: 4px;
  position: relative
}

.category-nav__megamenu-list li:not(:last-child)::after {
  content: "";
  width: 90%;
  height: 1px;
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  background: color-mix(in srgb, var(--color_main) 40%, transparent)
}

.category-nav__megamenu-list li a {
  display: block;
  padding: 6px 10px;
  font-size: .8rem;
  color: var(--color_text);
  border-radius: 3px;
  text-decoration: none;
  transition: background .2s, color .2s
}

.category-nav__megamenu-list li a:hover {
  background: hsla(0, 0%, 100%, .8);
  color: var(--color_link)
}

.category-nav__megamenu-list li.is-ative a:hover {
  background: hsla(0, 0%, 100%, .8);
  color: var(--color_text)
}

.card {
  max-width: 280px;
  transition: transform .3s cubic-bezier(0.25, 1, 0.5, 1), box-shadow .3s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .04);
  transform-origin: top left
}

.card:hover {
  transform: translateY(-8px) rotate(1.5deg);
  box-shadow: 0 10px 25px rgba(0, 0, 0, .08)
}

.card__link {
  width: 100%;
  padding: 1rem;
  padding-bottom: .75rem;
  color: var(--color_text);
  position: relative;
  display: inline-block
}

.card__date,
.card__number {
  position: relative;
  z-index: 3
}

.card__thumbnail,
.card__content {
  position: relative;
  z-index: 2
}

.card__thumbnail {
  width: 100%;
  aspect-ratio: 1/1;
  overflow: hidden;
  border-radius: 3px
}

@media(max-width: 480px) {
  .card__thumbnail {
    width: 40%;
    flex-shrink: 0
  }
}

.card__thumbnail img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center
}

.card__bg {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #fcfbfa;
  border-radius: 4px;
  overflow: hidden
}

.card__categories {
  display: flex;
  align-items: center;
  gap: .25rem;
  padding-top: .6rem
}

.card__category {
  border: 1px solid var(--color_text);
  font-size: .75rem;
  line-height: 1;
  padding: .125rem .25rem;
  opacity: .6
}

.card__title {
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.3;
  padding-bottom: .5rem;
  padding-top: .35rem
}

.card__excerpt {
  line-height: 1.3;
  height: 3.9rem;
  overflow: hidden;
  font-size: .875rem;
  opacity: .8
}

@media(max-width: 480px) {
  .card__excerpt {
    height: 1.95rem;
    font-size: .75rem
  }
}

.card__date {
  display: flex;
  gap: .2rem;
  font-family: "Montserrat", sans-serif;
  position: absolute;
  top: 24px;
  left: 24px;
  color: #fff
}

@media(max-width: 480px) {
  .card__date {
    top: 12px;
    left: 12px
  }
}

.card__date .y {
  writing-mode: vertical-rl;
  letter-spacing: .1em;
  font-weight: 500;
  line-height: 1;
  padding-top: .35rem
}

@media(max-width: 480px) {
  .card__date .y {
    font-size: .875rem
  }
}

.card__date .md {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-size: 1.6rem;
  line-height: 1;
  gap: 1rem;
  position: relative
}

@media(max-width: 480px) {
  .card__date .md {
    font-size: 1.45rem
  }
}

.card__date .md span {
  font-weight: 500
}

.card__date .md::after {
  content: "";
  width: 80%;
  height: 2px;
  opacity: .8;
  background: #fff;
  position: absolute;
  top: 2rem;
  left: 50%;
  transform: translateX(-50%) rotate(-3deg)
}

@media(max-width: 480px) {
  .card__date .md::after {
    height: 1px;
    transform: translateX(-50%) rotate(-6deg)
  }
}

.card.is-about {
  width: 260px;
  aspect-ratio: 131/194
}

@media(max-width: 480px) {
  .card.is-about {
    width: calc((100% - 16px)/2)
  }
}

.card.is-about .card__link {
  height: 100%
}

.card.is-about .card__number {
  display: flex;
  align-items: baseline;
  gap: .25rem;
  opacity: .8;
  line-height: 1
}

.card.is-about .card__number span {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  padding: 0
}

.card.is-about .card__number span:first-child {
  font-size: .65rem
}

.card.is-about .card__title {
  font-size: 1.25rem;
  font-weight: 600;
  padding-top: 0
}

.card.is-about .card__thumbnail {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  aspect-ratio: auto
}

.card.is-gadgets,
.card.is-books {
  max-width: 260px
}

@media(max-width: 480px) {

  .card.is-gadgets,
  .card.is-books {
    width: calc((100% - 1.5rem)/2);
    max-width: initial
  }
}

@media(max-width: 480px) {

  .card.is-gadgets .card__content,
  .card.is-books .card__content {
    min-height: 96px
  }
}

.card.is-gadgets .card__thumbnail,
.card.is-books .card__thumbnail {
  width: calc(100% - 1.5rem);
  aspect-ratio: 22/25;
  margin-left: auto
}

@media(max-width: 480px) {

  .card.is-gadgets .card__thumbnail,
  .card.is-books .card__thumbnail {
    width: 100%
  }
}

.card.is-gadgets .card__number,
.card.is-books .card__number {
  display: flex;
  flex-direction: column;
  position: absolute;
  top: 15px;
  left: 3px;
  gap: .2rem;
  opacity: .6
}

.card.is-gadgets .card__number span,
.card.is-books .card__number span {
  line-height: .9;
  font-family: "Montserrat", sans-serif;
  display: inline-block;
  writing-mode: vertical-lr
}

.card.is-gadgets .card__number span:first-child,
.card.is-books .card__number span:first-child {
  font-weight: 600;
  font-size: .75rem;
  padding-left: .35rem
}

.card.is-gadgets .card__number span:last-child,
.card.is-books .card__number span:last-child {
  font-weight: 500;
  font-size: 2.35rem
}

.card.is-gadgets .card__rating,
.card.is-books .card__rating {
  padding-top: 10px;
  font-size: .75rem;
  color: #d08e00;
  opacity: .8
}

.card.is-gadgets .card__excerpt,
.card.is-books .card__excerpt {
  height: 1.3rem
}

@media(max-width: 480px) {

  .card.is-gadgets .card__excerpt,
  .card.is-books .card__excerpt {
    height: 1rem
  }
}

.card.is-gadgets .card__link,
.card.is-books .card__link {
  padding-bottom: 1.25rem
}

.card.is-gadgets .stamp,
.card.is-books .stamp {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  background: #94251c;
  z-index: 4;
  position: absolute;
  right: 6px;
  top: 50%;
  transform: rotate(10deg);
  padding: 5px;
  opacity: .8;
  overflow: hidden
}

@media(max-width: 480px) {

  .card.is-gadgets .stamp,
  .card.is-books .stamp {
    transform: scale(0.6) rotate(10deg);
    right: -14px;
    top: 40%
  }
}

.card.is-gadgets .stamp::before,
.card.is-books .stamp::before {
  content: "";
  width: 90%;
  height: 90%;
  border: 1px solid #fff;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0);
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

.card.is-gadgets .stamp__part,
.card.is-books .stamp__part {
  width: 62%;
  height: 62%;
  background: #fff;
  border-radius: 50%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

.card.is-gadgets .stamp__part__text,
.card.is-books .stamp__part__text {
  font-size: 8px;
  white-space: nowrap;
  font-family: "Montserrat", sans-serif;
  color: #94251c;
  position: absolute;
  left: 50%;
  transform: translateX(-50%)
}

.card.is-gadgets .stamp__part__text:first-child,
.card.is-books .stamp__part__text:first-child {
  top: 8px
}

.card.is-gadgets .stamp__part__text:last-child,
.card.is-books .stamp__part__text:last-child {
  bottom: 8px
}

.card.is-gadgets .stamp .stamp__circle-box svg,
.card.is-books .stamp .stamp__circle-box svg {
  width: 105%;
  height: 105%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

.card.is-gadgets .stamp__circle text,
.card.is-books .stamp__circle text {
  color: #fff;
  font-size: 26px;
  z-index: 5;
  letter-spacing: .01em
}

.card.is-gadgets .stamp__date,
.card.is-books .stamp__date {
  width: 100%;
  background: #fff;
  text-align: center;
  border-top: 2px solid #94251c;
  border-bottom: 2px solid #94251c;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1;
  font-size: 13px;
  padding: 2px 0;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  color: #94251c
}

@media(max-width: 480px) {
  .card.is-blog {
    max-width: initial;
    width: 100%
  }
}

.card.is-blog .stamp {
  width: 96px;
  height: 66px;
  background: #94251c;
  z-index: 4;
  position: absolute;
  right: 10px;
  top: 55%;
  transform: rotate(6deg);
  padding: 5px;
  opacity: .8;
  clip-path: polygon(50% 0%, 100% 20%, 100% 80%, 50% 100%, 0% 80%, 0% 20%)
}

@media(max-width: 480px) {
  .card.is-blog .stamp {
    top: -13px;
    right: -5px
  }
}

.card.is-blog .stamp::before {
  content: "";
  width: calc(100% - 4px);
  height: calc(100% - 4px);
  background: #fff;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: -1;
  clip-path: polygon(50% 0%, 100% 20%, 100% 80%, 50% 100%, 0% 80%, 0% 20%)
}

.card.is-blog .stamp__text {
  font-size: .875rem;
  font-weight: 600;
  color: #94251c;
  line-height: 1;
  font-family: "Montserrat", sans-serif;
  display: inline-block;
  text-align: center;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

.card.is-blog .stamp__part {
  width: calc(100% - 6px);
  height: 14px;
  background: #94251c;
  clip-path: polygon(0% 100%, 0% 80%, 50% 0%, 100% 80%, 100% 100%);
  position: absolute;
  left: 50%;
  transform: translateX(-50%)
}

.card.is-blog .stamp__part::after {
  content: "";
  width: 18px;
  height: 10px;
  background: url(./images/component/card/stamp-icon.svg) no-repeat center center/cover;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

.card.is-blog .stamp__part:first-child {
  top: 4px
}

.card.is-blog .stamp__part:last-child {
  bottom: 4px;
  transform: translateX(-50%) rotate(180deg)
}

@media(max-width: 480px) {
  .card.is-blog .card__link {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .65rem
  }
}

@media(max-width: 480px) {
  .card.is-blog .card__thumbnail {
    width: 40%;
    flex-shrink: 0
  }
}

.card.is-no-article {
  cursor: not-allowed
}

.card.is-no-article:hover {
  transform: none
}

.card.is-no-article .card__link::after {
  content: "";
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, .6);
  position: absolute;
  top: 0;
  left: 0;
  z-index: 10
}

.card.is-no-article .stamp {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(2) rotate(6deg);
  right: auto;
  z-index: 100;
  opacity: 1;
  z-index: 11
}

@media(max-width: 480px) {
  .card.is-no-article .stamp {
    transform: translate(-50%, -50%) scale(1.4) rotate(6deg)
  }
}

.card.is-no-article.is-gadgets .stamp,
.card.is-no-article.is-books .stamp {
  transform: translate(-50%, -50%) scale(1.6) rotate(6deg)
}

@media(max-width: 480px) {

  .card.is-no-article.is-gadgets .stamp,
  .card.is-no-article.is-books .stamp {
    transform: translate(-50%, -50%) scale(1.2) rotate(6deg)
  }
}

.card.is-no-article.is-gadgets .stamp__part__text,
.card.is-no-article.is-books .stamp__part__text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 6px
}

.card.is-no-article.is-gadgets .stamp__part__text:first-child,
.card.is-no-article.is-books .stamp__part__text:first-child {
  top: 4px
}

.card.is-no-article.is-gadgets .stamp__part__text:last-child,
.card.is-no-article.is-books .stamp__part__text:last-child {
  bottom: 4px
}

.c-pagination .page-numbers {
  font-family: "Montserrat", sans-serif;
  font-style: italic;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0);
  border: 1px solid color-mix(in srgb, var(--color_text) 80%, transparent);
  color: var(--color_text);
  transition: all .3s
}

.c-pagination .page-numbers:not(.c-pagination .page-numbers.current):hover {
  opacity: .6;
  transform: translateY(-3px)
}

.c-pagination .page-numbers.current {
  background: color-mix(in srgb, var(--color_link) 80%, transparent);
  border-color: var(--color_link);
  color: #fff;
  cursor: not-allowed
}

#pagetop.c-fixBtn {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 60px !important;
  height: 60px !important;
  padding: 10px 5px !important;
  color: #fff;
  background-color: var(--color_link) !important;
  transition: all .3s ease;
  border: none !important;
  opacity: 1 !important;
  overflow: visible !important;
  position: relative
}

#pagetop.c-fixBtn::before {
  content: "";
  width: 120px;
  aspect-ratio: 2/3;
  background: url(./images/component/page-top/page-top.webp) no-repeat center center/cover;
  position: absolute;
  top: -80px;
  right: -60px
}

#pagetop.c-fixBtn .c-fixBtn__icon {
  font-size: .85rem;
  color: #fff;
  margin: 2px 0;
  order: 2;
  transition: transform .2s ease
}

#pagetop.c-fixBtn::after {
  content: "TOPへ";
  font-size: .6rem;
  font-weight: 600;
  letter-spacing: .05em;
  color: #fff;
  line-height: 1;
  order: 3
}

#pagetop.c-fixBtn:hover {
  transform: translateY(-3px)
}

#pagetop.c-fixBtn:hover .c-fixBtn__icon {
  transform: translateY(-2px)
}

.c-fixBtn {
  width: 60px;
  height: 60px
}

.p-fixBtnWrap {
  display: flex;
  flex-direction: row;
  gap: .5rem
}

.ticket__list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 60px;
  max-width: 1060px;
  margin: 0 auto
}

@media(max-width: 480px) {
  .ticket__list {
    gap: 26px
  }
}

.ticket__item {
  width: 100%;
  max-width: 500px;
  flex-shrink: 0;
  position: relative
}

@media(max-width: 480px) {
  .ticket__item {
    width: calc(100% + 140px)
  }
}

.ticket__link {
  width: 100%;
  display: block
}

.ticket {
  width: 100%;
  height: 200px;
  display: flex;
  position: relative;
  cursor: pointer;
  box-sizing: border-box;
  filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0));
  transition: transform .4s cubic-bezier(0.175, 0.885, 0.32, 1.275), filter .4s ease;
  cursor: pointer;
  will-change: transform, filter
}

.ticket:hover {
  transform: translateY(-5px);
  filter: drop-shadow(0 15px 25px rgba(0, 0, 0, 0.15))
}

.ticket:hover .ticket__left__bg {
  transform: scale(1.025)
}

.ticket:hover .ticket__stamp {
  transform: rotate(10deg) scale(1.05)
}

.ticket:hover .ticket__barcode {
  transform: translateY(-2px)
}

.ticket__left,
.ticket__right {
  transition: transform .6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  will-change: transform
}

.ticket__left {
  flex: 1;
  padding: 24px;
  mask-image: url("./images/component/ticket/ticket-mask-left.svg");
  mask-repeat: no-repeat;
  mask-position: right center;
  mask-size: auto 100%;
  border-right: 2px dashed #e8e4dc;
  color: #fff;
  position: relative;
  overflow: hidden
}

@media(max-width: 480px) {
  .ticket__left {
    padding: 20px;
    max-width: 310px
  }
}

.ticket__left__bg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
  z-index: -1;
  transition: transform .4s cubic-bezier(0.175, 0.885, 0.32, 1.275), filter .4s ease
}

.ticket__right {
  width: 140px;
  display: flex;
  flex-direction: column;
  padding-top: 1rem;
  gap: 2rem;
  justify-content: center;
  border-left: 2px dashed #e8e4dc;
  position: relative;
  background: #fffcf5;
  mask-image: url("./images/component/ticket/ticket-mask-right.svg");
  mask-repeat: no-repeat;
  mask-position: left center;
  mask-size: auto 100%
}

.ticket.is-cut {
  filter: none
}

@media(max-width: 480px) {
  .ticket.is-cut {
    transform: translateX(-20%)
  }
}

.ticket.is-cut .ticket__left {
  transform: translateX(-15px) rotate(-0.5deg)
}

@media(max-width: 480px) {
  .ticket.is-cut .ticket__left {
    transition-delay: .8s
  }
}

.ticket.is-cut .ticket__right {
  transform: translate(20px, 10px) rotate(10deg)
}

@media(max-width: 480px) {
  .ticket.is-cut .ticket__right {
    transition-delay: .8s
  }
}

.ticket__label {
  font-family: "Montserrat", sans-serif;
  opacity: .8
}

.ticket__label span {
  font-weight: 700
}

.ticket__label span:nth-child(1) {
  font-size: .75rem
}

.ticket__label span:nth-child(2) {
  font-size: 1.125rem
}

.ticket__title {
  font-size: 1.6rem;
  font-weight: 700;
  margin: .75rem 0 1.25rem;
  line-height: 1.2;
  letter-spacing: .05em
}

.ticket__desc {
  line-height: 1.5;
  opacity: .8;
  font-weight: 500;
  font-size: .875rem
}

.ticket__stamp,
.ticket__barcode {
  transition: transform .4s cubic-bezier(0.175, 0.885, 0.32, 1.275)
}

.ticket__stamp {
  text-align: center;
  position: relative;
  width: 80px;
  height: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto
}

.ticket__stamp__text {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  font-family: "Montserrat", sans-serif;
  color: var(--color_link);
  line-height: 1;
  padding: 5px 0;
  border-color: color-mix(in srgb, var(--color_link) 60%, transparent);
  border-style: solid;
  border-width: 1px 0
}

.ticket__stamp__circle-text {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 8px;
  font-family: "Montserrat", sans-serif;
  color: var(--color_link)
}

.ticket__barcode {
  width: 78px;
  margin: 0 auto 0;
  position: relative;
  padding-bottom: .6rem
}

.ticket__barcode__text {
  width: 100%;
  text-align: center;
  font-size: .65rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  opacity: .6;
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%)
}

.ticket__left__bg {
  opacity: .15
}

.ticket__1 .ticket__left {
  background: #a7301a
}

.ticket__2 .ticket__left {
  background: #be601e
}

.ticket__3 .ticket__left {
  background: #be8e1e
}

.ticket__4 .ticket__left {
  background: #899121
}

.ticket__5 .ticket__left {
  background: #378a7f
}

.ticket__6 .ticket__left {
  background: #3d639b
}

/*# sourceMappingURL=style.css.map */