  /*--------------- header --------------*/
  
  html {
      font-size: 100%;
  }
  
  @media screen and (max-width: 800px) {
      html {
          font-size: 70%;
      }
  }
  
  body {
      color: #333;
      background-color: #fbfcfc;
      line-height: normal;
      font-size: 1rem;
      font-family: acumin-pro, YuGothic, 游ゴシック, "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", Osaka, メイリオ, Meiryo, "ＭＳ Ｐゴシック", sans-serif;
  }
  
  body a {
      color: #666;
  }
  
  body a:hover {
      color: rgb(14, 120, 196);
  }
  
  .article p,
  .content p {
      margin-bottom: 1em;
  }
  
  .text-mincho {
      font-family: Hiragino Mincho ProN, ヒラギノ明朝 ProN, Hiragino Mincho Pro, ヒラギノ明朝 Pro, Yu Mincho, 游明朝;
  }
  
  .ls {
      letter-spacing: 0.2rem;
  }
  
  .font-b {
      font-weight: bold;
  }
  
  .main-menu2021 {
      text-align: right;
  }
  
  .main-menu2021 li {
      display: inline-block;
      line-height: normal;
  }
  
  .main-menu2021 li a {
      display: block;
      padding: 0 1.75em;
      color: #4d4d4d;
      text-align: center;
      transition: none;
  }
  
  .main-menu2021 li:hover a,
  .main-menu2021 li .current-menu-item a,
  .main-menu2021 li.current-menu-item a {
      color: #003e9a;
  }
  
  @media screen and (max-width: 640px) {
      .main-menu2021 {
          display: none;
      }
  }
  
  header {
      -moz-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
      -webkit-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
      box-shadow: 0 0 0 rgba(0, 0, 0, 0);
      background-color: rgba(251, 251, 251, .8);
  }
  
  .news-card {
      margin: auto;
      width: 90%;
  }
  
  .news-card .card {
      background-color: transparent;
      border: 0px;
      max-width: 280px;
      margin: 20px auto 0;
  }
  
  .card-badge {
      position: absolute;
      top: 15px;
      left: 25px;
      z-index: 1;
  }
  
  .news-card .date {
      font-size: 0.9rem;
  }
  
  .news-card .badge {
      margin-left: 5px;
  }
  
  .news-card .card-body img {
      width: 100%;
      height: 20vh;
      min-height: 80px;
      max-height: 140px;
      object-fit: cover;
      border-radius: 4px;
      color: #ffffff;
      transition: all 0.3s;
  }
  
  .news-card .card-body img:hover {
      opacity: 0.5;
      transform: scale(1.1);
  }
  
  @media screen and (max-width: 576px) {
      .news-card {
          margin: 0;
          width: 100%;
      }
      .news-card .card {
          margin: 0;
      }
      .news-card .card-body {
          padding: 0;
      }
      .news-card .card-badge {
          top: 0px;
          left: 10px;
      }
  }
  /*--------------- header --------------*/
  /*--------------- main --------------*/
  
  #lottie {
      width: 100%;
      height: 100%;
      display: block;
      overflow: hidden;
      transform: translate3d(0, 0, 0);
      text-align: center;
      opacity: 1;
      transition: all .5s;
  }
  
  #loader-bg {
      display: none;
      position: absolute;
      top: 0;
      z-index: 9999;
  }
  
  #loader {
      display: none;
      z-index: 10000;
  }
  
  #section_1 {
      min-height: 400px;
      transition: all .5s;
  }
  
  @media screen and (min-width: 1100px) {
      #section_1 {
          min-height: 600px;
          transition: all .5s;
      }
  }
  
  @media screen and (max-width: 600px) {
      #section_1 {
          min-height: 200px;
          transition: all .5s;
      }
  }
  
  main h1 {
      font-size: calc(1.2rem + 1.5vw);
      font-weight: bold;
      line-height: normal;
  }
  
  main h2 {
      font-size: calc(2.2rem + 1.5vw);
      font-weight: bold;
      color: rgb(14, 120, 196);
      line-height: 2.5rem;
  }
  
  main .mainimg-text h3 {
      font-size: calc(1.9rem + .6vw);
      font-weight: bold;
      line-height: normal;
  }
  
  #loader h3,
  main h3 {
      font-size: calc(1.9rem + .6vw);
      line-height: normal;
  }
  
  main h4 {
      font-size: calc(1.2rem + .3vw);
      line-height: normal;
  }
  
  main h5 {
      font-size: 1.1rem;
      line-height: normal;
  }
  
  .text-small {
      font-size: 1.1rem;
      letter-spacing: 1.3rem;
      white-space: nowrap;
      line-height: normal;
  }
  /** mainimgの背景に指定画像 **/
  
  .mainimg {
      top: 0;
      z-index: 9999;
      /* background: url('../images/home2021-main.svg') center no-repeat; */
      /* background-size: cover; */
      /* height: 100%; */
      /* min-height: 600px; */
  }
  /** mainimg2の背景に指定画像 **/
  
  .mainimg2 {
      background: url('../images/home2021-niigatacity.jpg') center no-repeat;
      background-attachment: fixed;
      background-size: cover;
      height: 100%;
      min-height: 700px;
  }
  
  table.table-vision,
  table.table-vision th,
  table.table-vision td {
      border: 0px;
      font-weight: bold;
      width: auto !important;
  }
  
  table.table-vision th,
  table.table-vision td {
      padding: 3px 5px;
  }
  
  a.more {
      color: rgb(14, 120, 196);
      border-bottom: 1px solid rgb(14, 120, 196);
      text-decoration: none;
      transition: all 0.3s;
  }
  
  a.more:hover {
      opacity: 0.8;
      background-color: rgba(255, 255, 255, .2);
  }
  
  .flexslider .slides img {
      padding: 0 5px;
  }
  
  .contact-card {
      max-width: 370px;
      border: 1px solid #999999;
      transition: all .3s;
  }
  
  .contact-card:hover {
      transform: scale(1.1);
  }
  /*--------------- main --------------*/
  /*-------------- footer --------------*/
  
  footer {
      background: #ffffff;
      border-top: 1px solid #eee;
  }
  
  footer.bottom2 {
      padding: 27px 0 0 0;
  }
  
  footer.bottom2 h5 {
      font-size: 1.3rem;
      letter-spacing: 0.1rem;
  }
  
  footer.bottom2 p {
      font-size: 0.9rem;
      letter-spacing: 0.1rem;
  }
  
  ul.footer-links {
      margin-bottom: 50px;
  }
  
  ul.footer-links li {
      display: inline-block;
      padding: 0 1.25em;
      border-bottom: 0px solid #666;
  }
  
  ul.footer-links li a {
      color: #666;
      font-size: 0.9rem;
      border-bottom: 1px solid #666;
      padding-bottom: 5px;
  }
  
  @media screen and (max-width: 640px) {
      .footer-links ul {
          margin-bottom: 30px;
      }
      .footer-links ul li {
          margin-bottom: 10px;
      }
  }
  
  ul.footer-links li a:hover {
      text-decoration: none;
  }
  
  .top-sns-area a {
      color: #888;
      font-size: 20px;
  }
  
  #nsgFooterNav {
      background-color: #ea8a02;
      border: 0px;
  }
  
  #nsgFooterNav a {
      color: #f0f0f0;
      font-size: 0.8rem;
  }
  
  #nsgFooterNav ul {
      overflow: hidden;
      max-width: 1180px;
  }
  /*-------------- footer --------------*/
  /*--------------- page --------------*/
  
  .breadcrumbs {
      border: 0px;
  }
  
  .page-title {
      background: none;
  }
  
  .article img {
      width: 100%;
  }
  
  .article *:first-child {
      margin-top: 0;
  }
  
  .article {
      line-height: normal;
  }
  
  .article h1,
  .page-title h1 {
      font-size: calc(1.375rem + .9vw);
      font-weight: 500;
      margin-top: 0;
      margin-bottom: .5rem;
      line-height: calc(1.375rem + .9vw);
  }
  
  .article h2,
  .article .content h2 {
      font-size: calc(1.25rem + .4vw);
      font-weight: bold;
      margin: 50px 0 20px 0;
      padding: 10px;
      border-bottom: 1px solid #666;
      border-left: 10px solid #4ca4e3;
      background-color: rgba(251, 251, 251, .5);
  }
  
  .article h3 {
      font-size: calc(1.2rem + .2vw);
      font-weight: bold;
      margin: 30px 0 20px 10px;
      position: relative;
  }
  
  .article h3:before {
      content: '';
      width: 50px;
      height: 1px;
      background-color: #4ca4e3;
      display: block;
      position: absolute;
      left: 0;
      bottom: -6px;
  }
  
  .article h4 {
      font-size: 1.1rem;
      font-weight: bold;
      position: relative;
      padding: 4px 16px;
      margin: 30px 0 16px 0;
      color: #fff;
      border-radius: 4px;
      background: #666;
  }
  
  .article h4:after {
      position: absolute;
      bottom: -9px;
      left: 1em;
      width: 0;
      height: 0;
      content: '';
      border-width: 10px 10px 0 10px;
      border-style: solid;
      border-color: #666 transparent transparent transparent;
  }
  
  .article h5 {
      font-size: 1.1rem;
      font-weight: bold;
      margin: 20px 0 10px 0;
  }
  
  .article h6 {
      font-size: 1rem;
      margin: 20px 0 10px 0;
  }
  
  .article table tr td {
      background: rgba(255, 255, 255, 0.8);
  }
  
  .article table tr th {
      background: #f5fafc;
      color: #014ca0;
  }
  
  .post-meta {
      margin: 8px 0;
      color: #999;
  }
  
  .far {
      margin: 0 4px;
  }
  
  .post-meta li {
      float: left;
      padding-right: 8px;
      font-size: 1.1rem;
  }
  
  .clearfix:after {
      display: block;
      clear: both;
      content: "";
  }
  
  .eye-catching img {
      min-width: 300px;
      max-width: 300px;
      height: auto;
  }
  
  @media screen and (min-width: 500px) {
      .eye-catching img {
          max-width: 450px;
      }
  }
  
  @media screen and (min-width: 720px) {
      .eye-catching img {
          max-width: 600px;
      }
  }
  
  .breadcrumbs a,
  .post-meta a,
  .prev-link a,
  .next-link a {
      color: #777;
  }
  
  .breadcrumbs a:hover,
  .post-meta a:hover,
  .prev-link a:hover,
  .next-link a:hover {
      color: #ccc;
  }
  
  .prev-link {
      max-width: 150px;
      margin: 0 auto 0 0;
  }
  
  .next-link {
      max-width: 150px;
      margin: 0 0 0 auto;
  }
  
  @media screen and (min-width: 400px) {
      .prev-link,
      .next-link {
          max-width: 250px;
      }
  }
  
  .next-link-img img,
  .prev-link-img img {
      object-fit: cover;
      top: 0;
      bottom: 0;
      left: 0;
      right: 0;
      position: absolute;
      margin: auto;
  }
  
  .next-link-img,
  .prev-link-img,
  .next-link-img img,
  .prev-link-img img {
      height: 70px;
  }
  
  @media screen and (min-width: 400px) {
      .next-link-img,
      .prev-link-img,
      .next-link-img img,
      .prev-link-img img {
          height: 100px;
      }
  }
  
  .ellipsis {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
  }
  
  .text-right {
      text-align: right;
  }
  
  .text-left {
      text-align: left;
  }
  
  .page-news .news-card {
      border: #ccc solid 1px;
      background-color: #f6f6fa;
      padding: 10px;
      width: 100%;
  }
  /*--------------- page --------------*/
  /*--------------- flexslider --------------*/
  
  .flex-direction-nav a:before {
      font-size: 30px;
      display: inline-block;
      content: '<';
      color: rgba(0, 0, 0, 0.8);
      text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.3);
  }
  
  .flex-direction-nav a.flex-next:before {
      content: '>';
  }
  /*--------------- flexslider --------------*/