@charset "UTF-8";
/* media query */
/* font size */
@import url("https://fonts.googleapis.com/css2?family=Source+Serif+Pro&display=swap");
/* ==========================================================================
   Font
   ========================================================================== */
@import url(//fonts.googleapis.com/earlyaccess/notosansjp.css);
@import url(//use.fontawesome.com/releases/v5.2.0/css/all.css);
/* ==========================================================================
   Reset
   ========================================================================== */
body, h1, h2, h3, h4, h5, h6, pre, ul, ol, li, dl, dt, dd, p, img {
  margin: 0;
  padding: 0; }

body * {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

#fancybox-wrap, #fancybox-wrap *, #fancybox-tmp, #fancybox-loading {
  -webkit-box-sizing: content-box !important;
  box-sizing: content-box !important; }

p, li, dt, dd, th, td {
  line-height: 2; }

ul, ol {
  list-style-type: none; }

li {
  padding: 0;
  margin: 0;
  line-height: 0; }

h1, h2, h3, h4, h5, h6 {
  text-align: center; }

input[type="button"], input[type="submit"] {
  -webkit-appearance: none;
  border-radius: 0; }

::-moz-selection {
  background-color: #DEDEDE;
  color: #333;
  /* Safari */ }

::selection {
  background-color: #DEDEDE;
  color: #333;
  /* Safari */ }

::-moz-selection {
  background-color: #DEDEDE;
  color: #333;
  /* Firefox */ }

/* ==========================================================================
   Base
   ========================================================================== */
html {
  font-size: 62.5%; }

body {
  color: #333;
  font-family: "Noto Sans JP", "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", verdana, Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
  font-size: 1.8rem;
  font-weight: 300;
  letter-spacing: 0.04em;
  line-height: 1;
  overflow-x: hidden; }

body.ftBtn {
  padding-bottom: 100px; }

a, a:link, a:hover, a:focus {
  color: #8AA6D4;
  text-decoration: underline;
  cursor: pointer;
  outline: none;
  transition: all 0.5s ease 0s; }

a:hover {
  text-decoration: none; }

.spOnly {
  display: none; }
  @media all and (max-width: 700px) {
    .spOnly {
      display: block; } }

.pcOnly {
  display: block; }
  @media all and (max-width: 700px) {
    .pcOnly {
      display: none; } }

small, .small {
  font-size: 70%;
  vertical-align: middle; }

/* clearFIx
   ==================================== */
.clearfix:after {
  content: ".";
  height: 0;
  clear: both;
  display: block;
  font-size: 0.1em;
  line-height: 0;
  visibility: hidden; }

.clearfix {
  display: inline-block;
  min-height: 1%; }

/* Hides from IE-mac \*/
* html .clearfix {
  height: 1%; }

/* br clear
   ==================================== */
br.clear {
  display: inline !important;
  display: none;
  clear: both;
  line-height: 0px; }

@media screen and (-webkit-min-device-pixel-ratio: 0) {
  br.clear {
    display: block !important;
    content: " "; } }
div.clear {
  clear: both;
  line-height: 0px; }

/* ==========================================================================
   Layout
   ========================================================================== */
.wrap:after {
  content: '';
  background: rgba(0, 0, 0, 0.7);
  height: 100%;
  width: 100%;
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
  opacity: 0;
  -webkit-transition: 0.7s;
  transition: 0.7s;
  visibility: hidden; }

body.mask .wrap:after {
  opacity: 1;
  z-index: 50;
  visibility: visible; }

/* wrap
   ==================================== */
.wrap {
  background-color: #FFF; }

/* contents
   ==================================== */
section {
  clear: both;
  text-align: center; }

.contents {
  width: 92%;
  max-width: 1200px;
  margin: 0 auto; }
  .contents img {
    max-width: 100%;
    transition: all 0.5s ease 0s; }

.contents.wide {
  max-width: none;
  margin: 0; }

/* Header
   ==================================== */
.header {
  background-color: #FFF;
  z-index: 100;
  position: relative; }
  .header .inr {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 10px 0;
    width: 100%;
    position: relative;
    z-index: 2; }
    .header .inr .logo {
      padding: 12px 0 12px; }
      .header .inr .logo a {
        display: flex;
        font-size: 15px;
        text-decoration: none;
        transition: 0.2s; }
        .header .inr .logo a img {
          margin-right: 10px;
          vertical-align: middle;
          max-width: 100%; }
    .header .inr #hdR {
      display: flex;
      justify-content: space-between;
      align-items: flex-start; }
    .header .inr #btn_search {
      margin: 24px 20px 0 20px; }
      .header .inr #btn_search .search_container {
        box-sizing: border-box;
        position: relative;
        border: 1px solid #d6d6d6;
        padding: 3px 10px;
        border-radius: 20px;
        height: 2.3em;
        width: 260px;
        overflow: hidden; }
        .header .inr #btn_search .search_container input[type="text"] {
          border: none;
          height: 2.0em; }
          .header .inr #btn_search .search_container input[type="text"]:focus {
            outline: 0; }
        .header .inr #btn_search .search_container input[type="submit"] {
          cursor: pointer;
          font-family: "Font Awesome 5 Free";
          font-weight: bold;
          font-size: 1.6rem;
          border: none;
          background: none;
          color: #a8a8a8;
          position: absolute;
          width: 2.5em;
          height: 2.5em;
          right: 0;
          top: -2px;
          outline: none; }
    .header .inr #google_search {
      margin: 24px 20px 0 20px; }
      .header .inr #google_search .search_container {
        box-sizing: border-box;
        position: relative;
        border: 1px solid #d6d6d6;
        padding: 3px 10px;
        border-radius: 20px;
        height: 2.3em;
        width: 260px;
        overflow: hidden; }
        .header .inr #google_search .search_container input[type="text"] {
          border: none;
          height: 2.0em; }
          .header .inr #google_search .search_container input[type="text"]:focus {
            outline: 0; }
        .header .inr #google_search .search_container input[type="submit"] {
          cursor: pointer;
          font-family: "Font Awesome 5 Free";
          font-weight: bold;
          font-size: 1.6rem;
          border: none;
          background: none;
          color: #a8a8a8;
          position: absolute;
          width: 2.5em;
          height: 2.5em;
          right: 0;
          top: -2px;
          outline: none; }
    .header .inr .icon {
      padding-top: 20px;
      margin-right: 20px; }
      .header .inr .icon li {
        display: inline-block; }
        .header .inr .icon li a {
          display: block;
          padding-left: 4px;
          text-decoration: none; }
          .header .inr .icon li a:hover img {
            opacity: 0.8; }
    .header .inr #language {
      width: 230px;
      margin-top: 18px; }
      .header .inr #language .btn {
        width: 100%;
        width: 230px;
        clear: both; }
        .header .inr #language .btn a {
          display: block;
          padding: 12px 6px;
          font-size: 1.4rem;
          line-height: 1.5em;
          background-color: #18448E;
          color: #FFF;
          text-decoration: none;
          border-radius: 8px;
          text-align: center; }
          .header .inr #language .btn a:visited {
            color: #FFF; }
          .header .inr #language .btn a:hover {
            color: #fff; }
      .header .inr #language p {
        font-size: 1.2rem;
        margin-right: 10px; }
      .header .inr #language select {
        background-color: #fff;
        border: 1px solid #d6d6d6;
        border-radius: 6px;
        display: inline-block;
        font-size: 1.4rem;
        line-height: 1.3em;
        padding: 6px 3.5em 6px 1em;
        /* reset */
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        -webkit-appearance: none; }
      .header .inr #language select.minimal {
        background-image: linear-gradient(45deg, transparent 50%, gray 50%), linear-gradient(135deg, gray 50%, transparent 50%), linear-gradient(to right, #ccc, #ccc);
        background-position: calc(100% - 20px) calc(1em + 2px), calc(100% - 15px) calc(1em + 2px), calc(100% - 2.5em) 0.5em;
        background-size: 5px 5px, 5px 5px, 1px 1.5em;
        background-repeat: no-repeat; }
      .header .inr #language select.minimal:focus {
        background-image: linear-gradient(45deg, #18448E 50%, transparent 50%), linear-gradient(135deg, transparent 50%, #18448E 50%), linear-gradient(to right, #ccc, #ccc);
        background-position: calc(100% - 15px) 1em, calc(100% - 20px) 1em, calc(100% - 2.5em) 0.5em;
        background-size: 5px 5px, 5px 5px, 1px 1.5em;
        background-repeat: no-repeat;
        border-color: #a8a8a8;
        outline: 0; }

@media only screen and (max-width: 1200px) {
  .header .inr {
    width: 95%; } }
/* spmenu
   ==================================== */
.my-button {
  display: none; }

.menu-trigger {
  -webkit-transition: all .4s;
  transition: all .4s;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  position: relative;
  text-decoration: none; }
  .menu-trigger span {
    -webkit-transition: all .4s;
    transition: all .4s;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    text-decoration: none;
    position: absolute; }

html.mm-opened .menu-trigger span:nth-of-type(1) {
  -webkit-transform: translateY(10px) rotate(-45deg);
  transform: translateY(10px) rotate(-45deg); }
html.mm-opened .menu-trigger span:nth-of-type(2) {
  opacity: 0; }
html.mm-opened .menu-trigger span:nth-of-type(3) {
  -webkit-transform: translateY(-10px) rotate(45deg);
  transform: translateY(-10px) rotate(45deg); }

.-button a em {
  display: none; }

p.menuLogo {
  background-color: #FFF;
  border-top: 3px solid #18448E;
  line-height: 0;
  padding: 7px 20px;
  text-align: center; }
  p.menuLogo img {
    vertical-align: middle; }
    p.menuLogo img:first-child {
      margin-right: 5px; }
  p.menuLogo a:hover span {
    color: #333 !important;
    display: block;
    letter-spacing: 0.15em;
    line-height: 1;
    padding-top: 7px; }

#gNavSp .mm-listview > li {
  line-height: 1.65; }
  #gNavSp .mm-listview > li i {
    margin-left: 6px; }
  #gNavSp .mm-listview > li a:not(.mm-next) {
    margin-left: 0; }

@media only screen and (max-width: 600px) {
  .mm-menu {
    max-width: none !important; } }
/* gnav
   ==================================== */
.gNav {
  background: #fff;
  position: relative;
  z-index: 100; }
  .gNav > ul {
    border-left: 1px solid #d6d6d6;
    display: -webkit-box;
    display: flex;
    -webkit-box-pack: justify;
    justify-content: space-between;
    margin: 0 auto;
    padding: 0;
    max-width: 1200px;
    text-align: center;
    width: 100%;
    position: relative;
    z-index: 15;
    height: 40px;
    overflow: hidden; }
    .gNav > ul > li {
      display: block;
      font-size: 1.7rem;
      line-height: 1.6;
      font-weight: 500;
      height: 40px;
      white-space: nowrap;
      width: 100%; }
      .gNav > ul > li.li01, .gNav > ul > li.li02, .gNav > ul > li.li03, .gNav > ul > li.li04, .gNav > ul > li.li05 {
        width: 14%; }
      .gNav > ul > li.li06, .gNav > ul > li.li07 {
        width: 15%; }
      .gNav > ul > li > a {
        border-right: 1px solid #d6d6d6;
        color: #333;
        display: block;
        height: 40px;
        padding: 6px 10px;
        -webkit-transition: 0.2s;
        transition: 0.2s;
        text-decoration: none;
        width: 100%;
        position: relative;
        z-index: 15; }
        .gNav > ul > li > a:hover, .gNav > ul > li > a.current {
          color: #8AA6D4; }
      .gNav > ul > li:hover a {
        border-bottom: none; }
      .gNav > ul > li .megaMenu {
        background-color: #F1F1F1;
        padding: 40px;
        text-align: left;
        position: absolute;
        left: 0;
        width: 100%;
        opacity: 0;
        -webkit-transition: 0.3s;
        transition: 0.3s;
        margin-top: -2px;
        top: -2px;
        z-index: -10;
        visibility: hidden; }
        .gNav > ul > li .megaMenu h2 {
          font-size: 22px;
          font-size: 2.2rem;
          font-weight: 500;
          margin-bottom: 20px;
          position: relative;
          /*&:before {
            content: "\f105";
            color: #fa0046;
            display: inline-block;
            font-family: "Font Awesome 5 Free";
            font-size: 16px;
            font-weight: bold;
            margin: -3px 10px 0 0;
            vertical-align: middle;
          }*/ }
          .gNav > ul > li .megaMenu h2 a {
            color: #333;
            text-decoration: none; }
            .gNav > ul > li .megaMenu h2 a:hover {
              color: #fa0046; }
        .gNav > ul > li .megaMenu ul {
          display: -webkit-box;
          display: flex;
          -ms-flex-wrap: wrap;
          flex-wrap: wrap; }
          .gNav > ul > li .megaMenu ul li {
            line-height: 1.3;
            margin: 0 1.6% 20px;
            width: 30%;
            background-color: #fff; }
            .gNav > ul > li .megaMenu ul li a {
              color: #333;
              display: block;
              text-decoration: none; }
              .gNav > ul > li .megaMenu ul li a span {
                background-image: url("../images/menu_red.png");
                background-repeat: no-repeat;
                background-position: top left; }
                .gNav > ul > li .megaMenu ul li a span.img {
                  background-color: #fff;
                  background-position: center center;
                  display: block; }
                .gNav > ul > li .megaMenu ul li a span.name {
                  background-color: #FFF;
                  display: block;
                  font-size: 1.6rem;
                  padding: 15px;
                  -webkit-transition: 0.2s;
                  transition: 0.2s;
                  word-break: break-all;
                  white-space: normal; }
                .gNav > ul > li .megaMenu ul li a span i {
                  margin-left: 6px; }
              .gNav > ul > li .megaMenu ul li a:hover span.name {
                color: #fa0046; }
      .gNav > ul > li.li01:hover > .megaMenu, .gNav > ul > li.li03:hover > .megaMenu, .gNav > ul > li.li04:hover > .megaMenu, .gNav > ul > li.li07:hover > .megaMenu {
        opacity: 1;
        top: 42px;
        z-index: -10;
        visibility: visible; }
    .gNav > ul:hover {
      overflow: visible; }

@media only screen and (max-width: 1200px) {
  .gNav > ul {
    width: 95%; } }
body.navFixed .gNav {
  border-top: 3px solid #18448E;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%; }

/* Footer
   ==================================== */
footer {
  width: 100%;
  text-align: center; }

#footer {
  width: 100%;
  margin-top: 50px;
  margin-bottom: 0; }
  @media all and (max-width: 700px) {
    #footer {
      margin-top: 5px; } }
  #footer #foot-link {
    padding-top: 20px;
    padding-bottom: 20px;
    background-color: #ECF5F9; }
    #footer #foot-link ul {
      display: flex;
      justify-content: center; }
      @media all and (max-width: 700px) {
        #footer #foot-link ul {
          flex-wrap: wrap; } }
      #footer #foot-link ul li {
        list-style-type: none;
        color: #000;
        font-size: 1.5rem;
        line-height: 2;
        flex-grow: 1;
        text-align: center; }
        @media all and (max-width: 700px) {
          #footer #foot-link ul li {
            width: calc(100% / 2 - 10px);
            flex-grow: auto; } }
        #footer #foot-link ul li a {
          color: #000;
          text-decoration: none; }
          #footer #foot-link ul li a:visited {
            color: #000; }
          #footer #foot-link ul li a:hover {
            color: #18448E; }
        #footer #foot-link ul li + li {
          border-left: 1px solid #000; }
          @media all and (max-width: 700px) {
            #footer #foot-link ul li + li {
              border-left: none; } }
  #footer #foot-info {
    padding-top: 30px;
    padding-bottom: 30px;
    background-color: #18448E;
    color: #fff; }
    #footer #foot-info a[href^="tel:"] {
      color: inherit;
      text-decoration: none;
      pointer-events: none; }
    #footer #foot-info h2 {
      font-size: 2rem;
      margin-bottom: 20px; }
    #footer #foot-info p.addredd {
      margin-bottom: 20px;
      color: inherit;
      text-decoration: none;
      pointer-events: none; }
    #footer #foot-info p.copyright {
      font-size: 1.1rem; }

#topcontrol {
  position: fixed;
  display: block;
  bottom: 30px;
  right: 20px;
  color: #fff;
  font-size: 1.3rem;
  padding: 10px;
  background-color: #000;
  border-radius: 8px; }
  @media all and (max-width: 700px) {
    #topcontrol {
      bottom: 15px;
      right: 15px; } }
  #topcontrol a {
    color: #FFF;
    text-decoration: none; }
    #topcontrol a:visited {
      color: #FFF; }
    #topcontrol a:hover {
      color: #fff; }
  #topcontrol:hover {
    opacity: 0.8; }

/* contents
   ==================================== */
h2.ttl, h3.ttl {
  font-size: 2.8rem;
  position: relative;
  padding: 1.5rem;
  text-align: center;
  margin-bottom: 50px; }
  @media all and (max-width: 700px) {
    h2.ttl, h3.ttl {
      font-size: 2.4rem; } }
  h2.ttl:before, h3.ttl:before {
    position: absolute;
    bottom: -10px;
    left: calc(50% - 30px);
    width: 60px;
    height: 2px;
    content: '';
    background: #d6d6d6; }
h2.ttl-left, h3.ttl-left {
  font-size: 2.6rem;
  padding-bottom: 1.5rem;
  text-align: left;
  border-bottom: 2px solid #d6d6d6;
  margin-bottom: 50px; }
  @media all and (max-width: 700px) {
    h2.ttl-left, h3.ttl-left {
      font-size: 2.2rem;
      line-height: 1.4; } }

h4.ttl-m-left {
  font-size: 2rem;
  padding: 10px;
  text-align: left;
  background-color: #D5E2E8;
  margin-bottom: 50px; }
  @media all and (max-width: 700px) {
    h4.ttl-m-left {
      font-size: 1.8rem; } }

/* ==========================================================================
   hero
   ========================================================================== */
/** hero **/
#hero-img {
  width: 100%;
  height: 45vh;
  position: relative;
  overflow: hidden;
  background-color: #fff;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  clear: both; }
  @media all and (max-width: 960px) {
    #hero-img {
      height: 34vh; } }
  #hero-img.min {
    height: 26vh;
    background-color: #ECF5F9; }
  #hero-img .contents {
    width: 100%;
    position: absolute;
    background-color: rgba(255, 255, 255, 0.8);
    top: 52%;
    left: 50%;
    z-index: 2;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    color: #000; }
    #hero-img .contents h2 {
      width: 100%;
      font-size: 3.4rem;
      letter-spacing: 3px;
      font-weight: 600;
      padding: 10px;
      text-align: center;
      white-space: nowrap; }
      @media all and (max-width: 700px) {
        #hero-img .contents h2 {
          font-size: 2.7rem;
          line-height: 1.5;
          letter-spacing: 1px; } }
    #hero-img .contents p {
      padding: 10px 0;
      line-height: 1.7; }
    #hero-img .contents a.btn_white {
      display: block;
      padding: 1.7rem;
      color: #18448E;
      text-align: center;
      text-decoration: none;
      letter-spacing: .1rem;
      transition: .5s;
      border: 1px solid #fff;
      background-color: none;
      color: #fff;
      width: 350px;
      margin: 10px auto 20px;
      border-radius: 6px; }
      #hero-img .contents a.btn_white i {
        margin: 0 6px; }
      #hero-img .contents a.btn_white:hover {
        background-color: #8AA6D4; }
      @media all and (max-width: 960px) {
        #hero-img .contents a.btn_white {
          width: 86%; } }
    #hero-img .contents a.btn_blue {
      display: block;
      padding: 1.7rem;
      color: #18448E;
      text-align: center;
      text-decoration: none;
      letter-spacing: .1rem;
      transition: .5s;
      background-color: #18448E;
      color: #fff;
      border-radius: 6px;
      width: 350px;
      margin: 10px auto 20px;
      border-radius: 6px; }
      #hero-img .contents a.btn_blue i {
        margin: 0 6px; }
      #hero-img .contents a.btn_blue:hover {
        background-color: #8AA6D4; }
      @media all and (max-width: 960px) {
        #hero-img .contents a.btn_blue {
          width: 86%; } }
    #hero-img .contents.black {
      background-color: rgba(0, 0, 0, 0.6);
      color: #fff; }

.topicpath {
  padding: 20px 20px 0 20px;
  width: 100%;
  clear: both;
  text-align: left; }
  @media all and (max-width: 700px) {
    .topicpath {
      padding: 10px 20px 0 20px; } }
  .topicpath ol li {
    display: inline;
    list-style-type: none;
    font-size: 0.8em;
    font-weight: 500;
    text-shadow: 0 0 0.05em #fff, 0 0 0.10em #fff, 0 0 0.15em #fff, 0 0 0.30em #fff;
    filter: saturate(80%); }
    .topicpath ol li a {
      color: #000;
      text-decoration: none; }
      .topicpath ol li a:visited {
        color: #000; }
      .topicpath ol li a:hover {
        color: #18448E; }
    .topicpath ol li:before {
      content: " > "; }
    .topicpath ol li:first-child:before {
      content: none; }
  .topicpath ol.white li {
    text-shadow: 0 0 0.05em #000, 0 0 0.10em #000, 0 0 0.15em #000, 0 0 0.30em #000;
    filter: saturate(80%);
    color: #fff; }
    .topicpath ol.white li a {
      color: #FFF;
      text-decoration: none; }
      .topicpath ol.white li a:visited {
        color: #FFF; }
      .topicpath ol.white li a:hover {
        color: #fff; }

#page-link {
  padding-top: 10px;
  padding-bottom: 10px;
  background-color: #18448E;
  z-index: 50; }
  @media all and (max-width: 700px) {
    #page-link {
      display: none; } }
  #page-link ul {
    display: flex;
    justify-content: center; }
    @media all and (max-width: 960px) {
      #page-link ul {
        flex-wrap: wrap;
        justify-content: flex-start; } }
    #page-link ul li {
      list-style-type: none;
      color: #000;
      font-size: 1.5rem;
      line-height: 2;
      flex-grow: 1;
      text-align: center; }
      @media all and (max-width: 960px) {
        #page-link ul li {
          width: calc(100% / 3 - 10px);
          flex-grow: auto; } }
      @media all and (max-width: 700px) {
        #page-link ul li {
          width: calc(100% / 2 - 10px);
          text-align: left; } }
      @media all and (max-width: 700px) {
        #page-link ul li.long {
          width: calc(100% - 10px);
          text-align: left; } }
      #page-link ul li a {
        width: 100%;
        display: block;
        color: #FFF;
        text-decoration: none; }
        #page-link ul li a:visited {
          color: #FFF; }
        #page-link ul li a:hover {
          color: #fff; }
        #page-link ul li a.active {
          color: #E9C345; }
        #page-link ul li a:hover {
          color: #F6F1E8; }
      #page-link ul li + li {
        border-left: 1px solid #fff; }
        @media all and (max-width: 960px) {
          #page-link ul li + li {
            border-left: none; } }
      #page-link ul li i {
        margin-left: 6px; }

body.navFixed #page-link {
  position: fixed;
  top: 40px;
  left: 0;
  width: 100%; }
  @media all and (max-width: 700px) {
    body.navFixed #page-link {
      position: static; } }
