﻿@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&family=Zen+Old+Mincho&display=swap");

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,
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%;
  font-weight: normal;
  vertical-align: baseline;
  background: transparent;
}

body {
  line-height: 1;
}

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

ol,
ul {
  list-style: none;
}

blockquote,
q {
  quotes: none;
}

blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}

a {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: top;
  background: transparent;
}

ins {
  background-color: #ff9;
  color: #000;
  text-decoration: none;
}

mark {
  background-color: #ff9;
  color: #000;
  font-style: italic;
  font-weight: bold;
}

del {
  text-decoration: line-through;
}

abbr[title],
dfn[title] {
  border-bottom: 1px dotted;
  cursor: help;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

hr {
  display: block;
  height: 1px;
  border: 0;
  margin: 0;
  padding: 0;
}

input,
select {
  margin: 0;
  padding: 0;
  vertical-align: middle;
}

textarea {
  margin: 0;
  padding: 0;
  font-size: 100%;
  vertical-align: middle;
}

img {
  vertical-align: bottom;
  font-size: 0;
  line-height: 0;
}

span,
small {
  font-weight: inherit;
}

strong {
  font-weight: bold;
}

address {
  font-style: normal;
}

sup {
  vertical-align: text-top;
}

em {
  font-style: normal;
}

html {
  font-size: 62.5%;
}

* {
  box-sizing: border-box;
}

body {
  font-size: 1.6rem;
  color: #151E2F;
  line-height: 1.5;
  font-family: "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
}

@media screen and (max-width: 767px) {
  body {
    width: 100%;
    -webkit-text-size-adjust: 100%;
  }
}

strong {
  font-weight: 600;
}

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

@media screen and (max-width: 767px) {
  img {
    width: 100%;
  }
}

sup,
sub {
  height: 0;
  line-height: 1;
  vertical-align: baseline;
  position: relative;
}

sup {
  bottom: 1ex;
}

sub {
  top: .5ex;
}

.asterisk {
  font-family: 'Liberation Serif', 'Noto Sans CJK JP', 'TakaoGothic', 'VL Gothic', 'Yu Gothic', 'MS Gothic', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Osaka-Mono', 'Noto Sans JP', Monospace;
}

.pcNone {
  display: none;
}

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

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

.color01 {
  color: #f00;
}

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

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

@media screen and (max-width: 767px) {
  .left-sp {
    text-align: left !important;
  }
}

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

a:hover,
a:active {
  text-decoration: none;
}

.hover a img {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transition: opacity .3s;
}

@media screen and (min-width: 768px) {
  .hover a:hover img {
    opacity: .7;
  }
}

@media screen and (min-width: 768px) {
  .header01 {
    position: fixed;
    top: 0;
    left: 50%;
    max-width: 1440px;
    transform: translateX(-50%);
    z-index: 100;
  }
}

@media screen and (max-width: 1440px) {
  .header01 {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .header01 {
    position: fixed;
    z-index: 9;
  }
}

.header01 > .inner01 {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

@media screen and (min-width: 768px) {
  .header01 > .inner01 {
    width: 1440px;
    margin-left: auto;
    margin-right: auto;
    padding: 20px 24px;
  }
}

@media screen and (max-width: 1440px) {
  .header01 > .inner01 {
    width: 100%;
    padding: 1.3888888889vw 1.6666666667vw;
  }
}

@media screen and (max-width: 767px) {
  .header01 > .inner01 {
    padding: 10px;
  }
}

.header01 > .inner01 .logo {
  width: 193px;
}

@media screen and (max-width: 1440px) {
  .header01 > .inner01 .logo {
    width: 13.4027777778vw;
  }
}

@media screen and (max-width: 767px) {
  .header01 > .inner01 .logo {
    width: 118px;
  }
}

.header01 > .inner01 > .inner02 {
  background: #fff;
  border-radius: 28px;
  padding: 6px 12px 6px 12px;
  margin-left: auto;
}

@media screen and (max-width: 767px) {
  .header01 > .inner01 > .inner02 {
    border-radius: 0;
  }
}

@media screen and (max-width: 767px) {
  .header01 > .inner01 .gnav01 {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .header01 > .inner01 .gnav01 {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 1px;
  }

  .header01 > .inner01 .gnav01 > li {
    position: relative;
  }

  .header01 > .inner01 .gnav01 > li > span,
  .header01 > .inner01 .gnav01 > li a {
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 1.8rem;
    padding: 8px 0.65em;
    text-decoration: none;
    color: #333;
  }
}

@media screen and (min-width: 768px) and (max-width: 1000px) {
  .header01 > .inner01 .gnav01 > li > span,
  .header01 > .inner01 .gnav01 > li a {
    font-size: 1.8vw;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) {
  .header01 > .inner01 .gnav01 > li:not(.official):hover::after {
    content: '';
    position: absolute;
    bottom: 5px;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, #6eac2c 0%, #197a4b 100%);
    z-index: 11;
  }
}

@media screen and (min-width: 768px) {
  .header01 > .inner01 .gnav01 > li.official {
    margin-left: 35px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1440px) {
  .header01 > .inner01 .gnav01 > li.official {
    margin-left: 2.4305555556vw;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) {
  .header01 > .inner01 .gnav01 > li.official:hover {
    opacity: 0.7;
  }
}

@media screen and (min-width: 768px) {
  .header01 > .inner01 .gnav01 > li.official a {
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-size: 1.6rem;
    padding: 7.5px 0.95em 7.5px 0.9em;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(90deg, #6eac2c 0%, #197a4b 100%);
    border-radius: 9999px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1000px) {
  .header01 > .inner01 .gnav01 > li.official a {
    font-size: 1.6vw;
  }
}

@media screen and (min-width: 768px) {
  .header01 > .inner01 .gnav01 > li.official a span {
    padding-right: 20px;
    background: url("../img/ic_blank.svg") no-repeat 100% 50%;
  }

  .header01 > .inner01 .gnav01 > li ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 10;
  }

  .header01 > .inner01 .gnav01 > li ul li + li {
    margin-top: 2px;
  }

  .header01 > .inner01 .gnav01 > li ul li a {
    white-space: nowrap;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    font-size: 1.5rem;
    padding: 0.75rem 2.2rem 0.75rem 2.2rem;
    background: url("../img/ic_arrow03.svg") no-repeat 10px 50%;
    background-color: #E7F5EE;
  }

  .header01 > .inner01 .gnav01 > li ul li a:hover {
    background-color: #9BD4B5;
  }
}

@media screen and (min-width: 768px) {
  .header01 > .inner01 .fixMenu .closeBtn {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .header01 > .inner01 .fixMenu {
    position: fixed;
    top: 0;
    right: 0;
    background: #EBF0F4;
    transition: transform 0.6s cubic-bezier(0.15, 0.85, 0.25, 1);
    transform: translateX(100%);
    width: 80vw;
    height: 100%;
    padding: 13.3333333333vw 8vw 21.3333333333vw;
    z-index: 10;
  }

  .header01 > .inner01 .fixMenu.active {
    transform: translateX(0);
  }

  .header01 > .inner01 .fixMenu.active .gnav01 {
    display: block;
  }

  .header01 > .inner01 .fixMenu.active .closeBtn {
    display: block;
  }

  .header01 > .inner01 .fixMenu .closeBtn {
    display: none;
    position: absolute;
    top: 10px;
    right: 10px;
    background: url("../img/btn_close.svg") no-repeat 0 0 / contain;
    width: 25px;
    height: 25px;
  }

  .header01 > .inner01 .fixMenu .closeBtn span {
    display: block;
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li {
    position: relative;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li + li {
    margin-top: 20px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li.hasSubmenu + li {
    margin-top: 10px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official) {
    padding-left: 16px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official)::before {
    content: '';
    position: absolute;
    top: 6px;
    left: 0;
    width: 9px;
    height: 9px;
    background: #FF7628;
    border-radius: 50%;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official).hasSubmenu > span,
  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official) a {
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-size: 4.2666666667vw;
    padding: 0 0 2px;
    text-decoration: none;
    color: #333;
    border-bottom: 1px solid #D1D1D1;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official).hasSubmenu > span > span,
  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official) a > span {
    display: inline-block;
    max-width: 9em;
    background: linear-gradient(90deg, #588a23 0%, #14623c 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official).current > a span {
    background: none;
    -webkit-background-clip: inherit;
    -webkit-text-fill-color: inherit;
    background-clip: inherit;
    color: #6EAC2C;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official).hasSubmenu.active > span {
    background: url("../img/ic_arrow04.svg") no-repeat calc(100% - 3px) calc(100% - 7px);
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official).hasSubmenu.active ul {
    padding-bottom: 5px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official).hasSubmenu > span {
    background: url("../img/ic_arrow05.svg") no-repeat calc(100% - 3px) calc(100% - 7px);
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official) ul {
    padding-top: 7px;
    margin-left: 20px;
    margin-bottom: 19px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official) ul li + li {
    margin-top: 6px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li:not(.official) ul li a {
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    font-size: 3.7333333333vw;
    background: linear-gradient(90deg, #588a23 0%, #14623c 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    color: transparent;
    padding-bottom: 0;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li.official {
    margin-top: 60px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li.official a {
    text-align: center;
    display: block;
    font-family: "Noto Sans JP", sans-serif;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
    font-size: 4.2666666667vw;
    padding: 7.5px 0.95em 7.5px 0.9em;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(90deg, #6eac2c 0%, #197a4b 100%);
    border-radius: 9999px;
  }

  .header01 > .inner01 .fixMenu .gnav01 > li.official a span {
    padding-right: 5.3333333333vw;
    background: url("../img/ic_blank.svg") no-repeat 100% 50% / 2.9333333333vw;
  }
}

.header01 > .inner01 .menuBtn {
  cursor: pointer;
  position: relative;
  text-align: center;
  width: 50px;
  height: 50px;
  margin: -10px -10px -10px 0;
}

@media screen and (min-width: 768px) {
  .header01 > .inner01 .menuBtn {
    display: none;
  }
}

.header01 > .inner01 .menuBtn > em {
  padding-top: 3.2vw;
  color: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

@media screen and (max-width: 767px) {
  .header01 > .inner01 .menuBtn > em {
    font-size: 1.6vw;
  }
}

@media screen and (max-width: 500px) {
  .header01 > .inner01 .menuBtn > em {
    font-size: 1.8666666667vw;
  }
}

.header01 > .inner01 .menuBtn > span {
  position: absolute;
  top: calc(50%);
  left: calc(50% - 12px);
  width: 24px;
  height: 2px;
  background: #197A4B;
}

.header01 > .inner01 .menuBtn > span + span {
  position: absolute;
  top: calc(50% + 9px);
}

.header01 > .inner01 .menuBtn > span + span + span {
  position: absolute;
  top: calc(50% + 17px);
}

.pagetop {
  position: fixed;
  bottom: 25px;
  right: 40px;
  opacity: 0;
  visibility: hidden;
  transition: all .5s;
  z-index: 8;
}

@media screen and (max-width: 767px) {
  .pagetop {
    right: 33px;
  }
}

.pagetop.fadeIn {
  opacity: 1.0;
  visibility: visible;
}

.wrap01 {
  display: flex;
  flex-wrap: wrap;
}

.wrap01:not(:first-child) {
  margin-top: 50px;
}

[class*="heading"] + .wrap01 {
  margin-top: 40px;
}

.wrap01.bC {
  justify-content: center;
}

.wrap01.between {
  justify-content: space-between;
}

.wrap01.aC {
  align-items: center;
}

.wrap01.aEnd {
  align-items: flex-end;
}

.wrap01.reverse {
  flex-direction: row-reverse;
}

.areaLink {
  cursor: pointer;
  transition: opacity .3s;
}

@media screen and (min-width: 768px) {
  .areaLink:hover {
    opacity: .7;
  }
}

@media screen and (min-width: 768px) {
  .CSection {
    max-width: 1440px;
    margin-left: auto;
    margin-right: auto;
  }
}

.CSection .CSInner01 {
  margin-left: auto;
}

.CSection .CSInner01 {
  max-width: 720px;
  width: 50%;
}

@media screen and (max-width: 767px) {
  .CSection .CSInner01 {
    max-width: 100%;
    width: 100%;
  }
}

.heading01 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
  font-size: 7rem;
  background: linear-gradient(90deg, #588A23 0%, #14623C 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

@media screen and (min-width: 768px) {
  .heading01 {
    writing-mode: vertical-rl;
    text-orientation: upright;
  }
}

@media screen and (max-width: 767px) {
  .heading01 {
    font-size: 4rem;
    line-height: 1.75;
    margin-bottom: 40px;
  }
}

.textH01 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.4rem;
}

.textH01.bold {
  font-weight: 700;
}

.textH01 + .textH01 {
  margin-top: 2.4em;
}

.textH02 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.6rem;
}

.textH02 + .textH02 {
  margin-top: 1.2em;
}

.textH03 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.8rem;
}

.textH03.bold {
  font-weight: 700;
}

.textH03.type02 {
  line-height: 2.5;
  letter-spacing: 0.1em;
}

.textH03 + .textH03 {
  margin-top: 2.5em;
}

.textH04 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2.0rem;
}

.textH04.bold {
  font-weight: 700;
}

.textH04 + .textH04 {
  margin-top: 2.4em;
}

.textH05 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2.4rem;
}

.textH05.bold {
  font-weight: 700;
}

.textH05 + .textH05 {
  margin-top: 2.4em;
}

.textH06 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2.8rem;
}

.textH06.bold {
  font-weight: 700;
}

.textH06 + .textH06 {
  margin-top: 2.4em;
}

.tSpace01 {
  letter-spacing: 0.05em;
}

.tSpace02 {
  letter-spacing: 0.06em;
}

.tSpace03 {
  letter-spacing: 0.1em;
}

.tSpace04 {
  letter-spacing: 0.15em;
}

.tSpace05 {
  letter-spacing: 0.2em;
}

.textH01 + .btn01,
.textH02 + .btn01,
.textH03 + .btn01,
.textH04 + .btn01,
.textH05 + .btn01,
.textH06 + .btn01 {
  margin-top: 36px;
}

@media screen and (min-width: 768px) {
  body {
    position: relative;
  }

  body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg, #fff 0%, #d2e9d4 100%);
    z-index: -1;
  }
}

@media screen and (min-width: 768px) {
  .contents01 {
    position: relative;
  }

  .contents01::before {
    content: '';
    position: fixed;
    top: 0;
    left: 50%;
    background: url("../../img/main01.png") no-repeat 50% 0 / 720px;
    max-width: 720px;
    max-height: var(--profile-height, 100vh);
    width: 50%;
    height: 100%;
    transform: translateX(-100%);
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) {
  .contents01 .mainTx01 {
    position: fixed;
    top: 790px;
    left: 50%;
    width: 50%;
    max-width: 720px;
    transform: translateX(-100%);
    text-align: center;
    z-index: 2;
  }

  .contents01 .mainTx01 img {
    width: 69.8611111111%;
  }

  .contents01 .mainTx01.is-bottom {
    top: auto;
    bottom: 38px;
  }
}

@media screen and (min-width: 768px) and (max-width: 1440px) {
  .contents01 .mainTx01 {
    top: auto;
    bottom: 2.6388888889vw;
  }
}

@media screen and (min-width: 768px) {
  .contents01.zoom01::before {
    background: url("../../img/main01.png") no-repeat 50% 0 / auto 100%;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) {
  .contents01.zoom01 .mainTx01 {
    top: auto;
    bottom: 38px;
  }
}

@media screen and (min-width: 768px) and (min-width: 768px) {
  .contents01.zoom02 .mainTx01 {
    top: calc(var(--profile-height, 100vh) - 235px);
    bottom: auto;
  }
}

@media screen and (min-width: 768px) {
  .heading01 {
    position: absolute;
    top: 80px;
    left: calc(50% - 165px);
    max-width: 105px;
  }
}

@media screen and (max-width: 1440px) {
  .heading01 {
    left: calc(50% - 11.4583333333vw);
  }
}

@media screen and (max-width: 767px) {
  .heading01 {
    left: inherit;
  }
}

.list01 li {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2rem;
  line-height: 1.8;
  padding-left: 1.5em;
  position: relative;
}

.list01 li::before {
  position: absolute;
  left: 0.3em;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2rem;
  content: '・';
}

.profileSection .CSInner01 {
  background: linear-gradient(90deg, #588a23 0%, #14623c 100%);
  padding: 180px 35px 80px 45px;
  margin-left: auto;
}

@media screen and (max-width: 1440px) {
  .profileSection .CSInner01 {
    padding: 12.5vw 2.4305555556vw 5.5555555556vw 3.125vw;
  }
}

@media screen and (max-width: 767px) {
  .profileSection .CSInner01 {
    padding: 10.6666666667vw 4.2666666667vw 21.3333333333vw;
  }
}

.profileSection .CSInner01 .heading01 {
  display: none;
}

.profileSection .CSInner01 .logo {
  width: 60%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 30px;
}

@media screen and (max-width: 767px) {
  .profileSection .CSInner01 .logo {
    width: 100%;
  }
}

.profileSection .CSInner01 .logo img {
  width: 100%;
}

.profileSection .CSInner01 .tx04 {
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 1.8rem;
  line-height: 1.8;
  margin-bottom: 8px;
}

.profileSection .CSInner01 .signature{
    text-align: right;
    margin-bottom: 36px;
}
.profileSection .CSInner01 .signature img{
    width: 22%;
}
@media screen and (max-width: 767px) {
    .profileSection .CSInner01 .signature{
        margin-top: 20px;
        margin-right: 20px;
    }
    .profileSection .CSInner01 .signature img{
        width: 36%;
    }
}

.profileSection .box {
  background: #fff;
  position: relative;
}

@media screen and (min-width: 768px) {
  .profileSection .box {
    border-radius: 20px;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
    padding: 40px 36px 36px;
  }
}

@media screen and (max-width: 767px) {
  .profileSection .box {
    border-radius: 16px;
    padding: 36px;
  }
}

.profileSection .box .hdg01 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
  font-size: 4.8rem;
  background: linear-gradient(90deg, #578924 0%, #15623c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}

@media screen and (min-width: 768px) {
  .profileSection .box .hdg01 {
    position: absolute;
    top: -35px;
    right: 12px;
  }
}

@media screen and (max-width: 767px) {
  .profileSection .box .hdg01 {
    font-size: 3.6rem;
    text-align: center;
  }
}

@media screen and (min-width: 768px) {
  .profileSection .box .fig01 {
    display: none;
  }
}

@media screen and (max-width: 767px) {
  .profileSection .box .fig01 {
    margin: 25px -8px 5px;
  }
}

.profileSection .box .tx01 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2rem;
}

@media screen and (max-width: 767px) {
  .profileSection .box .tx01 {
    font-size: 5.3333333333vw;
  }
}

.profileSection .box .tx01 strong {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 4rem;
  margin-right: 0.5em;
}

@media screen and (max-width: 767px) {
  .profileSection .box .tx01 strong {
    font-size: 10.6666666667vw;
    display: block;
  }
}

.profileSection .box .tx02 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2rem;
  margin-top: 26px;
}

@media screen and (max-width: 767px) {
  .profileSection .box .tx02 {
    font-size: 5.3333333333vw;
  }
}

.profileSection .box .tx02 strong {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.profileSection .box .tx03 {
  color: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 2rem;
  line-height: 1.8;
  margin-top: 28px;
}

@media screen and (max-width: 767px) {
  .profileSection .box .tx03 {
    margin-top: 19px;
  }
}

.profileSection .box .list01 li {
  font-size: 1.6rem;
}

.profileSection .box .list01 li::before {
  font-size: 1.6rem;
}

.profileSection .box .list01.type02 li {
  font-size: 1.4rem;
}

.profileSection .box .list01.type02 li::before {
  font-size: 1.4rem;
}

.newsSection {
  position: relative;
}

@media screen and (max-width: 767px) {
  .newsSection {
    background: #EBF0F4;
    padding: 80px 16px;
  }
}

.newsSection .CSInner01 {
  background: #EBF0F4;
}

@media screen and (min-width: 768px) {
  .newsSection .CSInner01 {
    padding: 80px 40px;
  }
}

@media screen and (max-width: 1440px) {
  .newsSection .CSInner01 {
    padding: 5.5555555556vw 2.7777777778vw;
  }
}

.newsSection .CSInner01 section + section {
  margin-top: 40px;
}

.newsSection .CSInner01 .hdg01 {
  display: inline-block;
  position: relative;
  color: #fff;
  background: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
  font-size: 2rem;
  line-height: 1.45;
  padding: 0 72px 0 16px;
  margin-bottom: 19px;
}

.newsSection .CSInner01 dl {
  border-bottom: 1px solid #197A4B;
  padding-bottom: 13px;
  margin-left: 40px;
}

.newsSection .CSInner01 dl + dl {
  margin-top: 14px;
}

.newsSection .CSInner01 dl dt {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.4rem;
  line-height: 1.45;
  margin-bottom: 6px;
}

.newsSection .CSInner01 dl dd {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.6rem;
  line-height: 1.45;
}

.reportSection {
  position: relative;
}

@media screen and (min-width: 768px) {
  .reportSection {
    min-height: 592px;
  }
}

@media screen and (max-width: 767px) {
  .reportSection {
    background: #fff;
    padding: 21.3333333333vw 4.2666666667vw;
  }
}

.reportSection .CSInner01 {
  background: #fff;
}

@media screen and (min-width: 768px) {
  .reportSection .CSInner01 {
    padding: 80px 0 80px 40px;
  }
}

.reportSection .CSInner01 section + section {
  margin-top: 80px;
}

.reportSection .CSInner01 .hdg01 {
  display: inline-block;
  position: relative;
  color: #fff;
  background: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
  font-size: 6.4rem;
  line-height: 1.45;
  padding: 0 72px 0 16px;
  margin-bottom: 40px;
}

@media screen and (max-width: 767px) {
  .reportSection .CSInner01 .hdg01 {
    font-size: 9.6vw;
  }
}

.reportSection .CSInner01 .reportList01Wrap {
  padding-bottom: 20px;
  overflow-x: auto;
  margin-left: 40px;
}

@media screen and (max-width: 767px) {
  .reportSection .CSInner01 .reportList01Wrap {
    margin-left: 16px;
  }
}

.reportSection .CSInner01 .reportList01 {
  display: flex;
  justify-content: space-between;
  gap: 40px;
}

.reportSection .CSInner01 .reportList01 > li {
  position: relative;
}

@media screen and (min-width: 768px) {
  .reportSection .CSInner01 .reportList01 > li {
    flex: 0 0 320px;
  }

  .reportSection .CSInner01 .reportList01 > li img {
    width: 100%;
  }
}

@media screen and (max-width: 767px) {
  .reportSection .CSInner01 .reportList01 > li {
    flex: 0 0 270px;
  }
}

.reportSection .CSInner01 .reportList01 > li .media {
  position: absolute;
  top: 0;
  left: 0;
  color: #fff;
  padding: 0 8px;
  background: #000;
  height: 26px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  line-height: 1;
}

.reportSection .CSInner01 .reportList01 > li .media.X span {
  background: url("../img/ic_X02.svg") no-repeat 0 50% / 12px;
  padding-left: 17px;
  font-size: 1rem;
  height: 26px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}

.reportSection .CSInner01 .reportList01 > li .media.youtube {
  background: #f00;
}

.reportSection .CSInner01 .reportList01 > li .media.youtube span {
  display: block;
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
  width: 54px;
  background: url("../img/ic_youtube02.svg") no-repeat 0 50%;
}

.reportSection .CSInner01 .reportList01 > li .media.facebook {
  background: #0866FF;
  font-size: 1.4rem;
}

.reportSection .CSInner01 .reportList01 > li .thumb {
  margin-bottom: 5px;
}

.reportSection .CSInner01 .reportList01 > li .thumb a {
  display: block;
}

.reportSection .CSInner01 .reportList01 > li .date {
  width: 95%;
}

.reportSection .CSInner01 .reportList01 > li .text {
  width: 95%;
  margin-top: 0;
}

.planSection {
  position: relative;
}

@media screen and (max-width: 767px) {
  .planSection {
    background: #EBF0F4;
    padding: 21.3333333333vw 4.2666666667vw 0;
  }
}

.planSection .CSInner01 > .inner01 {
  background: #EBF0F4;
}

@media screen and (min-width: 768px) {
  .planSection .CSInner01 > .inner01 {
    padding: 80px 40px 0;
  }
}

@media screen and (max-width: 1440px) {
  .planSection .CSInner01 > .inner01 {
    padding: 5.5555555556vw 2.7777777778vw 0;
  }
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner01 {
    padding: 0;
  }
}

.planSection .CSInner01 > .inner01 .tx01 {
  width: 97.34375%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 40px;
}

.planSection .CSInner01 > .inner01 .tx01 img {
  width: 100%;
}

.planSection .CSInner01 > .inner01 .tx02 {
  width: 64.53125%;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 40px;
}

.planSection .CSInner01 > .inner01 .tx02 img {
  width: 100%;
}

.planSection .CSInner01 > .inner01 .box01 {
  border: 1px solid #006934;
  border-radius: 14px;
  padding: 16px;
  background: linear-gradient(90deg, #F9FBF6 0%, #DEEDD6 100%);
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner01 .box01 {
    border-width: 3px;
    padding: 4.2666666667vw;
  }
}

.planSection .CSInner01 > .inner01 .box01 .list01 li {
  color: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 2rem;
  line-height: 1.8;
}

.planSection .CSInner01 > .inner01 .box01 .list01 li::before {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
}

.planSection .CSInner01 > .inner01 .box01 .list01 li + li {
  margin-top: 0.75em;
}

.planSection .CSInner01 > .inner01 .anchorList01 {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 34px 40px;
  margin-top: 40px;
}

@media screen and (max-width: 1200px) {
  .planSection .CSInner01 > .inner01 .anchorList01 {
    gap: 2.8333333333vw 3.3333333333vw;
  }
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner01 .anchorList01 {
    margin-left: -2.6666666667vw;
    margin-right: -2.9333333333vw;
    gap: 7.4666666667vw 10.6666666667vw;
    margin-top: 10.6666666667vw;
  }
}

.planSection .CSInner01 > .inner01 .anchorList01 li a {
  display: block;
  color: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 3.2rem;
  line-height: 1.4;
  text-decoration: none;
  position: relative;
  padding-right: 33px;
  padding-bottom: 4px;
  background: url("../img/ic_arrow06.svg") no-repeat 100% 50%;
}

@media screen and (max-width: 1200px) {
  .planSection .CSInner01 > .inner01 .anchorList01 li a {
    font-size: 2.5833333333vw;
    padding-right: 2.75vw;
    background-size: 2vw;
  }
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner01 .anchorList01 li a {
    font-size: 6.4vw;
    padding-right: 7.4666666667vw;
    background-size: 5.3333333333vw;
  }
}

.planSection .CSInner01 > .inner01 .anchorList01 li a::before {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: #EA5514;
}

@media screen and (min-width: 768px) {
  .planSection .CSInner01 > .inner01 .anchorList01 li a:hover {
    opacity: 0.7;
  }
}

.planSection .CSInner01 > .inner01 .img01 {
  width: 61.09375%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 50px;
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner01 .img01 {
    width: 91.4666666667%;
    /*padding-bottom: 21.3333333333vw;*/
  }
}

.planSection .CSInner01 > .inner02 {
  background: #fff;
  padding: 160px 40px 80px;
  position: relative;
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner02 {
    margin-left: -4.2666666667vw;
    margin-right: -4.2666666667vw;
    padding: 160px 4.2666666667vw 80px;
  }
}

.planSection .CSInner01 > .inner02::before {
  content: '';
  position: absolute;
  top: 76px;
  left: 50%;
  width: calc(100% - 80px);
  height: 4px;
  background: linear-gradient(90deg, #2CAC6E 0%, #197A4B 100%);
  transform: translateX(-50%);
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner02::before {
    width: calc(100% - 8.5333333333vw);
  }
}

.planSection .CSInner01 > .inner02 .box02 {
  background: #F6F9F3;
  padding: 17px 16px;
}

.planSection .CSInner01 > .inner02 .box02 + .box02 {
  margin-top: 24px;
}

.planSection .CSInner01 > .inner02 .box02 .hdg01 {
  color: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 2.3rem;
  line-height: 1.4;
  text-decoration: none;
  position: relative;
  padding-left: 33px;
  background: url("../img/ic_arrow07.svg") no-repeat 0 6px;
  margin-bottom: 16px;
}

@media screen and (max-width: 767px) {
  .planSection .CSInner01 > .inner02 .box02 .hdg01 {
    font-size: 5.3333333333vw;
    padding-left: 7.4666666667vw;
    background: url("../img/ic_arrow07.svg") no-repeat 0 6px / 5.3333333333vw;
    margin-bottom: 16px;
  }
}

.planSection .CSInner01 > .inner02 .box02 .list01 li {
  font-size: 1.6rem;
}

.planSection .CSInner01 > .inner02 .box02 .list01 li::before {
  font-size: 1.6rem;
}

.planSection .CSInner01 > .inner02 .box02 .list01 li + li {
  margin-top: 1em;
}

.achievementsSection {
  position: relative;
}

@media screen and (max-width: 767px) {
  .achievementsSection {
    background: #F6F9F3;
    padding: 21.3333333333vw 4.2666666667vw;
  }
}

@media screen and (min-width: 768px) {
  .achievementsSection .CSInner01 {
    background: #F6F9F3;
    padding: 51px 40px 51px 151px;
  }
}

@media screen and (max-width: 1440px) {
  .achievementsSection .CSInner01 {
    padding: 3.5416666667vw 2.7777777778vw 3.5416666667vw 10.4861111111vw;
  }
}

@media screen and (max-width: 767px) {
  .achievementsSection .CSInner01 {
    padding: 0;
  }
}

.achievementsSection .CSInner01 .hdg01 {
  position: relative;
  color: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 3.2rem;
  margin-bottom: 47px;
}

@media screen and (max-width: 767px) {
  .achievementsSection .CSInner01 .hdg01 {
    font-size: 6.4vw;
    margin-bottom: 5.3333333333vw;
  }
}

.achievementsSection .CSInner01 .hdg01 .num {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 900;
  font-style: normal;
  font-size: 7.0rem;
  line-height: 1;
  background: linear-gradient(90deg, #578924 0%, #15623c 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  color: transparent;
}

@media screen and (min-width: 768px) {
  .achievementsSection .CSInner01 .hdg01 .num {
    position: absolute;
    top: -0.18em;
    left: -111px;
  }
}

@media screen and (max-width: 1440px) {
  .achievementsSection .CSInner01 .hdg01 .num {
    font-size: 4.8611111111vw;
    top: 0.03em;
    left: -7.7083333333vw;
  }
}

@media screen and (max-width: 767px) {
  .achievementsSection .CSInner01 .hdg01 .num {
    display: inline-block;
    font-size: 10.6666666667vw;
  }
}

@media screen and (max-width: 767px) {
  .achievementsSection .CSInner01 .hdg01 .txt {
    display: block;
  }
}

.achievementsSection .CSInner01 .tx01 {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 2.0rem;
  line-height: 2;
}

.achievementsSection .CSInner01 .img01 {
  width: 74.053030303%;
  margin-left: auto;
  margin-right: auto;
  margin-top: 40px;
}

@media screen and (max-width: 767px) {
  .achievementsSection .CSInner01 .img01 {
    width: 100%;
    margin-top: 10.6666666667vw;
  }
}

.achievementsSection .CSInner01 .box01 {
  background: #fff;
  padding: 16px;
}

.achievementsSection .CSInner01 .box01 .hdg02 {
  color: #197A4B;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 2.4rem;
  line-height: 1.6;
  margin-bottom: 16px;
}

@media screen and (max-width: 767px) {
  .achievementsSection .CSInner01 .box01 .hdg02 {
    font-size: 5.3333333333vw;
  }
}

.achievementsSection .CSInner01 .box01 + .box01 {
  margin-top: 40px;
}

.achievementsSection .CSInner01 .box01 .list01 li + li {
  margin-top: 1em;
}

.achievementsSection .CSInner01 .box01 .list01.type02 li {
  font-size: 1.6rem;
}

.achievementsSection .CSInner01 .box01 .list01.type02 li::before {
  font-size: 1.6rem;
}

.achievementsSection .CSInner01 .box01 .list01.type02 li + li {
  margin-top: 1em;
}

.achievementsSection .CSInner01 > section + section {
  margin-top: 80px;
}

@media screen and (max-width: 767px) {
  .achievementsSection .CSInner01 > section + section {
    margin-top: 21.3333333333vw;
  }
}

.achievementsSection .CSInner01 > section > .inner01 {
  position: relative;
  padding-top: 44px;
  margin-top: 36px;
}

.achievementsSection .CSInner01 > section > .inner01::before {
  content: '';
  position: absolute;
  top: 0;
  width: 100%;
  height: 4px;
  background: linear-gradient(90deg, #578924 0%, #15623c 100%);
}

.footerSection {
  position: relative;
}

.footerSection .CSInner01 {
  background: #197A4B;
  padding: 80px 40px 85px;
  margin-left: auto;
}

@media screen and (max-width: 767px) {
  .footerSection .CSInner01 {
    padding: 21.3333333333vw 4.2666666667vw 22.6666666667vw;
  }
}

.footerSection .CSInner01 .hdg01 {
  display: none;
}

@media screen and (max-width: 767px) {
  .footerSection .CSInner01 .heading01 {
    color: #fff;
    text-align: center;
  }
}

.footerSection .snsList01Wrap {
  border-bottom: 1px solid #fff;
  padding-bottom: 79px;
  margin-bottom: 79px;
}

@media screen and (min-width: 768px) {
  .footerSection .snsList01Wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
  }
}

@media screen and (max-width: 1440px) {
  .footerSection .snsList01Wrap {
    gap: 2.0833333333vw;
  }
}

@media screen and (max-width: 767px) {
  .footerSection .snsList01Wrap {
    margin-top: 11.7333333333vw;
  }
}

.footerSection .snsList01 {
  display: flex;
  flex-wrap: wrap;
}

@media screen and (min-width: 768px) {
  .footerSection .snsList01 {
    justify-content: space-between;
    gap: 30px;
  }
}

@media screen and (max-width: 1440px) {
  .footerSection .snsList01 {
    gap: 2.0833333333vw;
  }
}

@media screen and (max-width: 767px) {
  .footerSection .snsList01 {
    width: 100%;
    justify-content: center;
    gap: 5.3333333333vw;
  }

  .footerSection .snsList01 + .snsList01 {
    margin-top: 8vw;
  }
}

.footerSection .snsList01 > li > a {
  display: block;
  text-decoration: none;
  text-align: center;
  transition: opacity .3s;
}

.footerSection .snsList01 > li > a img {
  width: 80px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 20px;
}

@media screen and (max-width: 1440px) {
  .footerSection .snsList01 > li > a img {
    width: 5.5555555556vw;
  }
}

@media screen and (max-width: 767px) {
  .footerSection .snsList01 > li > a img {
    width: 21.3333333333vw;
  }
}

.footerSection .snsList01 > li > a span {
  text-align: center;
  display: block;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 1.6rem;
}

@media screen and (max-width: 1440px) {
  .footerSection .snsList01 > li > a span {
    font-size: 1.1111111111vw;
  }
}

@media screen and (max-width: 767px) {
  .footerSection .snsList01 > li > a span {
    font-size: 1.6rem;
  }
}

@media screen and (min-width: 768px) {
  .footerSection .snsList01 > li > a:hover {
    opacity: .7;
  }
}

.footerSection .hdg02 {
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 700;
  font-style: normal;
  font-size: 1.4rem;
  line-height: 1.4;
  margin-bottom: 19px;
}

@media screen and (max-width: 767px) {
  .footerSection .hdg02 {
    margin-bottom: 15px;
  }
}

.footerSection dl + dl {
  margin-top: 14px;
}

@media screen and (max-width: 767px) {
  .footerSection dl + dl {
    margin-top: 20px;
  }
}

.footerSection dl dt,
.footerSection dl dd {
  color: #fff;
  line-height: 1.6666666667;
}

.footerSection dl dt {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 1.4rem;
  margin-bottom: 2px;
}

@media screen and (max-width: 350px) {
  .footerSection dl dt {
    font-size: 3.7333333333vw;
  }
}

.footerSection dl dd {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1.2rem;
  margin-left: 1em;
}

@media screen and (max-width: 350px) {
  .footerSection dl dd {
    font-size: 3.2vw;
  }
}

.footerSection .copyright {
  text-align: right;
  color: #fff;
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
  font-weight: 400;
  font-style: normal;
  font-size: 1rem;
  margin-top: 80px;
}

@media screen and (min-width: 768px) {
  .footerSection .copyright {
    margin-right: 7px;
  }
}

@media screen and (max-width: 767px) {
  .footerSection .copyright {
    text-align: center;
  }
}

.cf::after {
  content: "";
  display: block;
  clear: both;
}