@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap");
:root {
  --font-fam: 'noto sans JP';
  --theme-color: #fff;
  --font-color: #111;
}

@view-transition {
  navigation: auto;
}
body,
input,
textarea {
  font-family: var(--font-fam), sans-serif !important;
  color: var(--font-color);
}

body {
  width: 100%;
  overflow-x: hidden;
  position: relative;
  line-break: strict;
}

img {
  width: 100%;
}

.br-sp {
  display: block;
}
@media (min-width: 1024px) {
  .br-sp {
    display: none;
  }
}
.br-pc {
  display: none;
}
@media (min-width: 768px) {
  .br-pc {
    display: block;
  }
}
.br-pc02 {
  display: none;
}
@media (min-width: 1024px) {
  .br-pc02 {
    display: block;
  }
}

/*- method_fuji -*/
#method_fuji {
  background-image: url(../img/method/bg_bottom_sp.png), url(../img/method/bg_top_sp.png), url(../img/method/bg.png);
  background-repeat: no-repeat;
  background-size: 170% auto, 170% auto, auto 100%;
  background-position: bottom center, top center, center center;
}
@media (min-width: 1024px) {
  #method_fuji {
    background-image: url(../img/method/bg_bottom_pc.png), url(../img/method/bg_top_pc.png), url(../img/method/bg.png);
    background-repeat: no-repeat;
    background-size: 100%, 100%, auto 100%;
  }
}

#method_fuji > * {
  padding-block: clamp(48px, 7.5vw, 96px) clamp(64px, 7.5vw, 96px);
}

#method_fuji .title img {
  margin-inline: auto;
  width: clamp(184px, 21.875vw, 250px);
}

#method_fuji #step {
  gap: clamp(5rem, 6.51vw, 6rem);
  padding-inline: clamp(24px, 3.125vw, 40px);
  max-width: 1040px;
  margin-top: clamp(5.3rem, 6.9vw, 11.4rem);
}
@media (min-width: 768px) {
  #method_fuji #step {
    padding-inline: 0;
  }
}

#method_fuji #step > li {
  background-color: #fff;
  padding: 0 clamp(20px, 2.5vw, 32px) clamp(32px, 3.75vw, 48px);
  padding-top: 32px;
  box-shadow: 0px 0px 16px rgba(172, 159, 158, 0.5);
  overflow: visible;
}

#method_fuji #step > li::before {
  width: 64px;
  position: absolute;
  top: -32px;
  left: 50%;
  transform: translateX(-50%);
}

#method_fuji #step .image img {
  margin-inline: auto;
  max-width: 180px;
}

#method_fuji #step .text .red {
  color: #e83820;
}

#method_fuji #appBtn a {
  font-family: "noto serif JP", sans-serif;
  background-color: #EA4A00;
  color: #fff;
}

#method_fuji #appBtn a::after {
  border-color: #fff;
}

/*- method_mv -*/
#method_mv {
  padding-block: clamp(48px, 7.5vw, 96px) clamp(64px, 7.5vw, 96px);
  background-image: url(../img/method/bg_bottom_sp.png), url(../img/method/bg_top_sp.png), url(../img/method/bg.png);
  background-repeat: no-repeat;
  background-size: 170% auto, 170% auto, auto 100%;
  background-position: bottom center, top center, center center;
}
@media (min-width: 1024px) {
  #method_mv {
    background-image: url(../img/method/bg_bottom_pc.png), url(../img/method/bg_top_pc.png), url(../img/method/bg.png);
    background-repeat: no-repeat;
    background-size: 100%, 100%, auto 100%;
  }
}

#method_mv .title img {
  margin-inline: auto;
  width: clamp(184px, 21.875vw, 250px);
}

#method_mv #step {
  padding: 0;
  max-width: 900px;
}

#method_mv * + #step {
  margin-top: clamp(40px, 5vw, 64px);
}

#method_mv #appBtn a {
  font-family: "noto serif JP", sans-serif;
  background-color: #EA4A00;
  color: #fff;
}

#method_mv #appBtn a::after {
  border-color: #fff;
}

*[id^=rule] .itemLists .red {
  color: #E50012;
}

footer .inner {
  background: url(../img/footer_bg.png) no-repeat;
  background-size: cover;
  background-position: center;
}
footer .inner p {
  color: #fff;
}

@media (min-width: 768px) {
  .br-sp {
    display: none;
  }
}
@media (min-width: 1024px) {
  .br-sp02 {
    display: none;
  }
}

.container {
  width: min(100% - 20px, 1040px);
  margin-inline: auto;
}
@media (min-width: 768px) {
  .container {
    width: min(92.5%, 1040px);
  }
}

#fv {
  position: relative;
}
@media (min-width: 768px) {
  #fv img {
    min-height: 740px;
    object-fit: cover;
    object-position: top center;
  }
}
#fv .cp_txt {
  width: 100%;
  text-align: center;
  font-size: 3.73vw;
  font-weight: 500;
  position: absolute;
  bottom: -3%;
  left: 50%;
  transform: translateX(-50%);
}
@media (min-width: 768px) {
  #fv .cp_txt {
    font-size: clamp(1.6rem, 1.56vw, 2.2rem);
    top: 47%;
    bottom: auto;
  }
}
@media (max-width: 767px) {
  #fv .cp_txt-mv {
    bottom: 5%;
  }
}
#fv .cp_txt p {
  color: #5C3600;
}
#fv .cp_txt span {
  color: #EA4A00;
  font-weight: 900;
}
#fv .cp_txt a {
  text-decoration: underline;
  opacity: text-decoration-color 0.2s, opacity 0.2s;
  color: #5C3600;
}
@media (min-width: 1024px) {
  #fv .cp_txt a:hover {
    opacity: 0.7;
    text-decoration-color: transparent;
  }
}
#fv .cp_txt small {
  color: #5C3600;
  font-size: 2.66vw;
  vertical-align: super;
}
@media (min-width: 768px) {
  #fv .cp_txt small {
    font-size: 1.2rem;
  }
}

.anchor {
  position: relative;
  z-index: 5;
  margin-top: 40px;
}
@media (min-width: 768px) {
  .anchor {
    margin-top: calc(clamp(18rem, 17.57vw, 35.5rem) * -1);
  }
}
@media (min-width: 1500px) {
  .anchor {
    margin-top: calc(clamp(20rem, 19.53vw, 35.5rem) * -1);
  }
}
@media (max-width: 767px) {
  .anchor-mv {
    margin-top: 0;
  }
}
.anchor ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0 15px;
}
.anchor ul li {
  width: calc((100% - 15px) / 2);
}
@media (min-width: 768px) {
  .anchor ul li {
    width: calc((100% - 45px) / 4);
  }
}
.anchor ul li a {
  display: block;
  transition: opacity 0.2s;
}
@media (min-width: 768px) {
  .anchor ul li a {
    padding-inline: clamp(0.8rem, 1.04vw, 1.6rem);
  }
}
@media (min-width: 1024px) {
  .anchor ul li a:hover {
    opacity: 0.7;
  }
}

@media (min-width: 768px) {
  .contents {
    padding-bottom: clamp(3rem, 3.9vw, 7rem);
    background-image: url(../img/contents/bg_left.png), url(../img/contents/bg_right.png);
    background-position: top clamp(4rem, 5.2vw, 6rem) left, top clamp(4rem, 5.2vw, 6rem) right;
    background-repeat: no-repeat;
    background-size: clamp(24rem, 31.25vw, 42rem) auto, clamp(24rem, 31.25vw, 42rem) auto;
  }
}
.contents ul {
  padding-top: clamp(1.6rem, 2.08vw, 5rem);
}
.contents ul li {
  position: relative;
}
.contents ul li > picture img {
  max-width: 150%;
  width: 106%;
  margin-left: -20px;
}
@media (min-width: 768px) {
  .contents ul li > picture img {
    width: 100%;
    max-width: 100%;
  }
}
.contents ul li:nth-of-type(n+2) {
  margin-top: -16px;
}
.contents ul li a {
  position: absolute;
  bottom: 8.79vw;
  left: 54%;
  transform: translateX(-50%);
  width: 66.66vw;
  transition: opacity 0.2s;
}
@media (min-width: 768px) {
  .contents ul li a {
    width: 33%;
    bottom: 18%;
    left: 61%;
  }
}
@media (min-width: 1024px) {
  .contents ul li a:hover {
    opacity: 0.7;
  }
}