@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');


html {
  font-size: 62.5%;
}
@media screen and (max-width: 1100px) {
  html{
    font-size: calc(100vw / 110.0);
  }
}
@media screen and (max-width: 767px) {
  html{
    /*font-size: 2.1vw;*/
    font-size: 2.67vw;
  }
}
body {
  font-size: 1.6rem;
  line-height: 1.6;
  font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
  font-weight: 500;
  color: #222;
  background: #fff;
}

@media screen and (min-width: 768px) {
  .vsp { display: none !important; }
}
@media screen and (max-width: 767px) {
  .vpc { display: none !important; }
}

input[type="text"],
input[type="email"],
input[type="password"],
input[type="date"],
textarea {
  -webkit-appearance: none;
  padding: 1.2rem 0.5rem;
  margin: 0;
  border: none;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  vertical-align: middle;
  background-color: #E4E4E4;
  font-size: 1.6rem;
  border: none;
}
input[type="checkbox"],
input[type="radio"] {
  margin-right: 0.5rem;
  width: 1.3rem;
  height: 1.3rem;
}
textarea {
  width: 100%;
  height: 27.0rem;
}
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="date"]:focus,
textarea:focus {
}
label {
  display: block;
}
@media screen and (max-width: 767px) {
  textarea {
    height: 15.0rem;
  }
}

a {
  color: #000;
  text-decoration: underline;
}
a:hover {
  text-decoration: none;
}

@media screen and (min-width: 768px) {
  #body {
    position: relative;
    background: url(../../imgs/lp/bg.png) 50% 50%/144.0rem auto repeat;
    overflow: hidden;
  }
  header {
  }
  main {
    margin: 0 auto;
  }
  footer {
  }
}
@media screen and (max-width: 767px) {
  #body {
    width: 100%;
    overflow: hidden;
    background: url(../../imgs/lp/bg.png) 50% 50%/144.0rem auto repeat;
    padding: 0rem 0rem 0rem 0rem;
  }
  header {
  }
  main {
  }
  img {
    width: 100%;
    height: auto;
  }
  footer {
  }
}


@media screen and (min-width: 768px) {
  header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    background: rgba(255,255,255,0.5);
  }
  header .inner {
    max-width: 128.0rem;
    margin: 0 auto;
    position: relative;
    text-align: right;
    padding: 4.4rem 0.0rem 4.5rem 0;
  }
  header .logo {
    position: absolute;
    top: 3.0rem;
    left: 4.0rem;
    width: 8.0rem;
  }
  header .logo .white {
    display: none;
  }
  header .logo .black {
    display: block;
  }
  header .gmenu {
    display: inline-block;
  }
  header .gmenu li {
    display: inline-block;
    margin-left: 2.5rem;
  }
  header .gmenu li a {
    text-decoration: none;
    letter-spacing: 0.1em;
    color: #222;
  }
  header .gmenu li a:hover {
    text-decoration: underline;
  }

  header .button {
    display: inline-block;
    margin-left: 2.5rem;
  }
  header .button a {
    display: inline-block;
    text-decoration: none;
    border: solid 1px #222;
    color: #222;
    border-radius: 0.5rem;
    padding: 0.2rem 1.7rem 0.2rem 1.7rem;
    letter-spacing: 0.1em;
    transition: opacity 200ms 0s ease !important;
  }
  header .button a:hover {
    opacity: 0.6;
  }

  header.top {
    background: none;
  }
  header.top .inner {
    max-width: 128.0rem;
    margin: 0 auto;
    position: relative;
    text-align: right;
    padding: 8.3rem 4.0rem 5.0rem 0;
  }
  header.top .logo {
    position: absolute;
    top: 6.0rem;
    left: 4.0rem;
    width: 10.0rem;
  }
  header.top .logo .white {
    display: block;
  }
  header.top .logo .black {
    display: none;
  }
  header.top .gmenu {
    display: inline-block;
  }
  header.top .gmenu li {
    display: inline-block;
    margin-left: 2.5rem;
  }
  header.top .gmenu li a {
    text-decoration: none;
    letter-spacing: 0.1em;
    color: #fff;
  }
  header.top .gmenu li a:hover {
    text-decoration: underline;
  }

  header.top .button {
    display: inline-block;
    margin-left: 2.5rem;
  }
  header.top .button a {
    display: inline-block;
    text-decoration: none;
    border: solid 1px #fff;
    color: #fff;
    border-radius: 0.5rem;
    padding: 0.2rem 1.7rem 0.2rem 1.7rem;
    letter-spacing: 0.1em;
    transition: opacity 200ms 0s ease !important;
  }
  header.top .button a:hover {
    opacity: 0.6;
  }
  header .menu {
    display: none;
  }
  header .gnavi {
    display: none;
  }
}
@media screen and (max-width: 767px) {
  header {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10;
    width: 100%;
    background: rgba(255,255,255,0.5);
  }
  header .inner {
    position: relative;
    text-align: right;
    padding: 6.4rem 0.0rem 4.5rem 0;
  }
  header .logo {
    position: absolute;
    top: 3.0rem;
    left: 2.8rem;
    width: 7.0rem;
  }
  header .logo img {
    width: 100%;
    height: auto;
  }
  header .logo .white {
    display: none;
  }
  header .logo .black {
    display: block;
  }
  header .gmenu {
    display: none;
  }
  header .button {
    display: none;
  }

  header.top {
    background: none;
  }
  header.top .inner {
    max-width: 128.0rem;
    margin: 0 auto;
    position: relative;
    text-align: right;
    padding: 8.3rem 4.0rem 5.0rem 0;
  }
  header.top .logo {
    position: absolute;
  }
  header.top .logo .white {
    display: block;
  }
  header.top .logo .black {
    display: none;
  }


  header .menu {
    position: absolute;
    top: 4.9rem;
    right: 2.7rem;
    width: 5.0rem;
  }
  header .menu .white {
    display: none;
  }
  header .menu .black {
    display: block;
  }
  header.top .menu .white {
    display: block;
  }
  header.top .menu .black {
    display: none;
  }
  header .gnavi {
    background: #333;
    position: fixed;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100vh;
    text-align: left;
    padding: 14.4rem 2.8rem 2.8rem 2.8rem;
    overflow-y: auto;
  }
  header .gnavi .close {
    position: absolute;
    top: 3.4rem;
    right: 2.7rem;
    width: 5.0rem;
  }
  header .gnavi .logo {
    position: relative;
    top: unset;
    left: unset;
    width: 34.0%;
    margin-top: 8.5rem;
  }
  header .gnavi .logo img {
    width: 100%;
    height: auto;
  }
  header .gnavi .label {
    color: #fff;
    font-size: 1.0rem;
    margin-bottom: 3.8rem;
  }
  header .gnavi ul {
  }
  header .gnavi ul li {
    margin: 3.4rem 0;
  }
  header .gnavi ul a {
    color: #fff;
    text-decoration: none;
    letter-spacing: 0.09em;
  }
}

footer {
  text-align: center;
  font-size: 1.1rem;
  padding: 5.0rem 2.0rem;
}
footer .copyright {
  border-top: solid 1px #222;
  font-size: 1.6rem;
  padding-top: 4.3rem;
  letter-spacing: -0.02em;
  max-width: 120.0rem;
  margin: 0 auto;
}
@media screen and (min-width: 768px) {
}
@media screen and (max-width: 767px) {
  footer {
    position: relative;
    z-index: 1;
    background: url(../../imgs/lp/bg.png) 50% 50%/144.0rem auto repeat;
    overflow: hidden;
  }
  footer .copyright {
    font-size: 1.1rem;
    padding-top: 0.8rem;
  }
  footer .bottom-button {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 2.0rem 5.0rem;
    background: #333;
    display: none;
  }
  footer .bottom-button a {
    display: block;
    background: #e4e4e4 url(../../imgs/lp/icon_arrow.png) calc(100% - 1.0rem) 50%/0.7rem auto no-repeat;
    text-decoration: none;
    font-weight: bold;
    padding: 1.0rem;
    font-size: 1.3rem;
  }
}

section {
  position: relative;
  background: url(../../imgs/lp/bg.png) 50% 50%/144.0rem auto repeat;
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  section .container {
    padding: 5.0rem 2.0rem;
    max-width: 148.0rem;
    margin: 0 auto;
    position: relative;
    z-index: 1;
  }
}
@media screen and (max-width: 767px) {
  section .container {
    padding: 3.0rem 2.0rem;
  }
}



section.mv {
  overflow: hidden;
  background: url(../../imgs/lp/mv.jpg) 50% 50%/cover no-repeat;
  background-attachment: fixed;
  width: 100%;
  height: 102.4rem;
  overflow: hidden;
}
section.mv .text {
  position: absolute;
  bottom: 15.8rem;
  left: calc(50% - 60.0rem);
  width: 100%;
  max-width: 144.0rem;
  margin: 0 auto;
}
section.mv .text .main {
  display: block;
  font-size: 2.8rem;
  font-weight: bold;
  color: #fff;
  letter-spacing: 0.09em;
  margin-bottom: 0.8rem;
}
section.mv .text .sub {
  font-family: "Roboto", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.4rem;
  letter-spacing: 0.09em;
  color: #fff;
}
section.mv .scroll {
  position: absolute;
  bottom: 0;
  left: calc(50% - 60.3rem);
  width: 0.6rem;
}
@media screen and (min-width: 768px) {
  section.mv {

  }
}
@media screen and (max-width: 767px) {
  section.mv {
    height: 100vh;
    position: relative;
  }
  section.mv::before {
    content: "";
    display: block;
    width: 100%;
    height: 100vh;
    height: 100lvh;
    position: fixed;
    top: 0;
    left: 0;
    background: url(../../imgs/lp/sp_mv.jpg) 50% 50%/cover no-repeat;
  }
  section.mv .image {
    height: 66.0rem;
  }
  section.mv .text {
    bottom: 13.3rem;
    left: 2.8rem;
    width: 100%;
  }
  section.mv .text .main {
    font-size: 1.7rem;
    letter-spacing: 0.15em;
    margin-bottom: 0.1rem;
  }
  section.mv .text .sub {
    font-size: 1.0rem;
  }
  section.mv .scroll {
    position: absolute;
    bottom: -2.5rem;
    left: 2.5rem;
    width: 0.6rem;
  }
}

section.block01 {
}
section.block01 .text {
  line-height: 1.8;
  letter-spacing: 0.04em;
}
section.block01 .text p {
  margin-bottom: 2.5rem;
}
section.block01 h2 {
  text-align: left;
  margin-bottom: 6.0rem;
}
section.block01 h2 .sub {
  display: block;
  font-family: "Roboto", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.1rem;
  letter-spacing: 0.09em;
  margin-bottom: 1.6rem;
}
section.block01 h2 .main {
  display: block;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.125em;
}

@media screen and (min-width: 768px) {
  section.block01 .container {
    padding-top: 0;
    padding-bottom: 0;
    position: static;
  }
  section.block01 .wrap {
  }
  section.block01 .wrap .image {
    position: absolute;
    top: 0;
    right: 0;
    width: 84.0rem;
    max-width: 60%;
    margin: 0 auto;
  }
  section.block01 .wrap .content {
    padding-top: 27.6rem;
    padding-left: 12.0rem;
    position: relative;
    z-index: 1;
  }
  section.block01 .image-bottom {
    margin-top: 16.5rem;
  }
  section.block01 .image-bottom img {
    width: 100%;
    height: auto;
  }
  section.block01 h2 {
    margin-bottom: 6.3rem;
  }
}
@media screen and (max-width: 767px) {
  section.block01 .container {
    padding: 0;
  }
  section.block01 h2 .sub {
    font-size: 1.0rem;
    margin-bottom: 0.4rem;
  }
  section.block01 h2 .main {
    font-size: 2.0rem;
  }
  section.block01 .wrap .content {
    padding-left: 3.0rem;
  }
  section.block01 .wrap .image {
    margin-bottom: 6.4rem;
    padding-left: 2.8rem;
  }
  section.block01 h2 {
    margin-bottom: 3.6rem;
  }
  section.block01 .text {
    font-size: 1.5rem;
    line-height: 1.6;
  }
  section.block01 .text p {
    margin-bottom: 1.7rem;
  }
  section.block01 .image-bottom {
    margin-top: 14.6rem;
  }
}


section.block02 {
  position: relative;
}
section.block02::before {
  content: "";
  display: block;
  width: 100%;
  height: 59.3rem;
  background: url(../../imgs/lp/block02_bg.png) 50% 50%/144.0rem auto repeat;
  position: absolute;
  top: 0;
  left: 0;
}
section.block02::after {
  content: "";
  display: block;
  width: 1px;
  height: 50%;
  background: #222;
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 0;
}
section.block02 h2 {
  text-align: center;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.09em;
  color: #fff;
  margin-bottom: 6.5rem;
  position: relative;
  z-index: 1;
}
section.block02 h3 {
  text-align: center;
  font-weight: bold;
  letter-spacing: 0.06em;
  color: #fff;
  margin-bottom: 2.5rem;
  position: relative;
  z-index: 1;
}
section.block02 .text {
  color: #fff;
  letter-spacing: 0.045em;
  width: 100%;
  max-width: 60.6rem;
  margin: 0 auto;
  margin-bottom: 9.0rem;
  position: relative;
  z-index: 1;
}
section.block02 .image {
  width: 100%;
  max-width: 72.0rem;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  section.block02 .container {
    padding-top: 9.0rem;
    padding-bottom: 13.0rem;
  }
}
@media screen and (max-width: 767px) {
  section.block02 .container {
    padding: 0 2.7rem;
    padding-top: 7.2rem;
    padding-bottom: 8.0rem;
  }
  section.block02::before {
    height: 50.0rem;
  }
  section.block02::after {
    height: 10.0rem;
    bottom: 0;
  }
  section.block02 h2 {
    font-size: 2.0rem;
    margin-bottom: 3.6rem;
  }
  section.block02 h3 {
    font-size: 1.4rem;
    margin-bottom: 2.0rem;
  }
  section.block02 .text {
    font-size: 1.5rem;
    margin-bottom: 7.2rem;
  }
}


section.block03 {
}
section.block03 h2 {
  text-align: center;
  font-size: 2.2rem;
  font-weight: bold;
  letter-spacing: 0.09em;
  margin-bottom: 6.9rem;
}
section.block03 .inner {
}
section.block03 .inner h3 {
  text-align: left;
  margin-bottom: 1.1rem;
}
section.block03 .inner h3 .sub {
  display: block;
  font-family: "Roboto", sans-serif;
  font-weight: 500;
  color: #8C8C8C;
  font-style: normal;
  font-size: 1.1rem;
  letter-spacing: 0.09em;
  margin-bottom: 0.7rem;
}
section.block03 .inner h3 .main {
  display: block;
  font-size: 2.0rem;
  font-weight: bold;
  letter-spacing: 0.09em;
}
section.block03 .inner .tag {
  border: solid 1px #222;
  width: fit-content;
  padding: 0.4rem 0.9rem;
  font-size: 1.4rem;
  border-radius: 0.3rem;
  margin-bottom: 4.2rem;
}
section.block03 .inner .text {
  line-height: 1.8;
  margin-top: 3.4rem;
}
section.block03 .inner .text p {
  margin-bottom: 2.3rem;
}
section.block03 .slider *,
section.block03 .slider *::before,
section.block03 .slider *::after {
  -webkit-animation-duration: 250ms !important;
  animation-duration: 250ms !important;
  transition-duration: 250ms !important;
}

@media screen and (min-width: 768px) {
  section.block03 .container {
    padding-top: 4.4rem;
    padding-bottom: 5.3rem;
  }
  section.block03 .container::after {
    content: '';
    display: block;
    background: url(../../imgs/lp/bg.png) 50% 50%/144.0rem auto repeat;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: calc(50% + 48.5rem);
  }

  section.block03 .slider {
    max-width: 96.6rem;
    margin: 0 auto;
    margin-bottom: 2.5rem;
  }
  section.block03 .slider .slick-list {
    overflow: visible;
  }
  section.block03 .slider .slick-slider {
    margin-bottom: 0;
  }
  section.block03 .slider li {
    padding: 0 0.3rem;
  }
  section.block03 .slider li img {
    width: 100%;
    height: auto;
  }
  section.block03 .slider li a {
    display: block;
    text-decoration: none;
    transition: opacity 200ms 0s ease !important;
  }
  section.block03 .slider li a:hover {
    opacity: 0.6;
  }
  section.block03 .slider .slick-dots {
    width: fit-content;
    top: auto;
    bottom: -3.9rem;
    left: auto;
    right: 0.0rem;
    padding: 0;
    margin: 0;
    height: 1.0rem;
    font-size: 0;
    width: 9.0rem;
    display: flex;
    justify-content: right;
    align-items: center;
  }
  section.block03 .slider .slick-dots li {
    display: block;
    width: 0.6rem;
    height: 0.6rem;
    margin: 0;
    padding: 0;
    font-size: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: 0.8rem;
  }
  section.block03 .slider .slick-dots li button {
    display: block;
    width: 0.3rem;
    height: 0.3rem;
    padding: 0;
    border-radius: 100%;
    background: #8c8c8c;
  }
  section.block03 .slider .slick-dots li.slick-active button {
    width: 0.6rem;
    height: 0.6rem;
  }
  section.block03 .slider .slick-dots li button:before {
    content: none;
  }

  section.block03 .inner {
    max-width: 96.0rem;
    margin: 0 auto;
    margin-bottom: 13.0rem;
  }
}
@media screen and (max-width: 767px) {
  section.block03 .container {
    padding: 3.3rem 2.3rem 7.3rem 2.3rem;
  }
  section.block03 h2 {
    font-size: 1.8rem;
  }
  section.block03 .container::after {
    content: '';
    display: block;
    background: url(../../imgs/lp/bg.png) 50% 50%/144.0rem auto repeat;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    right: calc(100% - 2.5rem);
  }

  section.block03 .slider {
    max-width: 96.6rem;
    margin: 0 auto;
    margin-bottom: 1.1rem;
  }
  section.block03 .slider .slick-list {
    overflow: visible;
  }
  section.block03 .slider .slick-slider {
    margin-bottom: 0;
  }
  section.block03 .slider li {
    padding: 0 0.3rem;
  }
  section.block03 .slider li img {
    width: 100%;
    height: auto;
  }
  section.block03 .slider li a {
    display: block;
    text-decoration: none;
  }
  section.block03 .slider .slick-dots {
    width: fit-content;
    top: auto;
    bottom: -2.4rem;
    left: auto;
    right: 0.0rem;
    padding: 0;
    margin: 0;
    height: 1.0rem;
    font-size: 0;
    width: 9.0rem;
    display: flex;
    justify-content: right;
    align-items: center;
  }
  section.block03 .slider .slick-dots li {
    display: block;
    width: 0.6rem;
    height: 0.6rem;
    margin: 0;
    padding: 0;
    font-size: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: 0.8rem;
  }
  section.block03 .slider .slick-dots li button {
    display: block;
    width: 0.3rem;
    height: 0.3rem;
    padding: 0;
    border-radius: 100%;
    background: #8c8c8c;
  }
  section.block03 .slider .slick-dots li.slick-active button {
    width: 0.6rem;
    height: 0.6rem;
  }
  section.block03 .slider .slick-dots li button:before {
    content: none;
  }

  section.block03 .inner {
    padding: 0 0.5rem;
    margin: 0 auto;
    margin-bottom: 7.1rem;
  }
  section.block03 .inner h3 {
    margin-bottom: 0.3rem;
  }
  section.block03 .inner h3 .sub {
    font-size: 1.0rem;
    margin-bottom: 0.3rem;
  }
  section.block03 .inner h3 .main {
    font-size: 1.6rem;
  }
  section.block03 .inner .tag {
    font-size: 1.2rem;
    padding: 0.2rem 0.6rem;
    margin-bottom: 2.5rem;
  }
  section.block03 .inner .text {
    font-size: 1.4rem;
    margin-top: 1.3rem;
  }
  section.block03 .inner .text p {
    margin-bottom: 2.3rem;
  }
}


section.block04 {
  position: relative;
}
section.block04::after {
  content: "";
  display: block;
  width: 1px;
  height: 50%;
  background: #222;
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 0;
}
section.block04 .text {
  line-height: 1.7;
  letter-spacing: 0.04em;
}
section.block04 .text p {
  margin-bottom: 2.5rem;
}
section.block04 h2 {
  text-align: left;
  margin-bottom: 6.0rem;
  line-height: 1.65;
}
section.block04 h2 .sub {
  display: block;
  font-family: "Roboto", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.1rem;
  letter-spacing: 0.09em;
  margin-bottom: 0.4rem;
}
section.block04 h2 .main {
  display: block;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.1em;
}

@media screen and (min-width: 768px) {
  section.block04 {
    padding-bottom: 13.0rem;
  }
  section.block04 .container {
    padding-top: 0;
    padding-bottom: 0;
  }
  section.block04 .wrap {
    display: flex;
    justify-content: space-between;
    max-width: 132.0rem;
    padding-top: 7.9rem;
    position: relative;
  }
  section.block04 .wrap::before {
    content: '';
    width: 100vw;
    height: 1px;
    background: #222;
    position: absolute;
    top: 0;
    right: 0;
  }
  section.block04 .wrap .image {
    width: 78.0rem;
  }
  section.block04 .wrap .content {
    width: calc(100% - 78.0rem);
    padding-top: 7.6rem;
    padding-left: 12.0rem;
  }
  section.block04 h2 {
    margin-bottom: 6.3rem;
  }
}
@media screen and (max-width: 767px) {
  section.block04 {
    padding-bottom: 7.9rem;
  }
  section.block04 .container {
    padding: 0;
    padding-right: 2.5rem;
  }
  section.block04 .wrap {
    border-top: solid 1px #222;
    padding-top: 5.4rem;
  }
  section.block04 h2 .sub {
    font-size: 1.0rem;
    margin-bottom: 0.2rem;
  }
  section.block04 h2 .main {
    font-size: 2.0rem;
  }
  section.block04 .wrap .content {
    padding-left: 3.0rem;
  }
  section.block04 .wrap .image {
    margin-top: 5.2rem;
    padding-left: 2.8rem;
    position: relative;
    z-index: 1;
  }
  section.block04 h2 {
    margin-bottom: 3.6rem;
  }
  section.block04 .text {
    font-size: 1.5rem;
    line-height: 1.5;
  }
  section.block04 .text p {
    margin-bottom: 0rem;
  }
  section.block04::after {
    height: 10.0rem;
  }
}


section.block05 {
}
section.block05 h2 {
  text-align: center;
  margin-bottom: 3.2rem;
  line-height: 1.65;
}
section.block05 h2 .sub {
  display: block;
  width: fit-content;
  margin: 0 auto;
  font-size: 1.45rem;
  letter-spacing: 0.09em;
  margin-bottom: 0.4rem;
}
section.block05 h2 .main {
  display: block;
  font-size: 2.3rem;
  font-weight: bold;
  letter-spacing: 0.09em;
}
section.block05 .lead {
  width: fit-content;
  font-size: 1.67rem;
  margin: 0 auto;
  margin-bottom: 7.3rem;
}
section.block05 .box {
  max-width: 96.0rem;
  margin: 0 auto;
  background: #fff;
  padding: 6.4rem 2.0rem 7.0rem 2.0rem;
}
section.block05 .box h3 {
  text-align: center;
  font-weight: bold;
  font-size: 2.2rem;
  line-height: 1.3;
  margin-bottom: 4.2rem;
}
section.block05 .box ul li {
  padding-top: 0.5rem;
  padding-bottom: 2.4rem;
}
section.block05 .box .point {
  display: block;
  font-family: "Roboto", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.3rem;
  margin-bottom: 0.5rem;
}
section.block05 .box .name {
  display: block;
  font-size: 1.9rem;
  font-weight: bold;
  margin-bottom: 2.3rem;
}
section.block05 .box .desc {
  display: block;
  line-height: 1.7;
}
@media screen and (min-width: 768px) {
  section.block05 .container {
    padding-top: 4.5rem;
    padding-bottom: 15.0rem;
  }
  section.block05 .box ul {
    display: flex;
    justify-content: space-between;
    max-width: 73.5rem;
    margin: 0 auto;
  }
  section.block05 .box ul li {
    width: 24.0rem;
    text-align: center;
  }
  section.block05 .box ul li:nth-child(2) {
    border-left: solid 1px #222;
    border-right: solid 1px #222;
  }
}
@media screen and (max-width: 767px) {
  section.block05 .container {
    padding: 3.4rem 2.7rem 15.0rem 2.7rem;
  }
  section.block05 h2 {
    margin-bottom: 3.7rem;
  }
  section.block05 h2 .sub {
    font-size: 1.3rem;
  }
  section.block05 h2 .main {
    font-size: 1.8rem;
    letter-spacing: 0.12em;
  }
  section.block05 .lead {
    font-size: 1.6rem;
    line-height: 1.5;
    margin-bottom: 5.0rem;
  }
  section.block05 .box {
    padding: 4.5rem 4.2rem 3.0rem 4.2rem;
  }
  section.block05 .box h3 {
    font-size: 2.0rem;
    line-height: 1.4;
    margin-bottom: 2.5rem;
  }
  section.block05 .box .point {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
    line-height: 1;
  }
  section.block05 .box .name {
    font-size: 1.7rem;
    margin-bottom: 1.0rem;
    line-height: 1;
  }
  section.block05 .box .desc {
    line-height: 1.6;
  }
}

section.block06 h2 {
  text-align: left;
  margin-bottom: 6.0rem;
  line-height: 1.65;
}
section.block06 h2 .sub {
  display: block;
  font-family: "Roboto", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 1.1rem;
  letter-spacing: 0.09em;
  margin-bottom: 0.4rem;
}
section.block06 h2 .main {
  display: block;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.1em;
}
section.block06 .qa .item {
  border-bottom: solid 1px #222;
}
section.block06 .qa .item .q {
  padding: 3.3rem 2.0rem 2.5rem 9.4rem;
  position: relative;
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  user-select: none;
  background: url(../../imgs/lp/block06_icon_open.png) calc(100% - 2.9rem) 50%/1.2rem auto no-repeat;
}
section.block06 .qa .item .q::before {
  content: 'Q';
  font-family: "Roboto", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2.0rem;
  position: absolute;
  top: 2.6rem;
  left: 3.0rem;
}
section.block06 .qa .item .accordion {
  display: grid;
  grid-template-rows: 0fr;
  transition: 250ms grid-template-rows ease !important;
}
section.block06 .qa .item.open .accordion {
  grid-template-rows: 1fr;
}
section.block06 .qa .item .a {
  position: relative;
  font-size: 1.6rem;
  letter-spacing: 0.04em;
  overflow: hidden;
}
section.block06 .qa .item .a p {
  padding: 1.3rem 2.0rem 2.5rem 9.4rem;
}
section.block06 .qa .item .a::before {
  content: 'A';
  font-family: "Roboto", sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 2.0rem;
  position: absolute;
  top: 0.6rem;
  left: 3.0rem;
}
section.block06 .qa .item.open .q {
  background: url(../../imgs/lp/block06_icon_close.png) calc(100% - 2.9rem) 50%/1.2rem auto no-repeat;
}
@media screen and (min-width: 768px) {
  section.block06 .container {
    padding: 5.0rem 2.0rem;
    padding-bottom: 20.0rem;
  }
  section.block06 .wrap {
    max-width: 133.0rem;
    margin: 0 0 0 auto;
    padding-top: 7.5rem;
    padding-left: 1.0rem;
    padding-right: 12.0rem;
    position: relative;
    display: flex;
    justify-content: space-between;
  }
  section.block06 .wrap::before {
    content: '';
    width: 100vw;
    height: 1px;
    background: #222;
    position: absolute;
    top: 0;
    left: 0;
  }
  section.block06 h2 {
    width: 42.0rem;
  }
  section.block06 .qa {
    width: calc(100% - 42.0rem);
  }
  section.block06 .qa .item .q {
    transition: opacity 200ms 0s ease !important;
  }
  section.block06 .qa .item .q:hover {
    opacity: 0.6;
  }
}
@media screen and (max-width: 767px) {
  section.block06 .container {
    padding: 0;
    padding-left: 2.8rem;
    padding-bottom: 14.6rem;
  }
  section.block06 .wrap {
    border-top: solid 1px #222;
    padding-top: 5.4rem;
  }
  section.block06 h2 {
    margin-bottom: 1.0rem;
  }
  section.block06 h2 .sub {
    font-size: 1.0rem;
    margin-bottom: 0.4rem;
  }
  section.block06 h2 .main {
    font-size: 2.0rem;
  }
  section.block06 .qa .item {
  }
  section.block06 .qa .item .q {
    padding: 3.6rem 6.0rem 2.5rem 3.8rem;
    font-size: 1.4rem;
    letter-spacing: -0.01em;
  }
  section.block06 .qa .item .q::before {
    top: 3.0rem;
    left: 0;
  }
  section.block06 .qa .item .a p {
    padding: 0.6rem 6.0rem 2.5rem 3.8rem;
    font-size: 1.4rem;
    letter-spacing: -0.01em;
  }
  section.block06 .qa .item .a::before {
    top: 0.0rem;
    left: 0;
  }
}


section.block07 {
  position: relative;
}
section.block07-over {
  margin-top: 120px;
}
section.block07::before {
  content: "";
  display: block;
  width: 100%;
  height: 63.2rem;
  background: url(../../imgs/lp/block02_bg.png) 50% 50%/144.0rem auto repeat;
  position: absolute;
  top: 0;
  left: 0;
}
section.block07::after {
  content: "";
  display: block;
  width: 1px;
  height: 50%;
  background: #222;
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 0;
}
section.block07-over::before {
  content: "";
  display: block;
  width: 100%;
  height: 151.2rem;
  background: url(../../imgs/lp/block02_bg.png) 50% 50%/144.0rem auto repeat;
  position: absolute;
  top: 0;
  left: 0;
}
section.block07-over::after {
  content: "";
  display: block;
  width: 0px;
  height: 0;
  background: #222;
  position: absolute;
  bottom: 0;
  left: 50%;
  z-index: 0;
}
.ctlslide-title {
  text-align: center;
  color: #fff;
  position: relative;
  z-index: 99;
}
/* 修正例: 親要素のoverflowをvisibleに設定 */
.ctlslider {
  overflow: visible;
}
.ctlslide img {
	transform: scale(.8);
	transition: transform .3s;
}
.ctlslide.slick-center img {
	transform: scale(1);
}
.ctlslide p {
  text-align: center;
  color: #fff;
  margin-top: 1rem;
}
@media screen and (max-width: 767px) {
  .ctlslide p {
    font-size: 1.3rem;
  }
}
.slick-dots li button::before {
  color: #fff;
}
.slick-dots li.slick-active button::before {
  color: #fff;
}
.custom-button-outer {
  display: flex;
  justify-content: center;
  justify-items: center;
}
.custom-button-outer a {
  text-decoration: none;
}
.custom-button {
  margin-top: 2rem;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border: 2px solid white;
  border-radius: 3rem;
  background-color: transparent;
  color: white;
  padding: 10px 16px;
  font-size: 16px;
  cursor: pointer;
  width: 250px; /* ボタンの幅は必要に応じて調整 */
}
.custom-button:hover {
  background-color: #444;
}
.button-text {
  flex: 1;
  text-align: center;
}

.button-icon {
  margin-left: auto;
  padding-left: 8px;
}
img.btmimg {
  width: 100%;
  margin-top: 120px;
}
section.block07 h2 {
  text-align: left;
  font-size: 2.4rem;
  font-weight: bold;
  letter-spacing: 0.09em;
  color: #fff;
  margin-bottom: 6.5rem;
  position: relative;
  z-index: 1;
}
section.block07 .text {
  color: #fff;
  letter-spacing: 0.045em;
  line-height: 1.7;
  width: 100%;
  position: relative;
  z-index: 1;
  margin-bottom: 9.3rem;
}
section.block07 .text p {
  margin-bottom: 2.5rem;
}
section.block07 .box {
  background: #fff;
  border-radius: 0.3rem;
  max-width: 72.0rem;
  margin: 0 auto;
  padding: 7.1rem 3.0rem;
  position: relative;
  z-index: 1;
}
section.block07 .box h3 {
  text-align: center;
  font-size: 2.2rem;
  font-weight: bold;
  margin-bottom: 2.2rem;
}
section.block07 .box .area {
  max-width: 41.0rem;
  margin: 0 auto;
  letter-spacing: 0.1em;
  line-height: 1.7;
}
section.block07 .box .area span {
  white-space: nowrap;
}
section.block07 .box .kome {
  font-size: 1.3rem;
  text-align: center;
  margin-top: 3.0rem;
}
@media screen and (min-width: 768px) {
  section.block07 .container {
    padding-top: 9.0rem;
    padding-bottom: 13.0rem;
  }
  section.block07-over .container {
    padding-top: 9.0rem;
    padding-bottom: 4.0rem;
  }
  section.block07 .wrap {
    max-width: 72.0rem;
    margin: 0 auto;
  }
  section.block07 .image {
    position: absolute;
    top: -3.8rem;
    right: 15.6rem;
  }
}
@media screen and (max-width: 767px) {
  section.block07 .container {
    padding: 0 2.7rem;
    padding-bottom: 8.1rem;
  }
  section.block07-over .container {
    padding-bottom: 4.1rem;
  }
  section.block07::before {
    height: 63.0rem;
  }
  section.block07-over::before {
    height: 100.0rem;
  }
  section.block07::after {
    height: 10.0rem;
    bottom: 0;
  }
  section.block07 .image {
    position: relative;
    z-index: 1;
    top: -5.4rem;
    max-width: 91%;
    margin: 0 auto;
    margin-bottom: -1.0rem;
  }
  section.block07 h2 {
    text-align: center;
    font-size: 2.0rem;
    margin-bottom: 3.6rem;
  }
  section.block07 .text {
    font-size: 1.4rem;
    margin-bottom: 7.3rem;
    line-height: 1.6;
  }
  section.block07 .text p {
    margin-bottom: 0;
  }
  section.block07 .box {
    padding: 3.5rem 4.0rem;
  }
  section.block07 .box h3 {
    font-size: 1.9rem;
  }
  section.block07 .box .area {
    font-size: 1.4rem;
  }
  section.block07 .box .kome {
    margin-top: 2.8rem;
    font-size: 1.0rem;
  }
}

section.mailform h2 {
  text-align: center;
  font-weight: bold;
  font-size: 2.2rem;
  margin-bottom: 6.4rem;
}
section.mailform .form-block {
  max-width: 84.0rem;
  margin: 0 auto;
}
section.mailform .form-block .inner {
}
section.mailform .form-block .input-row {
  padding: 2.5rem 0;
  display: flex;
  justify-content: left;
  flex-wrap: wrap;
}
section.mailform .form-block .input-row .label {
  width: 24.0rem;
  padding: 1.4rem 0 0 0;
  letter-spacing: 0.1em;
  position: relative;
}
section.mailform .form-block .input-row .label .required {
  background: #222;
  color: #fff;
  display: inline-block;
  margin-left: 1.0rem;
  position: absolute;
  top: 1.6rem;
  right: 2.0rem;
  font-size: 1.3rem;
  padding: 0 0.5rem;
  border-radius: 0.3rem;
}
section.mailform .form-block .input-row .input {
  width: calc(100% - 24.0rem);
}
section.mailform .form-block .input-row.company .input {
  max-width: 50.0rem;
}
section.mailform .form-block .input-row.name .input {
  max-width: 24.0rem;
}
section.mailform .form-block .input-row.tel .input {
  max-width: 24.0rem;
}
section.mailform .form-block .input-row.email .input {
  max-width: 40.0rem;
}
section.mailform .form-block .input-row.naiyou {
  padding-bottom: 4.0rem;
}
section.mailform .form-block .input-row.confirmation {
  padding-top: 1.2rem;
  padding-bottom: 2.8rem;
}
section.mailform .form-block .input-row.confirmation label {
  display: block;
  padding: 0.5rem;
}
section.mailform .form-block .input-row.confirmation label a {
  color: #663300;
}
section.mailform .form-block .kiyaku {
  font-size: 1.4rem;
  overflow-y: scroll;
  height: 20.0rem;
  padding: 0.5rem 1.0rem;
  background: #fff;
  border: solid 1px #999;
  margin-bottom: 1.0rem;
}
section.mailform .form-block .kiyaku h3 {
  margin-top: 3.0rem;
  margin-bottom: 1.0rem;
  font-size: 2.0rem;
  font-weight: bold;
  padding-left: 1.0rem;
  line-height: 1.4;
}
section.mailform .form-block .kiyaku ol {
  list-style: numeric;
  margin: 2.0rem 0rem;
}
section.mailform .form-block .kiyaku .inner>ol {
  margin: 2.0rem 2.0rem;
}
section.mailform .form-block .kiyaku ol li {
  margin: 1.0rem 2.0rem;
}
section.mailform .form-block .kiyaku p {
  margin: 0 0 2.5rem 0;
  line-height: 1.7;
}
section.mailform .form-block .kiyaku .right {
  text-align: right;
}

section.mailform .form-block .input-button {
  padding: 1.9rem 0 3.4rem 0;
  text-align: center;
}
section.mailform .form-block .input-button button,
section.mailform .form-block .input-button input[type='submit'] {
  text-decoration: none;
  display: inline-block;
  border: solid 1px #222;
  width: 100%;
  max-width: 36.0rem;
  margin: 0 auto;
  padding: 1.7rem 1.0rem;
  letter-spacing: 0.1em;
  background: #fff url(../img/contact_icon_button.png) calc(100% - 6.5rem) 50%/4.0rem auto no-repeat;
  transition: opacity 200ms 0s ease !important;
}
section.mailform .form-block .input-button button:hover,
section.mailform .form-block .input-button input[type='submit']:hover {
  opacity: 0.6;
}
section.mailform .kome {
  text-align: center;
  font-size: 1.5rem;
  margin-bottom: 0.3rem;
}


section.mailform .form-block .input-button .wpcf7-spinner {
  display: block;
  margin: 3.0rem auto;
}

section.mailform .wpcf7-response-output {
  display: none;
}
@media screen and (min-width: 768px) {
  section.mailform .container {
    padding-top: 4.4rem;
    padding-bottom: 9.0rem;
  }
}
@media screen and (max-width: 767px) {
  section.mailform .container {
    padding: 2.0rem 2.7rem;
    padding-top: 2.6rem;
  }
  section.mailform h2 {
    font-size: 1.9rem;
    margin-bottom: 2.0rem;
  }
  section.mailform .form-block .input-row {
    padding: 1.3rem 0;
  }
  section.mailform .form-block .input-row .label {
    width: 100%;
    padding-bottom: 0.7rem;
    font-size: 1.4rem;
  }
  section.mailform .form-block .input-row .label .required {
    right: 0rem;
    font-size: 1.1rem;
  }
  section.mailform .form-block .input-row .input {
    width: 100%;
  }
  section.mailform .form-block .input-row.confirmation {
    padding-top: 0rem;
  }
  section.mailform .form-block .input-row.confirmation label {
    padding-left: 0rem;
  }
  section.mailform .form-block .kiyaku {
    height: 11.0rem;
    font-size: 1.1rem;
    margin-bottom: 0.5rem;
  }
  section.mailform .form-block .input-button {
    padding-top: 0rem;
  }
  section.mailform .form-block .input-button button,
  section.mailform .form-block .input-button input[type='submit'] {
    width: 87%;
  }
  section.mailform .kome {
    font-size: 1.1rem;
  }
}
section.block07{
	overflow:visible;
}

/*　20250503追記　　*/
.image-bottom {
  position: relative;
}

@media screen and (max-width: 767px) {
  p.image-bottom source {
  display: block;
  height: auto;
  margin-top: -50px;
  }
}
section.mailform .form-block .input-row.address .input{
  display: flex;
  flex-direction: column;
  gap: .8rem; /* 郵便番号と住所の間 */
}

/* 郵便番号の「〒」と入力欄を横並びに揃える */
section.mailform .form-block .input-row.address .zip{
  display: flex;
  align-items: center;
  gap: .6rem;
}

/* 郵便番号入力欄は短めに */
section.mailform .form-block .input-row.address .zip input{
  width: 16rem;
  max-width: 100%;
}