/* ------------------------------------------------------------------------------------------------------------------------------------------------------
//  common.css
------------------------------------------------------------------------------------------------------------------------------------------------------ */
html {
  color: #272727;
  font-size: 62.5%;
}

/* @media (max-width: 1100px) and (min-width:769px) {
  html {
    font-size: calc(100vw / 1100 * 10);
  }
} */
@media (max-width: 1220px) and (min-width:769px) {
  html {
    font-size: calc(100vw / 1220 * 10);
  }
}

@media screen and (max-width: 768px) {
  html {
    font-size: calc(100vw / 375 * 10);
  }
}

body {
  font-family: '游ゴシック体', YuGothic, '游ゴシック Medium', 'Yu Gothic Medium', '游ゴシック', 'Yu Gothic', sans-serif;
  /* font-size: 1.4rem; */
  font-size: 1.6rem;
  font-weight: 500;
  line-height: calc(24.5 / 14);
  position: relative;
}

.body-container {
  overflow: hidden;
  padding-top: 8.4rem;
}

.top-page .body-container {
  background-attachment: fixed;
  background-image: url(../img/top/top02-bg.jpg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100%;
  padding-top: 51.42%;
}
@media screen and (max-width: 768px) {
  body {
    font-size: 1.4rem;
  }
  .body-container {
    padding-top: 6rem;
  }
  .top-page .body-container {
    background: none;
    padding-top: 173.33%;
  }
}

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

.ib {
  display: inline-block;
}

.eng {
  font-family: 'Barlow', sans-serif;
  font-weight: 400;
}

.marker {
  /* background-image: linear-gradient(90deg, rgba(0,98,92,.2), rgba(43, 143, 69, .2)); */
  background-image: linear-gradient(90deg, #eaeaea, #eaeaea);
  background-position: left bottom;
  background-repeat: no-repeat;
  background-size: 0 40%;
  display: inline;
  transition: all .6s ease;
}

/* マーカーホバー時 */
.marker:hover {
  background-size: 100% 40%;
  /* マーカーの横幅を100%にする */
}

.slide01 {
  bottom: -200px;
  position: relative;
}

.slide02 {
  position: relative;
  right: -200px;
}

.slide03 {
  bottom: -200px;
  position: relative;
}
.slide04 {
  bottom: -200px;
  position: relative;
}

.slide05 {
  left: -200px;
  position: relative;
}

/* ---------------------------------------------------------------------------
//  header
--------------------------------------------------------------------------- */
.page .header {
  background-color: #fff;
}

.header .logo {
  position: relative;
  transition: .6s;
}

.header .logo img {
  left: 0;
  opacity: 0;
  position: absolute;
  top: 0;
  transition: .2s;
}

.night .header .logo .night {
  opacity: 1;
}

.day .header .logo .day {
  opacity: 1;
}

.header.active .logo .night {
  opacity: 0!important;
}
.header.active .logo .day {
  opacity: 1 !important;
}

@media only screen and (max-width: 768px) {
  .header {
    position: fixed;
    top: 0;
    transition: .2s;
    width: 100%;
    z-index: 10;
  }

  .header::before {
    background: #fff;
    content: '';
    height: 100%;
    left: 0;
    opacity: .7;
    opacity: 0;
    position: absolute;
    top: 0;
    transform: translateY(-200%);
    transition: .3s;
    width: 100%;
  }

  .header.active::before {
    opacity: 1;
    transform: translateY(0);
  }

  .header .header-inner {
    align-items: center;
    display: flex;
    height: 6rem;
    justify-content: space-between;
    padding: 0 2rem 0 1.3rem;
    position: relative;
    z-index: 11;
  }

  .header .logo {
    display: block;
    height: 3rem;
    width: 15.66rem;
  }

  .nav {
    background-color: #f0f0e8;
    min-height: 100vh;
    overflow-y: auto;
    padding-top: 7rem;
    position: fixed;
    right: -32rem;
    top: 0;
    transition: all .6s;
    width: 32rem;
    z-index: 12;
  }

  .hamburger {
    cursor: pointer;
    height: 100%;
    position: relative;
    width: 3.2rem;
    z-index: 300;
  }

  .nav-logo {
    margin-bottom: 3rem;
    margin-left: 3rem;
    width: 23.5rem;
  }

  .nav-item {
    padding: 0 4rem;
  }

  .nav-item a {
    display: block;
    font-weight: 500;
  }

  .nav-item a.normal {
    font-size: 1.5rem;
    padding: 1rem 0;
  }

  .nav-item a.normal + a.normal {
    margin-top: 7rem;
  }

  .nav-list li a.label {
    align-items: center;
    background: linear-gradient(to right, #00625c, #2b8f45);
    color: #fff;
    display: flex;
    font-size: 1.5rem;
    height: 4.4rem;
    justify-content: center;
    margin-top: 4.4rem;
    position: relative;
    width: 22.4rem;
    z-index: 1;
  }

  .nav-list li a.label::before {
    background: #fff;
    bottom: 0;
    content: '';
    height: 1px;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
    width: 2.3rem;
  }

  .hamburger-border {
    height: .15rem;
    left: 0;
    position: absolute;
    transition: all .6s;
    width: 3.5rem;
  }

  .night .hamburger-border {
    background-color: #fff;
  }

  .day .hamburger-border {
    background-color: #02645c;
  }

  .active .hamburger-border {
    background-color: #02645c!important;
  }

  .hamburger-border_top {
    top: 2.2rem;
  }

  .hamburger-border_center {
    top: 3rem;
    width: 2.5rem;
  }

  .hamburger-border_bottom {
    top: 3.8rem;
    width: 1.5rem;
  }

  .black_bg {
    background-color: #051022;
    cursor: pointer;
    left: 0;
    min-height: 100vh;
    opacity: 0;
    position: fixed;
    top: 0;
    transition: all .6s;
    visibility: hidden;
    width: 100vw;
    z-index: 100;
    z-index: 9;
  }

  .nav-open .nav {
    right: 0;
  }

  .nav-open .header .logo {
    opacity: 0;
  }

  .nav-open .black_bg {
    opacity: 1;
    visibility: visible;
  }

  .nav-open .hamburger-border_top {
    background: #272727;
    top: 3rem;
    transform: rotate(45deg);
  }

  .nav-open .hamburger-border_center {
    opacity: 0;
  }

  .nav-open .hamburger-border_bottom {
    background: #272727;
    top: 3rem;
    transform: rotate(-45deg);
    width: 3.5rem;
  }
  .nav-list > li > ul {
    margin-top: -1rem;
    /* width: 12.8rem; */
  }
  .nav-list > li > ul li a::before {
    content: '-\a0';
  }
}

@media only screen and (min-width: 769px) {
  .header {
    position: fixed;
    top: 0;
    transition: .2s;
    width: 100%;
    z-index: 10;
  }

  .header::before {
    background: #fff;
    content: '';
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    transform: translateY(-200%);
    transition: .6s;
    width: 100%;
  }

  .header.active::before {
    opacity: 1;
    transform: translateY(0);
  }

  .header .header-inner {
    align-items: center;
    display: flex;
    height: 8.4rem;
    justify-content: space-between;
    padding: 0 5rem;
    position: relative;
    z-index: 11;
  }

  .header .logo {
    display: block;
    height: 3.8rem;
    position: relative;
    width: 20rem;
  }
  /* .header .logo::after {
    background-image: url(../img/common/logo-day.png);
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    height: 100%;
    opacity: 0;
    position: absolute;
    transition: .2s;
    width: 100%;
  }
  .header.active .logo::after {
    opacity: 1;
  } */

  .header .logo:hover {
    opacity: .7;
  }

  .nav-list {
    align-items: center;
    display: flex;
  }
  .nav-list > li {
    position: relative;
  }
  .nav-list > li > a {
    align-items: center;
    border-bottom: 1px solid transparent;
    color: #fff;
    display: flex;
    font-size: 1.5rem;
    font-weight: 500;
    height: 4.4rem;
    justify-content: center;
    margin: 0 .5rem;
    position: relative;
    transition: .2s;
    width: 100%;
    /* width: 12.8rem; */
    width: 14.8rem;
  }

  .day .nav-list > li > a {
    color: #272727;
  }
  .active .nav-list > li > a {
    color: #272727!important;
  }

  .nav-list > li > a.normal::before {
    background: linear-gradient(to right, #00625c, #2b8f45);
    bottom: 0;
    content: '';
    height: 2px;
    left: 0;
    margin: auto;
    position: absolute;
    transform: scale(0, 1);
    transform-origin: right top;
    transition: transform .3s;
    width: 100%;
  }

  .nav-list > li > a.normal:hover::before {
    transform: scale(1, 1);
    transform-origin: left top;
  }

  .nav-list > li > a.label {
    background: linear-gradient(to right, #00625c, #2b8f45);
    color: #fff !important;
    overflow: hidden;
    position: relative;
    z-index: 1;
  }

  .nav-list > li > a.label::before {
    background: #fff;
    bottom: 0;
    content: '';
    display: none;
    height: 1px;
    margin: auto;
    position: absolute;
    right: 0;
    top: 0;
    transition: .2s;
    width: 2.3rem;
  }

  .nav-list > li > a.label:hover:before {
    background: #fff;
    bottom: 0;
    content: '';
    height: 1px;
    margin: auto;
    position: absolute;
    right: -2.3rem;
    top: 0;
    width: 2.3rem;
  }

  .nav-list > li > a.label::after {
    background: #fff;
    content: '';
    height: 100%;
    left: 0;
    position: absolute;
    top: 0;
    transform: scale(0, 1);
    transform-origin: right top;
    transition: .2s cubic-bezier(.45, 0, .55, 1);
    transition: transform .3s;
    width: 100%;
    z-index: -1;
  }

  .nav-list > li > a.label:hover {
    color: #2b8f45 !important;
  }

  .nav-list > li > a.label:hover::after {
    transform: scale(1, 1);
    transform-origin: left top;
  }
  .nav-list > li > ul {
    background: #fff;
    font-size: 1.5rem;
    font-weight: 500;
    left: 0;
    margin: auto;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    text-align: center;
    transition: .2s;
    /* width: 12.8rem; */
    width: 14.8rem;
  }
  .nav-list > li:hover > ul {
    opacity: 1;
    pointer-events: all;
  }
  .nav-list > li > ul li + li {
    border-top: 1px solid #2b8f45;
  }
  .nav-list > li > ul li a {
    display: block;
    line-height: 1.2;
    padding: 1rem .5rem;
    transition: .2s;
  }
  .nav-list > li > ul li a:hover {
    opacity: .7;
  }
}
/* ---------------------------------------------------------------------------
//  section-entry
--------------------------------------------------------------------------- */
.section-entry {
  color: #fff;
  display: block;
  position: relative;
  transition: .2s;
}

.section-entry::before {
  background: #fff;
  bottom: 0;
  content: '';
  height: 1px;
  margin: auto;
  position: absolute;
  right: 0;
  top: 0;
  transition: .2s;
  width: 28rem;
}

.section-entry:hover:before {
  background: #fff;
  bottom: 0;
  content: '';
  height: 1px;
  margin: auto;
  position: absolute;
  right: 0;
  right: -28rem;
  top: 0;
}

.section-entry::after {
  background: rgba(255,255,255,1);
  border-bottom: solid 2px rgb(0,98,92) ;
  border-top: solid 2px rgb(43, 143, 69) ;
  content: '';
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transform: scale(0, 1);
  transform-origin: right top;
  transition: .2s cubic-bezier(.45, 0, .55, 1);
  transition: transform .3s;
  width: 100%;
  z-index: 1;
}

.section-entry:hover {
  color: #2b8f45 !important;
}

.section-entry:hover::after {
  transform: scale(1, 1);
  transform-origin: left top;
}
.section-entry .container {
  background: linear-gradient(90deg, rgb(0,98,92), rgb(43, 143, 69));
  padding: 13.2rem 5rem;
}

.section-entry .contents {
  align-items: center;
  display: flex;
  margin: auto;
  max-width: 120rem;
  position: relative;
  z-index: 3;
}

.section-entry .contents .title-area {
  align-items: flex-end;
  display: flex;
  transition: .3s;
}

.section-entry:hover .contents .title-area {
  margin-left: calc((100% - 34.1rem) / 2);
}

.section-entry .contents .title-area .eng {
  font-size: 4.8rem;
  line-height: 1;
  margin-right: .7rem;
}

.section-entry .contents .title-area .title {
  font-size: 1.4rem;
}

.section-entry .contents .title-area .title::before {
  background: #fff;
  content: '';
  display: inline-block;
  height: .1rem;
  margin-right: .6rem;
  transition: .3s;
  width: 1.3rem;
}
.section-entry:hover .contents .title-area .title::before {
  background: rgb(43, 143, 69);
}
@media screen and (max-width: 768px) {
  .section-entry::before {
    background: #fff;
    bottom: 10rem;
    content: '';
    height: 1px;
    left: 2rem;
    margin: auto;
    position: absolute;
    right: inherit;
    top: inherit;
    width: 18rem;
  }

  .section-entry:hover:before {
    display: none;
  }
  .section-entry .container {
    padding: 11.2rem 2rem 15rem;
  }
  .section-entry .contents .title-area {
    left: -.5rem ;
    position: relative;
  }

  .section-entry:hover .contents .title-area {
    margin-left: 0;
  }
  .section-entry .contents .title-area .eng {
    font-size: 3rem;
  }
}
/* ---------------------------------------------------------------------------
//  section-footer
--------------------------------------------------------------------------- */
.section-footer .container {
  background: #020d1e;
  color: #fff;
  padding: 10rem 5rem 7rem;
}
.section-footer .contents {
  display: flex;
  justify-content: space-between;
  margin: auto;
  max-width: 130rem;
}
.section-footer .contents .left-area {
  width: 20rem;
}
.section-footer .contents .left-area .logo {
  display: block;
  left: -1rem;
  margin-bottom: 3rem;
  position: relative;
  transition: .2s;
  width: 100%;
}
.section-footer .contents .left-area .logo:hover {
  opacity: .7;
}
.section-footer .contents .left-area .copyright {
  font-size: 1.2rem;
}
.section-footer .contents .right-area {
  width: 53.4rem;
}
.section-footer .contents .right-area a {
  transition: .2s;
}
.section-footer .contents .right-area a:hover {
  color: #2b8f45 ;
}
.section-footer .contents .right-area .main-link-list {
  display: flex;
  justify-content: space-between;
}
.section-footer .contents .right-area .main-link-list .item .title {
  display: block;
  font-size: 1.6rem;
  font-weight: 500;
  line-height: 1;
  margin-bottom: 2.4rem;
}
.section-footer .contents .right-area .main-link-list .item .link {
  background-image: url(../img/common/footer-icon01.svg);
  background-position: top .2rem left;
  background-repeat: no-repeat;
  background-size: .72rem;
  display: block;
  font-size: 1.4rem;
  line-height: 1;
  padding-left: 1rem;
}
.section-footer .contents .right-area .main-link-list .item .link + .link {
  margin-top: 1.8rem;
}
.section-footer .contents .right-area .other-link-list {
  display: flex;
  justify-content: space-between;
  margin-top: 10.9rem;
}
.section-footer .contents .right-area .other-link-list .item .link {
  display: block;
  font-size: 1.3rem;
}
.section-footer .contents .right-area .other-link-list .item .link::after {
  background-image: url(../img/common/footer-icon02.svg);
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  content: '';
  display: inline-block;
  height: .9rem;
  margin-left: .2rem;
  width: 1.2rem;
}
@media screen and (max-width: 768px) {
  .section-footer .container {
    background: #020d1e;
    color: #fff;
    padding: 7.4rem 2rem 13.5rem;
    position: relative;
  }
  .section-footer .contents {
    display: block;
  }
  .section-footer .contents .left-area {
    margin-bottom: 4.2rem;
    width: 100%;
  }
  .section-footer .contents .left-area .logo {
    margin-bottom: 0;
    width: 28.7rem;
  }
  .section-footer .contents .left-area .copyright {
    bottom: 6.7rem;
    left: 0;
    margin: auto;
    position: absolute;
    right: 0;
    text-align: center;
  }
  .section-footer .contents .right-area {
    width: 100%;
  }
  .section-footer .contents .right-area .main-link-list {
    display: block;
  }
  .section-footer .contents .right-area .main-link-list .item + .item {
    margin-top: 3.8rem;
  }
  .section-footer .contents .right-area .main-link-list .item .link + .link {
    margin-top: 1.8rem;
  }
  .section-footer .contents .right-area .other-link-list {
    flex-wrap: wrap;
    justify-content: flex-start;
    margin-top: 4.4rem;
    padding: 0 2rem;
  }
  .section-footer .contents .right-area .other-link-list .item .link {
    border-left: 1px solid #707070;
    border-right: 1px solid #707070;
    line-height: 1;
    margin-bottom: 2.3rem;
    padding: 0 1.55rem;
  }
}
