@charset "utf-8";
/*=============== ▼BASE ===============*/
.negativemargin_main {
  margin: -90px 0 0 0;
  overflow: hidden;
}

.negativemargin_main img {
  width: 100%;
  height: auto;
}

@media screen and (max-width: 64em) {
  .negativemargin_main {
    margin: -60px 0 0 0;
  }
}

header {
  transition: 0.3s;
}

header.hide {
  transform: translateY(-100%);
}

.header {
  z-index: 5000;
  background-color: rgba(255, 255, 255, 0.95);
}

*:focus {
  outline: none;
}

main,
section,
.wrapper {
  position: relative;
}

picture {
  display: block;
}

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

.sp {
  display: none;
}

@media screen and (orientation: portrait) {
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }
}

a {
  transition: opacity 0.2s;
}

a:hover {
  opacity: 0.7;
}

body {
  visibility: hidden;
  opacity: 0;
}

body.is-loaded {
  visibility: visible;
  opacity: 1;
}

/*=============== ▼コンテンツ挿入部分 ===============*/
.scroll-animation-wrapper {
  position: relative;
  width: 100%;
  height: 100vh;
}

section:not(.products) {
  position: absolute;
  width: 100%;
  height: 100%;
}

/* ▼mv */
.mv {
  position: absolute;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.mv-contents {
  position: relative;
  height: 100%;
}

.mv figure {
  position: absolute;
}

.intro01 > div,
.intro02 > div,
.intro03 > div {
  height: 100vh;
  background: rgba(255, 255, 255, 0.9);
}

/* ▼products */
.products {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 100%;
  height: 100vh;
}

/*=============== ▼LANDSCAPE(PC) ===============*/
@media screen and (orientation: landscape) {
  /* ▼mv */
  .mv {
    background: url(../img/kfm/common-bg.jpg) no-repeat center center / cover;
  }

  h1 {
    position: absolute;
    top: 42%;
    left: 11%;
    width: 37%;
  }

  .mv figure:first-of-type {
    top: 42%;
    left: 42%;
    transform: translate(-50%, -50%);
    width: 33%;
  }

  .mv figure:first-of-type > div {
    width: 84%;
  }

  .mv figure:first-of-type > figcaption {
    position: absolute;
    top: 52%;
    right: 0;
    transform: translateY(-50%);
    width: 41%;
  }

  .mv figure:last-of-type {
    top: 56%;
    left: 66%;
    transform: translate(-50%, -50%);
    width: 32.8%;
  }

  .mv figure:last-of-type > div {
    width: 83%;
  }

  .mv figure:last-of-type > figcaption {
    position: absolute;
    top: 40%;
    left: -14%;
    transform: translateY(-50%);
    width: 41%;
  }

  .mv > p {
    position: absolute;
    bottom: 4%;
    right: 12%;
    width: 16%;
  }

  /* ▼intro01 */
  .intro01 {
    background: url(../img/kfm/intro01-bg.jpg) no-repeat center center / cover;
  }

  .intro01 > p {
    position: absolute;
    top: 46%;
    left: 42%;
    transform: translate(-50%, -50%);
    width: 22.5%;
  }

  .intro01 > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    clip-path: polygon(0 26%, 100% 0, 100% 74%, 0 100%);
  }

  .intro01 > div > picture {
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 72%;
  }

  /* ▼intro02 */
  .intro02 {
    background: url(../img/kfm/intro02-bg.jpg) no-repeat center center / cover;
  }

  .intro02 > p {
    position: absolute;
    top: 38%;
    left: 39%;
    transform: translate(-50%, -50%);
    width: 28%;
  }

  .intro02 > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    clip-path: polygon(0 26%, 100% 0, 100% 74%, 0 100%);
  }

  .intro02 > div > picture {
    position: absolute;
    top: 49%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 64%;
  }

  /* ▼intro03 */
  .intro03 {
    background: url(../img/kfm/intro03-bg.jpg) no-repeat center center / cover;
  }

  .intro03 > p {
    position: absolute;
    top: 34%;
    left: 46%;
    transform: translate(-50%, -50%);
    width: 22.5%;
  }

  .intro03 > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    clip-path: polygon(0 26%, 100% 0, 100% 74%, 0 100%);
  }

  .intro03 > div > picture {
    position: absolute;
    top: 49%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 62%;
  }

  /* ▼products */
  .products {
    background: url(../img/kfm/common-bg.jpg) no-repeat center center / cover;
  }

  .products figure figcaption {
    margin-inline: auto;
    width: 36.5%;
  }

  .products figure > div {
    margin-inline: auto;
    width: 61%;
  }

  .products .links {
    display: flex;
    justify-content: center;
    gap: 6%;
    margin-top: 2%;
  }

  .products .links a:nth-of-type(1) {
    display: block;
    width: 16%;
  }

  .products .links a:nth-of-type(2) {
    display: block;
    width: 18%;
  }

  .products .links a:nth-of-type(3) {
    display: block;
    width: 22%;
  }
}
/*=============== ▲LANDSCAPE(PC) ===============*/

/*=============== ▼PORTRAIT(SP) ===============*/
@media screen and (orientation: portrait) {
  /* ▼mv */
  .mv {
    background: url(../img/kfm/sp/common-bg.jpg) no-repeat center center / cover;
  }

  h1 {
    position: absolute;
    bottom: 17%;
    left: 4%;
    width: 73%;
  }

  .mv figure:first-of-type {
    top: 70%;
    left: -46%;
    transform: translateY(-50%);
    width: 118%;
  }

  .mv figure:first-of-type > div {
    width: 90%;
  }

  .mv figure:first-of-type > figcaption {
    position: absolute;
    top: 52%;
    right: 0;
    transform: translateY(-50%);
    width: 41.5%;
  }

  .mv figure:last-of-type {
    top: -6%;
    left: 16%;
    width: 126%;
  }

  .mv figure:last-of-type > div {
    width: 83%;
  }

  .mv figure:last-of-type > figcaption {
    position: absolute;
    top: 40%;
    left: -10%;
    transform: translateY(-50%);
    width: 41%;
  }

  .mv > p {
    position: absolute;
    bottom: 2%;
    right: 4%;
    width: 32%;
  }

  /* ▼intro01 */
  .intro01 {
    background: url(../img/kfm/sp/intro01-bg.jpg) no-repeat center center / cover;
  }

  .intro01 > p {
    position: absolute;
    top: 50%;
    left: 32%;
    transform: translate(-50%, -50%);
    width: 54%;
  }

  .intro01 > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    clip-path: polygon(0 24%, 100% 0, 100% 76%, 0 100%);
  }

  .intro01 > div > picture {
    position: absolute;
    top: 44%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 88%;
  }

  /* ▼intro02 */
  .intro02 {
    background: url(../img/kfm/sp/intro02-bg.jpg) no-repeat center center / cover;
  }

  .intro02 > p {
    position: absolute;
    top: 44%;
    left: 36%;
    transform: translate(-50%, -50%);
    width: 64%;
  }

  .intro02 > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    clip-path: polygon(0 24%, 100% 0, 100% 76%, 0 100%);
  }

  .intro02 > div > picture {
    position: absolute;
    top: 47%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 92%;
  }

  /* ▼intro03 */
  .intro03 {
    background: url(../img/kfm/sp/intro03-bg.jpg) no-repeat center center / cover;
  }

  .intro03 > p {
    position: absolute;
    top: 38%;
    left: 38%;
    transform: translate(-50%, -50%);
    width: 50%;
  }

  .intro03 > div {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    clip-path: polygon(0 24%, 100% 0, 100% 76%, 0 100%);
  }

  .intro03 > div > picture {
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 92%;
  }

  /* ▼products */
  .products {
    background: url(../img/kfm/sp/common-bg.jpg) no-repeat center center / cover;
  }

  .products figure figcaption {
    margin: 4% auto 0;
    width: 88%;
  }

  .products figure > div {
    margin-inline: auto;
    width: 80%;
  }

  .products .links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12%;
    margin-top: 2%;
  }

  .products .links a:nth-of-type(1) {
    display: block;
    width: 20%;
  }

  .products .links a:nth-of-type(2) {
    display: block;
    width: 24%;
  }

  .products .links a:nth-of-type(3) {
    display: block;
    width: 28%;
  }
}
/*=============== ▲PORTRAIT(SP) ===============*/
