@charset "UTF-8";
/* ベース定義 */
body,
div,
dl,
dt,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
fieldset,
input,
textarea,
p,
blockquote,
th,
td,
ul,
ol,
figure {
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-weight: inherit;
}

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

html {
  font-size: 16px;
  scroll-behavior: smooth;
  scroll-padding-top: 100px;
  font-feature-settings: 'palt';
}

body {
  font-family: 'Noto Sans JP', sans-serif;
  line-height: 1.7;
  box-sizing: border-box;
  letter-spacing: 0.05em;
  color: #161616;
  font-weight: 400;
}

@media only screen and (max-width: 767px) {
  body {
    overflow-x: hidden;
  }
}

*,
*:before,
*:after {
  box-sizing: inherit;
}

img {
  max-width: 100%;
  height: auto;
  border: none;
  vertical-align: bottom;
}

a,
button {
  outline: none;
}

ul {
  list-style: none;
}

b {
  font-weight: 600;
}

/*====================================

Utilities

====================================*/
.u-mt-0 {
  margin-top: 0px !important;
}

.u-mb-0 {
  margin-bottom: 0px !important;
}

.u-ml-0 {
  margin-left: 0px !important;
}

.u-mr-0 {
  margin-right: 0px !important;
}

.u-pt-0 {
  padding-top: 0px !important;
}

.u-pb-0 {
  padding-bottom: 0px !important;
}

.u-pl-0 {
  padding-left: 0px !important;
}

.u-pr-0 {
  padding-right: 0px !important;
}

.u-mt-5 {
  margin-top: 5px !important;
}

.u-mb-5 {
  margin-bottom: 5px !important;
}

.u-ml-5 {
  margin-left: 5px !important;
}

.u-mr-5 {
  margin-right: 5px !important;
}

.u-pt-5 {
  padding-top: 5px !important;
}

.u-pb-5 {
  padding-bottom: 5px !important;
}

.u-pl-5 {
  padding-left: 5px !important;
}

.u-pr-5 {
  padding-right: 5px !important;
}

.u-mt-10 {
  margin-top: 10px !important;
}

.u-mb-10 {
  margin-bottom: 10px !important;
}

.u-ml-10 {
  margin-left: 10px !important;
}

.u-mr-10 {
  margin-right: 10px !important;
}

.u-pt-10 {
  padding-top: 10px !important;
}

.u-pb-10 {
  padding-bottom: 10px !important;
}

.u-pl-10 {
  padding-left: 10px !important;
}

.u-pr-10 {
  padding-right: 10px !important;
}

.u-mt-15 {
  margin-top: 15px !important;
}

.u-mb-15 {
  margin-bottom: 15px !important;
}

.u-ml-15 {
  margin-left: 15px !important;
}

.u-mr-15 {
  margin-right: 15px !important;
}

.u-pt-15 {
  padding-top: 15px !important;
}

.u-pb-15 {
  padding-bottom: 15px !important;
}

.u-pl-15 {
  padding-left: 15px !important;
}

.u-pr-15 {
  padding-right: 15px !important;
}

.u-mt-20 {
  margin-top: 20px !important;
}

.u-mb-20 {
  margin-bottom: 20px !important;
}

.u-ml-20 {
  margin-left: 20px !important;
}

.u-mr-20 {
  margin-right: 20px !important;
}

.u-pt-20 {
  padding-top: 20px !important;
}

.u-pb-20 {
  padding-bottom: 20px !important;
}

.u-pl-20 {
  padding-left: 20px !important;
}

.u-pr-20 {
  padding-right: 20px !important;
}

.u-mt-25 {
  margin-top: 25px !important;
}

.u-mb-25 {
  margin-bottom: 25px !important;
}

.u-ml-25 {
  margin-left: 25px !important;
}

.u-mr-25 {
  margin-right: 25px !important;
}

.u-pt-25 {
  padding-top: 25px !important;
}

.u-pb-25 {
  padding-bottom: 25px !important;
}

.u-pl-25 {
  padding-left: 25px !important;
}

.u-pr-25 {
  padding-right: 25px !important;
}

.u-mt-30 {
  margin-top: 30px !important;
}

.u-mb-30 {
  margin-bottom: 30px !important;
}

.u-ml-30 {
  margin-left: 30px !important;
}

.u-mr-30 {
  margin-right: 30px !important;
}

.u-pt-30 {
  padding-top: 30px !important;
}

.u-pb-30 {
  padding-bottom: 30px !important;
}

.u-pl-30 {
  padding-left: 30px !important;
}

.u-pr-30 {
  padding-right: 30px !important;
}

.u-mt-35 {
  margin-top: 35px !important;
}

.u-mb-35 {
  margin-bottom: 35px !important;
}

.u-ml-35 {
  margin-left: 35px !important;
}

.u-mr-35 {
  margin-right: 35px !important;
}

.u-pt-35 {
  padding-top: 35px !important;
}

.u-pb-35 {
  padding-bottom: 35px !important;
}

.u-pl-35 {
  padding-left: 35px !important;
}

.u-pr-35 {
  padding-right: 35px !important;
}

.u-mt-40 {
  margin-top: 40px !important;
}

.u-mb-40 {
  margin-bottom: 40px !important;
}

.u-ml-40 {
  margin-left: 40px !important;
}

.u-mr-40 {
  margin-right: 40px !important;
}

.u-pt-40 {
  padding-top: 40px !important;
}

.u-pb-40 {
  padding-bottom: 40px !important;
}

.u-pl-40 {
  padding-left: 40px !important;
}

.u-pr-40 {
  padding-right: 40px !important;
}

.u-mt-45 {
  margin-top: 45px !important;
}

.u-mb-45 {
  margin-bottom: 45px !important;
}

.u-ml-45 {
  margin-left: 45px !important;
}

.u-mr-45 {
  margin-right: 45px !important;
}

.u-pt-45 {
  padding-top: 45px !important;
}

.u-pb-45 {
  padding-bottom: 45px !important;
}

.u-pl-45 {
  padding-left: 45px !important;
}

.u-pr-45 {
  padding-right: 45px !important;
}

.u-mt-50 {
  margin-top: 50px !important;
}

.u-mb-50 {
  margin-bottom: 50px !important;
}

.u-ml-50 {
  margin-left: 50px !important;
}

.u-mr-50 {
  margin-right: 50px !important;
}

.u-pt-50 {
  padding-top: 50px !important;
}

.u-pb-50 {
  padding-bottom: 50px !important;
}

.u-pl-50 {
  padding-left: 50px !important;
}

.u-pr-50 {
  padding-right: 50px !important;
}

.u-mt-55 {
  margin-top: 55px !important;
}

.u-mb-55 {
  margin-bottom: 55px !important;
}

.u-ml-55 {
  margin-left: 55px !important;
}

.u-mr-55 {
  margin-right: 55px !important;
}

.u-pt-55 {
  padding-top: 55px !important;
}

.u-pb-55 {
  padding-bottom: 55px !important;
}

.u-pl-55 {
  padding-left: 55px !important;
}

.u-pr-55 {
  padding-right: 55px !important;
}

.u-mt-60 {
  margin-top: 60px !important;
}

.u-mb-60 {
  margin-bottom: 60px !important;
}

.u-ml-60 {
  margin-left: 60px !important;
}

.u-mr-60 {
  margin-right: 60px !important;
}

.u-pt-60 {
  padding-top: 60px !important;
}

.u-pb-60 {
  padding-bottom: 60px !important;
}

.u-pl-60 {
  padding-left: 60px !important;
}

.u-pr-60 {
  padding-right: 60px !important;
}

.u-mt-65 {
  margin-top: 65px !important;
}

.u-mb-65 {
  margin-bottom: 65px !important;
}

.u-ml-65 {
  margin-left: 65px !important;
}

.u-mr-65 {
  margin-right: 65px !important;
}

.u-pt-65 {
  padding-top: 65px !important;
}

.u-pb-65 {
  padding-bottom: 65px !important;
}

.u-pl-65 {
  padding-left: 65px !important;
}

.u-pr-65 {
  padding-right: 65px !important;
}

.u-mt-70 {
  margin-top: 70px !important;
}

.u-mb-70 {
  margin-bottom: 70px !important;
}

.u-ml-70 {
  margin-left: 70px !important;
}

.u-mr-70 {
  margin-right: 70px !important;
}

.u-pt-70 {
  padding-top: 70px !important;
}

.u-pb-70 {
  padding-bottom: 70px !important;
}

.u-pl-70 {
  padding-left: 70px !important;
}

.u-pr-70 {
  padding-right: 70px !important;
}

.u-mt-75 {
  margin-top: 75px !important;
}

.u-mb-75 {
  margin-bottom: 75px !important;
}

.u-ml-75 {
  margin-left: 75px !important;
}

.u-mr-75 {
  margin-right: 75px !important;
}

.u-pt-75 {
  padding-top: 75px !important;
}

.u-pb-75 {
  padding-bottom: 75px !important;
}

.u-pl-75 {
  padding-left: 75px !important;
}

.u-pr-75 {
  padding-right: 75px !important;
}

.u-mt-80 {
  margin-top: 80px !important;
}

.u-mb-80 {
  margin-bottom: 80px !important;
}

.u-ml-80 {
  margin-left: 80px !important;
}

.u-mr-80 {
  margin-right: 80px !important;
}

.u-pt-80 {
  padding-top: 80px !important;
}

.u-pb-80 {
  padding-bottom: 80px !important;
}

.u-pl-80 {
  padding-left: 80px !important;
}

.u-pr-80 {
  padding-right: 80px !important;
}

.u-mt-85 {
  margin-top: 85px !important;
}

.u-mb-85 {
  margin-bottom: 85px !important;
}

.u-ml-85 {
  margin-left: 85px !important;
}

.u-mr-85 {
  margin-right: 85px !important;
}

.u-pt-85 {
  padding-top: 85px !important;
}

.u-pb-85 {
  padding-bottom: 85px !important;
}

.u-pl-85 {
  padding-left: 85px !important;
}

.u-pr-85 {
  padding-right: 85px !important;
}

.u-mt-90 {
  margin-top: 90px !important;
}

.u-mb-90 {
  margin-bottom: 90px !important;
}

.u-ml-90 {
  margin-left: 90px !important;
}

.u-mr-90 {
  margin-right: 90px !important;
}

.u-pt-90 {
  padding-top: 90px !important;
}

.u-pb-90 {
  padding-bottom: 90px !important;
}

.u-pl-90 {
  padding-left: 90px !important;
}

.u-pr-90 {
  padding-right: 90px !important;
}

.u-mt-95 {
  margin-top: 95px !important;
}

.u-mb-95 {
  margin-bottom: 95px !important;
}

.u-ml-95 {
  margin-left: 95px !important;
}

.u-mr-95 {
  margin-right: 95px !important;
}

.u-pt-95 {
  padding-top: 95px !important;
}

.u-pb-95 {
  padding-bottom: 95px !important;
}

.u-pl-95 {
  padding-left: 95px !important;
}

.u-pr-95 {
  padding-right: 95px !important;
}

.u-mt-100 {
  margin-top: 100px !important;
}

.u-mb-100 {
  margin-bottom: 100px !important;
}

.u-ml-100 {
  margin-left: 100px !important;
}

.u-mr-100 {
  margin-right: 100px !important;
}

.u-pt-100 {
  padding-top: 100px !important;
}

.u-pb-100 {
  padding-bottom: 100px !important;
}

.u-pl-100 {
  padding-left: 100px !important;
}

.u-pr-100 {
  padding-right: 100px !important;
}

@media only screen and (min-width: 768px), print {
  .u-mt-0-pc {
    margin-top: 0px !important;
  }
  .u-mb-0-pc {
    margin-bottom: 0px !important;
  }
  .u-ml-0-pc {
    margin-left: 0px !important;
  }
  .u-mr-0-pc {
    margin-right: 0px !important;
  }
  .u-pt-0-pc {
    padding-top: 0px !important;
  }
  .u-pb-0-pc {
    padding-bottom: 0px !important;
  }
  .u-pl-0-pc {
    padding-left: 0px !important;
  }
  .u-pr-0-pc {
    padding-right: 0px !important;
  }
  .u-mt-5-pc {
    margin-top: 5px !important;
  }
  .u-mb-5-pc {
    margin-bottom: 5px !important;
  }
  .u-ml-5-pc {
    margin-left: 5px !important;
  }
  .u-mr-5-pc {
    margin-right: 5px !important;
  }
  .u-pt-5-pc {
    padding-top: 5px !important;
  }
  .u-pb-5-pc {
    padding-bottom: 5px !important;
  }
  .u-pl-5-pc {
    padding-left: 5px !important;
  }
  .u-pr-5-pc {
    padding-right: 5px !important;
  }
  .u-mt-10-pc {
    margin-top: 10px !important;
  }
  .u-mb-10-pc {
    margin-bottom: 10px !important;
  }
  .u-ml-10-pc {
    margin-left: 10px !important;
  }
  .u-mr-10-pc {
    margin-right: 10px !important;
  }
  .u-pt-10-pc {
    padding-top: 10px !important;
  }
  .u-pb-10-pc {
    padding-bottom: 10px !important;
  }
  .u-pl-10-pc {
    padding-left: 10px !important;
  }
  .u-pr-10-pc {
    padding-right: 10px !important;
  }
  .u-mt-15-pc {
    margin-top: 15px !important;
  }
  .u-mb-15-pc {
    margin-bottom: 15px !important;
  }
  .u-ml-15-pc {
    margin-left: 15px !important;
  }
  .u-mr-15-pc {
    margin-right: 15px !important;
  }
  .u-pt-15-pc {
    padding-top: 15px !important;
  }
  .u-pb-15-pc {
    padding-bottom: 15px !important;
  }
  .u-pl-15-pc {
    padding-left: 15px !important;
  }
  .u-pr-15-pc {
    padding-right: 15px !important;
  }
  .u-mt-20-pc {
    margin-top: 20px !important;
  }
  .u-mb-20-pc {
    margin-bottom: 20px !important;
  }
  .u-ml-20-pc {
    margin-left: 20px !important;
  }
  .u-mr-20-pc {
    margin-right: 20px !important;
  }
  .u-pt-20-pc {
    padding-top: 20px !important;
  }
  .u-pb-20-pc {
    padding-bottom: 20px !important;
  }
  .u-pl-20-pc {
    padding-left: 20px !important;
  }
  .u-pr-20-pc {
    padding-right: 20px !important;
  }
  .u-mt-25-pc {
    margin-top: 25px !important;
  }
  .u-mb-25-pc {
    margin-bottom: 25px !important;
  }
  .u-ml-25-pc {
    margin-left: 25px !important;
  }
  .u-mr-25-pc {
    margin-right: 25px !important;
  }
  .u-pt-25-pc {
    padding-top: 25px !important;
  }
  .u-pb-25-pc {
    padding-bottom: 25px !important;
  }
  .u-pl-25-pc {
    padding-left: 25px !important;
  }
  .u-pr-25-pc {
    padding-right: 25px !important;
  }
  .u-mt-30-pc {
    margin-top: 30px !important;
  }
  .u-mb-30-pc {
    margin-bottom: 30px !important;
  }
  .u-ml-30-pc {
    margin-left: 30px !important;
  }
  .u-mr-30-pc {
    margin-right: 30px !important;
  }
  .u-pt-30-pc {
    padding-top: 30px !important;
  }
  .u-pb-30-pc {
    padding-bottom: 30px !important;
  }
  .u-pl-30-pc {
    padding-left: 30px !important;
  }
  .u-pr-30-pc {
    padding-right: 30px !important;
  }
  .u-mt-35-pc {
    margin-top: 35px !important;
  }
  .u-mb-35-pc {
    margin-bottom: 35px !important;
  }
  .u-ml-35-pc {
    margin-left: 35px !important;
  }
  .u-mr-35-pc {
    margin-right: 35px !important;
  }
  .u-pt-35-pc {
    padding-top: 35px !important;
  }
  .u-pb-35-pc {
    padding-bottom: 35px !important;
  }
  .u-pl-35-pc {
    padding-left: 35px !important;
  }
  .u-pr-35-pc {
    padding-right: 35px !important;
  }
  .u-mt-40-pc {
    margin-top: 40px !important;
  }
  .u-mb-40-pc {
    margin-bottom: 40px !important;
  }
  .u-ml-40-pc {
    margin-left: 40px !important;
  }
  .u-mr-40-pc {
    margin-right: 40px !important;
  }
  .u-pt-40-pc {
    padding-top: 40px !important;
  }
  .u-pb-40-pc {
    padding-bottom: 40px !important;
  }
  .u-pl-40-pc {
    padding-left: 40px !important;
  }
  .u-pr-40-pc {
    padding-right: 40px !important;
  }
  .u-mt-45-pc {
    margin-top: 45px !important;
  }
  .u-mb-45-pc {
    margin-bottom: 45px !important;
  }
  .u-ml-45-pc {
    margin-left: 45px !important;
  }
  .u-mr-45-pc {
    margin-right: 45px !important;
  }
  .u-pt-45-pc {
    padding-top: 45px !important;
  }
  .u-pb-45-pc {
    padding-bottom: 45px !important;
  }
  .u-pl-45-pc {
    padding-left: 45px !important;
  }
  .u-pr-45-pc {
    padding-right: 45px !important;
  }
  .u-mt-50-pc {
    margin-top: 50px !important;
  }
  .u-mb-50-pc {
    margin-bottom: 50px !important;
  }
  .u-ml-50-pc {
    margin-left: 50px !important;
  }
  .u-mr-50-pc {
    margin-right: 50px !important;
  }
  .u-pt-50-pc {
    padding-top: 50px !important;
  }
  .u-pb-50-pc {
    padding-bottom: 50px !important;
  }
  .u-pl-50-pc {
    padding-left: 50px !important;
  }
  .u-pr-50-pc {
    padding-right: 50px !important;
  }
  .u-mt-55-pc {
    margin-top: 55px !important;
  }
  .u-mb-55-pc {
    margin-bottom: 55px !important;
  }
  .u-ml-55-pc {
    margin-left: 55px !important;
  }
  .u-mr-55-pc {
    margin-right: 55px !important;
  }
  .u-pt-55-pc {
    padding-top: 55px !important;
  }
  .u-pb-55-pc {
    padding-bottom: 55px !important;
  }
  .u-pl-55-pc {
    padding-left: 55px !important;
  }
  .u-pr-55-pc {
    padding-right: 55px !important;
  }
  .u-mt-60-pc {
    margin-top: 60px !important;
  }
  .u-mb-60-pc {
    margin-bottom: 60px !important;
  }
  .u-ml-60-pc {
    margin-left: 60px !important;
  }
  .u-mr-60-pc {
    margin-right: 60px !important;
  }
  .u-pt-60-pc {
    padding-top: 60px !important;
  }
  .u-pb-60-pc {
    padding-bottom: 60px !important;
  }
  .u-pl-60-pc {
    padding-left: 60px !important;
  }
  .u-pr-60-pc {
    padding-right: 60px !important;
  }
  .u-mt-65-pc {
    margin-top: 65px !important;
  }
  .u-mb-65-pc {
    margin-bottom: 65px !important;
  }
  .u-ml-65-pc {
    margin-left: 65px !important;
  }
  .u-mr-65-pc {
    margin-right: 65px !important;
  }
  .u-pt-65-pc {
    padding-top: 65px !important;
  }
  .u-pb-65-pc {
    padding-bottom: 65px !important;
  }
  .u-pl-65-pc {
    padding-left: 65px !important;
  }
  .u-pr-65-pc {
    padding-right: 65px !important;
  }
  .u-mt-70-pc {
    margin-top: 70px !important;
  }
  .u-mb-70-pc {
    margin-bottom: 70px !important;
  }
  .u-ml-70-pc {
    margin-left: 70px !important;
  }
  .u-mr-70-pc {
    margin-right: 70px !important;
  }
  .u-pt-70-pc {
    padding-top: 70px !important;
  }
  .u-pb-70-pc {
    padding-bottom: 70px !important;
  }
  .u-pl-70-pc {
    padding-left: 70px !important;
  }
  .u-pr-70-pc {
    padding-right: 70px !important;
  }
  .u-mt-75-pc {
    margin-top: 75px !important;
  }
  .u-mb-75-pc {
    margin-bottom: 75px !important;
  }
  .u-ml-75-pc {
    margin-left: 75px !important;
  }
  .u-mr-75-pc {
    margin-right: 75px !important;
  }
  .u-pt-75-pc {
    padding-top: 75px !important;
  }
  .u-pb-75-pc {
    padding-bottom: 75px !important;
  }
  .u-pl-75-pc {
    padding-left: 75px !important;
  }
  .u-pr-75-pc {
    padding-right: 75px !important;
  }
  .u-mt-80-pc {
    margin-top: 80px !important;
  }
  .u-mb-80-pc {
    margin-bottom: 80px !important;
  }
  .u-ml-80-pc {
    margin-left: 80px !important;
  }
  .u-mr-80-pc {
    margin-right: 80px !important;
  }
  .u-pt-80-pc {
    padding-top: 80px !important;
  }
  .u-pb-80-pc {
    padding-bottom: 80px !important;
  }
  .u-pl-80-pc {
    padding-left: 80px !important;
  }
  .u-pr-80-pc {
    padding-right: 80px !important;
  }
  .u-mt-85-pc {
    margin-top: 85px !important;
  }
  .u-mb-85-pc {
    margin-bottom: 85px !important;
  }
  .u-ml-85-pc {
    margin-left: 85px !important;
  }
  .u-mr-85-pc {
    margin-right: 85px !important;
  }
  .u-pt-85-pc {
    padding-top: 85px !important;
  }
  .u-pb-85-pc {
    padding-bottom: 85px !important;
  }
  .u-pl-85-pc {
    padding-left: 85px !important;
  }
  .u-pr-85-pc {
    padding-right: 85px !important;
  }
  .u-mt-90-pc {
    margin-top: 90px !important;
  }
  .u-mb-90-pc {
    margin-bottom: 90px !important;
  }
  .u-ml-90-pc {
    margin-left: 90px !important;
  }
  .u-mr-90-pc {
    margin-right: 90px !important;
  }
  .u-pt-90-pc {
    padding-top: 90px !important;
  }
  .u-pb-90-pc {
    padding-bottom: 90px !important;
  }
  .u-pl-90-pc {
    padding-left: 90px !important;
  }
  .u-pr-90-pc {
    padding-right: 90px !important;
  }
  .u-mt-95-pc {
    margin-top: 95px !important;
  }
  .u-mb-95-pc {
    margin-bottom: 95px !important;
  }
  .u-ml-95-pc {
    margin-left: 95px !important;
  }
  .u-mr-95-pc {
    margin-right: 95px !important;
  }
  .u-pt-95-pc {
    padding-top: 95px !important;
  }
  .u-pb-95-pc {
    padding-bottom: 95px !important;
  }
  .u-pl-95-pc {
    padding-left: 95px !important;
  }
  .u-pr-95-pc {
    padding-right: 95px !important;
  }
  .u-mt-100-pc {
    margin-top: 100px !important;
  }
  .u-mb-100-pc {
    margin-bottom: 100px !important;
  }
  .u-ml-100-pc {
    margin-left: 100px !important;
  }
  .u-mr-100-pc {
    margin-right: 100px !important;
  }
  .u-pt-100-pc {
    padding-top: 100px !important;
  }
  .u-pb-100-pc {
    padding-bottom: 100px !important;
  }
  .u-pl-100-pc {
    padding-left: 100px !important;
  }
  .u-pr-100-pc {
    padding-right: 100px !important;
  }
}

@media only screen and (max-width: 767px) {
  .u-mt-0-sp {
    margin-top: 0px !important;
  }
  .u-mb-0-sp {
    margin-bottom: 0px !important;
  }
  .u-ml-0-sp {
    margin-left: 0px !important;
  }
  .u-mr-0-sp {
    margin-right: 0px !important;
  }
  .u-pt-0-sp {
    padding-top: 0px !important;
  }
  .u-pb-0-sp {
    padding-bottom: 0px !important;
  }
  .u-pl-0-sp {
    padding-left: 0px !important;
  }
  .u-pr-0-sp {
    padding-right: 0px !important;
  }
  .u-mt-5-sp {
    margin-top: 5px !important;
  }
  .u-mb-5-sp {
    margin-bottom: 5px !important;
  }
  .u-ml-5-sp {
    margin-left: 5px !important;
  }
  .u-mr-5-sp {
    margin-right: 5px !important;
  }
  .u-pt-5-sp {
    padding-top: 5px !important;
  }
  .u-pb-5-sp {
    padding-bottom: 5px !important;
  }
  .u-pl-5-sp {
    padding-left: 5px !important;
  }
  .u-pr-5-sp {
    padding-right: 5px !important;
  }
  .u-mt-10-sp {
    margin-top: 10px !important;
  }
  .u-mb-10-sp {
    margin-bottom: 10px !important;
  }
  .u-ml-10-sp {
    margin-left: 10px !important;
  }
  .u-mr-10-sp {
    margin-right: 10px !important;
  }
  .u-pt-10-sp {
    padding-top: 10px !important;
  }
  .u-pb-10-sp {
    padding-bottom: 10px !important;
  }
  .u-pl-10-sp {
    padding-left: 10px !important;
  }
  .u-pr-10-sp {
    padding-right: 10px !important;
  }
  .u-mt-15-sp {
    margin-top: 15px !important;
  }
  .u-mb-15-sp {
    margin-bottom: 15px !important;
  }
  .u-ml-15-sp {
    margin-left: 15px !important;
  }
  .u-mr-15-sp {
    margin-right: 15px !important;
  }
  .u-pt-15-sp {
    padding-top: 15px !important;
  }
  .u-pb-15-sp {
    padding-bottom: 15px !important;
  }
  .u-pl-15-sp {
    padding-left: 15px !important;
  }
  .u-pr-15-sp {
    padding-right: 15px !important;
  }
  .u-mt-20-sp {
    margin-top: 20px !important;
  }
  .u-mb-20-sp {
    margin-bottom: 20px !important;
  }
  .u-ml-20-sp {
    margin-left: 20px !important;
  }
  .u-mr-20-sp {
    margin-right: 20px !important;
  }
  .u-pt-20-sp {
    padding-top: 20px !important;
  }
  .u-pb-20-sp {
    padding-bottom: 20px !important;
  }
  .u-pl-20-sp {
    padding-left: 20px !important;
  }
  .u-pr-20-sp {
    padding-right: 20px !important;
  }
  .u-mt-25-sp {
    margin-top: 25px !important;
  }
  .u-mb-25-sp {
    margin-bottom: 25px !important;
  }
  .u-ml-25-sp {
    margin-left: 25px !important;
  }
  .u-mr-25-sp {
    margin-right: 25px !important;
  }
  .u-pt-25-sp {
    padding-top: 25px !important;
  }
  .u-pb-25-sp {
    padding-bottom: 25px !important;
  }
  .u-pl-25-sp {
    padding-left: 25px !important;
  }
  .u-pr-25-sp {
    padding-right: 25px !important;
  }
  .u-mt-30-sp {
    margin-top: 30px !important;
  }
  .u-mb-30-sp {
    margin-bottom: 30px !important;
  }
  .u-ml-30-sp {
    margin-left: 30px !important;
  }
  .u-mr-30-sp {
    margin-right: 30px !important;
  }
  .u-pt-30-sp {
    padding-top: 30px !important;
  }
  .u-pb-30-sp {
    padding-bottom: 30px !important;
  }
  .u-pl-30-sp {
    padding-left: 30px !important;
  }
  .u-pr-30-sp {
    padding-right: 30px !important;
  }
  .u-mt-35-sp {
    margin-top: 35px !important;
  }
  .u-mb-35-sp {
    margin-bottom: 35px !important;
  }
  .u-ml-35-sp {
    margin-left: 35px !important;
  }
  .u-mr-35-sp {
    margin-right: 35px !important;
  }
  .u-pt-35-sp {
    padding-top: 35px !important;
  }
  .u-pb-35-sp {
    padding-bottom: 35px !important;
  }
  .u-pl-35-sp {
    padding-left: 35px !important;
  }
  .u-pr-35-sp {
    padding-right: 35px !important;
  }
  .u-mt-40-sp {
    margin-top: 40px !important;
  }
  .u-mb-40-sp {
    margin-bottom: 40px !important;
  }
  .u-ml-40-sp {
    margin-left: 40px !important;
  }
  .u-mr-40-sp {
    margin-right: 40px !important;
  }
  .u-pt-40-sp {
    padding-top: 40px !important;
  }
  .u-pb-40-sp {
    padding-bottom: 40px !important;
  }
  .u-pl-40-sp {
    padding-left: 40px !important;
  }
  .u-pr-40-sp {
    padding-right: 40px !important;
  }
  .u-mt-45-sp {
    margin-top: 45px !important;
  }
  .u-mb-45-sp {
    margin-bottom: 45px !important;
  }
  .u-ml-45-sp {
    margin-left: 45px !important;
  }
  .u-mr-45-sp {
    margin-right: 45px !important;
  }
  .u-pt-45-sp {
    padding-top: 45px !important;
  }
  .u-pb-45-sp {
    padding-bottom: 45px !important;
  }
  .u-pl-45-sp {
    padding-left: 45px !important;
  }
  .u-pr-45-sp {
    padding-right: 45px !important;
  }
  .u-mt-50-sp {
    margin-top: 50px !important;
  }
  .u-mb-50-sp {
    margin-bottom: 50px !important;
  }
  .u-ml-50-sp {
    margin-left: 50px !important;
  }
  .u-mr-50-sp {
    margin-right: 50px !important;
  }
  .u-pt-50-sp {
    padding-top: 50px !important;
  }
  .u-pb-50-sp {
    padding-bottom: 50px !important;
  }
  .u-pl-50-sp {
    padding-left: 50px !important;
  }
  .u-pr-50-sp {
    padding-right: 50px !important;
  }
  .u-mt-55-sp {
    margin-top: 55px !important;
  }
  .u-mb-55-sp {
    margin-bottom: 55px !important;
  }
  .u-ml-55-sp {
    margin-left: 55px !important;
  }
  .u-mr-55-sp {
    margin-right: 55px !important;
  }
  .u-pt-55-sp {
    padding-top: 55px !important;
  }
  .u-pb-55-sp {
    padding-bottom: 55px !important;
  }
  .u-pl-55-sp {
    padding-left: 55px !important;
  }
  .u-pr-55-sp {
    padding-right: 55px !important;
  }
  .u-mt-60-sp {
    margin-top: 60px !important;
  }
  .u-mb-60-sp {
    margin-bottom: 60px !important;
  }
  .u-ml-60-sp {
    margin-left: 60px !important;
  }
  .u-mr-60-sp {
    margin-right: 60px !important;
  }
  .u-pt-60-sp {
    padding-top: 60px !important;
  }
  .u-pb-60-sp {
    padding-bottom: 60px !important;
  }
  .u-pl-60-sp {
    padding-left: 60px !important;
  }
  .u-pr-60-sp {
    padding-right: 60px !important;
  }
  .u-mt-65-sp {
    margin-top: 65px !important;
  }
  .u-mb-65-sp {
    margin-bottom: 65px !important;
  }
  .u-ml-65-sp {
    margin-left: 65px !important;
  }
  .u-mr-65-sp {
    margin-right: 65px !important;
  }
  .u-pt-65-sp {
    padding-top: 65px !important;
  }
  .u-pb-65-sp {
    padding-bottom: 65px !important;
  }
  .u-pl-65-sp {
    padding-left: 65px !important;
  }
  .u-pr-65-sp {
    padding-right: 65px !important;
  }
  .u-mt-70-sp {
    margin-top: 70px !important;
  }
  .u-mb-70-sp {
    margin-bottom: 70px !important;
  }
  .u-ml-70-sp {
    margin-left: 70px !important;
  }
  .u-mr-70-sp {
    margin-right: 70px !important;
  }
  .u-pt-70-sp {
    padding-top: 70px !important;
  }
  .u-pb-70-sp {
    padding-bottom: 70px !important;
  }
  .u-pl-70-sp {
    padding-left: 70px !important;
  }
  .u-pr-70-sp {
    padding-right: 70px !important;
  }
  .u-mt-75-sp {
    margin-top: 75px !important;
  }
  .u-mb-75-sp {
    margin-bottom: 75px !important;
  }
  .u-ml-75-sp {
    margin-left: 75px !important;
  }
  .u-mr-75-sp {
    margin-right: 75px !important;
  }
  .u-pt-75-sp {
    padding-top: 75px !important;
  }
  .u-pb-75-sp {
    padding-bottom: 75px !important;
  }
  .u-pl-75-sp {
    padding-left: 75px !important;
  }
  .u-pr-75-sp {
    padding-right: 75px !important;
  }
  .u-mt-80-sp {
    margin-top: 80px !important;
  }
  .u-mb-80-sp {
    margin-bottom: 80px !important;
  }
  .u-ml-80-sp {
    margin-left: 80px !important;
  }
  .u-mr-80-sp {
    margin-right: 80px !important;
  }
  .u-pt-80-sp {
    padding-top: 80px !important;
  }
  .u-pb-80-sp {
    padding-bottom: 80px !important;
  }
  .u-pl-80-sp {
    padding-left: 80px !important;
  }
  .u-pr-80-sp {
    padding-right: 80px !important;
  }
  .u-mt-85-sp {
    margin-top: 85px !important;
  }
  .u-mb-85-sp {
    margin-bottom: 85px !important;
  }
  .u-ml-85-sp {
    margin-left: 85px !important;
  }
  .u-mr-85-sp {
    margin-right: 85px !important;
  }
  .u-pt-85-sp {
    padding-top: 85px !important;
  }
  .u-pb-85-sp {
    padding-bottom: 85px !important;
  }
  .u-pl-85-sp {
    padding-left: 85px !important;
  }
  .u-pr-85-sp {
    padding-right: 85px !important;
  }
  .u-mt-90-sp {
    margin-top: 90px !important;
  }
  .u-mb-90-sp {
    margin-bottom: 90px !important;
  }
  .u-ml-90-sp {
    margin-left: 90px !important;
  }
  .u-mr-90-sp {
    margin-right: 90px !important;
  }
  .u-pt-90-sp {
    padding-top: 90px !important;
  }
  .u-pb-90-sp {
    padding-bottom: 90px !important;
  }
  .u-pl-90-sp {
    padding-left: 90px !important;
  }
  .u-pr-90-sp {
    padding-right: 90px !important;
  }
  .u-mt-95-sp {
    margin-top: 95px !important;
  }
  .u-mb-95-sp {
    margin-bottom: 95px !important;
  }
  .u-ml-95-sp {
    margin-left: 95px !important;
  }
  .u-mr-95-sp {
    margin-right: 95px !important;
  }
  .u-pt-95-sp {
    padding-top: 95px !important;
  }
  .u-pb-95-sp {
    padding-bottom: 95px !important;
  }
  .u-pl-95-sp {
    padding-left: 95px !important;
  }
  .u-pr-95-sp {
    padding-right: 95px !important;
  }
  .u-mt-100-sp {
    margin-top: 100px !important;
  }
  .u-mb-100-sp {
    margin-bottom: 100px !important;
  }
  .u-ml-100-sp {
    margin-left: 100px !important;
  }
  .u-mr-100-sp {
    margin-right: 100px !important;
  }
  .u-pt-100-sp {
    padding-top: 100px !important;
  }
  .u-pb-100-sp {
    padding-bottom: 100px !important;
  }
  .u-pl-100-sp {
    padding-left: 100px !important;
  }
  .u-pr-100-sp {
    padding-right: 100px !important;
  }
}

.u-left {
  text-align: left !important;
}

.u-center {
  text-align: center !important;
}

.u-right {
  text-align: right !important;
}

@media only screen and (min-width: 768px), print {
  .u-center-pc {
    text-align: center !important;
  }
}

.u-font-bold {
  font-weight: bold !important;
}

.u-font-normal {
  font-weight: normal !important;
}

.u-block {
  display: block !important;
}

.u-inline-block {
  display: inline-block !important;
}

.u-inline {
  display: inline !important;
}

.u-none {
  display: none !important;
}

@media only screen and (max-width: 767px) {
  .u-block-sp {
    display: block !important;
  }
  .u-inline-block-sp {
    display: inline-block !important;
  }
  .u-inline-sp {
    display: inline !important;
  }
}

@media only screen and (min-width: 768px), print {
  .u-block-pc {
    display: block !important;
  }
  .u-inline-block-pc {
    display: inline-block !important;
  }
  .u-inline-pc {
    display: inline !important;
  }
}

.u-clearfix:after {
  content: '';
  display: block;
  clear: both;
}

.u-nowrap {
  white-space: nowrap !important;
}

@media only screen and (max-width: 767px) {
  .u-hidden-sp {
    display: none !important;
  }
}

@media only screen and (min-width: 768px), print {
  .u-hidden-pc {
    display: none !important;
  }
}

@media only screen and (max-width: 968px) {
  .u-hidden-h-mq {
    display: none !important;
  }
}

@media only screen and (min-width: 968px), print {
  .u-hidden-h-pc {
    display: none !important;
  }
}

.u-wh {
  color: #fff;
}

.u-w-100 {
  width: 100% !important;
}

.u-flex, .u-flex-between, .u-flex-center {
  display: flex;
  flex-wrap: wrap;
}

.u-flex-between {
  justify-content: space-between;
}

.u-flex-center {
  justify-content: center;
}

.u-align-center {
  align-items: center;
}

.u-rel {
  position: relative;
}

.u-pointer-none {
  pointer-events: none;
}

.u-cover {
  object-fit: cover;
  font-family: 'object-fit: cover;';
}

.u-bold {
  font-weight: 600;
}

.u-en {
  font-weight: 700;
  font-family: 'Inter', sans-serif;
}

.inview {
  opacity: 0;
  -webkit-transition: 0.2s;
  transition: 0.2s;
  transition-delay: 0.4s;
}

.inview.-fadein {
  opacity: 1;
}

.inview.-blur {
  filter: blur(0.75em);
}

.inview.-blur.-fadein {
  filter: blur(0);
}

.inview.-blur2 {
  filter: blur(0.25em);
}

.inview.-blur2.-fadein {
  filter: blur(0);
}

.inview.-inviewUp {
  transform: translate(0, 0.25em);
  -webkit-transform: translate(0, 0.25em);
}

.inview.-inviewUp.-fadein {
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0);
}

.inview.-inviewDelay01 {
  transition-delay: 0.2s;
}

.inview.-inviewDelay01_5 {
  transition-delay: 0.3s;
}

.inview.-inviewDelay02 {
  transition-delay: 0.4s;
}

.inview.-inviewDelay02_5 {
  transition-delay: 0.5s;
}

.inview.-inviewDelay03 {
  transition-delay: 0.6s;
}

.inview.-inviewDelay03_5 {
  transition-delay: 0.7s;
}

.inview.-inviewDelayonline {
  transition-delay: 1.2s;
}

.inview.-inviewLeft {
  transform: translate(-2rem, 0);
  -webkit-transform: translate(-2rem, 0);
}

.inview.-inviewLeft.-fadein {
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0);
}

.inview.-inviewRight {
  transform: translate(2rem, 0);
  -webkit-transform: translate(2rem, 0);
}

.inview.-inviewRight.-fadein {
  transform: translate(0, 0);
  -webkit-transform: translate(0, 0);
}

.inview.-inv-txtcolor {
  color: #777777;
  overflow: hidden;
  transform: translate(-100%, 0);
  transition: transform cubic-bezier(0.215, 0.61, 0.355, 1) 2s;
}

.inview.-inv-txtcolor.-fadein {
  animation: txtcolor 0.5s 0.5s both;
  -webkit-animation: txtcolor 0.5s 0.5s both;
  transform: translate(0, 0);
}

@keyframes txtcolor {
  0% {
  }
  50% {
  }
  100% {
    color: #161616;
  }
}

.inview.-inv-menus {
  transform: scale(0.6);
  transition-duration: 0.5s;
}

.inview.-inv-menus.-fadein {
  transform: scale(1);
}

@media only screen and (max-width: 767px) {
  .main {
    width: 100vw;
    overflow-x: hidden;
  }
}

.mv {
  position: relative;
  overflow: hidden;
}

@media only screen and (max-width: 767px) {
  .mv {
    transform: scale(1.3);
    transform-origin: 50% 0;
  }
}

.mv__cont {
  width: 100%;
  position: relative;
  font-size: 1px;
  aspect-ratio: 1440/740;
  background: url(../img/mv/bg.png) 50%/cover #070836;
  overflow: hidden;
}

.mv__sp {
  font-size: calc(100vw / 90);
  z-index: 3;
  position: relative;
}

@media only screen and (max-width: 767px) {
  .mv__sp {
    font-size: calc(100vw / 90);
    height: 25em;
    background: #070836;
    margin-bottom: -1px;
  }
}

.mv__wrap {
  font-size: calc(100vw / 90);
}

.mv .-t {
  position: absolute;
}

.mv__box {
  width: 19em;
  top: calc(22.4em + 25em);
  left: 35.5em;
}

@media only screen and (min-width: 768px), print {
  .mv__box {
    top: 22.4em;
  }
}

.mv__floor {
  left: 0;
  top: calc(36.25em + 25em);
  width: 100%;
}

@media only screen and (min-width: 768px), print {
  .mv__floor {
    top: 36.25em;
  }
}

.mv__t_r1 {
  width: 16.6em;
  top: 12.26em;
  left: 62.67em;
  animation: t_r1 1.5s ease-in-out forwards 1.5s;
}

.mv__t_r1 img {
  animation: t_rotate1 1s ease-in-out infinite;
}

.mv__t_r2 {
  width: 21.6em;
  top: 7.43em;
  left: 55.9em;
  opacity: 0;
  animation: t_r2 0s ease-in-out forwards 3s;
}

.mv__t_r2 img {
  animation: t_rotate1 0.1s ease-in-out infinite;
}

.mv__t_c1 {
  width: 7.85em;
  top: 11.85em;
  left: 40.98em;
  animation: t_c1 1s ease-in-out forwards 3s;
}

.mv__t_c2 {
  width: 10.7em;
  top: 8.14em;
  left: 39.56em;
  opacity: 0;
  animation: t_c2 0s ease-in-out forwards 4s;
}

.mv__t_c2 img {
  animation: t_rotate1 0.3s ease-in-out infinite;
}

.mv__birdcages {
  width: 18.6em;
  left: 35.66em;
  top: calc(-80em - 25em);
  animation: birdcages_sp 0.5s ease-in-out forwards 4s;
}

@media only screen and (min-width: 768px), print {
  .mv__birdcages {
    animation: birdcages 0.5s ease-in-out forwards 4s;
    top: -80em;
  }
}

.mv__t_l1 {
  width: 16.6em;
  top: 11.4em;
  left: 8.16em;
  animation: t_l1 1s ease-in-out forwards 4s;
}

.mv__t_l1 img {
  animation: t_rotate1 1s ease-in-out infinite;
}

.mv__hole {
  width: 28.7em;
  top: 30.54em;
  left: 8.75em;
  opacity: 0;
  animation: hole 0s ease-in-out forwards 5s;
}

.mv__t_l2 {
  width: 17.9em;
  top: 10.86em;
  left: 15.18em;
  opacity: 0;
  animation: t_l2 1.5s ease-in-out forwards 4.8s;
}

.mv__t_l2 img {
  animation: t_rotate1 0.3s ease-in-out infinite;
}

.mv__h1 {
  top: -18em;
  animation: h1 0.4s cubic-bezier(0.58, -0.6, 0.32, 1.6) forwards 6.5s;
}

@media only screen and (min-width: 768px), print {
  .mv__h1 {
    top: -14em;
    left: 12.19em;
  }
}

@media only screen and (max-width: 767px) {
  .mv__h1 {
    display: flex;
    left: 0;
    width: 100%;
    justify-content: center;
  }
}

.mv__h1 img {
  width: 50em;
}

@media only screen and (min-width: 768px), print {
  .mv__h1 img {
    width: 38.8em;
  }
}

.mv__tape {
  opacity: 0.95 !important;
  position: absolute;
  top: calc(33em + 25em);
  transform: rotate(5deg);
  transform-origin: 50%;
  left: -1%;
  right: 0;
  margin: auto;
  overflow: hidden;
  display: flex;
  width: 105%;
}

@media only screen and (min-width: 768px), print {
  .mv__tape {
    top: 33em;
  }
}

.mv__tape img {
  max-width: none;
  flex-shrink: 0;
  width: 141em;
  height: auto;
  animation: tapeLoop 200s linear infinite;
  gap: 0;
}

.mv__tape img:nth-child(2) {
  margin-left: -100%;
}

.mv__tape.-y {
  background: #f9f06c;
  transform: rotate(-5deg);
}

.mv__tape.-y img {
  width: 132em;
  animation-direction: reverse;
}

@keyframes tapeLoop {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

@keyframes t_r1 {
  0% {
  }
  99% {
    left: 48.64em;
    transform: rotate(-10deg);
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes t_r2 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}

@keyframes t_c1 {
  0% {
  }
  99% {
    top: 12em;
    transform: scale(1.2);
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@keyframes t_c2 {
  0% {
  }
  100% {
    opacity: 1;
  }
}

@keyframes birdcages {
  0% {
  }
  100% {
    top: -45em;
  }
}

@keyframes birdcages_sp {
  0% {
  }
  100% {
    top: calc(-45em + 25em);
  }
}

@keyframes t_l1 {
  0% {
  }
  99% {
    transform: rotate(10deg);
    opacity: 1;
    left: 14.38em;
  }
  100% {
    opacity: 0;
  }
}

@keyframes hole {
  0% {
  }
  100% {
    opacity: 1;
  }
}

@keyframes t_l2 {
  0% {
  }
  20% {
    opacity: 1;
  }
  79% {
    opacity: 1;
  }
  80% {
    opacity: 1;
    top: 10.86em;
  }
  100% {
    opacity: 1;
    top: 36em;
  }
}

@keyframes h1 {
  0% {
  }
  70% {
    top: 12.72em;
  }
  85% {
    top: 13.5em;
  }
  100% {
    top: 12.72em;
  }
}

@keyframes t_rotate1 {
  0% {
    rotate: 0deg;
  }
  50% {
    rotate: -2deg;
  }
  100% {
    rotate: 0deg;
  }
}


.shippori_mincho_regular {
  font-family: "Noto Serif JP", serif;
  font-weight: 400;
  font-style: normal;
}

.shippori_mincho_medium {
  font-family: "Noto Serif JP", serif;
  font-weight: 500;
  font-style: normal;
}

.shippori_mincho_bold {
  font-family: "Noto Serif JP", serif;
  font-weight: 700;
  font-style: normal;
}

/* ===== Intro Section ===== */
.intro{
  position: relative;
  color: #fff;
  background: #062b3a url(../img/intro/bg.jpg) 50%/cover no-repeat; /* 背景画像を配置 */
  padding-top: 100px;
  overflow: hidden;
}
.intro::before{
  /* トーンを落として文字を読みやすくするオーバーレイ */
  content:"";
  position:absolute; inset:0;
  background: radial-gradient(80% 80% at 50% 40%, rgba(0,0,0,.0) 0%, rgba(0,0,0,.25) 60%, rgba(0,0,0,.45) 100%);
  pointer-events:none;
}
.intro__inner{
  position: relative;
  width: min(1100px, 92%);
  margin: 0 auto;
  z-index: 1;
  font-size: clamp(16px, 1.4vw, 20px);
  line-height: 2.3;
  text-align: center;
}
.intro__copy p{
  margin: .6em 0;
  letter-spacing: .06em;
  font-weight: bold;
}
.intro__dash{
  display:inline-block;
  opacity:.8;
  letter-spacing: .25em;
}
.intro__hl{
  text-shadow:
    0 0 6px rgba(80,120,255,.75),
    0 0 18px rgba(80,120,255,.45);
  padding: 0 .1em .05em;
  font-size: 42px;
  color: #F9F06C;
}
.intro__hl .white{color: #fff !important;}
.wrp__intro__h2{
  position: relative;
  margin: clamp(25px, 6vw, 70px) auto 0;
  width: fit-content;
}
.intro__h2{
  position: relative;
  z-index: 2;
  margin: auto;
  font-size: 40px;
  line-height: 1;
}
.intro__ink{
  position: absolute;
  right: -30px;
  bottom: -80px;
  max-width: 195px;
  aspect-ratio: 3/1.9;
  filter: drop-shadow(0 6px 18px rgba(0,0,0,.35));
  z-index: 1;
}

.pc-hidden{display: none;}

@media (max-width: 1200px){
  .intro{padding-top: 70px;}
}

/* モバイル微調整 */
@media (max-width: 767px){
  .pc-hidden{display: block;}
  .intro{ padding: 30px 0px 0px; margin-top: 89px;}
  .intro__inner{ font-size: 14px; }
  .intro__hl{font-size: 33px;}
  .intro__h2{font-size: 33px; line-height: 1.5;}
  .intro__ink{max-width: 125px; bottom: -40px;}
}

/* ===== 犯罪リスト ===== */
.crime{
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  margin-top: 70px;
}
.crime__item{
  position: relative;
  overflow: hidden;
  color: #fff;
  z-index: 3;
}
.crime__item img{
  width: 100%;
  display: block;
}
.crime__text{
  position: absolute; bottom: 0; left: 5%; width: fit-content; padding-bottom: 50px;
}
.crime__item:nth-of-type(1) .crime__text{left: auto; right: 10%;}
.crime__item:nth-of-type(4) .crime__text{left: auto; right: 20%;}
.crime__desc{
  font-size: 17px;
  line-height: 1.6;
  margin-bottom: 6px;
  color: #d0d7df;
  font-weight: bold;
}
.crime__ttl{
  font-family: "Noto Serif JP", serif;
  line-height: 1;
  font-size: 50px;
  font-weight: 700;
  color: #fff;
  text-shadow:
    0 0 10px rgba(255,0,0,.7),
    0 0 22px rgba(255,0,0,.5);
}
.crime__ttl .big{font-size: 60px;}

@media (max-width:1200px){
  .crime__text{padding-bottom: 30px;}
  .crime__desc{font-size: 14px;}
  .crime__ttl{font-size: 40px;}
  .crime__ttl .big{font-size: 48px;}
}

@media (max-width:1000px){
  .crime__text{padding-bottom: 20px;}
  .crime__ttl{font-size: 32px;}
  .crime__ttl .big{font-size: 40px;}
}

@media (max-width:767px){
  .crime{
    grid-template-columns: repeat(2,1fr);
    margin-top: 50px;
  }
  .crime__text{padding-bottom: 5px; left: 10px;}
  .crime__item:nth-of-type(1) .crime__text{left: 10px; right: auto;}
  .crime__item:nth-of-type(4) .crime__text{left: 10px; right: auto;}
  .crime__ttl{font-size: 24px;}
  .crime__ttl .big{font-size: 30px;}
  .crime__desc{margin-bottom: 0; font-size: 12px; line-height: 1.4;}
}

/* ===== Hero Section ===== */
.hero {
  position: relative;
  background: url(../img/hero/bg.jpg) 50%/cover no-repeat;
  color: #fff;
  text-align: center;
  padding: clamp(60px,10vw,100px) 0px;
}
.hero__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.hero__visual {
  margin-bottom: clamp(20px,3vw,30px);
}
/* .hero__visual img {
  max-width: 750px;
  width: 100%;
  margin: 0 auto;
  display: block;
  margin-top: -95px;
} */
/* ヒーロー周りのレイヤー設定 */
.hero__visual{ position: relative; }
.hero__visual .hero__img{ position: relative; z-index: 2; }

/* 光：常時回転 */
.hero__light{
  position: absolute;
  left: 50%; top: 17%;
  transform: translate(-50%, -50%);
  width: min(560px, 48vw);      /* 光の直径（必要なら微調整） */
  height: auto;
  z-index: 1;
  pointer-events: none;
  animation: heroSpin 24s linear infinite;
  will-change: transform;
  opacity: .95;                  /* ほんのり透過（任意） */
}

/* 回転キーフレーム */
@keyframes heroSpin{
  from{ transform: translate(-50%, -50%) rotate(0deg); }
  to  { transform: translate(-50%, -50%) rotate(360deg); }
}

/* 低速端末/ユーザー設定への配慮 */
@media (prefers-reduced-motion: reduce){
  .hero__light{ animation: none; }
}
.hero__lead {
  font-size: clamp(21px,2.4vw,40px);
  line-height: 1.3;
  position: relative;
  z-index: 2;
}
.hero__desc {
  font-size: clamp(16px,1.5vw,20px);
  line-height: 2.2;
  font-weight: bold;
}
.hero__note {
  margin-top: 5px;
  letter-spacing: 1px;
}
.hero__note p {
  display: inline-block;
  background: #1d1d1d;
  color: #fff;
  font-size: clamp(16px,1.5vw,20px);
  font-weight: 600;
  line-height: 1.6;
  margin: 15px auto;
  padding: 0 5px;
}

.hero__cta {
  margin-top: clamp(30px,5vw,50px);
}

/* ===== Reusable Button ===== */
/* ===== Reusable Button (資料請求) ===== */
.c-btn {
  display: inline-block;
  background: #006736;
  color: #fff;
  font-weight: 700;
  font-size: clamp(21px,3vw,32px);
  padding: 0.3em 3em;
  border-radius: 4px;
  text-decoration: none;
  transition: all 0.25s ease;
  border: 4px solid #F9F06C; /* 外枠の黄色はそのまま */
  box-shadow: inset 0 -4px 0 #01502A; /* 内側の底辺だけ濃い緑ライン */
  letter-spacing: 4px;
}
.c-btn:hover {
  background: #029344;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,.35);
}

@media (max-width:767px){
  .hero__note p{margin: 10px auto;}
}

/* ===== Threats Section ===== */
.threats {
  background: linear-gradient(#172e4c 0%, #f1f1f1 100%);
  text-align: center;
  padding: clamp(70px,8vw,100px) 20px clamp(60px,8vw,100px);
  color: #fff;
}
.threats__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.wrp__threats__h2 {
  position: relative;
  margin-bottom: clamp(40px,6vw,70px);
  display: inline-block;
}
.threats__h2 {
  font-size: clamp(26px,3vw,40px);
  font-weight: 400;
  position: relative;
  z-index: 2;
}
.threats__ink {
  position: absolute;
  top: -20px;
  right: -60px;
  max-width: 160px;
  z-index: 1;
}
.threats__ink img {width: 100%; height: auto;}

.threats__list {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px,1fr));
  gap: 15px;
  margin-bottom: clamp(40px,6vw,70px);
}
.threats__item {
  background: #111;
  color: #fff;
  text-align: left;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.threats__item img {
  width: 100%;
  display: block;
}
.threats__body {
  text-align: center;
  padding: 20px;
  flex: 1;
}
.threats__ttl {
  font-size: clamp(24px,2.2vw,32px);
  margin-bottom: 12px;
  color: #fff;
  line-height: 1.2;
  min-height: 2.8em; /* 2行分の高さを確保 */
  display: flex;
  align-items: center;   /* 上下中央寄せ */
  justify-content: center; /* 中央寄せ（任意、左揃えにしたい場合は削除） */
  text-align: center;    /* 複数行のときも中央揃え */
  text-shadow:
    0 0 10px rgba(255,0,0,.7),
    0 0 22px rgba(255,0,0,.5);
}
.threats__ttl .big{font-size: clamp(32px,2.8vw,42px);}
.threats__desc {
  font-size: clamp(16px,1.5vw,18px);
  line-height: 1.8;
  color: #ddd;
}

.threats__cta {
  margin-top: clamp(30px,5vw,60px);
}
@media (max-width:767px){
  .threats__ink{top: -40px;}
  .threats__ttl{min-height: auto;}
  .threats__body{padding: 15px;}
}

/* ===== Cases Section ===== */
.cases{
  background: #006736; /* 緑のベタ背景 */
  padding: clamp(70px,8vw,100px) 20px;
  color:#fff;
}
.cases__inner{max-width:1100px; margin:0 auto;}
.wrp__cases__h2{position:relative; display:block; width: fit-content; margin:0 auto clamp(36px,5vw,56px);}
.cases__h2{font-size:clamp(24px,2.6vw,36px); font-weight:400; position: relative; z-index: 3;}
.cases__ink{position:absolute; top:-45px; right:40px; width:min(190px,28vw);}
.wrp__cases__h2 img{width:100%; height:auto;}

/* list */
.cases__list{display:grid; gap:clamp(18px,3vw,28px);}
.cases__panel{
  position:relative;
  background: url(../img/cases/bg.jpg) 50%/cover no-repeat; /* 青テクスチャを流用 */
  padding: clamp(18px,2.2vw,26px) clamp(18px,3vw,32px);
  box-shadow: 0 8px 20px rgba(0,0,0,.25);
}

/* タイトル（赤い発光） */
.cases__ttl{
  text-align:center;
  font-size: clamp(24px,2.5vw,32px);
  line-height:1.2;
  margin: 10px 0 20px;
  text-shadow: 0 0 10px rgba(255,0,0,.7), 0 0 22px rgba(255,0,0,.5);
}
.cases__ttl .big{font-size: clamp(30px,2.9vw,42px);}

/* 吹き出しとコンサルを“横並び”にする行 */
.cases__row{
  display:flex;
  align-items:flex-start;                   /* 吹き出しの高さに対して中央で揃える */
  justify-content: space-between;
  gap: clamp(14px,2vw,24px);
  margin-top: clamp(10px,1.5vw,16px);
}
.cases__item.-rev .cases__row{ flex-direction: row-reverse; }

/* 吹き出し */
.cases__balloon{
  flex: 1 1 auto;
  position: relative;
  background:#fff;
  color:#161616;
  border-radius: 4px;
  padding: clamp(20px,2.5vw,30px) clamp(15px,2.2vw,20px);
  max-width: none;
  font-size: clamp(16px,1.5vw,18px);
  font-weight: 600;
}
.cases__balloon::after{
  content:"";
  position:absolute;
  top:50%; transform: translateY(-50%);
  right:-12px;                          /* デフォ：右側にコンサルがいる想定 */
  border-style: solid;
  border-width: 10px 0 10px 12px;
  border-color: transparent transparent transparent #fff;
}
.cases__item.-rev .cases__balloon::after{
  right:auto; left:-12px;               /* 反転バージョン */
  border-width: 10px 12px 10px 0;
  border-color: transparent #fff transparent transparent;
}

/* コンサル（通常フローで横並び） */
.cases__consultant{
  position: static;
  transform: none;
  flex: 0 0 auto;
  text-align:center;
  color:#fff;
}
.cases__consultant img{
  width:120px; height:120px;
  border-radius:50%;
  display:block;
  background:#0d2038;
  margin:0 auto 6px;
}
.cases__consultant figcaption{
  font-size:12px; opacity:.9; letter-spacing:.06em;
}

/* レスポンシブ */
@media (max-width: 767px){
  .cases{padding: 56px 16px 72px;}
  .cases__row{ gap: 10px; }
  .cases__balloon{font-size: 14px;}
  .cases__balloon::after{top: 10%; border-width: 8px 0 8px 10px; right: -9px;}
  .cases__consultant img{width: 65px; height: 65px;}
  .cases__ttl{margin-top: 0;}
  .cases__h2{text-align: center; line-height: 1.4;}
  .cases__ink{top: -5px;}
}

/* ===== FAQ Section ===== */
.faq{
  position: relative;
  background: url(../img/faq/bg.jpg) 100%/cover no-repeat;
  padding: clamp(70px,8vw,110px) 20px clamp(80px,8vw,120px);
  color:#161616;
}
.faq::before{
  /* うっすら白ベールで文字の可読性UP */
  content:""; position:absolute; inset:0; background: rgba(255,255,255,.35);
}
.faq__inner{position: relative; max-width: 1100px; margin:0 auto; z-index:1;}
.wrp__faq__h2{ text-align:center; margin-bottom: clamp(26px,4vw,36px); }
.faq__h2{ font-size: clamp(24px,2.6vw,36px); color:#1a3a2d; letter-spacing:.08em; }

.faq__list{ display:grid; gap: clamp(16px,2.6vw,24px); }

.faq__item{ list-style:none; }
.faq__card{
  background:#fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
  padding: clamp(15px,2.3vw,30px);
}

/* Question bar */
.faq__qbar{
  position: relative;
  display: inline-block;
  background: #006736;
  padding: 5px 10px;
  padding-left: 60px;
  margin-bottom: 20px;
}
.faq__q{
  position: absolute;
  left: 10px; top: -3px; margin: auto;
  height: 45px;
  font-weight: 700;
  font-size: clamp(21px,2.2vw,32px);
  color: #F9F06C;                /* 黄色 */
}
.faq__question{
  margin: 0;
  color: #fff;
  font-weight: 700;
  font-size: clamp(18px,2vw,24px);
  line-height: 1.6;
  letter-spacing: .02em;
}

/* Answer block */
.faq__answer{
  position: relative;
  padding-left: 50px;
}
.faq__a{
  position: absolute;
  font-size: clamp(21px,2.2vw,27px);
  top: -10px; left: 10px;
  font-weight: 700;
  color:#000;
}
.faq__answer p{
  margin:0;
  line-height: 1.8;
  font-size: clamp(14px,1.6vw,16px);
  color:#161616;
}

/* Spacing between cards */
.faq__item + .faq__item{ margin-top: clamp(10px,2.2vw,18px); }

@media (max-width: 1100px){
  .faq__q{top: 0; height: 40px; bottom: 0;}
  .faq__qbar{padding-left: 45px; margin-bottom: 15px;}
  .faq__a{top: -5px;}
  .faq__answer{padding-left: 45px;}
}
/* Responsive */
@media (max-width: 767px){
  .faq{ padding: 56px 16px 72px; }
  .faq__card{ padding: 14px; }
  .faq__question{ font-size: 16px; }
  .faq__answer p{ font-size: 15px; line-height: 1.8; }
}

/* ===== CTA Section ===== */
.cta{
  position: relative;
  background: url(../img/cta/bg.jpg) 50%/cover no-repeat; /* 緑のボケ背景 */
  color:#fff;
  padding: clamp(50px,7vw,80px) 20px 0;
  overflow: hidden;
}
.cta__inner{
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.2fr 1fr; /* 左テキスト / 右ビジュアル */
  align-items: center;
  gap: clamp(24px,4vw,56px);
}
.cta__copy{
  text-align: left;
}
.cta__h2{
  font-size: clamp(28px,3.5vw,40px);
  line-height: 1.5;
  letter-spacing: .03em;
}
.cta__desc{
  margin-top: clamp(15px,2vw,30px);
  line-height: 2.0;
  font-size: clamp(14px,1.5vw,18px);
  opacity: .95;
}
.cta__desc p + p{ margin-top: .3em; }

.cta__btn{
  margin-top: clamp(20px,3.5vw,40px);
}

/* 右側イラスト＋発光 */
/* .cta__visual{
  position: relative;
  min-height: clamp(260px,42vw,520px);
}
.cta__visual img{
  position: absolute;
  right: 0;
  bottom: 0;
  max-width: 130%;
} */
/* CTAビジュアル：光とヒーロー */
.cta__visual{ position: relative; }
.cta__visual .cta__img{
  position: relative;
  z-index: 2;
}

/* 光：常時回転 */
.cta__light{
  position: absolute;
  left: 20%; top: 50%;
  transform: translate(-50%, -50%);
  width: min(600px, 52vw);   /* 光の直径（微調整OK） */
  height: auto;
  z-index: 1;
  pointer-events: none;
  animation: ctaSpin 28s linear infinite; /* ゆっくり回転 */
  will-change: transform;
  opacity: .9;               /* 少し透過感を出す */
}

/* 回転アニメーション */
@keyframes ctaSpin{
  from{ transform: translate(-50%, -50%) rotate(0deg); }
  to  { transform: translate(-50%, -50%) rotate(360deg); }
}

/* 低速端末/ユーザー設定への配慮 */
@media (prefers-reduced-motion: reduce){
  .cta__light{ animation: none; }
}

/* 共通ボタンの大きめ版 */
.c-btn.c-btn--lg{
  font-size: clamp(18px,2.2vw,26px);
  padding: .5em 1.6em;
  border-width: 4px;
  letter-spacing: .12em;
}

/* Responsive */
@media (max-width: 1024px){
  .intro__hl{font-size: 36px;}
  .cta__inner{ grid-template-columns: 1.5fr 1fr;}

}
@media (max-width: 767px){
  .cta{padding: 50px 15px 0;}
  .cta__copy{text-align: center;}
  .cta__inner{ grid-template-columns: 1fr; }
  .cta__h2{ font-size: 28px; line-height: 1.7; }
  .cta__desc{ font-size: 15px; line-height: 1.9; }
  .cta__visual{ min-height: 280px; text-align: right;}
  .cta__visual img{ width: min(300px,65vw);}
  .cta__light{left: 40%;}
}

/* ===== Company Section ===== */
.company{
  background: #f2f7f5; /* ごく薄いグリーン系 */
  padding: clamp(50px,8vw,100px) 15px;
  color:#161616;
}
.company__inner{max-width: 980px; margin: 0 auto;}
.company__h2{
  text-align: center;
  font-size: clamp(26px,3.2vw,40px);
  font-weight: 400;
  letter-spacing: .04em;
  margin-bottom: clamp(26px,4vw,40px);
}

/* 表組み */
.company__table{
  width: 100%;
}
.company__row{
  display: grid;
  grid-template-columns: 160px 1fr;
  align-items: start;
  gap: 18px;
  padding: 16px 0;
  border-bottom: 1px solid #e2e8e5;
}
.company__row:first-child{ border-top: 0; }

.company__table dt{
  color:#1d1d1d;
  font-weight: 700;
  letter-spacing: .02em;
  text-align: center;
}
.company__table dd{
  color:#1d1d1d;
  line-height: 1.9;
}
.company__table a{
  color:#2a7fd1;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* SP */
@media (max-width: 767px){
  .company{ padding: 50px 15px; }
  .company__table{ padding: 10px 14px; }
  .company__row{
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 14px 0;
  }
  .company__table dt{
    text-align: left;
    font-size: 14px;
  }
  .company__table dd{
    font-size: 15px;
    line-height: 1.8;
  }
}

/* ===== Contact Section ===== */
.contact{
  background:#fff;
  padding: clamp(70px,8vw,100px) 20px;
  color:#111;
}
.contact__inner{max-width: 860px; margin:0 auto;}
.contact__h2{
  text-align:center;
  font-size: clamp(28px,3.6vw,42px);
  font-weight:400;
  letter-spacing:.06em;
  margin-bottom: 30px;
}
.contact__lead{
  text-align:center;
  line-height:1.9;
  margin-bottom: clamp(26px,4vw,38px);
  font-size: clamp(14px,1.6vw,16px);
}
.contact__reqnote{ color:#c14a4a; }

/* form layout */
.contact__form{ width:100%; }
.contact__row{
  display:grid;
  grid-template-columns: 180px 1fr;
  gap: 20px;
  align-items:center;
  padding: 20px 0;
}
.contact__row.al_st{align-items: flex-start;}
.contact__label{
  font-weight:700;
  color:#1d1d1d;
  text-align: center;
  display: block;
}
.req{ color:#d33; margin-left:.25em; }
.contact__field{ width:100%; }

.input,
.textarea,
.select select{
  width: 100%;
  font-size: 16px;
  line-height: 1.6;
  color:#222;
  background:#F8F8F8;
  border:2px solid #e6e6e6;
  padding: 14px 16px;
  outline: none;
  transition: box-shadow .15s ease, border-color .15s ease;
}
.select{width: fit-content;}
.input:focus,
.textarea:focus,
.select select:focus{
  border-color:#0a6a3c;
  box-shadow: 0 0 0 3px rgba(10,106,60,.15);
  background:#fff;
}
.textarea{ resize: vertical; min-height: 180px; }
.select select{width: auto;}

/* custom select */
.select{ position:relative; }
.select::after{
  content:"";
  position:absolute; right: 20px; top: 45%; transform: translateY(-50%);
  width: 10px; height: 10px;
  border-right:2px solid #555; border-bottom:2px solid #555;
  rotate: 45deg;
  pointer-events:none;
}
.select select{
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  padding-right: 40px;
  background:#f6f6f6;
}

/* custom checkbox */
.contact__checks{ display:flex; gap: 28px; align-items:center; }
.chk{ display:inline-flex; align-items:center; gap:10px; cursor:pointer; user-select:none; }
.chk__inp{ position:absolute; opacity:0; pointer-events:none; }
/* custom checkbox 修正版 */
.chk__box{
  width: 32px; height: 32px;
  border-radius: 3px;
  background:#F8F8F8;
  border:2px solid #e6e6e6;
  position:relative;
  display:inline-block;
}

.chk__inp:checked + .chk__box{
  background:#F8F8F8;                /* 背景は白のまま */
  border-color:#e6e6e6;
}

.chk__inp:checked + .chk__box::after{
  content:"";
  position:absolute;
  left:9px; top:5px;
  width: 10px; height: 16px;
  border-right:3px solid #0a6a3c; /* 緑のチェックマーク */
  border-bottom:3px solid #0a6a3c;
  transform: rotate(45deg);
}
.chk__lbl{ color:#1d1d1d; }

/* submit */
.contact__submit{
  text-align:center;
  margin-top: clamp(26px,4vw,40px);
}

/* Button size tweak for this section (reuses .c-btn base) */
.c-btn.c-btn--lg{
  min-width: 280px;
}

/* responsive */
@media (max-width: 767px){
  .contact{ padding: 56px 16px 72px; }
  .contact__row{
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: start;
  }
  .contact__label{ text-align: left; margin-bottom: 10px;}
  .contact__checks{ gap: 20px; }
  .textarea{ min-height: 160px; }
  .c-btn{padding: 15px 3em;}
  .c-btn.c-btn--lg{padding: 15px 1.6em;}
}

footer{height: 30px; background-color: #006736; border-top: 4px solid #000;}
.hidden-fields-container{visibility: hidden;}
.wpcf7-list-item.first{margin-right: 30px;}
.wpcf7-list-item-label{margin-left: 10px;}
