@charset "UTF-8";
/*!
global > color
------------------------------
*/
:root {
  --color01: #222222;
  --color02: #666666;
  --color03: #8C8C8C;
  --color04: #008355;
  --color05: #0E8E5D;
  --color06: #57A87D;
  --color07: #ABDBCC;
  --color08: #DFEBE7;
  --color09: #A8BEBA;
  --color10: #FFF57E;
  --color11: #F4F2DF;
  --color12: #FBFCF0;
  --color13: #B45D5D;
  --color14: #EB6368;
  --color15: #FCF2F2;
  --color16: #E66060;
}

/*!
global > font
------------------------------
*/
:root {
  --font-family01: "Nunito", "Zen Maru Gothic", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", Helvetica, Arial, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-family02: "Lato", "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", Helvetica, Arial, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-family03: "Noto Sans JP", "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "游ゴシック体", "Yu Gothic", YuGothic, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", Helvetica, Arial, -apple-system, BlinkMacSystemFont, sans-serif;
}

/*!
global > content-width
------------------------------
*/
:root {
  --width01: 800px;
  --width02: 632px;
  --width03: 768px;
  --width04: 784px;
}

/*!
foundation > reset
------------------------------
*/
html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
main, article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  line-height: 1;
}

main {
  display: block;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
  display: block;
}

ul, ol {
  list-style: none;
}

blockquote, q {
  quotes: none;
}
blockquote:before, blockquote:after, q:before, q:after {
  content: "";
  content: none;
}

a {
  text-decoration: none;
  color: inherit;
  outline: 0;
  cursor: pointer;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}

input,
textarea,
select,
button {
  color: inherit;
  font-family: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  border-radius: 0;
  border: none;
  appearance: none;
  background: none;
  outline: 0;
}

textarea {
  resize: vertical;
  display: block;
}

button {
  padding: 0;
  border: none;
  background: none;
  outline: 0;
  cursor: pointer;
}

img {
  max-width: 100%;
  vertical-align: bottom;
}

svg {
  vertical-align: bottom;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
}

address,
caption,
cite,
code,
dfn,
em,
th,
td,
var {
  font-style: normal;
  font-weight: normal;
}

strong {
  font-weight: bold;
}

* {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  box-sizing: border-box;
}

*::before,
*::after {
  box-sizing: border-box;
}

/*!
foundation > base
------------------------------
*/
* {
  box-sizing: border-box;
}

html {
  font-size: 62.5%;
}

body {
  position: relative;
  min-width: 320px;
  background: #F1F9F8 url(../img/bg_pt_01.png) 50% top repeat;
  background-size: 6px 6px;
  color: var(--color01);
  font-family: var(--font-family01);
  font-size: 1.6em;
  font-weight: 400;
  line-height: 1.8;
  -webkit-font-feature-settings: "palt";
  font-feature-settings: "palt";
  -webkit-text-size-adjust: 100%;
}
@media (max-width: 392px) {
  body {
    font-size: 4.0712468193vw;
  }
}

main {
  overflow: hidden;
}

img {
  display: block;
}

*:focus {
  outline: none;
}

/*!
layout > container
------------------------------
*/
.l-container01 {
  width: 100%;
  margin: 0 auto;
}

.l-container01 {
  max-width: var(--width01);
  background: #fff;
  box-shadow: 0 0 24px #CFE0DD;
}

/*!
layout > footer
------------------------------
*/
.l-footer {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: 3em 1em;
  background: #006844;
  color: #fff;
  font-family: var(--font-family02);
  font-size: 0.625em;
  line-height: 1.2;
  letter-spacing: 0.03em;
  text-align: center;
}

/*!
component > inner
------------------------------
*/
.c-inner04, .c-inner03, .c-inner02 {
  width: 100%;
  margin: 0 auto;
}

.c-inner01 {
  padding: 0 1em;
}

.c-inner02 {
  max-width: var(--width02);
  padding: 0 1em;
}

.c-inner03 {
  max-width: var(--width03);
  padding: 0 1em;
}

.c-inner04 {
  max-width: var(--width04);
  padding: 0 1em;
}

/*!
component > box
------------------------------
*/
.c-box02, .c-box01 {
  width: 100%;
  margin: 0 auto;
}

.c-box01 {
  padding: 1em;
  background: #fff;
  border-radius: 0.5em;
  box-shadow: 0 0 0.25em rgba(140, 140, 140, 0.2);
}
@media screen and (min-width: 811px) {
  .c-box01 {
    padding: 1.6rem 1.6rem 2.4rem;
  }
}
.c-box01:not(:last-child) {
  margin-bottom: 0.5em;
}
@media screen and (min-width: 811px) {
  .c-box01:not(:last-child) {
    margin-bottom: 2.4rem;
  }
}
.c-box01--color11 {
  border: 0.125em solid var(--color11);
}

.c-box02 {
  padding: 2.5em 1em 1em;
  background: #fff;
  border: 0.1em solid #398159;
  border-radius: 0.5em;
}
@media screen and (min-width: 811px) {
  .c-box02 {
    border: 0.2rem solid #398159;
  }
}

/*!
component > text
------------------------------
*/
.c-note01 {
  color: var(--color02);
  font-family: var(--font-family02);
  font-size: 0.5em;
  line-height: 1.5;
}
@media screen and (min-width: 811px) {
  .c-note01 {
    font-size: 0.75em;
  }
}
.c-note01--up {
  color: var(--color01);
  vertical-align: super;
}

.c-note02 {
  font-size: 0.875em;
  font-family: var(--font-family02);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.06em;
}

.c-marker01 {
  background: var(--color10);
  font-weight: bold;
}

/*!
component > button
------------------------------
*/
.c-button01-wrap {
  width: 100%;
  margin: 0 auto;
}

.c-button01 {
  position: relative;
  display: block;
  width: 100%;
  padding: 1.15em 1em;
  border: 0.15em solid #fff;
  border-radius: 100vh;
  background: var(--color05);
  color: #fff;
  font-size: 1.375em;
  font-weight: bold;
  line-height: 1;
  text-align: center;
  transition: transform 0.3s ease-in-out;
}
.c-button01:hover {
  transform: translateY(0.2em);
}
.c-button01::after {
  content: "";
  position: absolute;
  display: block;
  width: 0.5em;
  height: 0.5em;
  top: 50%;
  right: 0.8em;
  bottom: auto;
  left: auto;
  border-top: 0.15em solid currentcolor;
  border-right: 0.15em solid currentcolor;
  border-radius: 0.1em;
  transform: translateY(-50%) rotate(45deg);
  transition: transform 0.3s ease;
}
.c-button01-wrap {
  position: relative;
  z-index: 0;
  text-align: center;
}
.c-button01-wrap::before {
  display: block;
  content: "";
  width: 66.66%;
  height: 58.75%;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: -1;
  background: rgba(78, 78, 78, 0.5);
  border-radius: 100vh;
  filter: blur(0.5em);
  transform: translateX(-50%);
}
@media screen and (min-width: 811px) {
  .c-button01-wrap::before {
    width: 83.3%;
  }
}
.c-button01-wrap:not(:last-child) {
  margin-bottom: 2em;
}
@media screen and (min-width: 811px) {
  .c-button01-wrap:not(:last-child) {
    margin-bottom: 4rem;
  }
}
.c-button01-wrap--2row::before {
  top: 50%;
  height: 54%;
}
.c-button01--2row {
  padding: 0.4em 1em;
  line-height: 1.25;
}
.c-button01--color16 {
  background: var(--color16);
}

/*!
component > js
------------------------------
*/
.js-fadeIn {
  transform: translateY(4em);
  opacity: 0;
  visibility: hidden;
  transition: transform 1s 0.2s cubic-bezier(0.23, 1, 0.32, 1), opacity 1s 0.2s ease, visibility 1s 0.2s ease;
}
.js-fadeIn.is-animated {
  transform: translateX(0);
  opacity: 1;
  visibility: visible;
}

/*!
project > fv
------------------------------
*/
.p-fv {
  position: relative;
  width: 100%;
}
.p-fv::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 1.5em;
  top: auto;
  right: auto;
  bottom: 0;
  left: 0;
  background: url(../img/bg_parts01.svg) no-repeat center/100% 100%;
}
@media screen and (min-width: 768px) {
  .p-fv::before {
    height: 2em;
  }
}
.p-fv__inner {
  position: absolute;
  display: block;
  width: calc(100% - 2em);
  height: 100%;
  top: 0;
  right: auto;
  bottom: auto;
  left: 0;
  margin-right: 2em;
}
@media screen and (min-width: 811px) {
  .p-fv__inner {
    right: 0;
    max-width: 600px;
    margin: 0 auto;
  }
}
.p-fv__image {
  width: 100%;
}
.p-fv__title {
  position: absolute;
  display: block;
  width: 47.5%;
  height: auto;
  top: 50%;
  right: 0;
  bottom: auto;
  left: auto;
  max-width: 298px;
  transform: translateY(-50%);
}
.p-fv__title img {
  width: 100%;
}
.p-fv__logo {
  width: 15%;
  max-width: 90px;
  margin: 0.3em auto auto 0.3em;
}
@media screen and (min-width: 811px) {
  .p-fv__logo {
    margin: 8px 0 0 -92px;
  }
}

/*!
project > section01
------------------------------
*/
.p-section01 {
  position: relative;
  margin-bottom: 1.5em;
  padding-bottom: 2.6em;
  background: var(--color12);
}
@media screen and (min-width: 768px) {
  .p-section01 {
    padding-bottom: 4rem;
    margin-bottom: 2em;
  }
}
.p-section01::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 1.5em;
  top: 100%;
  right: auto;
  bottom: auto;
  left: 0;
  background: url(../img/bg_parts02.svg) no-repeat center/100% 100%;
}
@media screen and (min-width: 768px) {
  .p-section01::after {
    height: 2em;
  }
}
.p-section01__wrap01:not(:last-child) {
  margin-bottom: 2em;
}
.p-section01__wrap02 {
  max-width: 400px;
  margin: 0 auto;
}
.p-section01__wrap02:not(:last-child) {
  margin-bottom: 0.5em;
}
@media screen and (min-width: 811px) {
  .p-section01__wrap02:not(:last-child) {
    margin-bottom: 2.4rem;
  }
}
.p-section01__catch01 {
  color: var(--color14);
  font-size: 1.375em;
  font-weight: 900;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section01__catch01 {
    padding: 2.4rem 0;
    font-size: 2em;
    line-height: 1.3;
  }
}
.p-section01__catch02 {
  margin-bottom: 0.44em;
  font-size: 1.125em;
  font-weight: bold;
  line-height: 1.44;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section01__catch02 {
    margin-bottom: 0.8rem;
    font-size: 1.5em;
  }
}
.p-section01__catch03 {
  margin-bottom: 0.16em;
  color: var(--color04);
  font-size: 1.625em;
  font-weight: bold;
  text-align: center;
  line-height: 1.4;
}
@media screen and (min-width: 811px) {
  .p-section01__catch03 {
    margin-bottom: 0.8rem;
    font-size: 1.875em;
  }
}
.p-section01__catch03 > span {
  position: relative;
  z-index: 0;
}
.p-section01__catch03 > span::after {
  content: "";
  position: absolute;
  display: block;
  width: calc(100% + 0.5em);
  height: 23%;
  top: auto;
  right: auto;
  bottom: 0.1em;
  left: -0.25em;
  z-index: -1;
  background: var(--color10);
}
@media screen and (min-width: 811px) {
  .p-section01__catch03 > span::after {
    bottom: 0.2em;
    left: 0;
    width: 100%;
  }
}
.p-section01__catch03 > span:last-child::before {
  content: "";
  display: inline-block;
  width: 11.2%;
  max-width: 36px;
  height: 1em;
  margin-bottom: 0.1em;
  background: url(../img/section01_text01.svg) no-repeat center/contain;
  vertical-align: middle;
}
.p-section01__tag01 {
  display: inline-block;
  padding: 0.3em 0.55em;
  border-radius: 0.25em;
  background: var(--color08);
  color: var(--color04);
  font-size: 0.875em;
  font-family: var(--font-family02);
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.05em;
}
.p-section01__tag01-wrap {
  margin-bottom: 1em;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section01__tag01-wrap {
    margin-bottom: 0.8rem;
  }
}
.p-section01__image01 {
  width: 79%;
  max-width: 257px;
  margin: 0 auto 0.5em;
}
@media screen and (min-width: 811px) {
  .p-section01__image01 {
    margin-bottom: 1.6rem;
  }
}
.p-section01-link {
  position: relative;
  display: inline-block;
  color: var(--color04);
  font-size: 0.75em;
  font-family: var(--font-family02);
  transition: opacity 0.3s;
}
.p-section01-link:hover {
  opacity: 0.7;
}
.p-section01-link::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 0.1em;
  top: auto;
  right: auto;
  bottom: -0.25em;
  left: 0;
  background: var(--color04);
}
.p-section01-link::after {
  content: "";
  display: inline-block;
  width: 0.5em;
  height: 0.5em;
  margin: 0 0 0.1em 0.5em;
  border-top: 0.2em solid currentcolor;
  border-right: 0.2em solid currentcolor;
  transform: rotate(45deg);
  transition: opacity 0.3s ease;
  border-radius: 0.05em;
}
.p-section01-link-wrap {
  text-align: center;
  line-height: 1;
}
.p-section01-2col {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  gap: 0.5em;
  max-width: 400px;
  margin: 0 auto 0.5em;
}
.p-section01-2col__image {
  width: 29%;
}
@media screen and (min-width: 811px) {
  .p-section01-2col__image {
    width: 33.75%;
  }
}
.p-section01-2col__text {
  width: 54%;
}
@media screen and (min-width: 811px) {
  .p-section01-2col__text {
    width: calc(66.25% - 0.5em);
  }
}
.p-section01-2col__text > span:first-child {
  font-size: 0.625em;
  font-weight: bold;
}
@media screen and (min-width: 811px) {
  .p-section01-2col__text > span:first-child {
    font-size: 1.25em;
  }
}
.p-section01-2col__text > span:last-child {
  display: block;
  color: var(--color04);
  font-size: 1em;
  font-weight: bold;
  line-height: 1;
}
@media screen and (min-width: 811px) {
  .p-section01-2col__text > span:last-child {
    font-size: 1.5em;
    letter-spacing: -0.01em;
  }
}

/*!
project > section02
------------------------------
*/
.p-section02 {
  position: relative;
  margin-bottom: 4em;
  padding: 1.5em 0 1em;
}
@media screen and (min-width: 811px) {
  .p-section02 {
    margin-bottom: 8.8rem;
    padding-bottom: 0;
  }
}
.p-section02__wrap01 {
  margin-bottom: 2.6em;
}
.p-section02__wrap02 {
  margin-bottom: 1.5em;
}
@media screen and (min-width: 811px) {
  .p-section02__wrap02 {
    float: right;
    width: calc(50% - 1.2rem);
  }
}
.p-section02__wrap03 {
  max-width: 458px;
  margin: 0 auto;
}
@media screen and (min-width: 811px) {
  .p-section02__wrap03 {
    max-width: 540px;
  }
}
.p-section02-2col {
  margin-bottom: 2.5em;
}
@media screen and (min-width: 811px) {
  .p-section02-2col {
    margin-bottom: 4rem;
  }
}
.p-section02__title {
  width: 80%;
  max-width: 300px;
  margin: 0 auto 0.5em;
}
.p-section02__text01 {
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.5;
  letter-spacing: -0.05em;
  text-align: center;
}
.p-section02__text02 {
  font-size: 1.125em;
  font-family: var(--font-family02);
  line-height: 1.7;
  letter-spacing: 0.06em;
}
.p-section02__text03 {
  border-bottom: 0.1em dotted var(--color06);
  font-size: 1.25em;
  font-weight: bold;
  text-align: center;
  line-height: 2.25;
}
@media screen and (min-width: 811px) {
  .p-section02__text03 {
    font-size: 2.4rem;
  }
}
.p-section02__text03:nth-child(3) {
  position: relative;
}
.p-section02__text03:nth-child(3)::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 0;
  top: 50%;
  right: auto;
  bottom: auto;
  left: 0;
  border-bottom: 0.1em dotted var(--color06);
}
@media screen and (min-width: 811px) {
  .p-section02__text03:nth-child(3)::before {
    content: none;
  }
}
@media screen and (min-width: 811px) {
  .p-section02__text03:last-child {
    border: none;
  }
}
.p-section02-3col {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: flex-start;
  align-items: stretch;
  gap: 0.5em;
  max-width: 480px;
  margin: 0 auto 2.6em;
}
@media screen and (min-width: 811px) {
  .p-section02-3col {
    gap: 2.4rem;
  }
}
.p-section02-3col__item {
  width: calc(33.3333333333% - 0.3333333333em);
}
@media screen and (min-width: 811px) {
  .p-section02-3col__item {
    width: calc(33.3333333333% - 1.6rem);
  }
}
.p-section02-3col__item span {
  display: block;
  margin-bottom: 0.6em;
  font-size: 0.875em;
  font-family: var(--font-family02);
  font-weight: bold;
  text-align: center;
  line-height: 1.2;
}
@media screen and (min-width: 811px) {
  .p-section02-3col__item span {
    margin-bottom: 0.8rem;
    font-size: 1em;
  }
}
.p-section02-graph {
  width: 100%;
  max-width: 361px;
  margin: 0 auto;
  padding: 1em;
  border: 0.1em solid var(--color11);
  background: #fff;
  border-radius: 0.25em;
}
@media screen and (min-width: 811px) {
  .p-section02-graph {
    float: left;
    width: calc(50% - 1.2rem);
    margin-right: 2.4rem;
  }
}
.p-section02-graph:not(:last-child) {
  margin-bottom: 2.5em;
}
@media screen and (min-width: 811px) {
  .p-section02-graph:not(:last-child) {
    margin-bottom: 0;
  }
}
.p-section02-graph__inner {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: flex-start;
  align-items: flex-end;
  gap: 2.375em;
}
.p-section02-graph__item {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: calc(33.3333333333% - 1.5833333333em);
  font-size: 1em;
  opacity: 0;
  visibility: hidden;
}
.p-section02-graph__item:nth-child(1) {
  transition: opacity 1s ease 0.2s, visibility 1s ease 0.2s;
}
.p-section02-graph__item:nth-child(1) .p-section02-graph__bar::after {
  content: "";
  position: absolute;
  display: block;
  width: 2.375em;
  height: 12.125em;
  top: auto;
  right: auto;
  bottom: auto;
  left: 100%;
  z-index: 1;
  background: linear-gradient(35deg, rgb(255, 255, 255) 30%, rgb(222, 218, 172) 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  opacity: 0;
}
.p-section02-graph__item:nth-child(2) {
  transition: opacity 1s ease 0.6s, visibility 1s ease 0.6s;
}
.p-section02-graph__item:nth-child(2) .p-section02-graph__bar::after {
  content: "";
  position: absolute;
  display: block;
  width: 2.375em;
  height: 6.3em;
  top: auto;
  right: auto;
  bottom: auto;
  left: 100%;
  z-index: 1;
  background: linear-gradient(35deg, rgb(255, 255, 255) 30%, rgb(222, 218, 172) 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
  opacity: 0;
}
.p-section02-graph__item:nth-child(2) .p-section02-graph__number {
  opacity: 0;
}
.p-section02-graph__item:nth-child(3) {
  transition: opacity 1s ease 1.8s, visibility 1s ease 1.8s;
}
.p-section02-graph__item:nth-child(3) .p-section02-graph__bar {
  height: 6.3em;
}
.p-section02-graph__item:nth-child(3) .p-section02-graph__number {
  opacity: 0;
}
.p-section02-graph__item.is-animated01 {
  opacity: 1;
  visibility: visible;
}
.p-section02-graph__item.is-animated02:nth-child(1) .p-section02-graph__bar::after {
  clip-path: polygon(0 0, 100% 49%, 100% 100%, 0% 100%);
  opacity: 1;
  transition: clip-path 1s ease 0.2s, opacity 1s ease 0.2s;
}
.p-section02-graph__item.is-animated02:nth-child(2) .p-section02-graph__bar {
  height: 6.3em;
  transition: height 1s ease 0.2s;
}
.p-section02-graph__item.is-animated02:nth-child(2) .p-section02-graph__bar::after {
  clip-path: polygon(0 0, 100% 49%, 100% 100%, 0% 100%);
  opacity: 1;
  transition: clip-path 0.8s ease 1.2s, opacity 1s ease 1.2s;
}
.p-section02-graph__item.is-animated02:nth-child(2) .p-section02-graph__number {
  opacity: 1;
  transition: opacity 1s ease 0.2s;
}
.p-section02-graph__item.is-animated02:nth-child(3) .p-section02-graph__bar {
  height: 3.2em;
  transition: height 0.8s ease 1.2s;
}
.p-section02-graph__item.is-animated02:nth-child(3) .p-section02-graph__number {
  opacity: 1;
  transition: opacity 1s ease 0.4s;
}
.p-section02-graph__number {
  font-size: 0.9375em;
  font-weight: bold;
}
.p-section02-graph__year {
  font-size: 0.75em;
  font-family: var(--font-family02);
}
.p-section02-graph__bar {
  display: block;
  width: 100%;
  height: 12.125em;
  background: linear-gradient(0deg, rgb(254, 210, 49) 0%, rgb(253, 228, 77) 50%, rgb(252, 246, 103) 100%);
  transition: all 0.3s;
}
.p-section02-graph__source {
  display: block;
  font-size: 0.625em;
  font-family: var(--font-family02);
  text-align: right;
}

/*!
project > section03
------------------------------
*/
.p-section03-security {
  position: relative;
  background: var(--color12);
  margin-bottom: 4em;
  padding: 1.5em 0 0.5em;
}
@media screen and (min-width: 811px) {
  .p-section03-security {
    margin-bottom: 8.8rem;
    padding: 4rem 0;
  }
}
.p-section03-security::before {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 4em;
  top: auto;
  right: auto;
  bottom: 100%;
  left: 0;
  background: var(--color12);
  clip-path: polygon(50% 100%, 100% 0, 100% 100%, 0 100%, 0 0);
}
@media screen and (min-width: 811px) {
  .p-section03-security::before {
    height: 8.8rem;
  }
}
.p-section03-security::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 4em;
  top: 100%;
  right: auto;
  bottom: auto;
  left: 0;
  background: var(--color12);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}
@media screen and (min-width: 811px) {
  .p-section03-security::after {
    height: 8.8rem;
  }
}
.p-section03-security__title {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: var(--color06);
  font-size: 2.125em;
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  text-shadow: 0.03em 0 0 #fff, 0.03em 0.03em 0 #fff, 0 0.03em 0 #fff, -0.03em 0.03em 0 #fff, -0.03em 0 0 #fff, -0.03em -0.03em 0 #fff, 0 -0.03em 0 #fff, 0.03em -0.03em 0 #fff;
}
.p-section03-security__title__text {
  font-size: 0.875em;
  margin-bottom: 0.5em;
}
.p-section03-security__title__image img {
  width: vw(297px);
  max-width: 594px;
}
@media screen and (min-width: 811px) {
  .p-section03-security__list {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: flex-start;
    align-items: stretch;
    gap: 2.4rem;
  }
}
.p-section03-security__list dl {
  margin-top: 2em;
}
@media screen and (min-width: 811px) {
  .p-section03-security__list dl {
    width: calc(50% - 1.2rem);
    margin-top: 1.6rem;
  }
}
.p-section03-security__list dl:first-child {
  margin-top: 1em;
}
@media screen and (min-width: 811px) {
  .p-section03-security__list dl:first-child {
    margin-top: 1.6rem;
  }
}
.p-section03-security__list dl dt {
  font-weight: bold;
  padding: 0.15em 1em;
  background: #fff;
}
.p-section03-security__list dl dt strong {
  color: var(--color13);
}
.p-section03-security__list dl dd {
  position: relative;
  font-size: 1.125em;
  font-weight: bold;
  margin-top: 0.9em;
  padding-left: 2.4em;
  line-height: 1.5;
}
.p-section03-security__list dl dd::before {
  display: block;
  content: "";
  position: absolute;
  top: 0.1em;
  left: 0.8em;
  z-index: 1;
  width: 1.2em;
  height: 1.2em;
  background: #fff;
  border: currentcolor solid 0.086em;
  border-radius: 0.2em;
}

/*!
project > section04
------------------------------
*/
.p-section04 {
  position: relative;
  padding: 0.5em 0 4.5em;
}
@media screen and (min-width: 811px) {
  .p-section04 {
    padding: 4rem 0 7.2rem;
  }
}
.p-section04__wrap01:not(:last-child) {
  margin-bottom: 2em;
}
.p-section04__wrap02:not(:last-child) {
  margin-bottom: 0.5em;
}
.p-section04__catch01 {
  text-align: center;
  margin-bottom: 1em;
}
.p-section04__catch01 > p {
  display: inline-block;
  position: relative;
  color: var(--color14);
  font-size: 2em;
  font-weight: bold;
  line-height: 1;
  letter-spacing: -0.02em;
  text-align: center;
}
.p-section04__catch01 > p::before, .p-section04__catch01 > p::after {
  content: "";
  position: absolute;
  display: block;
  width: 0.03em;
  height: 0.8em;
  top: auto;
  right: auto;
  bottom: -0.1em;
  left: -0.5em;
  background: var(--color01);
  transform: rotate(-35deg);
}
.p-section04__catch01 > p::after {
  left: calc(100% + 0.5em);
  transform: rotate(35deg);
}
.p-section04__image {
  width: 26%;
  max-width: 95px;
  margin: 0.5em auto;
}
.p-section04__image img {
  display: block;
  width: 100%;
}
.p-section04-box {
  margin: 0 auto;
}
.p-section04-box--first {
  max-width: 704px;
}
.p-section04-box--second {
  max-width: 600px;
  margin-bottom: 1.5em;
}
.p-section04-box__title {
  padding-top: 0.1em;
  border: 0.16em solid var(--color04);
  border-radius: 0.32em 0.32em 0 0;
  background: var(--color04);
  color: #fff;
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section04-box__title {
    padding-top: 0.4rem;
    font-size: 1.75em;
    line-height: 1.1;
  }
}
.p-section04-box__title + .p-section04-box__inner {
  border-radius: 0 0 0.32em 0.32em;
}
.p-section04-box__inner {
  padding: 1em;
  border: 0.16em solid var(--color04);
  border-radius: 0.32em;
}
.p-section04-box__text01 {
  margin-bottom: 1em;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section04-box__text01 {
    font-size: 1.25em;
    margin-bottom: 2.4rem;
  }
}
.p-section04-box__text02 {
  font-size: 1.125em;
  font-weight: bold;
  line-height: 1.4;
  text-align: center;
}
.p-section04-box__text02 span {
  color: var(--color04);
}
.p-section04-box__text03 {
  position: relative;
  margin: 1.2em 0 0.8em;
  color: var(--color04);
  font-size: 1.25em;
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section04-box__text03 {
    margin: 2.4rem 0;
    padding-left: calc(100% - 382px);
    font-size: 1.5em;
    text-align: left;
  }
}
.p-section04-box__text03::before {
  content: "";
  position: absolute;
  display: block;
  width: 28%;
  height: 3em;
  top: -1.2em;
  right: auto;
  bottom: auto;
  left: 0;
  background: url(../img/section04_img01.png) no-repeat center/contain;
}
@media screen and (min-width: 811px) {
  .p-section04-box__text03::before {
    top: 0;
    height: 7.7rem;
  }
}
.p-section04-box__text03 > span {
  position: relative;
}
.p-section04-box__text03 > span::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 23%;
  top: auto;
  right: auto;
  bottom: 0.1em;
  left: 0;
  z-index: -1;
  background: var(--color10);
}
.p-section04-box__image {
  width: 79%;
  max-width: 277px;
  margin: 0 auto 1em;
}
@media screen and (min-width: 811px) {
  .p-section04-box__image {
    margin-bottom: 2.4rem;
  }
}

/*!
project > section05
------------------------------
*/
.p-section05 {
  padding: 0 0 4.5em;
}
.p-section05__wrap01 {
  position: relative;
  margin: 1.5em 0;
  padding: 1em 0;
}
@media screen and (min-width: 768px) {
  .p-section05__wrap01 {
    margin: 4rem 0;
    padding: 0 0 0.8rem;
  }
}
.p-section05__wrap01:nth-child(odd) {
  background: var(--color15);
}
.p-section05__wrap01:nth-child(odd)::before, .p-section05__wrap01:nth-child(odd)::after {
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 1.5em;
  top: auto;
  right: auto;
  bottom: 100%;
  left: 0;
  background: url(../img/bg_parts04.svg) no-repeat center/100% 100%;
}
@media screen and (min-width: 768px) {
  .p-section05__wrap01:nth-child(odd)::before, .p-section05__wrap01:nth-child(odd)::after {
    height: 4rem;
  }
}
.p-section05__wrap01:nth-child(odd)::after {
  top: 100%;
  bottom: auto;
  background: url(../img/bg_parts03.svg) no-repeat center/100% 100%;
}
.p-section05__wrap01:first-child {
  margin-top: 0;
  padding: 1.5em 0 0;
}
.p-section05__wrap01:first-child::before {
  content: none;
}
.p-section05__wrap01:nth-child(4) {
  margin-bottom: 0;
  padding-bottom: 4em;
}
.p-section05__title01 {
  margin-bottom: 2.5em;
  text-align: center;
}
.p-section05__title01 img {
  display: inline-block;
  width: 80%;
  max-width: 296px;
}
.p-section05__title01 span {
  display: inline-block;
  width: 18%;
  max-width: 60px;
  font-size: 1.25em;
  font-weight: bold;
  line-height: 1;
  vertical-align: bottom;
}
.p-section05__title02 {
  width: 70.5%;
  color: var(--color14);
  font-size: 1.75em;
  font-weight: bold;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section05__title02 {
    padding-left: 1.6rem;
    text-align: left;
  }
}
.p-section05__title02-wrap {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: flex-start;
  align-items: center;
  max-width: 361px;
  margin: 0 auto 1em;
}
.p-section05__title02-image {
  width: 29.5%;
}
.p-section05__catch01 {
  margin-bottom: 0.7em;
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.25;
  text-align: center;
}
.p-section05__text01 {
  font-size: 1.125em;
  font-family: var(--font-family02);
  line-height: 1.7;
  letter-spacing: 0.05em;
}
.p-section05__text01:not(:last-child) {
  margin-bottom: 0.45em;
}

/*!
project > section06
------------------------------
*/
.p-section06-reason {
  background: var(--color12);
  padding-top: 2em;
  padding-bottom: 2.5em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason {
    padding-top: 2.5em;
  }
}
.p-section06-reason__title {
  width: 100%;
  max-width: 280px;
  text-align: center;
  margin: 0 auto 0.5em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-start__list {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: flex-start;
    align-items: stretch;
    max-width: 600px;
    margin: 3.2rem auto 1.6rem;
  }
}
.p-section06-reason-start__list .item {
  display: flex;
  align-items: center;
  font-weight: bold;
  line-height: 1.4;
  letter-spacing: 0.01em;
  padding: 0.75em 0.25em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-start__list .item {
    flex-direction: column;
    width: 33.33%;
    padding: 0;
  }
}
.p-section06-reason-start__list .item:not(:first-of-type) {
  border-top: #A8BEBA dotted 0.15em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-start__list .item:not(:first-of-type) {
    border-top: none;
    border-left: 0.15em dotted #A8BEBA;
  }
}
.p-section06-reason-start__list .item__num {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 116.7%;
  width: 2em;
  height: 2em;
  background: #fff;
  border: currentcolor solid 0.1em;
  border-radius: 50%;
  margin: 0 0.2em;
}
.p-section06-reason-start__list .item dt {
  display: flex;
  align-items: center;
  width: 5.5em;
  font-size: 0.75em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-start__list .item dt {
    margin-bottom: 0.8rem;
  }
}
.p-section06-reason-start__list .item dd {
  font-size: 1.25em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-start__list .item dd {
    text-align: center;
  }
}
@media screen and (min-width: 811px) {
  .p-section06-reason-start__list .item dd .c-note01 {
    font-size: 1.2rem;
  }
}
.p-section06-reason-end {
  background: #fff;
  margin-top: 0.25em;
  padding: 2.5em 1em;
  font-family: var(--font-family02);
  border: #B5DACD solid 0.1em;
  border-radius: 0.5em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end {
    padding: 1.6rem 3.6rem;
  }
}
.p-section06-reason-end__list:not(:first-of-type) {
  margin-top: 0.5em;
}
.p-section06-reason-end__list--after .item {
  position: relative;
  margin-bottom: 1em;
  padding-bottom: 3.5em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list--after .item {
    padding-bottom: 4rem;
  }
}
.p-section06-reason-end__list--after .item::after {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  content: "";
  width: 2.5em;
  height: 2.5em;
  background: url(../img/reason_ico_plus.svg) 50% 50% no-repeat;
  background-size: contain;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list--after .item::after {
    width: 24px;
    height: 24px;
  }
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list--3col {
    display: flex;
    flex-wrap: wrap;
    flex-direction: row;
    justify-content: flex-start;
    align-items: stretch;
    gap: 6.5rem;
    margin: 1.6rem 0 3.2rem;
  }
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list--3col .item {
    width: 192px;
  }
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list--3col .item:nth-child(odd) {
    width: 168px;
  }
}
.p-section06-reason-end__list .item:not(:first-of-type) {
  position: relative;
  margin-top: 0.75em;
  padding-top: 3.5em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list .item:not(:first-of-type) {
    margin-top: 0;
    padding-top: 0;
  }
}
.p-section06-reason-end__list .item:not(:first-of-type)::before {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  display: block;
  content: "";
  width: 2.5em;
  height: 2.5em;
  background: url(../img/reason_ico_plus.svg) 50% 50% no-repeat;
  background-size: contain;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list .item:not(:first-of-type)::before {
    top: calc(50% - 20px);
    right: calc(100% + 20.5px);
    left: auto;
    width: 24px;
    height: 24px;
    transform: translateY(-50%);
  }
}
.p-section06-reason-end__list .item__image01 {
  width: 86%;
  max-width: 280px;
  margin: 0 auto;
  text-align: center;
}
.p-section06-reason-end__list .item__image01 img {
  display: block;
  width: 100%;
}
.p-section06-reason-end__list .item__image02 {
  width: 93.8%;
  max-width: 305px;
  margin: 0 auto;
  text-align: center;
}
.p-section06-reason-end__list .item__image02 img {
  display: block;
  width: 100%;
}
.p-section06-reason-end__list .item__image03 {
  width: 100%;
  max-width: 330px;
  margin: 0 auto;
  text-align: center;
}
.p-section06-reason-end__list .item__image03 img {
  display: block;
  width: 100%;
}
.p-section06-reason-end__list .item__image04 {
  width: 21%;
  max-width: 67px;
  margin: 1em auto 0;
}
.p-section06-reason-end__list .item__text {
  margin-top: 1em;
  line-height: 1.4;
}
.p-section06-reason-end__list .item__text .text-em {
  color: var(--color04);
}
.p-section06-reason-end__list .item__text_1 {
  max-width: 500px;
  margin: 1em auto 0;
  letter-spacing: 0.06em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list .item__text_1 {
    text-align: center;
  }
}
.p-section06-reason-end__list .item__text_2 {
  font-size: 112.5%;
  line-height: 1.3;
  text-align: center;
  margin-top: 0;
  margin-bottom: 0.5em;
}
.p-section06-reason-end__list .item__text_3 {
  max-width: 500px;
  margin: 1.15em auto;
  font-size: 87.5%;
  letter-spacing: 0.04em;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list .item__text_3 {
    margin: 1.6rem auto 0;
    font-size: 1.2rem;
    letter-spacing: 0.06em;
  }
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list .item__text_3:nth-child(2) {
    width: 168px;
  }
}
.p-section06-reason-end__list .item__text_4 {
  width: 93.8%;
  margin: 0.45em auto 0;
  font-size: 1.125em;
  font-family: var(--font-family02);
  line-height: 1.25;
  letter-spacing: 0.06em;
  text-align: center;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list .item__text_4 {
    font-size: 1.6rem;
  }
}
.p-section06-reason-end__list .item__text_5 {
  margin-top: 0.33em;
  color: var(--color05);
  font-size: 1.5em;
  font-family: var(--font-family01);
  font-weight: bold;
  text-align: center;
  line-height: 1;
}
.p-section06-reason-end__list .item__notes {
  color: var(--color02);
  margin-top: 0.5em;
}
.p-section06-reason-end__list .item__notes li {
  font-size: 62.5%;
  line-height: 1.5;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__list .item__notes li {
    font-size: 1.2rem;
  }
}
.p-section06-reason-end__notes {
  color: var(--color02);
  margin-top: 0.5em;
  padding-top: 0.5em;
  border-top: #ACBDBA solid 1px;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__notes {
    margin-top: 3.2rem;
    padding-top: 1.6rem;
  }
}
.p-section06-reason-end__notes li {
  font-size: 62.5%;
  line-height: 1.5;
}
@media screen and (min-width: 811px) {
  .p-section06-reason-end__notes li {
    font-size: 1.2rem;
  }
}
.p-section06-reason-end__notes a {
  color: #006844;
  text-decoration: underline;
  transition: opacity 0.3s;
}
.p-section06-reason-end__notes a:hover {
  opacity: 0.7;
}
.p-section06-reason .reason_txt_01 {
  width: vw(280px);
  max-width: 560px;
}
.p-section06-reason .reason_txt_02 {
  width: vw(305px);
  max-width: 610px;
}
.p-section06-reason .reason_txt_03 {
  width: vw(324px);
  max-width: 648px;
}
.p-section06-reason .reason_txt_04 {
  width: vw(330px);
  max-width: 660px;
}
.p-section06-reason .reason_txt_05 {
  width: vw(329px);
  max-width: 658px;
}
.p-section06__wrap01 {
  max-width: 361px;
  margin: 1.5em auto;
}
@media screen and (min-width: 811px) {
  .p-section06__wrap01 {
    margin: 4rem auto;
  }
}
.p-section06__catch01 {
  width: 100%;
  margin-bottom: 0.5em;
}
.p-section06__catch01 img {
  display: block;
  width: 100%;
}
.p-section06__catch02 {
  font-size: 1.25em;
  font-weight: bold;
  text-align: center;
  line-height: 1.5;
}
.p-section06__text01 {
  display: inline-block;
  position: relative;
  margin-bottom: 0.5em;
  font-weight: bold;
  line-height: 1.25;
}
@media screen and (min-width: 811px) {
  .p-section06__text01 {
    margin-bottom: 0.8rem;
    font-size: 1.8rem;
  }
}
.p-section06__text01::before, .p-section06__text01::after {
  content: "";
  position: absolute;
  display: block;
  width: 0.1em;
  height: 1.8em;
  top: auto;
  right: auto;
  bottom: -0.1em;
  left: -0.5em;
  background: #ACBDBA;
  transform: rotate(-35deg);
}
@media screen and (min-width: 768px) {
  .p-section06__text01::before, .p-section06__text01::after {
    left: -1.5em;
  }
}
.p-section06__text01::after {
  left: calc(100% + 0.5em);
  transform: rotate(35deg);
}
@media screen and (min-width: 768px) {
  .p-section06__text01::after {
    left: calc(100% + 1.5em);
  }
}

/*!
project > section07
------------------------------
*/
.p-section07 {
  padding: 4em 0;
}
.p-section07__title01 {
  display: inline-block;
  padding: 0.3em 1.25em 0.2em;
  border: 0.07em solid #398159;
  border-radius: 0.33em;
  background: #fff;
  color: var(--color04);
  font-size: 1.5em;
  font-weight: bold;
  line-height: 1.45;
}
@media screen and (min-width: 811px) {
  .p-section07__title01 {
    border: 0.2rem solid #398159;
  }
}
.p-section07__title01-wrap {
  margin-bottom: -1.5em;
  text-align: center;
}
.p-section07__define > div {
  padding: 1.5em 0;
  border-bottom: 0.15em dotted #ACBDBA;
}
.p-section07__define > div:first-child {
  padding-top: 0;
}
.p-section07__define > div:last-child {
  padding-bottom: 0;
  border: none;
}
.p-section07__define > div dt {
  margin-bottom: 0.45em;
  color: var(--color04);
  font-size: 1.125em;
  font-weight: bold;
  line-height: 1.1;
}
.p-section07__text01 {
  font-family: var(--font-family03);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.p-section07__text01:not(:last-child) {
  margin-bottom: 0.5em;
}
.p-section07__link01 {
  color: #398159;
  text-decoration: underline;
  transition: opacity 0.3s;
}
.p-section07__link01:hover {
  opacity: 0.7;
}
.p-section07-list > li {
  font-size: 0.875em;
  font-family: var(--font-family03);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: 0.06em;
}
.p-section07-list > li::before {
  content: "●";
  color: var(--color04);
}

/*!
project > banner
------------------------------
*/
.p-fixed-banner {
  display: none;
}
@media (min-width: 1360px) {
  .p-fixed-banner {
    display: block;
    position: fixed;
    bottom: 50px;
    left: calc(50% + 440px);
    z-index: 10;
  }
  .p-fixed-banner a {
    transition: opacity 0.3s;
  }
  .p-fixed-banner a:hover {
    opacity: 0.7;
  }
}

/*!
utility > utility
------------------------------
*/
.u-sp-only {
  display: block;
}
@media screen and (min-width: 768px) {
  .u-sp-only {
    display: none;
  }
}

.u-tab-under {
  display: block;
}
@media screen and (min-width: 811px) {
  .u-tab-under {
    display: none;
  }
}

.u-tab-over {
  display: none;
}
@media screen and (min-width: 811px) {
  .u-tab-over {
    display: block;
  }
}

.u-pc-only {
  display: none;
}
@media screen and (min-width: 768px) {
  .u-pc-only {
    display: block;
  }
}

.u-sp-tab-only {
  display: block;
}
@media screen and (min-width: 768px) {
  .u-sp-tab-only {
    display: none;
  }
}
@media screen and (min-width: 811px) {
  .u-sp-tab-only {
    display: block;
  }
}

.u-clearfix::after {
  display: block;
  clear: both;
  content: "";
}

.u-fz10 {
  font-size: 0.625em;
}

.u-max-width-500 {
  max-width: 500px;
  margin: 0 auto;
}

/*# sourceMappingURL=style.css.map */
