@charset "UTF-8";
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, dialog, figure, footer, header, hgroup, menu, nav, section, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
  box-sizing: border-box; }

body {
  line-height: 1; }

article, aside, dialog, figure, footer, header, hgroup, nav, section {
  display: block; }

nav ul {
  list-style: none; }

blockquote, q {
  quotes: none; }

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

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

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

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

del {
  text-decoration: line-through; }

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

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

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #cccccc;
  margin: 1em 0;
  padding: 0; }

input, select {
  vertical-align: middle; }

ul {
  list-style: none; }

a {
  outline: none; }

html {
  font-size: 62.5%; }

body {
  font-size: 14px;
  font-size: 1.4rem;
  line-height: 1.6;
  color: #222222;
  font-family: Helvetica, Arial, "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", Meiryo, "メイリオ", sans-serif;
  letter-spacing: 0; }

a {
  color: #fff;
  text-decoration: none;
  transition: .25s ease; }

img {
  vertical-align: top; }

.title {
  font-size: 32px;
  font-size: 3.2rem;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  position: relative;
  padding-bottom: 65px; }
  .title:before {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    content: " ";
    border-bottom: 2px #00ac97 solid;
    display: block;
    width: 100px;
    margin: auto;
    line-height: 1.69; }
  .title:after {
    position: absolute;
    left: 50px;
    right: 0;
    bottom: 0;
    content: " ";
    border-bottom: 2px #6b1685 solid;
    display: block;
    width: 50px;
    margin: auto;
    line-height: 1.69; }

h1 {
  font-size: 40px;
  font-size: 4rem;
  line-height: 1; }

h2 {
  font-size: 29px;
  font-size: 2.9rem;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  font-weight: normal; }

h3 {
  font-size: 24px;
  font-size: 2.4rem;
  font-family: "游明朝体", "Yu Mincho", YuMincho, "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif;
  font-weight: normal;
  line-height: 1.5;
  color: #00ac97; }

h4 {
  font-size: 24px;
  font-size: 2.4rem;
  font-weight: normal; }

h5 {
  font-size: 18px;
  font-size: 1.8rem; }

h6 {
  font-size: 16px;
  font-size: 1.6rem; }

p {
  font-size: 18px;
  font-size: 1.8rem;
  line-height: 2; }
  p a {
    color: #0b4982;
    text-decoration: underline; }

select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  border-radius: 0;
  border: 0;
  margin: 0;
  padding: 0;
  background: none transparent;
  vertical-align: middle;
  font-size: inherit;
  color: inherit;
  box-sizing: content-box; }

select::-ms-expand {
  display: none; }

input, textarea {
  box-shadow: none; }

input:focus, textarea:focus {
  outline: none; }

.pc {
  display: block; }

.sp {
  display: none; }

#wrap {
  position: relative;
  overflow: hidden;
  /*margin-top: 80px;*/ }

.inner {
  margin: 0 auto;
  position: relative; }

/* =========================================================
	パーツ
========================================================= */
.pc {
  display: block; }

.sp {
  display: none; }

.map__wrap {
  margin: 30px 0 5px; }

.fade__in {
  opacity: 0;
  transform: translateY(50px) scale(0.9);
  transition: 0.6s cubic-bezier(0.8, 0, 0.25, 1); }

.fade__in.on {
  transform: translateY(0) scale(1);
  opacity: 1; }

.js__load {
  transition: opacity .5s ease; }
  .js__load .header__navInner {
    transition: .5s ease; }

header {
  width: 100%;
  height: 80px;
  background: #ffffff;
  z-index: 100;
  transition: .4s ease;
  border-bottom: 1px #d8d8d8 solid; }
  header h1 {
    margin: 20px 0 0 20px;
    float: left; }
  header ul {
    float: right;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-pack: end;
        justify-content: end;
    margin: 36px 0 0 0;
    max-width: 900px; }
    header ul li {
      margin-right: 35px; }
      header ul li img {
        width: 71%; }
    header ul a {
      color: #222222; }
    header ul span {
      position: relative; }

.body__home header {
  position: fixed;
  top: -80px;
  left: 0; }
  .body__home header.on {
    top: 0; }

#header__nav .header__navLogo {
  display: none; }

#header__nav_sp {
  display: none; }

#header__menuBtn {
  display: none; }

.body_pc header a:hover {
  opacity: 0.5; }

/* =========================================================
	#footer
========================================================= */
footer {
  padding: 100px 0;
  margin: 0 0 0 0;
  border-top: 1px #d8d8d8 solid;
  position: relative; }
  footer .inner {
    max-width: 1000px;
    color: #222222;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    -ms-flex-pack: justify;
        justify-content: space-between;
    -ms-flex-align: end;
        align-items: flex-end; }
    footer .inner .left_box {
      width: 55%;
      margin-right: auto; }
    footer .inner h1 {
      display: block; }
    footer .inner p {
      display: block;
      font-size: 14px;
      font-size: 1.4rem;
      margin: 35px 0 0 0; }
      footer .inner p span {
        font-size: 16px;
        font-size: 1.6rem;
        font-weight: bolder;
        display: block;
        margin: 0 0 13px 0; }
    footer .inner small {
      display: block;
      margin: 20px 0 0 0;
      font-size: 14px;
      font-size: 1.4rem; }
    footer .inner .site_map {
      display: block;
      font-size: 16px;
      font-size: 1.6rem;
      width: 16%; }
      footer .inner .site_map li {
        padding: 15px 0 0 0; }
      footer .inner .site_map a {
        color: #222222; }
      footer .inner .site_map:first-of-type {
        border-bottom: none; }
      footer .inner .site_map:last-of-type {
        border-bottom: none; }
    footer .inner a:hover {
      opacity: .5;
      transition: 0.3s; }

#footer_top {
  position: relative;
  overflow: hidden;
  height: 70px; }
  #footer_top .inner {
    max-width: 1000px;
    height: 30px; }
    #footer_top .inner #page_top {
      font-size: 16px;
      font-size: 1.6rem;
      width: 30px;
      height: 30px;
      display: block;
      padding: 20px;
      background: #00AC97;
      color: #FFF;
      text-align: center;
      transition: background 1s ease;
      z-index: 9;
      float: right; }
      #footer_top .inner #page_top:hover {
        background: rgba(0, 173, 153, 0.5);
        color: #FFF; }
      #footer_top .inner #page_top:before {
        content: "";
        width: 14px;
        height: 14px;
        display: block;
        border-top: #FFF solid 1px;
        border-left: #FFF solid 1px;
        transform: rotate(45deg);
        margin: 0 auto; }

body.body_js_flag_fixed #page_top {
  position: fixed;
  left: 50%;
  margin-left: 430px;
  bottom: 0px;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden; }

@media only screen and (max-width: 768px) {
  .pc {
    display: none; }
  .sp {
    display: block; }
  .map__wrap iframe {
    height: 36vw; }
  header {
    height: 60px;
    position: fixed; }
    header h1 {
      margin: 16px 0 0 20px; }
      header h1 a img {
        width: 100px; }
  #header__nav {
    display: none; }
  #header__nav_sp {
    display: block;
    visibility: hidden;
    opacity: 0;
    width: 100%;
    position: fixed;
    top: 0;
    z-index: 1000;
    height: 100vh;
    background: #fff; }
    #header__nav_sp .header__navInner {
      visibility: hidden;
      background: #fff;
      width: 100vw;
      overflow: hidden;
      transform: scale(0.95);
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%); }
    #header__nav_sp .header__navLogo {
      text-align: center;
      margin: 70px 0 45px;
      display: block; }
      #header__nav_sp .header__navLogo img {
        width: 30vw; }
    #header__nav_sp ul {
      -ms-flex-flow: column nowrap;
          flex-flow: column nowrap;
      width: 100vw;
      margin: 0;
      text-align: center;
      padding-bottom: 24vw; }
      #header__nav_sp ul li {
        width: auto;
        margin: 0;
        padding: 1.6vw;
        margin: 0 auto;
        font-size: 3.4vw; }
        #header__nav_sp ul li:last-child {
          display: block; }
          #header__nav_sp ul li:last-child a {
            border-radius: 2px; }
          #header__nav_sp ul li:last-child img {
            margin: 12px 0; }
        #header__nav_sp ul li:nth-child(6) {
          margin-bottom: 30px; }
        #header__nav_sp ul li:nth-child(7) a {
          width: 100%;
          color: #222222;
          border: #222222 solid 1px;
          border-radius: 2px;
          overflow: hidden;
          display: block;
          line-height: 1;
          position: relative;
          top: -10px; }
          #header__nav_sp ul li:nth-child(7) a span {
            position: relative;
            color: #222222; }
            #header__nav_sp ul li:nth-child(7) a span img {
              transition: .2s ease;
              margin: 12px;
              width: 70%; }
          #header__nav_sp ul li:nth-child(7) a:before {
            background: #0b4982;
            content: "";
            width: 100%;
            height: 100%;
            position: absolute;
            top: 100%;
            left: 0;
            transition: .2s ease; }
          #header__nav_sp ul li:nth-child(7) a:hover {
            opacity: 1; }
            #header__nav_sp ul li:nth-child(7) a:hover span img path {
              fill: #fff; }
            #header__nav_sp ul li:nth-child(7) a:hover:before {
              top: 0; }
        #header__nav_sp ul li img {
          height: 10px;
          width: 100%; }
    #header__nav_sp.on {
      visibility: visible;
      opacity: 1; }
      #header__nav_sp.on .header__navInner {
        visibility: visible; }
  #header__menuBtn {
    width: 27px;
    height: 27px;
    position: fixed;
    top: 16px;
    right: 20px;
    z-index: 1001;
    display: block; }
    #header__menuBtn span {
      width: 27px;
      height: 1px;
      display: block;
      position: absolute;
      left: 0;
      background: #222222;
      transition: .25s ease; }
      #header__menuBtn span:nth-child(1) {
        top: 5px; }
      #header__menuBtn span:nth-child(2) {
        top: 13px; }
      #header__menuBtn span:nth-child(3) {
        top: 21px; }
    #header__menuBtn.on span:nth-child(1) {
      top: 13px;
      transform: rotate(45deg); }
    #header__menuBtn.on span:nth-child(2) {
      opacity: 0; }
    #header__menuBtn.on span:nth-child(3) {
      top: 13px;
      transform: rotate(135deg); }
  /* =========================================================
	#footer
========================================================= */
  footer {
    margin: 0 auto 0 auto;
    padding: 12vw 0;
    border-top: 1px #d8d8d8 solid;
    position: relative; }
    footer .inner {
      width: 90%;
      color: #222222;
      text-align: center; }
      footer .inner .left_box {
        width: 90%;
        float: none;
        margin: 0 auto; }
      footer .inner h1 {
        display: block; }
        footer .inner h1 img {
          width: 37.3vw; }
      footer .inner p {
        display: block;
        font-size: 3.2vw;
        margin: 8vw 0 0 0; }
        footer .inner p span {
          font-size: 3.733vw;
          font-weight: bolder;
          display: block;
          margin: 0 0 8vw 0; }
      footer .inner small {
        display: block;
        margin: 8vw 0 0 0;
        font-size: 3.2vw; }
      footer .inner .site_map {
        display: none; }
  #footer_top {
    height: 18.4vw; }
    #footer_top .inner {
      padding: 0 5%; }
      #footer_top .inner #page_top {
        font-size: 3.733vw;
        width: 8vw;
        height: 8vw;
        display: block;
        padding: 5.3vw;
        background: #00AC97;
        color: #FFF;
        text-align: center;
        z-index: 9; }
        #footer_top .inner #page_top:before {
          content: "";
          width: 14px;
          height: 14px;
          display: block;
          border-top: #FFF solid 1px;
          border-left: #FFF solid 1px;
          transform: rotate(45deg);
          margin: 0 auto; }
        #footer_top .inner #page_top:hover {
          background: #00AC97;
          color: #FFF; }
  body.body_js_flag_fixed #page_top {
    position: fixed;
    right: 5vw;
    margin-left: 0;
    bottom: 0;
    left: auto;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden; } }

/* =========================================================
	header　スマホ縦
========================================================= */
@media screen and (max-width: 896px) and (orientation: landscape) {
  #header__nav_sp .header__navInner {
    overflow: scroll;
    height: 100vh; } }
