@charset "UTF-8";
/*---------------------------------------------
メディアクエリー
---------------------------------------------*/
/*---------------------------------------------
共通
---------------------------------------------*/
html {
  color: #000;
}

/*リセット
--------------------------------------------*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font: inherit;
  font-size: 100%;
  vertical-align: baseline;
}

html {
  line-height: 1;
  background-color: #F2F1ED;
  scroll-behavior: smooth;
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-size: 100px 100px;
}

ol, ul {
  list-style: none;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

q, blockquote {
  quotes: none;
}

q:before, q:after, blockquote:before, blockquote:after {
  content: "";
  content: none;
}

a img {
  border: none;
}

article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
  display: block;
}

img {
  width: 100%;
  display: block;
  pointer-events: none;
}

@media print {
  img {
    display: none;
  }
}
@media screen and (min-width: 769px) {
  .sp_none {
    display: block;
  }
}
@media screen and (max-width: 768px) {
  .sp_none {
    display: none;
  }
}

@media screen and (min-width: 769px) {
  .pc_none {
    display: none;
  }
}
@media screen and (max-width: 768px) {
  .pc_none {
    display: block;
  }
}

.jp {
  font-family: "momochidori-wide", sans-serif;
  font-weight: 500;
  font-style: normal;
}

.kaku {
  font-family: "zen-kaku-gothic-new", sans-serif;
  font-weight: 500;
  font-style: normal;
}

/*---------------------------------------------
FV
---------------------------------------------*/
@media screen and (min-width: 769px) {
  .fv {
    position: relative;
    border-bottom: 4px solid;
  }
}
@media screen and (min-width: 769px) {
  .fv .pc_fv {
    position: absolute;
    width: 30%;
    height: 90vh;
    z-index: 10;
    padding-left: 2%;
    display: flex;
    flex-direction: column;
    justify-content: end;
    background-image: url(../images/bg_noise.png);
    background-repeat: repeat;
    background-size: 100px 100px;
  }
}
.fv .pc_fv .pc_main_title {
  width: 92%;
}
.fv .pc_fv .pc_fv_name {
  width: 67%;
  margin-top: 14px;
}
.fv .flow_wrap {
  width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.fv .flow_track {
  position: relative;
  height: 90vh;
}
.fv .flow_track > a,
.fv .flow_track > img {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  will-change: transform;
  backface-visibility: hidden;
}
.fv .flow_track img {
  display: block;
  height: 100%;
  width: auto;
}
.fv .flow_track_bottom {
  display: none;
}
@media (max-width: 640px) {
  .fv .flow_track {
    height: 40vh;
  }
  .fv .flow_track_bottom {
    display: block;
  }
}
.fv .main_title {
  position: relative;
  width: 81%;
  margin-top: -20%;
  margin-left: 5%;
}
.fv .name {
  margin-left: 5%;
  width: 55%;
  margin-top: 5%;
}
@media screen and (min-width: 769px) {
  .fv .name {
    margin-left: 0;
  }
}
.fv .lead {
  font-size: clamp(14px, 1vw, 16px);
  margin-left: 5%;
  margin-top: 5%;
  margin-bottom: 100px;
  line-height: 1.2;
}
@media screen and (min-width: 769px) {
  .fv .lead {
    margin-left: 0;
    margin-top: 10%;
    margin-bottom: 8%;
  }
}
.fv .info {
  position: relative;
  background-color: #fff;
  border-radius: 3px;
  padding: 20px;
  width: 80%;
  margin: -50px auto 0;
}
@media screen and (min-width: 769px) {
  .fv .info {
    width: 83%;
    margin: initial;
    margin-bottom: 10%;
  }
}
.fv .info .outer .star_wrap {
  position: absolute;
  width: 60px;
  top: -20%;
  right: 3%;
  z-index: 10;
}
.fv .info .outer .star_wrap .star_img {
  position: relative;
  width: 60px;
  animation: star_rotate 12s linear infinite;
}
.fv .info .outer .star_wrap p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  font-size: 11px;
  text-align: center;
  color: #fff;
}
.fv .info_title {
  text-align: center;
  font-size: 18px;
  margin-bottom: 10px;
}
.fv .info_text {
  font-size: 12px;
  line-height: 1.5;
}
.fv .info_text a {
  color: #000;
  text-decoration: underline;
}

@keyframes title_reveal {
  0% {
    opacity: 0;
    clip-path: inset(0 100% 0 0);
    filter: blur(10px);
    transform: translateY(16px) scale(1.04);
  }
  40% {
    opacity: 1;
  }
  100% {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    filter: blur(0);
    transform: translateY(0) scale(1);
  }
}
@keyframes name_fade_up {
  0% {
    opacity: 0;
    filter: blur(6px);
    transform: translateY(20px);
  }
  100% {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
  }
}
.fv .flow_wrap {
  opacity: 0;
  transition: opacity 1s ease;
}
.fv h1 img {
  opacity: 0;
}
.fv.is_loaded .flow_wrap {
  opacity: 1;
}
.fv.is_loaded h1 .pc_main_title,
.fv.is_loaded h1 .main_title {
  animation: title_reveal 1.6s cubic-bezier(0.22, 1, 0.36, 1) 0.9s both;
}
.fv.is_loaded h1 .pc_fv_name,
.fv.is_loaded h1 .name {
  animation: name_fade_up 1.2s cubic-bezier(0.22, 1, 0.36, 1) 1.9s both;
}

@media (prefers-reduced-motion: reduce) {
  .fv .flow_wrap,
  .fv h1 img {
    opacity: 1;
    transition: none;
    animation: none !important;
  }
}
@keyframes star_rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
/*---------------------------------------------
index
---------------------------------------------*/
.index {
  margin-bottom: 50px;
  padding-top: 80px;
}
@media screen and (min-width: 769px) {
  .index {
    margin: auto;
    padding-top: 10%;
    padding-bottom: 10%;
  }
}
.index ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
}
.index ul a {
  width: 30%;
  gap: 5px;
}
@media screen and (min-width: 769px) {
  .index ul a {
    width: 26%;
  }
}

/*---------------------------------------------
pagetop_btn
---------------------------------------------*/
.page_top {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 100;
}
@media screen and (min-width: 769px) {
  .page_top {
    display: none;
  }
}
.page_top {
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  transition: opacity 0.4s ease, visibility 0.4s ease, transform 0.4s ease;
}
.page_top.is_show {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.page_top_link {
  display: block;
  width: 60px;
  transition: opacity 0.3s ease;
}
.page_top_link:hover {
  opacity: 0.7;
}
.page_top_img {
  display: block;
  width: 100%;
  height: auto;
}
@media (max-width: 767px) {
  .page_top {
    right: 12px;
    bottom: 12px;
  }
  .page_top_link {
    width: 44px;
  }
}

/*---------------------------------------------
layout
---------------------------------------------*/
.layout {
  display: flex;
  margin: 0 auto;
}

.left,
.right {
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-size: 100px 100px;
  min-width: 0;
  padding: 16px;
  box-sizing: border-box;
  /* ↓これが重要:
     overflow: auto や position: fixed を指定しない。
     指定すると left/right が独立スクロール領域になり、
     その上でホイールしても center(=bodyのスクロール)が動かなくなる。 */
}

.left_sticky,
.right_sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.left {
  background-image: url(../images/noise.png);
  background-repeat: repeat;
  background-size: 100px 100px;
}
.left .index {
  width: 100%;
}

.center {
  background-image: url(../images/bg_noise.png);
  background-repeat: repeat;
  background-size: 100px 100px;
}
.center .text_wrap {
  padding-top: 40px;
  padding-left: 16px;
  padding-right: 16px;
  display: flex;
  justify-content: space-between;
}
.center .text_wrap .left_text {
  width: 28%;
}
.center .text_wrap .right_text {
  width: 25%;
}
.center .title {
  height: 100px;
  width: auto;
  margin-top: 55px;
  margin-bottom: 10px;
  padding-left: 16px;
  padding-right: 16px;
}
.center .panel {
  width: min(90vw, 720px);
}
.center .rule {
  height: 2px;
  background: var(--line);
  width: 100%;
}
.center .marquee_wrap {
  overflow: hidden;
  padding: 14px 0;
  border-top: 1px solid;
  border-bottom: 1px solid;
  width: 90%;
  margin: 0 auto 30px;
}
.center .marquee_track {
  display: flex;
  width: -moz-max-content;
  width: max-content;
  animation: scroll 30s linear infinite;
}
.center .marquee_track span {
  display: inline-block;
  white-space: nowrap;
  font-size: clamp(14px, 3.2vw, 16px);
  color: var(--ink);
  padding-right: 3em;
  letter-spacing: 0.02em;
}
@keyframes scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .center .marquee_track {
    animation: none;
  }
}
.center {
  /*---------------------------------------------
  event
  ---------------------------------------------*/
}
.center .event {
  background-color: #F2F1ED;
  background-image: url(../images/noise_footer.png);
  background-repeat: repeat;
  background-size: 100px 100px;
  padding-top: 60px;
}
.center .event_title {
  font-size: 20px;
  text-align: center;
  margin-bottom: 30px;
}
.center .event_text {
  font-size: 14px;
  width: 86%;
  margin: 0 auto 50px;
  line-height: 1.5;
}
@media screen and (min-width: 769px) {
  .center .event_text {
    text-align: center;
  }
}
.center .event .area_name {
  font-size: 20px;
  text-align: center;
  margin-bottom: 20px;
  width: -moz-fit-content;
  width: fit-content;
  margin: 0 auto 30px;
  border-bottom: 1px solid;
  padding-bottom: 5px;
}
@media screen and (min-width: 769px) {
  .center .event .area_name {
    -moz-text-align-last: left;
         text-align-last: left;
    margin: initial;
    margin-bottom: 30px;
  }
}
.center .event .area .place_block {
  margin-bottom: 30px;
}
.center .event .area .place_wrap {
  display: flex;
}
.center .event .area .place_wrap .place {
  font-size: 14px;
  line-height: 1.8;
}
.center .event .area .place_wrap a::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background-image: url(../images/map.svg);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
  margin-left: 10px;
}
.center .event .area .place_wrap a {
  font-size: 12px;
  color: red;
}
.center .event .area .date {
  font-size: 16px;
}
.center .event .area .date span {
  font-size: 14px;
}
.center .event .tokyo {
  width: 86%;
  margin: 0 auto 80px;
}
.center .event .osaka {
  margin-left: 7%;
}
.center .event .osaka .floor {
  font-size: 12px;
  line-height: 1.2;
  margin-bottom: 10px;
}
.center .event .osaka .map_wrap {
  position: relative;
  overflow: scroll;
  margin-top: 20px;
  scrollbar-width: none;
}
.center .event .osaka .map_wrap .osaka_map {
  width: 173%;
  max-width: none;
  overflow: hidden;
}
.center .event .osaka .map_wrap .scroll {
  position: sticky;
  z-index: 10;
  width: 54px;
  height: auto;
  bottom: 16px;
  left: 16px;
}
@media screen and (min-width: 769px) {
  .center .event .osaka .map_wrap .scroll {
    width: 75px;
  }
}
.center .event .attention {
  border: 1px dotted;
  padding: 20px 10px;
  width: 86%;
  margin: auto;
}
@media screen and (min-width: 769px) {
  .center .event .attention {
    width: 76%;
    padding: 30px;
  }
}
.center .event .attention_title {
  font-size: 14px;
  text-align: center;
  margin-bottom: 20px;
}
.center .event .attention ul li {
  font-size: 10px;
  margin-bottom: 10px;
  line-height: 1.2;
  list-style: inside;
  padding-left: 1.5em;
  text-indent: -1.5em;
}
@media screen and (min-width: 769px) {
  .center .event .attention ul li {
    font-size: 12px;
  }
}
.center {
  /*---------------------------------------------
  profile
  ---------------------------------------------*/
}
.center .profile {
  background-color: #F2F1ED;
  padding-top: 50px;
  padding-bottom: 50px;
  background-image: url(../images/noise_footer.png);
  background-repeat: repeat;
  background-size: 100px 100px;
}
.center .profile .marquee_wrap2 {
  width: 100%;
  margin: 50px auto;
}
.center .profile .marquee_wrap2 span {
  font-size: clamp(17px, 3.2vw, 16px);
  padding-right: 0;
  letter-spacing: 0;
}
.center .profile .prof_wrap {
  padding: 5% 5% 60px;
  background-color: #fff;
  border-radius: 20px;
  margin: 1px 10px;
}
@media screen and (min-width: 769px) {
  .center .profile .prof_wrap {
    padding: 5% 10% 60px;
    margin: 1px 5%;
  }
}
.center .profile .prof_wrap img {
  width: 55%;
  margin: 50px auto;
}
.center .profile .prof_wrap .prof_name {
  font-size: 16px;
  margin-bottom: 16px;
}
.center .profile .prof_wrap .prof_text {
  font-size: 12px;
  line-height: 1.3;
}

/*---------------------------------------------
credit
---------------------------------------------*/
.product_list {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 92%;
  margin: 30px auto 100px;
}
.product_list .product_card {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  text-decoration: none;
  color: inherit;
  width: 48%;
  margin-bottom: 10px;
  align-items: center;
}
.product_list .product_card .product_card_image {
  width: 59px;
  height: 76px;
  -o-object-fit: cover;
     object-fit: cover;
  flex-shrink: 0;
  background-color: #ddd;
}
.product_list .product_card .product_card_body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  padding-top: 4px;
  font-size: 10px;
  font-family: "zen-kaku-gothic-new", sans-serif;
  font-weight: 500;
  font-style: normal;
}
@media screen and (min-width: 769px) {
  .product_list .product_card .product_card_body {
    font-size: 12px;
  }
}
.product_list .product_card .product_card_brand {
  font-weight: bold;
  color: #1a1a1a;
  margin: 0 0 4px;
}
.product_list .product_card .product_card_item {
  color: #1a1a1a;
  line-height: 1.4;
  flex: 1;
}
@media screen and (min-width: 769px) {
  .product_list .product_card .product_card_item {
    width: 70%;
  }
}
.product_list .product_card .product_card_footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.product_list .product_card .product_card_price {
  font-weight: bold;
  color: #1a1a1a;
  margin: 0;
}
.product_list .product_card .product_card_buy_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 5px 8px;
  background-color: #2e8b96;
  color: #fff;
  font-weight: bold;
  letter-spacing: 0.05em;
}

.sec1 .product_list .product_card_buy_button {
  background-color: #2e8b96;
}

.sec2 .product_list .product_card_buy_button {
  background-color: #656EA7;
}

.sec3 .product_list .product_card_buy_button {
  background-color: #533014;
}

.sec4 .product_list .product_card_buy_button {
  background-color: #353332;
}

.sec5 .product_list .product_card_buy_button {
  background-color: #C72333;
}

.sec6 .product_list .product_card_buy_button {
  background-color: #172C49;
}

.product_list .product_card.is_shop_only {
  cursor: default;
}
.product_list .product_card.is_shop_only .product_card_buy_button {
  background-color: transparent;
  color: #C72333;
  border: 1px solid #C72333;
  white-space: nowrap;
}

/*---------------------------------------------
sec
---------------------------------------------*/
.sec {
  padding-bottom: 70px;
  border-bottom: 1px solid #8D632F;
  overflow-x: clip;
}
.sec .img1 {
  width: 95%;
}

/*---------------------------------------------
sec1
---------------------------------------------*/
.sec1 .img1 {
  width: 95%;
}
.sec1 .img2 {
  width: 88%;
  margin: 110px auto 0;
}
.sec1 .img3 {
  width: 88%;
  margin: 110px auto 0;
}

/*---------------------------------------------
sec2
---------------------------------------------*/
.sec2 .img1 {
  width: 95%;
}
.sec2 .img2 {
  width: 82%;
  margin-left: auto;
  margin-top: 80px;
}
.sec2 .img3 {
  width: 73%;
  margin: 100px auto;
}

/*---------------------------------------------
sec3
---------------------------------------------*/
.sec3 .title {
  height: 90px;
}
.sec3 .img2 {
  width: 92%;
  margin: 100px auto;
}
.sec3 .img3 {
  width: 75%;
  margin: 100px auto;
}

/*---------------------------------------------
sec4
---------------------------------------------*/
.sec4 .img2 {
  width: 74%;
  margin: 100px auto 50px;
}
.sec4 .img3 {
  width: 74%;
  margin-left: auto;
  margin-top: 100px;
}

/*---------------------------------------------
sec5
---------------------------------------------*/
.sec5 .img2 {
  width: 88%;
  margin: 100px auto;
}
.sec5 .img3 {
  width: 60%;
  margin: 100px auto;
}

/*---------------------------------------------
sec6
---------------------------------------------*/
.sec6 .img2 {
  width: 90%;
  margin: 100px auto;
}
.sec6 .img3 {
  width: 66%;
  margin: 100px auto;
}

/*---------------------------------------------
画像のフェード表示（JSで画面内に入ったら .is_show を付与）
---------------------------------------------*/
.js_fade {
  opacity: 0;
  filter: brightness(1.25) saturate(0.6);
  transition: opacity 0.6s ease, clip-path 1.3s cubic-bezier(0.77, 0, 0.175, 1), filter 1.8s cubic-bezier(0.22, 1, 0.36, 1), transform 1.8s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: clip-path, filter;
}
.js_fade.fade_left {
  clip-path: inset(0 100% 0 0);
}
.js_fade.fade_right {
  clip-path: inset(0 0 0 100%);
}
.js_fade.fade_up {
  clip-path: inset(100% 0 0 0);
}
.js_fade.fade_zoom {
  clip-path: inset(18% 18% 18% 18%);
  transform: scale(0.96);
}
.js_fade.is_show {
  opacity: 1;
  clip-path: inset(0 0 0 0);
  filter: none;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .js_fade {
    opacity: 1;
    clip-path: none !important;
    filter: none !important;
    transform: none !important;
    transition: none;
  }
}
.right {
  display: none;
}
.right .info {
  position: relative;
  background-color: #fff;
  border-radius: 3px;
  padding: 20px;
  width: 80%;
  margin: -50px auto 80px;
}
@media screen and (min-width: 769px) {
  .right .info {
    width: 83%;
    margin: initial;
    margin-bottom: 10%;
  }
}
.right .info .outer .star_wrap {
  position: absolute;
  width: 60px;
  top: -20%;
  right: 3%;
  z-index: 10;
}
.right .info .outer .star_wrap .star_img {
  position: relative;
  width: 60px;
  animation: star_rotate 12s linear infinite;
}
.right .info .outer .star_wrap p {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  font-size: 11px;
  text-align: center;
  color: #fff;
}
.right .info_title {
  text-align: center;
  font-size: 18px;
  margin-bottom: 10px;
}
.right .info_text {
  font-size: 12px;
  line-height: 1.5;
}
.right .info_text a {
  color: #000;
  text-decoration: underline;
}
.right .right_sticky {
  width: 80%;
  margin: auto;
  align-items: center;
}
.right img {
  display: block;
}

/* ---- sp: 〜768px → centerのみ1カラム ---- */
@media screen and (max-width: 768px) {
  .layout {
    display: block;
  }
  .left,
  .right {
    display: none;
  }
  .center {
    flex: none;
  }
}
/* ---- pc: 769px〜 → まずleft+centerの2カラムがベース ---- */
@media screen and (min-width: 769px) {
  .left {
    flex: 0 0 30%;
    width: 30%;
  }
  .center {
    flex: 1 1 auto;
    min-width: 0;
  }
  .right {
    display: none;
  }
}
/* ---- xl: 1200px〜 → rightも表示して3カラムに ---- */
@media screen and (min-width: 1200px) {
  .left,
  .right {
    display: block;
    flex: 1 1 0; /* center以外の残り幅を均等に分け合う */
  }
  .center {
    flex: 0 0 600px;
    width: 600px;
  }
}
[data-aos=fade-up] {
  transform: translate3d(0, 20px, 0);
}

[data-aos=fade-right] {
  transform: translate3d(-20px, 0, 0);
}

[data-aos=fade-left] {
  transform: translate3d(20px, 0, 0);
}

.flexslider {
  border: none;
  margin: 0;
}

.flex-control-nav li {
  width: 8px;
}

.flex-control-paging li a {
  width: 8px;
  height: 8px;
}/*# sourceMappingURL=style.css.map */