@charset "UTF-8";
/* Scss Document */
:root {
  --pc: 1000px;
  --sp: 999px;
  --fs48: 4.8rem;
  --fs40: 4rem;
  --fs36: 3.6rem;
  --fs28: 2.8rem;
  --fs22: 2.2rem;
  --fs20: 2.0rem;
  --fs18: 1.8rem;
  --fs16: 1.6rem;
  --fs14:1.4rem;
  --fs12:1.2rem; }

@media (max-width: 999px) {
  :root {
    --fs48: 2.6rem;
    --fs40: 2.2rem;
    --fs36: 2.4rem;
    --fs28: 2.2rem;
    --fs22: 2.0rem;
    --fs20: 1.8rem;
    --fs18: 1.4rem;
    --fs16: 1.4rem;
    --fs14: 1.2rem;
    --fs12: 1.0rem; } }
body {
  overflow: hidden; }

/*----------------------------------
ローディング画面のためのCSS 
-----------------------------------*/
/* Loading背景画面設定　*/
#splash {
  /*fixedで全面に固定*/
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100%;
  background: #EFF3F1;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center; }

/*========= LoadingのためのCSS ===============*/
/* Loading背景画面設定　*/
body.is-active {
  background: #fff;
  /*遷移アニメーションと同じ色を指定*/ }

/*画面遷移の後現れるコンテンツ設定*/
#container {
  opacity: 0;
  /*はじめは透過0に*/ }

#splash_logo .logo {
  opacity: 0; }

#splash_logo.fadeUP .logo {
  animation-name: fadeUpAnime;
  animation-duration: 0.6s;
  animation-delay: 0;
  animation-fill-mode: forwards; }

@keyframes fadeUpAnime {
  from {
    opacity: 0;
    transform: translateY(60px); }
  to {
    opacity: 1;
    transform: translateY(0); } }
.is-active #container {
  animation-name: fadeInAnime;
  animation-duration: 0.6s;
  animation-delay: 0;
  animation-fill-mode: forwards; }

@keyframes fadeInAnime {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }
@keyframes PageAnimeAppear {
  0% {
    opacity: 0; }
  100% {
    opacity: 1; } }
/*bodyにappearクラスがついたら出現*/
body.appear .splashbg {
  display: block;
  content: "";
  position: fixed;
  z-index: 999;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  transform: scaleX(0);
  background-color: #30884E;
  /*伸びる背景色の設定*/
  animation-name: PageAnime;
  animation-duration: 1.2s;
  animation-timing-function: ease-in-out;
  animation-fill-mode: forwards; }

@keyframes PageAnime {
  0% {
    transform-origin: left;
    transform: scaleX(0); }
  45% {
    transform-origin: left;
    transform: scaleX(1); }
  49% {
    transform-origin: left;
    transform: scaleX(1); }
  50% {
    transform-origin: left;
    transform: scaleX(1);
    background: #30884E; }
  50.001% {
    transform-origin: right;
    background: #30884E; }
  100% {
    transform-origin: right;
    transform: scaleX(0);
    background: #EFF3F1; } }
/* 
---------------------------------------
メインビジュアル
---------------------------------------
*/
#kv {
  min-height: calc(100vh);
  display: flex;
  justify-content: center;
  align-items: center; }

#kv .ttlBox {
  display: flex;
  justify-content: center;
  z-index: 1; }
  @media (max-width: 999px) {
    #kv .ttlBox {
      max-width: inherit; } }

.fvSlider {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  z-index: -1; }

.fvSlider-container {
  top: 0;
  height: 100vh; }
  .fvSlider-container.mv-left {
    position: absolute;
    left: 0;
    width: 53%; }
    @media (max-width: 999px) {
      .fvSlider-container.mv-left {
        top: 0;
        width: 100%;
        height: 50vh; } }
  .fvSlider-container.mv-right {
    position: absolute;
    right: 0;
    width: 50%; }
    @media (max-width: 999px) {
      .fvSlider-container.mv-right {
        top: auto;
        bottom: 0;
        width: 100%;
        height: 50vh; } }

.fvSlider-item {
  position: relative;
  width: 100%;
  height: 100vh; }
  @media (max-width: 999px) {
    .fvSlider-item {
      height: 100%; } }
  .fvSlider-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center; }
  .fvSlider-item::before {
    content: "";
    position: absolute;
    inset: 0;
    background-color: #30884E;
    transform: translateX(-100%);
    transition: transform 0s;
    z-index: 1;
    display: none; }
  .fvSlider-item.swiper-slide-active::before, .fvSlider-item.swiper-slide-next::before, .fvSlider-item.swiper-slide-duplicate-next::before {
    display: block; }
  .fvSlider-item.swiper-slide-active::before {
    transform: translateX(0);
    transition: transform 0.3s ease-in;
    z-index: 0; }
  .fvSlider-item.swiper-slide-duplicate-prev {
    opacity: 1 !important;
    z-index: -1 !important; }
  .fvSlider-item.swiper-slide-duplicate-prev .fvSlider-inner, .fvSlider-item.swiper-slide-prev .fvSlider-inner {
    transform: translateX(3%); }
  .fvSlider-item.swiper-slide-next .fvSlider-inner {
    transform: translateX(-8%); }
  .fvSlider-item.swiper-slide-active .fvSlider-inner, .fvSlider-item.swiper-slide-next .fvSlider-inner {
    will-change: opacity, transform; }
  .fvSlider-item.swiper-slide-active .fvSlider-inner {
    opacity: 1;
    transform: translateX(0);
    transition: opacity 0.4s 0.4s, transform 0.8s; }

.fvSlider-inner {
  position: absolute;
  inset: 0;
  background-color: #30884E;
  overflow: hidden;
  opacity: 0;
  transition: opacity 0.4s 0.4s, transform 0.4s ease-in;
  z-index: 1; }
  @media (max-width: 999px) {
    .fvSlider-inner {
      height: 100%; } }

.fvSlider-item[data-swiper-slide-index="0"] {
  opacity: 1 !important;
  transition: none !important; }

.fvContent {
  text-align: center;
  position: relative;
  z-index: 2;
  padding-bottom: 24rem; }
  @media (max-width: 999px) {
    .fvContent {
      padding-bottom: 12rem; } }
  @media (max-width: 999px) {
    .fvContent {
      width: 90%;
      margin: 0 auto; } }
  .fvContent .ttl {
    margin: 0 auto 20rem;
    padding-top: 10rem; }
    @media (max-width: 999px) {
      .fvContent .ttl {
        margin: 0 auto 10rem; } }
  .fvContent .txt {
    color: #fff;
    font-size: 2rem;
    line-height: 3; }
    @media (max-width: 999px) {
      .fvContent .txt {
        line-height: 2.5;
        font-size: 1.45rem;
        text-align: justify; } }

#gray-layer {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(2, 65, 24, 0.8);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.5s ease;
  z-index: 0; }

#gray-layer.active {
  opacity: 1; }

.fade-target {
  transition: opacity 0.5s ease; }

.fade-out {
  opacity: 0; }

.fade-out.fixed {
  opacity: 1; }

#topLayer {
  background: #fff;
  z-index: 3;
  position: relative; }

/*===========
inview
===========*/
.fadeIn_up {
  opacity: 0;
  transform: translate(0, 10%);
  transition: 1s; }

.fadeIn_up.is-show {
  transform: translate(0, 0);
  opacity: 1; }

/* 
---------------------------------------
home01
---------------------------------------
*/
#home01 {
  background: #fff;
  padding: 16rem 0; }
  @media (max-width: 999px) {
    #home01 {
      padding: 6rem 0; } }
  #home01 .products .ttlBox {
    display: flex;
    align-items: baseline;
    margin-bottom: 2rem; }
    @media (max-width: 999px) {
      #home01 .products .ttlBox {
        flex-direction: column; } }
  #home01 .products .ttlDeco {
    font-size: 8.8rem;
    line-height: 1.25;
    color: #30884E; }
    @media (max-width: 999px) {
      #home01 .products .ttlDeco {
        font-size: 4.2rem; } }
  #home01 .products .ttl {
    display: flex;
    align-items: center;
    margin-left: 1rem;
    font-weight: bold;
    font-size: 2rem; }
    @media (max-width: 999px) {
      #home01 .products .ttl {
        font-size: 1.4rem; } }
  #home01 .products .ttl > div {
    font-weight: bold;
    color: #E1222A;
    margin-right: 1rem;
    font-size: 2.8rem; }
    @media (max-width: 999px) {
      #home01 .products .ttl > div {
        font-size: 2rem; } }
  #home01 .products {
    display: flex;
    gap: calc(44 / 1920 * 100%);
    align-items: flex-start;
    width: 95%;
    max-width: 1600px;
    margin: 0 auto; }
  #home01 .products__image {
    width: calc(1076 / 1400 * 100%);
    margin: 0 0 0 auto;
    margin-right: calc(260 / 1400 * -100%);
    overflow: hidden;
    aspect-ratio: 1076 / 860;
    margin-top: 8rem; }
    @media (max-width: 999px) {
      #home01 .products__image {
        display: none; } }
  #home01 .products__image img {
    width: 100%;
    height: auto;
    object-fit: cover;
    opacity: 1;
    transition: opacity 0.8s ease; }
  #home01 .products__image img.fade-out {
    opacity: 0; }
  #home01 .products__list {
    width: calc(540 / 1400 * 100%); }
  #home01 .products__list ul {
    list-style: none;
    padding: 0;
    margin: 0; }
  #home01 .products__list li a {
    font-size: 2.2rem;
    padding: 4rem 2rem;
    cursor: pointer;
    border-top: 1px solid #ddd;
    transition: background 0.6s ease;
    display: flex;
    align-items: center;
    font-weight: bold;
    flex-wrap: wrap; }
    @media (max-width: 999px) {
      #home01 .products__list li a {
        display: none; } }
  #home01 .products__list li.active {
    border-top: 1px solid #E1222A; }
  #home01 .products__list li.active a {
    opacity: 1; }
  #home01 .products__list .desc {
    height: 0;
    overflow: hidden;
    opacity: 0;
    transition: height 0.4s ease, opacity 0.4s ease;
    font-size: 0.9rem;
    color: #333;
    margin-top: 0.5rem;
    font-size: 1.8rem;
    font-weight: 400; }
  #home01 .products__list li.active .desc {
    opacity: 1; }
  #home01 .products__list .number {
    color: #30884E;
    font-weight: bold;
    font-size: 2.2rem;
    margin-right: 1rem; }
  #home01 .products__list li.active .number {
    color: #E1222A; }
  #home01 .products__list li > a > .fa-arrow-right {
    background: #F7F7F7;
    margin: 0 0 0 auto;
    text-align: right;
    color: #E1222A;
    padding: 1rem;
    font-size: 2rem;
    border-radius: 4px; }
  #home01 .products__list li.active .fa-arrow-right {
    color: #30884E;
    background: #E1222A;
    color: #fff; }
  #home01 .boxs {
    padding: 2rem 0;
    border-top: 1px solid #ddd;
    display: block; }
    @media (max-width: 999px) {
      #home01 .boxs {
        border-top: 1px solid #ddd !important; } }
  #home01 .boxs.last {
    border-bottom: 1px solid #ddd;
    margin-bottom: 2rem; }
  #home01 .box {
    display: flex;
    margin-bottom: 1rem; }
  #home01 .pic {
    overflow: hidden;
    aspect-ratio: 100 / 80;
    width: calc(100 / 315 * 100%);
    margin-right: 1rem; }
  #home01 .pic img {
    width: 100%;
    height: auto;
    object-fit: cover; }
  #home01 .sttlBox {
    display: flex;
    justify-content: space-between;
    width: calc(205 / 315 * 100%);
    align-items: center; }
  #home01 .sttl {
    display: flex;
    flex-direction: column;
    font-size: 1.6rem;
    font-weight: bold; }
  #home01 .number {
    color: #30884E; }
  #home01 .box i {
    background: #F7F7F7;
    margin: 0 0 0 auto;
    text-align: right;
    color: #E1222A;
    padding: 1rem;
    border-radius: 4px; }

/* 
---------------------------------------
home02
---------------------------------------
*/
#home02 .hover-link {
  display: block;
  text-decoration: none;
  color: inherit;
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
  border-radius: 0; }
  #home02 .hover-link .imgBox {
    overflow: hidden;
    width: 100%; }
    @media (max-width: 999px) {
      #home02 .hover-link .imgBox {
        height: 16rem; } }
    #home02 .hover-link .imgBox i {
      position: absolute;
      right: 5rem;
      z-index: 2;
      color: #fff;
      font-size: 2rem;
      bottom: 5rem;
      border: 1px solid;
      border-radius: 4px;
      width: 6.5rem;
      height: 6.5rem;
      display: flex;
      align-items: center;
      justify-content: center; }
      @media (max-width: 999px) {
        #home02 .hover-link .imgBox i {
          right: 3rem;
          font-size: 1.4rem;
          bottom: 6.5rem;
          width: 3rem;
          height: 3rem; } }
  #home02 .hover-link .ttlBox {
    position: absolute;
    z-index: 1;
    top: 0;
    bottom: 0;
    display: flex;
    font-size: 120px;
    color: #fff;
    flex-direction: column;
    justify-content: center;
    line-height: 1;
    left: 5%; }
    @media (max-width: 999px) {
      #home02 .hover-link .ttlBox {
        left: 10%; } }
  #home02 .hover-link img {
    display: block;
    width: 100%;
    height: auto;
    transition: transform 0.4s ease; }
    @media (max-width: 999px) {
      #home02 .hover-link img {
        width: auto;
        height: 100%;
        max-width: max-content; } }
  #home02 .hover-link:hover img {
    transform: scale(1.05); }
#home02 .pics {
  display: flex;
  flex-wrap: nowrap; }
  @media (max-width: 999px) {
    #home02 .pics {
      flex-direction: column; } }
  @media (max-width: 999px) {
    #home02 .pics img {
      width: 100%;
      height: auto;
      max-width: max-content; } }
#home02 .pics .ttlBox {
  left: 10%; }
#home02 .ttl {
  font-size: 5.4rem;
  margin-bottom: 1.5rem;
  font-weight: bold; }
  @media (max-width: 999px) {
    #home02 .ttl {
      font-size: 2rem;
      line-height: 1;
      margin-bottom: 1rem; } }
#home02 .ttlDeco {
  font-size: 2rem;
  display: flex;
  align-items: center; }
  @media (max-width: 999px) {
    #home02 .ttlDeco {
      font-size: 1.2rem; } }
#home02 .ttlDeco > div {
  font-size: 3rem;
  margin-right: 1rem;
  color: #e1222A; }
  @media (max-width: 999px) {
    #home02 .ttlDeco > div {
      font-size: 1.5rem;
      margin-right: 0.5rem; } }

/* 
---------------------------------------
home03
---------------------------------------
*/
#home03 .ttlBox {
  display: flex;
  align-items: baseline; }
  @media (max-width: 999px) {
    #home03 .ttlBox {
      flex-direction: column; } }
#home03 .ttlDeco {
  font-size: 8.8rem;
  line-height: 1.25;
  color: #30884E; }
  @media (max-width: 999px) {
    #home03 .ttlDeco {
      font-size: 4.2rem;
      line-height: 1; } }
#home03 .ttl {
  display: flex;
  align-items: center;
  margin-left: 1rem;
  font-weight: bold;
  font-size: 2rem; }
  @media (max-width: 999px) {
    #home03 .ttl {
      font-size: 1.4rem; } }
#home03 .ttl > div {
  font-weight: bold;
  color: #E1222A;
  margin-right: 1rem;
  font-size: 2.8rem; }
  @media (max-width: 999px) {
    #home03 .ttl > div {
      font-size: 2rem; } }
#home03 .bg {
  position: absolute;
  bottom: 0;
  background: linear-gradient(to top, #EFF3F1, transparent);
  width: 100%;
  height: 50%;
  z-index: -1; }

#home03 {
  position: relative;
  padding: 16rem 0; }
  @media (max-width: 999px) {
    #home03 {
      padding: 6rem 0; } }

#home03 .inner14 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 40px; }
  @media (max-width: 999px) {
    #home03 .inner14 {
      align-items: flex-end;
      margin-bottom: 30px; } }

#home03 .l-inner {
  margin-bottom: 40px; }
  @media (max-width: 999px) {
    #home03 .l-inner {
      margin-bottom: 20px; } }

#home03 .l-inner .fa-location-dot {
  margin-right: 6px; }

#home03 .box {
  background: #f7f7f7;
  width: 80%;
  margin: 0 0 0 auto;
  padding: 160px 0;
  position: relative;
  display: flex;
  align-items: center;
  max-width: 1200px;
  transition: 0.4s ease;
  cursor: pointer;
  border-radius: 8px 0 0 8px; }
  @media (max-width: 999px) {
    #home03 .box {
      padding: 40px 0 60px;
      flex-direction: column; } }

#home03 .box .txtBox {
  padding: 48px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 50%;
  min-width: 500px; }
  @media (max-width: 999px) {
    #home03 .box .txtBox {
      padding: 20px 6%;
      min-width: 90%;
      margin-left: -20%;
      box-shadow: 0 10px 25px 0 rgba(0, 0, 0, 0.1); } }

#home03 .box .txtBox .item {
  display: flex;
  align-items: center; }

#home03 .box .txtBox .txt {
  font-size: 24px;
  font-weight: bold; }
  @media (max-width: 999px) {
    #home03 .box .txtBox .txt {
      font-size: 20px; } }

#home03 .box .txtBox .fa-solid {
  font-size: 50px;
  margin-right: 20px; }
  @media (max-width: 999px) {
    #home03 .box .txtBox .fa-solid {
      font-size: 30px; } }

#home03 .box .txtBox img {
  width: 32px; }

#home03 .box::after {
  content: '';
  width: 100%;
  height: 100%;
  background: url("../img/04_pdf_bg.jpg") no-repeat;
  position: absolute;
  z-index: -1;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  opacity: 0;
  -webkit-transition: .6s ease-in-out;
  transition: .6s ease-in-out; }

#home03 .box:hover {
  background: rgba(255, 255, 255, 0);
  transition: .6s ease; }

#home03 .box:hover::after {
  opacity: 1;
  transition: .6s ease;
  top: 50%;
  left: 50%; }

#home03 .box:hover .txtBox {
  opacity: 1;
  background: rgba(255, 255, 255, 0.5);
  transition: .6s ease; }

:root {
  --easing: cubic-bezier(.2, 1, .2, 1);
  --transition: .8s var(--easing);
  --color-base: #f8f8f8;
  --color-gray: #ddd;
  --color-theme: #f5695f;
  --color-theme-darken: #f12617;
  --box-shadow: .8rem .8rem 1.2rem rgba(0, 0, 0, .05), -.8rem -.8rem 1.2rem #fff;
  --box-shadow-hover: 1rem 1rem 1.5rem rgba(0, 0, 0, .08), -1rem -1rem 1.5rem #fff;
  --box-shadow-inset: inset .8rem .8rem 1.2rem rgba(0, 0, 0, .05), inset -.8rem -.8rem 1.2rem #fff;
  --box-shadow-dark: .8rem .8rem 1.2rem rgba(0, 0, 0, .1), -.8rem -.8rem 1.2rem rgba(#fff,.2); }

.l-inner {
  position: relative;
  box-sizing: content-box;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 10rem; }

[class*=swiper]:focus {
  outline: none; }

.slide-media,
.thumb-media {
  position: relative;
  overflow: hidden; }

.slide-media img,
.thumb-media img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
  object-fit: cover; }

.swiper-button-prev, .swiper-button-next {
  display: grid;
  place-content: center;
  width: 6rem;
  height: 6rem;
  cursor: pointer;
  border: 1px solid #111;
  border-radius: 50%; }

.swiper-button-prev::before, .swiper-button-next::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: ""; }

.swiper-button-next::after {
  content: "→";
  color: #111;
  margin-right: 0.4rem;
  font-size: 2.6rem; }

.swiper-button-prev::after {
  content: "←";
  color: #111;
  margin-left: 0.4rem;
  font-size: 2.6rem; }

.swiper-button-disabled {
  pointer-events: none;
  opacity: 0; }

.card02 .swiper {
  overflow: visible; }

.card02 .swiper-controller {
  display: flex;
  gap: 3rem;
  align-items: center;
  justify-content: flex-end;
  z-index: 0; }

.card02 .swiper-pagination {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin: 0 auto 0 0;
  text-align: center; }

.card02 .swiper-pagination-bullet {
  width: 25%;
  height: 0.6rem;
  cursor: pointer;
  transition: var(--transition);
  vertical-align: top;
  background-color: #aaa; }

.card02 .swiper-pagination-bullet-active {
  width: 25%;
  background-color: #111; }

.card02 .swiper-button-prev, .card02 .swiper-button-next {
  position: relative;
  flex-shrink: 0;
  margin: 0;
  background: #30884E;
  color: #fff;
  border-radius: inherit;
  width: 6.5rem;
  height: 6.5rem;
  border-radius: 4px; }
  @media (max-width: 999px) {
    .card02 .swiper-button-prev, .card02 .swiper-button-next {
      width: 4rem;
      height: 4rem; } }

.card02 .swiper-button-disabled {
  pointer-events: none; }

.card02 .swiper-slide {
  width: auto; }

.card02 .swiper-slide:hover {
  opacity: 1; }

.card02 .slide {
  overflow: hidden;
  width: 52.9rem;
  transition: transform 0.8s cubic-bezier(0.09, 0.43, 0.1, 0.79), -webkit-transform 0.6s cubic-bezier(0.09, 0.43, 0.1, 0.79) !important;
  margin-bottom: 2rem; }
  @media (max-width: 999px) {
    .card02 .slide {
      width: 320px; } }

.card02 .slide-media {
  aspect-ratio: 529 / 398; }

.card02 .slide-media img {
  height: calc(100% + 0);
  transform: translateY(0); }

.card02 .slide-content {
  padding: 2rem 0; }

.card02 .slide-content .sttl {
  font-weight: bold;
  font-size: 1.6rem;
  line-height: 1.5; }
  @media (min-width: 1000px) {
    .card02 .slide-content .sttl {
      font-size: 1.8rem; } }

.card02 .slide-content .stxt {
  color: #5a5a5a;
  font-size: 1.6rem; }

.card02 .slide-content time {
  font-size: 1.4rem;
  color: #787574;
  display: flex;
  margin-bottom: 0.8rem; }

.card02 .slide-content .categoryBox {
  display: flex;
  flex-wrap: wrap; }

.card02 .slide-content .category {
  color: #fff;
  background: #3E3A39;
  padding: 0 1.2rem;
  border-radius: 4px;
  height: 3rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 1rem;
  font-size: 1.4rem; }

.card02 .slide-date {
  font-size: 1.2rem;
  line-height: 1;
  display: block;
  color: var(--color-theme); }

.card02 .slide-title {
  line-height: 1.6;
  overflow: hidden;
  height: 3.2em;
  margin-top: 1.6rem; }

@media (max-width: 999px) {
  .swiper-wrapper {
    margin-bottom: 0; } }

.swiper-pagination-bullet {
  border-radius: 0; }

.swiper-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
  margin: 0; }

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

  .l-inner {
    padding: 0 2rem; } }
@media only screen and (max-width: 599px) {
  .pc-tab {
    display: none !important; } }
@media only screen and (min-width: 1025px) {
  .tab-sp {
    display: none !important; }

  .swiper-button-prev::before, .swiper-button-next::before {
    -webkit-transition: var(--transition);
    transition: var(--transition); }

  .swiper-button-prev:hover::before, .swiper-button-next:hover::before {
    -webkit-transform: scale(1.2);
    transform: scale(1.2); }

  .card02 .slide {
    -webkit-transition: var(--transition);
    transition: var(--transition); }

  .card02 .slide img {
    -webkit-transition: var(--transition);
    transition: var(--transition); }

  .card02 .slide:hover img {
    -webkit-transform: scale(1.1);
    transform: scale(1.1);
    transition: all 1s cubic-bezier(0.165, 0.84, 0.44, 1);
    opacity: 1; } }
[class^="swiper-button-"]::before,
[class^="swiper-button-"]::after {
  display: none; }

.swiper-button-prev {
  background: url(../img/ico_arrowL.png) no-repeat center center;
  background-size: 24px auto; }

.swiper-button-next {
  background: url(../img/ico_arrowR.png) no-repeat center center;
  background-size: 24px auto; }

.arrow-button {
  position: relative;
  width: 8rem;
  height: 8rem;
  overflow: hidden; }
  @media (max-width: 999px) {
    .arrow-button {
      width: 6rem;
      height: 6rem; } }

.arrow-button__border svg:first-child {
  opacity: .2; }

.arrow-button__border svg {
  position: absolute;
  top: 0;
  left: 0;
  width: 8rem;
  height: 8rem;
  stroke: #202020;
  stroke-width: 1px;
  fill: none;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }
  @media (max-width: 999px) {
    .arrow-button__border svg {
      width: 6rem;
      height: 6rem; } }

.arrow-button__border svg:last-child {
  stroke-dasharray: 200px 200px;
  stroke-dashoffset: 200px;
  visibility: hidden;
  -webkit-transition: visibility 0s 1.5s;
  transition: visibility 0s 1.5s;
  -webkit-animation: arrow-button__border-out 1.5s cubic-bezier(0.215, 0.61, 0.355, 1);
  animation: arrow-button__border-out 1.5s cubic-bezier(0.215, 0.61, 0.355, 1); }

.swiper-button-prev, .swiper-button-next {
  border: none; }

.swiper-button-prev:hover .arrow-button .arrow-button__border svg:last-child,
.swiper-button-next:hover .arrow-button .arrow-button__border svg:last-child,
a:hover .arrow-button .arrow-button__border svg:last-child {
  visibility: inherit;
  -webkit-transition: none;
  transition: none;
  -webkit-animation: arrow-button__border-over 1.5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards;
  animation: arrow-button__border-over 1.5s cubic-bezier(0.215, 0.61, 0.355, 1) forwards; }

@-webkit-keyframes arrow-button__border-over {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg); }
  to {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0; } }
@keyframes arrow-button__border-over {
  0% {
    -webkit-transform: rotate(-90deg);
    transform: rotate(-90deg); }
  to {
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
    stroke-dashoffset: 0; } }
.swiper-scrollbar-drag {
  background: #30884E !important; }

/* 
---------------------------------------
home04
---------------------------------------
*/
#home04 {
  display: flex;
  justify-content: space-between; }
  @media (max-width: 999px) {
    #home04 {
      flex-direction: column; } }
  #home04 .ttlDeco {
    font-size: 8.8rem;
    line-height: 1.25;
    color: #30884E;
    padding-right: 1rem; }
    @media (max-width: 999px) {
      #home04 .ttlDeco {
        font-size: 4.2rem;
        line-height: 1; } }
  #home04 .fadeTxt1 span.scroll-in {
    flex-direction: column; }
  #home04 .ttl {
    display: flex;
    align-items: center;
    margin-left: 1rem;
    font-weight: bold;
    font-size: 2rem;
    margin-bottom: 4rem; }
    @media (max-width: 999px) {
      #home04 .ttl {
        font-size: 1.4rem;
        margin-bottom: 0; } }
  #home04 .ttl > div {
    font-weight: bold;
    color: #E1222A;
    margin-right: 1rem;
    font-size: 2.8rem; }
    @media (max-width: 999px) {
      #home04 .ttl > div {
        font-size: 2rem; } }
  #home04 .btn {
    border: none;
    padding: 0;
    max-width: 16rem; }
    @media (max-width: 999px) {
      #home04 .btn {
        font-size: 1.4rem;
        max-width: 140px; } }
    #home04 .btn .fa-arrow-right {
      background: #fff;
      border: 1px solid #30884E;
      color: #30884E; }
    #home04 .btn:hover {
      opacity: 1; }
      #home04 .btn:hover .fa-arrow-right {
        background: #30884E;
        color: #fff; }
  @media (max-width: 999px) {
    #home04 .boxL {
      display: flex;
      justify-content: space-between;
      align-items: end;
      margin-bottom: 3rem; } }
  #home04 ul {
    width: calc(1000 / 1400 * 100%); }
    @media (max-width: 999px) {
      #home04 ul {
        width: 100%; } }
  #home04 ul a {
    padding: 4rem;
    display: flex;
    align-items: center;
    border-top: 1px solid #ddd; }
    @media (max-width: 999px) {
      #home04 ul a {
        padding: 2rem 0rem 2rem 2rem;
        display: flex;
        align-items: center;
        border-top: 1px solid #ddd;
        flex-wrap: wrap; } }
  #home04 ul li:last-child a {
    border-bottom: 1px solid #ddd; }
  #home04 ul li {
    border-left: 3px solid #30884E; }
  #home04 ul time {
    margin-right: 6rem;
    color: #787574;
    font-size: 1.4rem; }
    @media (max-width: 999px) {
      #home04 ul time {
        font-size: 1.4rem;
        width: 100%;
        margin-right: 0; } }
  #home04 ul .sttl {
    margin-right: 6rem;
    color: #30884E; }
    @media (max-width: 999px) {
      #home04 ul .sttl {
        margin-right: 0;
        width: 86%; } }
  #home04 ul .fa-arrow-right {
    background: #F7F7F7;
    color: #E1222A;
    padding: 1rem;
    font-size: 2rem;
    border-radius: 4px;
    margin: 0 0 0 auto; }
    @media (max-width: 999px) {
      #home04 ul .fa-arrow-right {
        font-size: 1.4rem;
        width: 3rem;
        height: 3rem;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center; } }

.marquee-wrapper {
  overflow: hidden;
  position: relative;
  width: 100%; }

.marquee-inner {
  display: flex;
  width: max-content;
  animation: scrollRight 60s linear infinite; }

.marquee-track {
  display: flex; }

.marquee-track span {
  display: inline-block;
  white-space: nowrap;
  font-size: 18rem;
  padding-right: 2rem;
  color: rgba(48, 136, 78, 0.1); }
  @media (max-width: 999px) {
    .marquee-track span {
      font-size: 9rem; } }

@keyframes scrollRight {
  0% {
    transform: translateX(-50%); }
  100% {
    transform: translateX(0%); } }
/* 
---------------------------------------
home05
---------------------------------------
*/
#home05 .ttlBox {
  display: flex;
  align-items: baseline; }
  @media (max-width: 999px) {
    #home05 .ttlBox {
      flex-direction: column; } }
#home05 .ttlDeco {
  font-size: 8.8rem;
  line-height: 1.25;
  color: #30884E; }
  @media (max-width: 999px) {
    #home05 .ttlDeco {
      font-size: 4.2rem;
      line-height: 1; } }
#home05 .ttl {
  display: flex;
  align-items: center;
  margin-left: 1rem;
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 4rem; }
  @media (max-width: 999px) {
    #home05 .ttl {
      font-size: 1.4rem;
      margin-bottom: 0; } }
#home05 .ttl > div {
  font-weight: bold;
  color: #E1222A;
  margin-right: 1rem;
  font-size: 2.8rem; }
  @media (max-width: 999px) {
    #home05 .ttl > div {
      font-size: 2rem; } }
#home05 .boxs {
  display: flex;
  justify-content: space-between; }
  @media (max-width: 999px) {
    #home05 .boxs {
      flex-direction: column; } }
#home05 a:hover {
  opacity: 1; }
#home05 a:hover img {
  -webkit-transform: scale(1.1);
  transform: scale(1.1);
  transition: all 1s cubic-bezier(0.165, 0.84, 0.44, 1); }
#home05 .box {
  width: calc(634 / 1400 * 100%); }
  @media (max-width: 999px) {
    #home05 .box {
      width: 100%;
      margin-bottom: 2rem; } }
  #home05 .box .pic {
    width: 100%;
    display: block;
    aspect-ratio: 634 / 478;
    overflow: hidden;
    margin-right: 4rem; }
  #home05 .box img {
    width: 100%;
    height: 100%;
    object-fit: cover; }
  #home05 .box .sttl {
    font-size: 2.2rem;
    color: #30884E; }
    @media (max-width: 999px) {
      #home05 .box .sttl {
        font-size: 1.6rem; } }
#home05 ul {
  width: calc(666 / 1400 * 100%); }
  @media (max-width: 999px) {
    #home05 ul {
      width: 100%; } }
  #home05 ul li a {
    display: flex;
    padding: 4rem 0;
    border-top: 1px solid #ddd; }
    @media (max-width: 999px) {
      #home05 ul li a {
        flex-direction: column; } }
  #home05 ul li:last-child a {
    border-bottom: 1px solid #ddd; }
  #home05 ul .pic {
    width: calc(209 / 666 * 100%);
    display: block;
    aspect-ratio: 209 / 158;
    overflow: hidden;
    margin-right: calc(40 / 666 * 100%); }
    @media (max-width: 999px) {
      #home05 ul .pic {
        width: 100%;
        margin-bottom: 2rem; } }
  #home05 ul img {
    width: 100%;
    height: auto;
    object-fit: cover; }
  #home05 ul .sttlBox {
    width: calc(417 / 666 * 100%); }
    @media (max-width: 999px) {
      #home05 ul .sttlBox {
        width: 100%; } }
  #home05 ul .sttl {
    color: #30884E;
    margin-bottom: 1.5rem; }
    @media (max-width: 999px) {
      #home05 ul .sttl {
        font-size: 1.6rem;
        margin-bottom: 1rem; } }
#home05 .btn {
  border: none;
  padding: 0;
  max-width: 16rem;
  margin: 0 0 0 auto; }
  #home05 .btn .fa-arrow-right {
    background: #fff;
    border: 1px solid #30884E;
    color: #30884E; }
  #home05 .btn:hover {
    opacity: 1; }
    #home05 .btn:hover .fa-arrow-right {
      background: #30884E;
      color: #fff; }

/* 
---------------------------------------
home06
---------------------------------------
*/
#home06 {
  padding: 20rem 0;
  background-size: cover;
  background-image: url("../img/06_bg.jpg");
  background-position: center center;
  color: #fff; }
  @media (max-width: 999px) {
    #home06 {
      padding: 10rem 0;
      margin-bottom: 0 !important; } }
  #home06 .ttl {
    font-size: 4.6rem;
    text-align: center;
    margin-bottom: 1.5rem; }
    @media (max-width: 999px) {
      #home06 .ttl {
        font-size: 2.4rem; } }
  #home06 .deco {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    line-height: 1; }
    @media (max-width: 999px) {
      #home06 .deco {
        font-size: 1.4rem; } }
  #home06 .deco > div {
    font-weight: bold;
    color: #E1222A;
    margin-right: 1rem;
    font-size: 2.8rem; }
    @media (max-width: 999px) {
      #home06 .deco > div {
        font-size: 2rem;
        margin-right: 0.5rem; } }
  #home06 .txt {
    text-align: center; }
    @media (max-width: 999px) {
      #home06 .txt {
        width: 90%;
        margin: 0 auto 4rem;
        text-align: justify; } }
  #home06 .btn {
    background: no-repeat; }

/* 
---------------------------------------
home07
---------------------------------------
*/
#home07 .ttlDeco {
  font-size: 8.8rem;
  line-height: 1.25;
  color: #30884E; }
  @media (max-width: 999px) {
    #home07 .ttlDeco {
      font-size: 4.4rem; } }
#home07 .ttl {
  display: flex;
  align-items: center;
  margin-left: 1rem;
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 4rem; }
  @media (max-width: 999px) {
    #home07 .ttl {
      font-size: 1.4rem;
      margin-bottom: 2rem; } }
#home07 .ttl > div {
  font-weight: bold;
  color: #E1222A;
  margin-right: 1rem;
  font-size: 2.8rem; }
  @media (max-width: 999px) {
    #home07 .ttl > div {
      font-size: 2rem;
      margin-right: 0.5rem; } }
@media (max-width: 999px) {
  #home07 .txt {
    margin-bottom: 2rem; } }
#home07 .box {
  display: flex;
  align-items: center; }
  @media (max-width: 999px) {
    #home07 .box {
      flex-direction: column;
      align-items: flex-start; } }
#home07 .ttlBox {
  margin-right: 14rem; }
  @media (max-width: 999px) {
    #home07 .ttlBox {
      margin-right: 0; } }
#home07 .inner14 {
  background: #fff;
  margin-top: -10rem;
  position: relative;
  z-index: 1;
  padding-top: 5rem; }
  @media (max-width: 999px) {
    #home07 .inner14 {
      margin-top: -5rem;
      padding-top: 3rem; } }
@media (max-width: 999px) {
  #home07 .inner12 {
    width: 80%; } }
#home07 .pic {
  width: 100%; }
#home07 ul {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 6%; }
  @media (max-width: 999px) {
    #home07 ul {
      flex-direction: column; } }
#home07 li {
  width: 47%; }
  @media (max-width: 999px) {
    #home07 li {
      width: 100%; } }
#home07 a {
  display: flex;
  justify-content: space-between;
  padding: 4rem 2rem;
  border-top: 1px solid #ddd;
  align-items: center; }
  @media (max-width: 999px) {
    #home07 a {
      padding: 1.6rem 2rem;
      line-height: 1.5; } }
#home07 a:hover {
  border-top: 1px solid #e1222A;
  transition: all 0.3s;
  opacity: 1; }
#home07 li:nth-child(3) a,
#home07 li:nth-child(4) a {
  border-bottom: 1px solid #ddd; }
@media (max-width: 999px) {
  #home07 li:nth-child(3) a {
    border-bottom: none; } }
#home07 .sttlDeco {
  color: #30884E; }
#home07 .fa-arrow-right {
  background: #F7F7F7;
  color: #E1222A;
  padding: 1rem;
  font-size: 2rem;
  border-radius: 4px;
  margin: 0 0 0 auto; }
  @media (max-width: 999px) {
    #home07 .fa-arrow-right {
      width: 3rem;
      height: 3rem;
      font-size: 1.4rem;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0; } }

/* 
---------------------------------------
home08
---------------------------------------
*/
#home08 .bg {
  position: absolute;
  width: calc(1800 / 1920 * 100%);
  margin: 0 0 0 auto;
  right: 0; }
  @media (max-width: 999px) {
    #home08 .bg {
      z-index: -1;
      width: 100%;
      height: 66vh;
      max-height: 440px; } }
#home08 .bgBox {
  z-index: -1;
  position: absolute; }
#home08 .boxs {
  display: flex;
  position: relative;
  justify-content: space-between;
  padding-bottom: 20rem;
  overflow: hidden;
  margin: 0 calc(60 / 1920 * 100%) 0 calc(200 / 1920 * 100%);
  width: calc(1680 / 1920 * 100%); }
  @media (max-width: 999px) {
    #home08 .boxs {
      flex-direction: column;
      margin: 0 auto;
      padding-bottom: 10rem;
      width: 100%; } }
#home08 .box {
  width: calc(440 / 1600 * 100%);
  margin-top: 4vw; }
  @media (max-width: 999px) {
    #home08 .box {
      width: 100%;
      margin-top: 6rem;
      margin-left: 7%; } }
#home08 .ttlDeco {
  font-size: 8.8rem;
  line-height: 1.25;
  color: #fff; }
  @media (max-width: 999px) {
    #home08 .ttlDeco {
      font-size: 4.2rem;
      line-height: 1; } }
#home08 .ttl {
  display: flex;
  align-items: center;
  margin-left: 1rem;
  font-weight: bold;
  font-size: 2rem;
  margin-bottom: 2rem;
  color: #fff; }
  @media (max-width: 999px) {
    #home08 .ttl {
      font-size: 1.4rem; } }
#home08 .ttl > div {
  font-weight: bold;
  color: #E1222A;
  margin-right: 1rem;
  font-size: 2.8rem; }
  @media (max-width: 999px) {
    #home08 .ttl > div {
      font-size: 2rem;
      margin-right: 0.5rem; } }
#home08 .txt {
  font-size: 2.2rem;
  font-weight: bold;
  color: #fff;
  margin-bottom: 2rem; }
  @media (max-width: 999px) {
    #home08 .txt {
      font-size: 1.6rem; } }
#home08 .pic {
  width: calc(1240/ 1600 * 100%);
  height: max-content;
  display: flex; }
  @media (max-width: 999px) {
    #home08 .pic {
      width: 100%; } }
#home08 .deco {
  font-size: 14rem;
  position: absolute;
  left: 0;
  bottom: 12rem;
  line-height: 1;
  color: #30884E; }
  @media (max-width: 999px) {
    #home08 .deco {
      font-size: 5rem;
      bottom: 6rem;
      left: 4%; } }
  #home08 .deco .en {
    color: #42DF78; }
#home08 a {
  color: #fff;
  display: flex;
  align-items: center;
  font-size: 2.2rem; }
  @media (max-width: 999px) {
    #home08 a {
      font-size: 1.6rem;
      margin-bottom: 2rem; } }
  #home08 a span {
    background: #fff;
    width: 4rem;
    height: 4rem;
    margin-left: 2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #30884E;
    border-radius: 4px;
    transition: all 0.3s; }
    @media (max-width: 999px) {
      #home08 a span {
        width: 3rem;
        height: 3rem;
        margin-left: 1rem; } }
    #home08 a span i {
      transform: rotate(45deg); }
#home08 a:hover {
  opacity: 1; }
  #home08 a:hover span {
    transform: scale(1.1);
    transition: all 0.6s; }
@media (max-width: 999px) {
  #home08 .deco .scroll-in {
    flex-direction: inherit;
    width: auto; } }
