@charset "UTF-8";
html {
  line-height: 1.3em;
  scroll-behavior: smooth;
  font-size: 10px; }
  @media (max-width: 1400px) {
    html {
      font-size: 11px; } }
  @media (max-width: 1300px) {
    html {
      font-size: 10px; } }
  @media (max-width: 1024px) {
    html {
      font-size: 9px; } }
  @media (max-width: 576px) {
    html {
      font-size: 10px; } }

body {
  /*font-family : YuMincho,'Yu Mincho',serif;*/
  font-family: "Noto Sans JP", serif;
  font-style: normal;
  font-weight: 500;
  color: #000000;
  font-size: 1rem;
  position: relative;
  height: 100%;
  background-color: #fff;
  line-height: 1.8em;
  letter-spacing: 0.05rem; }
  body.active {
    height: 100%;
    overflow: hidden; }

::selection {
  background-color: #000000;
  color: #F0F0F0; }

.wrapper {
  /*overflow: hidden;*/ }

.ge {
  font-family: Georgia,'georgia', YuMincho,'Yu Mincho',serif;
  font-weight: 400;
  font-style: normal;
  letter-spacing: 0rem; }

/*body > .wrapper{
    height: 100%;
    overflow: hidden;
}*/
h1, h2, h3, h4, h5 {
  font-weight: 400;
  font-style: normal;
  margin-bottom: 1em;
  line-height: 1.3;
  letter-spacing: 0.1rem; }
  @media (max-width: 576px) {
    h1, h2, h3, h4, h5 {
      line-height: 1.6; } }

.txt {
  line-height: 2em;
  font-size: 1.4rem;
  letter-spacing: 0.05rem;
  font-weight: 400; }
  @media (max-width: 576px) {
    .txt {
      font-size: 1.4rem; } }
  .txt strong {
    font-weight: bold; }
  .txt a {
    color: #000000;
    transition: all 0.5s; }
    .txt a.no_deco {
      text-decoration: none; }
  .txt.min {
    font-size: 1.0rem; }
  .txt.center {
    text-align: center; }

.color01 {
  color: #000000; }

a {
  text-decoration: none;
  color: #000000; }

@media (min-width: 576px) {
  * a {
    transition: all 0.5s; } }
img {
  max-width: 100%;
  height: auto; }

@media (min-width: 576px) {
  a div.img, a div.img div.main, a div.img div.sub {
    overflow: hidden; }
    a div.img img, a div.img div.main img, a div.img div.sub img {
      transition: all 0.5s; }
  a:hover div.img img, a:hover div.img div.main img, a:hover div.img div.sub img {
    transform: scale(1.05); } }
table {
  border-top: 1px solid #ccc;
  margin-bottom: 30px;
  width: 100%; }
  table tr {
    line-height: 2em; }
    table tr th {
      font-weight: 900;
      padding: 30px 2rem;
      border-bottom: 1px solid #ccc;
      text-align: right;
      vertical-align: top; }
    table tr td {
      padding: 30px 2rem;
      color: #808080;
      border-bottom: 1px solid #ccc;
      text-align: right;
      vertical-align: top; }
  table .col10 {
    width: calc(100%/10); }
  table .col6 {
    width: calc(100%/6); }
  table .col5 {
    width: calc(100%/5); }
  table .col4 {
    width: calc(100%/4); }
  table .col3 {
    width: calc(100%/3); }
  table .col2 {
    width: calc(100%/2); }
  table .left {
    text-align: left; }
  table .right {
    text-align: right; }
  table .center {
    text-align: center; }
  table .mid {
    vertical-align: middle; }

input, select {
  -webkit-appearance: none;
  appearance: none; }

.no-link {
  pointer-events: none; }

.tate {
  -ms-writing-mode: tb-rl;
  writing-mode: vertical-rl;
  letter-spacing: 0.4rem; }

/*============================
PC/SPの切り替え
============================*/
@media (min-width: 576px) {
  .pc {
    display: inline-block; }

  .sp {
    display: none !important; } }
@media (max-width: 576px) {
  .pc {
    display: none !important; }

  .sp {
    display: inline-block; } }
/*============================
ヘッダー
============================*/
header.header {
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 1000;
  padding-top: 2.5rem; }
  @media (max-width: 576px) {
    header.header {
      padding-top: 2rem; } }
  header.header div.g_nav {
    display: flex;
    justify-content: space-between;
    flex-direction: row-reverse;
    padding: 0 3.5rem;
    position: relative;
    align-items: center;
    height: 3.5rem;
    top: 0rem;
    opacity: 1;
    transition: all 0.5s;
    /*一定位置までスクロールしたときのメニュの表示挙動*/
    /*上スクロール時にメニュー表示*/ }
    @media (max-width: 576px) {
      header.header div.g_nav {
        padding: 0 2rem; } }
    header.header div.g_nav div.logo a.logomark {
      position: absolute;
      left: 3.5rem;
      top: 0;
      transition: all 0.5s; }
      @media (max-width: 576px) {
        header.header div.g_nav div.logo a.logomark {
          left: 2rem; } }
      @media (max-width: 576px) {
        header.header div.g_nav div.logo a.logomark img {
          width: 17rem; } }
      header.header div.g_nav div.logo a.logomark img.wh {
        display: none; }
      header.header div.g_nav div.logo a.logomark img.bl {
        display: block; }
    header.header div.g_nav div.logo div#fix-header.menu {
      position: absolute;
      right: 3.5rem;
      top: 1rem;
      opacity: 1;
      transition: all 0.5s; }
      @media (max-width: 576px) {
        header.header div.g_nav div.logo div#fix-header.menu {
          right: 2rem; } }
      header.header div.g_nav div.logo div#fix-header.menu div.menu-btn.open span:before {
        background-color: #000000; }
      header.header div.g_nav div.logo div#fix-header.menu div.menu-btn.open span:after {
        background-color: #000000; }
      header.header div.g_nav div.logo div#fix-header.menu.menu-open {
        top: 0.7rem;
        opacity: 1;
        z-index: 1000; }
    header.header div.g_nav div.logo nav.gmenu {
      /* menu.scssに記述*/ }
    header.header div.g_nav.fade-out div.logo a.logomark {
      opacity: 1 !important;
      top: 0; }
    header.header div.g_nav.fade-out div.logo div#fix-header.menu {
      opacity: 1; }
      @media (max-width: 576px) {
        header.header div.g_nav.fade-out div.logo div#fix-header.menu {
          top: 0.7rem; } }
      header.header div.g_nav.fade-out div.logo div#fix-header.menu div.menu-btn.open span:before {
        background-color: #000000; }
      header.header div.g_nav.fade-out div.logo div#fix-header.menu div.menu-btn.open span:after {
        background-color: #000000; }
    header.header div.g_nav.menu-in {
      top: 0;
      opacity: 1; }

/* ファーストビューの背景が黒いときの挙動*/
.first_bl header.header div.g_nav div.logo a.logomark img.wh {
  display: block; }
.first_bl header.header div.g_nav div.logo a.logomark img.bl {
  display: none; }
.first_bl header.header div.g_nav div.logo div#fix-header.menu {
  opacity: 1; }
  @media (max-width: 576px) {
    .first_bl header.header div.g_nav div.logo div#fix-header.menu {
      top: 0.7rem; } }
  .first_bl header.header div.g_nav div.logo div#fix-header.menu div.menu-btn.open span:before {
    background-color: #fff; }
  .first_bl header.header div.g_nav div.logo div#fix-header.menu div.menu-btn.open span:after {
    background-color: #fff; }
.first_bl header.header div.g_nav.fade-out div.logo a.logomark img.wh {
  display: none; }
.first_bl header.header div.g_nav.fade-out div.logo a.logomark img.bl {
  display: block; }
.first_bl header.header div.g_nav.fade-out div.logo div#fix-header.menu {
  opacity: 1; }
  @media (max-width: 576px) {
    .first_bl header.header div.g_nav.fade-out div.logo div#fix-header.menu {
      top: 0.7rem; } }
  .first_bl header.header div.g_nav.fade-out div.logo div#fix-header.menu div.menu-btn.open span:before {
    background-color: #000000; }
  .first_bl header.header div.g_nav.fade-out div.logo div#fix-header.menu div.menu-btn.open span:after {
    background-color: #000000; }

/*============================
コンタクトボタン
============================*/
div.contact_btn {
  position: fixed;
  z-index: 10000;
  right: 3.5rem;
  bottom: 3.5rem;
  mix-blend-mode: difference; }
  div.contact_btn a {
    display: block;
    width: 9.6rem;
    height: 9.6rem;
    position: relative; }
    div.contact_btn a img {
      position: absolute;
      left: 0;
      top: 0;
      transition: all 0.3s; }
      div.contact_btn a img.logo {
        z-index: 2; }
      div.contact_btn a img.ring {
        z-index: 1;
        animation: 15s linear infinite rotation1; }
@keyframes rotation1 {
  0% {
    transform: rotate(0); }
  100% {
    transform: rotate(360deg); } }
    div.contact_btn a:hover img.logo {
      transform: rotate(-375deg); }
    div.contact_btn a:hover img.ring {
      transform: scale(1.1); }

/*============================
コンテンツ共通
============================*/
.content {
  padding: 15rem 0;
  overflow: hidden; }
  @media (max-width: 576px) {
    .content {
      padding: 10rem 0 0 0; } }
  .content div.inner {
    width: 90vw;
    max-width: 1440px;
    margin: 0 auto; }
    @media (max-width: 576px) {
      .content div.inner {
        width: 85vw; } }
  .content .content_title {
    font-size: 4.8rem;
    font-weight: 700;
    margin-bottom: 5rem;
    line-height: 1.5em; }
    @media (max-width: 576px) {
      .content .content_title {
        line-height: 1.2em;
        width: 100%; } }
    .content .content_title span {
      font-size: 1.5rem;
      font-weight: 400;
      display: block;
      padding-top: 1rem;
      line-height: 1.2em; }
      @media (max-width: 576px) {
        .content .content_title span {
          font-size: 1.2rem;
          padding-top: 1rem;
          line-height: 1.5em; } }
  .content .catch {
    font-size: 3.8rem;
    line-height: 1.5em;
    font-weight: 500;
    margin-bottom: 2rem; }
    @media (max-width: 576px) {
      .content .catch {
        font-size: 2.5rem;
        line-height: 1.5em;
        margin-bottom: 1rem; } }
  .content div.txt_block {
    width: 50%; }
    @media (max-width: 576px) {
      .content div.txt_block {
        width: 100%; } }
  .content div.img {
    display: flex;
    align-items: center;
    justify-content: center; }
    @media (max-width: 576px) {
      .content div.img {
        width: 100%;
        margin-bottom: 3rem; } }
    .content div.img img {
      max-width: 100%; }

/*-------本文入力-------*/
.content div.content_body {
  font-size: 1.5rem;
  line-height: 2em;
  letter-spacing: 0.05rem; }
  .content div.content_body h2 {
    font-size: 2.4rem;
    padding-bottom: 3rem;
    margin-bottom: 3rem;
    border-bottom: 1px solid #F0F0F0; }
    @media (max-width: 576px) {
      .content div.content_body h2 {
        line-height: 1.8em; } }
  .content div.content_body h3 {
    font-size: 2rem;
    margin-bottom: 3rem; }
    @media (max-width: 576px) {
      .content div.content_body h3 {
        font-size: 1.4rem; } }
  .content div.content_body p {
    margin-bottom: 3rem;
    font-size: 1.5rem; }
    @media (max-width: 576px) {
      .content div.content_body p {
        font-size: 1.4rem; } }
    .content div.content_body p.btn a {
      text-decoration: none; }
  .content div.content_body a {
    text-decoration: underline; }
  .content div.content_body strong {
    font-weight: bold; }
  .content div.content_body img {
    width: 100%;
    max-width: 100%;
    margin-bottom: 3rem; }
  .content div.content_body figure {
    margin-bottom: 3rem; }
    .content div.content_body figure img {
      margin-bottom: 1rem; }
    .content div.content_body figure figcaption {
      font-size: 1.3rem;
      line-height: 1.5em; }
  .content div.content_body .wp-caption {
    width: 100% !important; }
  .content div.content_body .wp-caption-text {
    font-size: 1.3rem;
    line-height: 1.5em;
    margin-top: -2rem;
    margin-bottom: 5rem; }
    @media (max-width: 576px) {
      .content div.content_body .wp-caption-text {
        font-size: 1.1rem; } }
  .content div.content_body ul {
    list-style: disc;
    padding-left: 5rem;
    margin-bottom: 5rem; }
    .content div.content_body ul li {
      line-height: 1.3em;
      margin-bottom: 1.5em;
      font-size: 1.4rem; }
      .content div.content_body ul li:last-child {
        margin-bottom: 0; }
  .content div.content_body ol {
    list-style: decimal;
    padding-left: 5rem;
    margin-bottom: 5rem; }
    .content div.content_body ol li {
      line-height: 1.3em;
      margin-bottom: 1.5em;
      font-size: 1.4rem; }
      .content div.content_body ol li:last-child {
        margin-bottom: 0; }
  .content div.content_body table {
    border: none;
    border-top: 1px solid #F0F0F0;
    border-left: 1px solid #F0F0F0;
    text-align: left;
    margin-bottom: 5rem;
    text-align: left;
    font-size: 1.3rem; }
    .content div.content_body table th {
      border: none;
      border-right: 1px solid #F0F0F0;
      border-bottom: 1px solid #F0F0F0;
      background-color: #dedede;
      padding: 1.5em;
      text-align: left; }
    .content div.content_body table td {
      border: none;
      border-right: 1px solid #F0F0F0;
      border-bottom: 1px solid #F0F0F0;
      padding: 1.5em;
      background-color: #fff;
      text-align: left; }
  .content div.content_body figcaption.wp-element-caption {
    margin-top: -3rem;
    margin-bottom: 3rem; }
  .content div.content_body em {
    border: 1px solid #0063B3;
    padding: 3rem;
    margin-bottom: 5rem;
    display: block; }
    .content div.content_body em p:last-child, .content div.content_body em h2:last-child, .content div.content_body em h3:last-child {
      margin-bottom: 0; }
  .content div.content_body blockquote {
    padding: 3rem;
    background-color: #fff;
    margin-bottom: 5rem; }
    .content div.content_body blockquote p:last-child, .content div.content_body blockquote h2:last-child, .content div.content_body blockquote h3:last-child {
      margin-bottom: 0; }
  .content div.content_body iframe {
    aspect-ratio: 16 / 9;
    max-width: 100%;
    width: 100%;
    height: auto;
    margin-bottom: 3rem; }

/*============================
フッター
============================*/
footer#footer.content {
  padding-bottom: 15rem; }
  footer#footer.content div.inner div.logo {
    margin-bottom: 6rem; }
    @media (max-width: 576px) {
      footer#footer.content div.inner div.logo {
        margin-bottom: 4rem;
        width: 13rem; } }
  footer#footer.content div.inner p.copyright {
    padding-top: 6rem; }
    @media (max-width: 576px) {
      footer#footer.content div.inner p.copyright {
        padding-top: 4rem;
        margin-bottom: 5rem; } }

/* ※グローバルナビにも共通のスタイル適用 */
div.nav_wrap {
  padding-top: 5rem; }
  @media (max-width: 576px) {
    div.nav_wrap {
      padding-top: 0; } }
  div.nav_wrap h1 {
    font-size: 1.6rem;
    display: block;
    margin-bottom: 6rem; }
  div.nav_wrap a {
    position: relative; }
    div.nav_wrap a:before {
      content: "";
      /*display: block;*/
      display: none;
      width: 0%;
      height: 1px;
      background-color: #fff;
      position: absolute;
      left: 0;
      bottom: -0.5rem;
      transition: all 0.5s; }
    @media (min-width: 576px) {
      div.nav_wrap a:hover {
        color: #0063B3 !important; }
        div.nav_wrap a:hover:before {
          width: 100%; } }
  div.nav_wrap div.sitemap {
    display: flex; }
    @media (max-width: 576px) {
      div.nav_wrap div.sitemap {
        width: 100%;
        display: flex;
        flex-wrap: wrap;
        margin-bottom: 2rem; } }
    div.nav_wrap div.sitemap ul {
      width: calc(100%/3);
      margin-right: 2rem; }
      @media (max-width: 576px) {
        div.nav_wrap div.sitemap ul {
          width: 100%; } }
      div.nav_wrap div.sitemap ul li {
        font-size: 2.5rem;
        margin-bottom: 5vh;
        font-weight: 700; }
        div.nav_wrap div.sitemap ul li:last-child {
          margin-bottom: 0; }
          @media (max-width: 576px) {
            div.nav_wrap div.sitemap ul li:last-child {
              margin-bottom: 5vh; } }
        @media (max-width: 576px) {
          div.nav_wrap div.sitemap ul li {
            font-size: 2.5rem;
            margin-bottom: 1.3em; } }
        div.nav_wrap div.sitemap ul li a span {
          display: block;
          font-size: 1rem;
          font-weight: 400;
          padding-top: 1rem; }
          @media (max-width: 576px) {
            div.nav_wrap div.sitemap ul li a span {
              padding-top: 1rem; } }
      div.nav_wrap div.sitemap ul.visual {
        display: flex;
        flex-direction: column;
        justify-content: flex-end; }
        @media (max-width: 576px) {
          div.nav_wrap div.sitemap ul.visual {
            display: none; } }
  div.nav_wrap p.copyright {
    padding-top: 6rem; }
    @media (max-width: 576px) {
      div.nav_wrap p.copyright {
        padding-top: 3rem; } }

/*============================
Slick
============================*/
body {
  /*　プレビューネクストボタン */
  /*　プレビューネクストボタンが使えないとき非表示 */
  /*　スライドのカウンター */
  /*　スライドの高さ揃える */
  /*　アクティブなスライド */
  /*　ドットナビ */ }
  body .slick-prev, body .slick-next {
    font-size: 0;
    line-height: 0;
    position: absolute;
    top: calc(50% - 4rem -1px);
    display: block;
    width: 8rem;
    height: 8rem;
    border-radius: 50%;
    padding: 0;
    -webkit-transform: translate(0, 0%);
    -ms-transform: translate(0, 0%);
    transform: translate(0, 0%);
    cursor: pointer;
    color: transparent;
    border: 2px solid #000000;
    outline: none;
    background: transparent;
    font-family: fontAwesome;
    background-color: #fff;
    text-align: center;
    z-index: 100;
    transition: all 0.3s; }
    @media (max-width: 576px) {
      body .slick-prev, body .slick-next {
        width: 5rem;
        height: 5rem;
        border: 1px solid #000000;
        background-color: #fff !important; } }
    body .slick-prev:after, body .slick-next:after {
      content: '';
      position: absolute;
      top: calc(50% - 1rem);
      width: 1.8rem;
      height: 1.8rem;
      border-top: 2px solid #000000;
      border-right: 2px solid #000000; }
    @media (max-width: 576px) {
      body .slick-prev:after, body .slick-next:after {
        content: '';
        position: absolute;
        top: calc(50% - 0.5rem);
        width: 1rem;
        height: 1rem;
        border-top: 1px solid #000000;
        border-right: 1px solid #000000; } }
  body .slick-next {
    right: calc(50% - 40rem); }
    @media (max-width: 576px) {
      body .slick-next {
        right: 2rem;
        bottom: -6rem;
        top: auto; } }
    body .slick-next:after {
      transform: rotate(45deg);
      right: calc(50% - 0.5rem); }
  body .slick-prev {
    left: calc(50% - 40rem); }
    @media (max-width: 576px) {
      body .slick-prev {
        right: 9rem;
        bottom: -6rem;
        top: auto;
        left: auto; } }
    body .slick-prev:after {
      transform: rotate(-135deg);
      left: calc(50% - 0.5rem); }
  body .slick-prev.slick-disabled, body .slick-next.slick-disabled {
    opacity: 0; }
  body div.slick-num {
    position: absolute;
    left: 5vw;
    top: 4.5rem; }
    @media (max-width: 576px) {
      body div.slick-num {
        top: -0.5em; } }
    body div.slick-num span.now-count {
      font-size: 7.2rem;
      font-weight: 700; }
      @media (max-width: 576px) {
        body div.slick-num span.now-count {
          font-size: 6rem; } }
    body div.slick-num span.slash {
      font-size: 2.4rem;
      font-weight: 700; }
      @media (max-width: 576px) {
        body div.slick-num span.slash {
          font-size: 1.8rem; } }
    body div.slick-num span.all-count {
      font-size: 2.4rem;
      font-weight: 700; }
      @media (max-width: 576px) {
        body div.slick-num span.all-count {
          font-size: 1.8rem; } }
  body .slick-track {
    display: flex; }
  body .slick-slide {
    height: auto !important; }
    body .slick-slide > div {
      height: 100%; }
  body .slick-active li {
    opacity: 1 !important;
    transition: all 0.3s; }
  body .slick-dots {
    position: relative;
    bottom: -3rem;
    display: flex;
    justify-content: center;
    width: 100%;
    padding: 0;
    margin: 0;
    list-style: none;
    text-align: left; }
    @media (max-width: 576px) {
      body .slick-dots {
        justify-content: flex-start;
        left: 3rem;
        bottom: -5rem; } }
  body .slick-dots li {
    position: relative;
    display: inline-block;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    overflow: hidden;
    margin: 0 1rem;
    padding: 0;
    opacity: 1 !important;
    cursor: pointer; }
    @media (max-width: 576px) {
      body .slick-dots li {
        width: 1.2rem;
        height: 1.2rem;
        margin: 0 1rem; } }
  body .slick-dots li button {
    font-size: 0;
    line-height: 0;
    display: block;
    width: 1.6rem;
    height: 1.6rem;
    padding: 0;
    border-radius: 0;
    background-color: #fff;
    cursor: pointer;
    border: 0;
    outline: none;
    transition: all 0.3s; }
    @media (max-width: 576px) {
      body .slick-dots li button {
        width: 1.2rem;
        height: 1.2rem; } }
  body .slick-dots li button:hover,
  body .slick-dots li button:focus {
    outline: none;
    /*background-color:#999;*/ }
  body .slick-dots li button:hover:before,
  body .slick-dots li button:focus:before {
    opacity: 1; }
  body .slick-dots li.slick-active button {
    background-color: #0063B3;
    transition: all 0.3s; }
