@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Kiwi+Maru&family=Pacifico&family=Sacramento&display=swap');

/*
font-family: 'Kiwi Maru', serif;
font-family: 'Pacifico', cursive;
font-family: 'Sacramento', cursive;
*/

/* レイアウト
____________________________________*/

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

body, html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-family: 'Kiwi Maru', serif;
}

img {
  display: block;
  border-style: none;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

figure img {
  width: 100%;
}

ul {
  margin: 0;
  padding: 0;
  list-style: none;
  margin-block-start: 0em;
  margin-block-end: 0em;
}





h1 {
  font-family: 'Pacifico', cursive;
  font-size: 5.2rem;
  text-align: center;
  color: #596174;
}

h2 {
  font-family: 'Sacramento', cursive;
  font-size: 4.5rem;
}

p {
  display: block;
  margin-block-start: 0em;
  margin-block-end: 0em;
  margin-inline-start: 0px;
  margin-inline-end: 0px;
}





/* MV
____________________________________*/

.container-mv {
  display: grid;
  gap: 0px;
  grid-template-columns: 1.5fr 1fr 1fr 3fr;
  grid-template-rows: 180px 100px 80px 120px auto;
}
.item {
  background: #ddd;
  padding: 0px;
}
.box-big1 {
  grid-column: 4;
  grid-row: 6 / 1;
  background: #dcaa45;
}
.box-big2 {
  grid-column: 1 / 4;
  background: #dbcbcb;
}
.box-big3 {
  grid-column: 1 / 3;
  grid-row: 3 / 6;
  background: #a3736a;
}

.box-big4 {
  grid-column: 1 / 3;
  grid-row: 2;
  background: #f6f8f8;
}
.box-big5 {
  grid-column: 3 / 4;
  grid-row: 2 / 6;
  background: #596174;
}

/* Responsive */
@media (max-width: 600px){
  .container {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
  }
  .box-big1,
  .box-big2,
  .box-big3,
  .box-big4,
  .box-big5 {
    grid-column: 1;
    grid-row: auto;
  }
}





.box-big1-img-a {
  float: right;
  width: 410px;
}

.box-big1-img-b {
  float: right;
  width: 200px;
  margin: 0 auto;
}

.box-big1-img-c {
  margin: 0 auto;
  width: 370px;
}

.box-big1-img-e {
  margin: 0 auto;
  width: 210px;
}

.box-big2-text1 {
  padding: 20px 0 0 20px;
  font-family: 'Sacramento', cursive;
  font-size: 2rem;
}

.box-big2-text2 {
  padding: 30px 0 0 20px;
  font-family: 'Kiwi Maru', serif;
  font-size: 1rem;
  }





/* 傾斜/破線/セクションの区切り
____________________________________*/

.section-bubble, .section-bubble_type-b, .section-bubble_type-a, .section-bubble4, .section-bubble3, .section-bubble2, .section-bubble1 {
  margin-bottom: 20vw;
  position: relative;
}
.section-bubble:after, .section-bubble_type-b:after, .section-bubble_type-a:after, .section-bubble4:after, .section-bubble3:after, .section-bubble2:after, .section-bubble1:after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 100%;
  height: 20vw;
  background: url("") green;
  background-size: 100%;
  transform: translate(0, 100%);
}

.section-bubble1 {
  background-color: #ffffff;
}
.section-bubble1:after {
  background-color: #ffd2b0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='%23ffffff' viewBox='0 0 1185 248'><circle cx='76' cy='121.1' r='20' class='a'/><circle cx='870' cy='201.1' r='11' class='a'/><circle cx='814.5' cy='165.6' r='24.5' class='a'/><path d='M0 0v17.7c22.7 14.8 53 31.9 90.7 51.5 150.8 78 322 116.6 424.8 69.3 102.9-47.4 138-69.3 210.8-69.3s118.3 48.6 219.5 38.3 76.3-59.3 188.7-59.3c18.9 0 35.5 2.6 50.5 6.8V0H0z' class='a'/></svg>");
}

.section-bubble2 {
  background-color: #ffd2b0;
}
.section-bubble2:after {
  background-color: #384364;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1185 248'><path d='M50.5 199.8c112.4 0 87.5-49 188.7-59.3s146.7 38.3 219.5 38.3 107.9-21.9 210.8-69.3c102.8-47.3 274-8.7 424.8 69.3 37.7 19.5 68 36.7 90.7 51.5V0H0v193C15 197.2 31.6 199.8 50.5 199.8zM1109 106.9c11 0 20 9 20 20 0 11-9 20-20 20s-20-9-20-20C1089 115.9 1098 106.9 1109 106.9zM370.5 57.9c13.5 0 24.5 11 24.5 24.5 0 13.5-11 24.5-24.5 24.5S346 95.9 346 82.4C346 68.9 357 57.9 370.5 57.9zM315 35.9c6.1 0 11 4.9 11 11s-4.9 11-11 11 -11-4.9-11-11S308.9 35.9 315 35.9z' fill='%23ffd2b0'/></svg>");
}

.section-bubble3 {
  background-color: #384364;
}
.section-bubble3:after {
  background-color: #cccccc;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='%23384364' viewBox='0 0 1185 248'><circle cx='76' cy='121.1' r='20' class='a'/><circle cx='870' cy='201.1' r='11' class='a'/><circle cx='814.5' cy='165.6' r='24.5' class='a'/><path d='M0 0v17.7c22.7 14.8 53 31.9 90.7 51.5 150.8 78 322 116.6 424.8 69.3 102.9-47.4 138-69.3 210.8-69.3s118.3 48.6 219.5 38.3 76.3-59.3 188.7-59.3c18.9 0 35.5 2.6 50.5 6.8V0H0z' class='a'/></svg>");
}
.section-bubble3 h1 {
  color: white;
}
.section-bubble3 p {
  color: white;
  opacity: 0.8;
}

.section-bubble4 {
  background-color: #cccccc;
}
.section-bubble4:after {
  background-color: #333333;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1185 248'><path d='M50.5 199.8c112.4 0 87.5-49 188.7-59.3s146.7 38.3 219.5 38.3 107.9-21.9 210.8-69.3c102.8-47.3 274-8.7 424.8 69.3 37.7 19.5 68 36.7 90.7 51.5V0H0v193C15 197.2 31.6 199.8 50.5 199.8zM1109 106.9c11 0 20 9 20 20 0 11-9 20-20 20s-20-9-20-20C1089 115.9 1098 106.9 1109 106.9zM370.5 57.9c13.5 0 24.5 11 24.5 24.5 0 13.5-11 24.5-24.5 24.5S346 95.9 346 82.4C346 68.9 357 57.9 370.5 57.9zM315 35.9c6.1 0 11 4.9 11 11s-4.9 11-11 11 -11-4.9-11-11S308.9 35.9 315 35.9z' fill='%23cccccc'/></svg>");
}

.section-bubble5 {
  background: #333333;
  color: white;
  text-align: center;
}

.section-bubble_type-a:after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' fill='red' viewBox='0 0 1185 248'><circle cx='76' cy='121.1' r='20' class='a'/><circle cx='870' cy='201.1' r='11' class='a'/><circle cx='814.5' cy='165.6' r='24.5' class='a'/><path d='M0 0v17.7c22.7 14.8 53 31.9 90.7 51.5 150.8 78 322 116.6 424.8 69.3 102.9-47.4 138-69.3 210.8-69.3s118.3 48.6 219.5 38.3 76.3-59.3 188.7-59.3c18.9 0 35.5 2.6 50.5 6.8V0H0z' class='a'/></svg>");
}

.section-bubble_type-b:after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1185 248'><path d='M50.5 199.8c112.4 0 87.5-49 188.7-59.3s146.7 38.3 219.5 38.3 107.9-21.9 210.8-69.3c102.8-47.3 274-8.7 424.8 69.3 37.7 19.5 68 36.7 90.7 51.5V0H0v193C15 197.2 31.6 199.8 50.5 199.8zM1109 106.9c11 0 20 9 20 20 0 11-9 20-20 20s-20-9-20-20C1089 115.9 1098 106.9 1109 106.9zM370.5 57.9c13.5 0 24.5 11 24.5 24.5 0 13.5-11 24.5-24.5 24.5S346 95.9 346 82.4C346 68.9 357 57.9 370.5 57.9zM315 35.9c6.1 0 11 4.9 11 11s-4.9 11-11 11 -11-4.9-11-11S308.9 35.9 315 35.9z' fill='red'/></svg>");
}



















/* 要素
____________________________________*/

@media (min-width: 720px) {
  h2 {
    font-size: 3rem;
  }
}

p {
  line-height: 1.6;
}
p:last-of-type {
  margin-bottom: 0;
}

/* Layout */
.text-media {
  --py: 4rem;
  background-color: #f4e4e1;
}
.text-media + .text-media {
  margin-top: 0.5rem;
}
@media (min-width: 960px) {
  .text-media {
    display: flex;
    /* Alternate layouts are reversed */
  }
  .text-media:nth-child(even) {
    flex-direction: row-reverse;
  }
  .text-media:nth-child(even) .text-media__content {
    margin-left: auto;
  }
}

.text-media__col {
  position: relative;
  flex: 0 0 50%;
}

@media (min-width: 960px) {
  .text-media__img-wrapper {
    height: 100%;
  }
}

.text-media__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  aspect-ratio: 3/2;
}

.text-media__content {
  max-width: 45rem;
  padding: 1rem;
}
.text-media__content > * + * {
  margin-top: 1rem;
}
@media (min-width: 720px) {
  .text-media__content > * + * {
    margin-top: 1.75rem;
  }
}
@media (min-width: 720px) {
  .text-media__content {
    padding: 2rem;
  }
}
@media (min-width: 960px) {
  .text-media__content {
    padding: var(--pt, var(--py)) 4rem var(--py) 4rem;
  }
}

.text-media__links {
  display: inline-block;
}
.text-media__links > * + * {
  margin-top: 0.75rem;
}
.text-media__links .button {
  display: block;
}
.text-media__links .button:nth-child(2n) {
  background-color: #ff26cc;
}
.text-media__links .button:nth-child(2n):hover, .text-media__links .button:nth-child(2n):focus {
  background-color: #d900a6;
}

.button {
  display: inline-block;
  color: white;
  padding: 0.75rem 2rem;
  text-align: center;
  text-decoration: none;
  background-color: #596174;
  border-radius: 0.3rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  transition: background-color 200ms;
}
.button:hover, .button:focus {
  background-color: #8c94a4;
}

.button--secondary {
  background-color: #ff26cc;
  color: black;
}
.button--secondary:hover, .button--secondary:focus {
  background-color: #bf0092;
}

/* Variants */
@media (min-width: 960px) {
  .text-media--narrow .text-media__col--media {
    padding: var(--py) 0;
  }
  .text-media--narrow:nth-child(even) .text-media__img-wrapper {
    padding: 0 4rem 0 0;
    margin-left: 0;
    margin-right: auto;
  }
  .text-media--narrow .text-media__img-wrapper {
    position: relative;
    max-width: 45rem;
    padding: 0 0 0 4rem;
    margin-left: auto;
  }
  .text-media--narrow .text-media__img {
    object-fit: auto;
    height: auto;
  }
}

.text-media--no-bg {
  --pt: 0;
  background-color: transparent;
}
.text-media--no-bg.text-media--narrow {
  --py: 0;
}

.text-media--no-img .text-media__content {
  max-width: 65rem;
}
@media (min-width: 960px) {
  .text-media--no-img {
    justify-content: center;
  }
  .text-media--no-img .text-media__col {
    flex: 0 1 75rem;
  }
}
.text-media--no-img.text-media--no-bg {
  --py: 0;
}

@media (min-width: 960px) {
  .text-media + .text-media--no-bg,
.text-media--no-bg + .text-media {
    margin-top: 6rem;
  }
}










/*===========================================================*/
/* 機能編 5-1-14 クリックしたらナビが右から左に出現*/
/*===========================================================*/

/*========= ナビゲーションのためのCSS ===============*/

#g-nav {
  /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
  position:fixed;
  z-index: 999;
  /*ナビのスタート位置と形状*/
  top:0;
  right: -100%;
  width:30%;
  height: 100vh;/*ナビの高さ*/
  background: linear-gradient(45deg,rgba(125, 214, 241, 0.9),rgba(229,93,135,.7));
  /*動き*/
  transition: all 0.6s;
}

/*アクティブクラスがついたら位置を0に*/
#g-nav.panelactive {
  right: 0;
}

/*ナビゲーションの縦スクロール*/
#g-nav.panelactive #g-nav-list {
  /*ナビの数が増えた場合縦スクロール*/
  position: fixed;
  z-index: 999;
  width: 30%;
  height: 100vh;/*表示する高さ*/
  overflow: auto;
  -webkit-overflow-scrolling: touch;
}

/*横幅が768px以下になった際の指定*/
@media only screen and (max-width: 768px) {
  #g-nav,
  #g-nav.panelactive #g-nav-list{
      width:100%;
  }
}

/*ナビゲーション*/
#g-nav ul {
  /*ナビゲーション天地中央揃え*/
  position: absolute;
  z-index: 999;
  top:50%;
  left:50%;
  transform: translate(-50%,-50%);
}

/*リストのレイアウト設定*/

#g-nav li {
  list-style: none;
  text-align: center;
}

#g-nav li a{
  color: #fff;
  text-decoration: none;
  padding:10px;
  display: block;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-weight: bold;
  transition: all .5s;
}

#g-nav li a:hover{
  color:#ccc;
}

/*===========================================================*/
/* 機能編 5-2-1    3本線が×に*/
/*===========================================================*/
.openbtn {
  position:fixed;
  z-index: 9999;/*ボタンを最前面に*/
  top:10px;
  right: 10px;
  cursor: pointer;
  width: 50px;
  height:50px;
}

/*×に変化*/       
.openbtn span {
  display: inline-block;
  transition: all .4s;
  position: absolute;
  left: 14px;
  height: 3px;
  border-radius: 2px;
  background-color: #fff;
  width: 45%;
}

.openbtn span:nth-of-type(1) {
      top:15px;       
}

.openbtn span:nth-of-type(2) {
      top:23px;
}

.openbtn span:nth-of-type(3) {
      top:31px;
}

.openbtn.active span:nth-of-type(1) {
  top: 18px;
  left: 18px;
  transform: translateY(6px) rotate(-45deg);
  width: 30%;
}

.openbtn.active span:nth-of-type(2) {
      opacity: 0;
}

.openbtn.active span:nth-of-type(3){
  top: 30px;
  left: 18px;
  transform: translateY(-6px) rotate(45deg);
  width: 30%;
}


/*==================================================
キービジュアル文字回転アニメーション
===================================*/

.rotating-links-box {
  position: absolute;
  right: 1vw;
  bottom: 1vw;
  display: grid;
  place-content: center;
  grid-gap: 2rem;
  height: 100%;
}

.link {
  width: 10rem;
  height: 10rem;
  display: inline-block;
  font: 300 1.55rem/1.4 "Josefin Sans";
  text-transform: uppercase;
  letter-spacing: 0.1175em;
  word-spacing: 0.3em;
  text-decoration: none;
}
.link__svg {
  width: 100%;
  height: auto;
  transform-box: fill-box;
  fill: #2B3338;
  stroke: #2B3338;
  stroke-width: 0.05em;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.link__cloud {
  transform-origin: 50% 50%;
  -webkit-animation: rotate normal infinite 60s linear;
          animation: rotate normal infinite 60s linear;
  fill: rgba(255, 255, 255, 0.15);
}
.link__face, .link__arrow {
  transform-origin: 50% 50%;
  transition: transform 0.15s cubic-bezier(0.32, 0, 0.67, 0);
}
.link:hover .link__face, .link:hover .link__arrow {
  transform: scale(1.1);
  transition: transform 0.3s cubic-bezier(0.33, 1, 0.68, 1);
}
.link__arrow {
  stroke-width: 0.075em;
}
.link__text {
  -webkit-animation: rotateReverse normal infinite 20s linear;
          animation: rotateReverse normal infinite 20s linear;
  transform-origin: 50% 50%;
}
.link:hover .link__text {
  -webkit-animation-play-state: paused;
          animation-play-state: paused;
}
.link--alt {
  font-size: 1.15rem;
  letter-spacing: 0;
  word-spacing: 0;
}

@-webkit-keyframes rotate {
  to {
    transform: rotate(360deg);
  }
}

@keyframes rotate {
  to {
    transform: rotate(360deg);
  }
}
@-webkit-keyframes rotateReverse {
  to {
    transform: rotate(-360deg);
  }
}
@keyframes rotateReverse {
  to {
    transform: rotate(-360deg);
  }
}








/*========= ページトップのためのCSS ===============*/
/*リンクを右下に固定*/
#page-top {
	position: fixed;
	right: 10px;
	bottom:30px;
	z-index: 2;
    /*はじめは非表示*/
	opacity: 0;
	transform: translateY(150px);
}

/*　上に上がる動き　*/
#page-top.UpMove {
	animation: UpAnime 0.5s forwards;
}

@keyframes UpAnime {
  from {
    opacity: 0;
	transform: translateY(150px);
  }
  to {
    opacity: 1;
	transform: translateY(0);
  }
}

/*　下に下がる動き　*/
#page-top.DownMove {
	animation: DownAnime 0.5s forwards;
}

@keyframes DownAnime {
  from {
  	opacity: 1;
	transform: translateY(0);
  }
  to {
  	opacity: 1;
	transform: translateY(150px);
  }
}

/*画像の切り替えと動き*/
#page-top a {
    /*aタグの形状*/
	display: block;
	width: 100px;
	height: 100px;
	color: #333;
	text-align: center;
	text-transform: uppercase; 
	text-decoration: none;
	font-size:0.6rem;
    /*背景画像の指定*/
	background: url("../img/pagetop_1.png") no-repeat center;
	background-size: contain;
}

#page-top.floatAnime a {
	width: 100px;
	height: 130px;
    /*背景画像の指定*/
	background: url("../img/pagetop_2.png") no-repeat center;
	background-size: contain;
    /*アニメーションの指定*/
	animation: floatAnime 2s linear infinite;
	opacity: 0;
}

@keyframes floatAnime {
  0% { transform: translateX(0); opacity: 0; }
  25% { transform: translateX(-6px);opacity: 1; }
  50% { transform: translateX(0) }
  100% { transform: translateX(6px);opacity: 1; }
}

/*Page Topと書かれたテキストの位置*/
#page-top span {
    position: absolute;
    bottom: -20px;
    right: 20px;
	color: #666;
}














/*========= 片側だけはみ出たデザインのカルーセルスライダー slick CSS ===============*/
.section-lineup {
  overflow: hidden;
  padding: 120px 0;
}
.section-lineup .inner {
  margin: 0 auto;
  width: 80%;
  padding-left: 4rem;
  padding-right: 4rem;
}
.section-lineup .lineup {
  position: relative;
}
.section-lineup .lineup-carousel li {
  text-align: center;
  margin-right: 24px;
}
.section-lineup .lineup-carousel img {
  display: block;
  margin-bottom: 16px;
  width: 100%;
}
.section-lineup .slick-list {
  overflow: visible;
}
.section-lineup .slick-nav-arrows {
  position: absolute;
  top: -40px;
  right: 0%;
}
.section-lineup .slick-arrow {
  display: inline-flex;
  width: 48px;
  height: 48px;
  align-items: center;
  justify-content: center;
}
.section-lineup .slick-next {
  right: 0;
}
.section-lineup .slick-prev {
  left: -80px;
}
.section-lineup .slick-next:before, .section-lineup .slick-prev:before {
  color: #000;
}






