@charset "UTF-8";
/* custom properties */
:root {
  --color-primary: #009b94;
  --color-secondary: #004097;
  --color-link: #193342;
  --color-hover: #009b94;
  --color-white: #fff;
  --color-black: #000;
  --color-gray: #666;
  --color-lightgray: #999;
  --color-lightgray2: #ccc;
  --color-lightgray3: #e4e4e4;
  --color-maintext: #193342;
  --color-subtext: #333;
  --color-bg01: #F3F7FA;
  --color-bg02: #e4f2f2;
  --color-bg03: #BDE5E3;
  --color-bg04: #e8fffe;
  --font-family-sans-serif: YakuHanJPs, Arial, "Helvetica Neue", "Noto Sans JP", sans-serif;
  --font-family-font-awesome: "Font Awesome 5 Free"; }

/* Reset */
table {
  border-collapse: collapse;
  border-spacing: 0; }

/* Base */
html {
  font-size: 62.5%; }

@media (min-width: 769px) and (max-width: 1200px) {
  html {
    font-size: calc(1000vw / 1200); } }
body {
  color: var(--color-maintext);
  font-family: var(--font-family-sans-serif);
  font-size: clamp(1.4rem, 1.255rem + 0.73vw, 1.8rem);
  font-weight: 500;
  letter-spacing: 0.1em;
  font-feature-settings: "palt";
  line-height: 1.5;
  background-color: var(--color-white); }

:lang(en) body {
  letter-spacing: 0; }

img {
  width: 100%;
  height: auto;
  outline: none;
  vertical-align: middle;
  border-style: none; }

a {
  color: var(--color-link);
  text-decoration: none; }
  a:visited {
    color: var(--color-link);
    text-decoration: none; }
  a:hover {
    color: var(--color-hover);
    text-decoration: none; }

address {
  font-style: normal; }

summary::-webkit-details-marker {
  display: none; }

summary {
  list-style: none; }

/* fixed */
.fixed {
  position: fixed;
  width: 100%;
  height: 100%; }

/* no_scroll */
.no_scroll {
  height: 100%;
  overflow: hidden; }

/* disnon */
.disnon {
  display: none; }

@media screen and (min-width: 768px) {
  .pc_none {
    display: none; } }

@media (min-width: 769px) {
  .sp {
    display: none; } }

#wrapper {
  position: relative;
  min-height: 100svh; }

@media print {
  /* 印刷用 */
  html, body {
    width: 1366px; }

  header {
    position: relative !important; }

  main {
    margin: 0 !important; } }
/*------------------------------------------------------------
	common
------------------------------------------------------------*/
/* comLink */
.comLink a {
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.01em; }
  .comLink a:hover {
    color: var(--color-primary); }
.comLink img {
  margin: -0.3rem 0.7rem 0 0;
  width: 2.1rem;
  display: inline-block;
  vertical-align: middle; }

/* pageTitle */
.pageTitle {
  margin-bottom: 5.6rem;
  background-color: var(--color-bg01); }
  @media screen and (max-width: 767px) {
    .pageTitle {
      margin-bottom: 3.5rem; } }
  .pageTitle .innerBox {
    display: flex;
    flex-direction: column-reverse;
    align-items: flex-start;
    justify-content: flex-end;
    width: 100%;
    max-width: calc(100% - 20rem);
    height: 25rem;
    margin: 0 auto;
    padding-bottom: 1rem; }
    @media screen and (max-width: 767px) {
      .pageTitle .innerBox {
        max-width: inherit;
        height: auto;
        min-height: 9.375rem;
        padding: 1.8125rem 1.1875rem; } }
    .pageTitle .innerBox .headLine01 {
      width: 100%;
      height: 75%; }
      .pageTitle .innerBox .headLine01 .title-page {
        font-size: 3.6rem; }
        @media screen and (max-width: 767px) {
          .pageTitle .innerBox .headLine01 .title-page {
            font-size: 2.4rem; } }
        .pageTitle .innerBox .headLine01 .title-page br {
          display: none; }
          @media screen and (max-width: 767px) {
            .pageTitle .innerBox .headLine01 .title-page br {
              display: inline-block; } }
    .pageTitle .innerBox #pagePath {
      width: 100%;
      height: 25%;
      margin-bottom: 0.4em;
      display: flex;
      align-items: flex-end; }
      .pageTitle .innerBox #pagePath ul {
        display: flex;
        column-gap: 1rem;
        color: var(--color-primary);
        font-weight: 700;
        font-size: 1.44rem; }
        @media screen and (max-width: 767px) {
          .pageTitle .innerBox #pagePath ul {
            font-size: 1.12rem; } }
        .pageTitle .innerBox #pagePath ul a {
          color: var(--color-maintext);
          font-weight: 400; }
          .pageTitle .innerBox #pagePath ul a:hover {
            color: var(--color-primary); }
        .pageTitle .innerBox #pagePath ul li:before {
          content: ">";
          margin-right: 1rem; }
        .pageTitle .innerBox #pagePath ul li:first-child::before {
          display: none; }

/* content */
.content {
  margin: 0 auto;
  padding: 0 4rem;
  max-width: calc(108rem + 8rem); }
  @media screen and (max-width: 767px) {
    .content {
      padding: 0 2rem;
      max-width: inherit !important; } }

.content_title {
  padding: 5rem 0;
  color: var(--color-primary);
  font-size: 3.2rem;
  font-weight: 700;
  border-top: 4px solid var(--color-primary); }
  @media screen and (max-width: 767px) {
    .content_title {
      padding: 3rem 0;
      font-size: 2.4rem; } }
  .content_title br {
    display: none; }
    @media screen and (max-width: 767px) {
      .content_title br {
        display: inline-block; } }

.category_title {
  color: var(--color-white);
  font-size: 2.4rem;
  font-weight: 700;
  background-color: var(--color-primary); }
  @media screen and (max-width: 767px) {
    .category_title {
      font-size: 2.0rem; } }
  .category_title a, .category_title span {
    display: block;
    margin: 0 0 3rem;
    padding: 2rem 3rem;
    color: var(--color-white); }

.lead {
  margin: 0 0 3rem; }

/* comBtnUl */
.comBtnUl {
  display: flex;
  flex-wrap: wrap;
  gap: 0.8rem; }
  .comBtnUl a {
    width: 100%;
    padding: 1.5rem 1.5rem;
    color: var(--color-primary);
    font-weight: 700;
    line-height: 1.0;
    border: 1px solid var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center; }
    @media screen and (max-width: 767px) {
      .comBtnUl a {
        font-size: 1.4rem; } }
    .comBtnUl a:hover {
      color: var(--color-white);
      background-color: var(--color-primary); }
    .comBtnUl a.green {
      color: var(--color-white);
      background-color: var(--color-primary); }
      .comBtnUl a.green.green:hover {
        color: var(--color-primary);
        background-color: var(--color-white); }

/* comLink02 */
.comLink02 a {
  padding-right: 2.8rem;
  font-size: 1.8rem;
  font-weight: 700;
  display: inline-block; }
  .comLink02 a::after {
    width: 1.4rem;
    height: 1.4rem;
    margin-left: 1rem;
    content: "";
    display: inline-block;
    -webkit-mask: url("../img/icon01.svg");
    mask: url("../img/icon01.svg");
    mask-size: cover;
    vertical-align: baseline;
    background-color: var(--color-primary); }
  .comLink02 a:hover {
    color: var(--color-primary); }
  .comLink02 a:hover::after {
    background-color: var(--color-primary); }
  .comLink02 a[target="_blank"]::after {
    -webkit-mask: url("../img/icon04.svg");
    mask: url("../img/icon04.svg"); }
  .comLink02 a[target="_blank"]:hover::after {
    background-color: var(--color-primary); }

/* comLinkList */
.comLinkList {
  margin: 0 auto;
  max-width: 108rem;
  display: flex;
  flex-wrap: wrap;
  gap: 2.1rem; }
  .comLinkList li {
    width: calc((100% - 2.1rem*3)/4);
    border-bottom: 1px solid #D5DCE1; }
    @media screen and (max-width: 767px) {
      .comLinkList li {
        width: 100%; } }
  @media screen and (max-width: 767px) {
    .comLinkList li:first-child {
      border-top: 1px solid #D5DCE1; } }
  .comLinkList a {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    height: 100%; }
  .comLinkList .img {
    display: block;
    width: 100%;
    aspect-ratio: 254/160;
    overflow: hidden;
    flex-shrink: 0; }
    @media screen and (max-width: 767px) {
      .comLinkList .img {
        /*aspect-ratio: 670/220;*/ } }
    .comLinkList .img img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      transform: scale(1);
      transition: transform 0.25s ease-in; }
  .comLinkList a:hover img {
    transform: scale(1.04);
    transition: transform 0.25s ease-out; }
  .comLinkList a:hover .txt {
    color: var(--color-primary); }
  .comLinkList.imgStyle {
    gap: 2.8rem 2.1rem; }
    @media screen and (max-width: 767px) {
      .comLinkList.imgStyle li {
        margin-bottom: 2.4rem; }
      .comLinkList.imgStyle li:last-child {
        margin-bottom: 0; }
      .comLinkList.imgStyle li:first-child a {
        border-top: none; }
      .comLinkList.imgStyle .txt {
        padding-bottom: 1rem; } }
  .comLinkList .txt {
    position: relative;
    height: 100%;
    padding: 1.3rem 4rem 1.3rem 2rem;
    display: flex;
    align-items: center;
    color: var(--color-maintext);
    font-size: 1.4rem;
    font-weight: 700;
    letter-spacing: 0.028rem;
    transition: 0.3s; }
    .comLinkList .txt::after {
      position: absolute;
      content: "";
      top: 0;
      bottom: 0;
      right: 2rem;
      display: block;
      width: 1.3rem;
      height: 1.3rem;
      margin: auto 0;
      -webkit-mask: url("../img/icon01.svg");
      mask: url("../img/icon01.svg");
      mask-size: contain;
      mask-repeat: no-repeat;
      vertical-align: middle;
      background-color: var(--color-primary); }

.link {
  margin-top: 0.5em; }
  .link::before {
    content: "";
    display: inline-block;
    width: 1em;
    height: 1em;
    margin-right: 0.5em;
    -webkit-mask: url("../img/icon01.svg");
    mask: url("../img/icon01.svg");
    mask-size: contain;
    mask-repeat: no-repeat;
    vertical-align: middle;
    background-color: var(--color-maintext); }

.link_map {
  margin-top: 0.5em; }
  .link_map::before {
    content: '\f3c5';
    display: inline-block;
    margin-right: 0.5em;
    color: var(--color-maintext);
    font-family: var(--font-family-font-awesome);
    font-weight: 900; }

/* accordion */
.accordion {
  width: 100%;
  margin-bottom: 2rem; }
  @media screen and (max-width: 767px) {
    .accordion {
      margin-bottom: 1rem; } }
  .accordion dt {
    position: relative;
    display: flex;
    align-items: center;
    cursor: pointer; }
    .accordion dt::after {
      position: absolute;
      right: 0;
      content: '';
      -webkit-mask-image: url("../img/angle-down.svg");
      -webkit-mask-size: contain;
      mask-image: url("../img/angle-down.svg");
      mask-size: contain;
      width: 2rem;
      height: 2rem;
      background-color: var(--color-primary);
      mask-repeat: no-repeat;
      mask-size: contain;
      mask-position: center; }
    .accordion dt.active::after {
      -webkit-mask-image: url("../img/angle-up.svg");
      -webkit-mask-size: contain;
      mask-image: url("../img/angle-up.svg");
      mask-size: contain; }

/* ------------------------
header
------------------------ */
#gHeader {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 80;
  width: 100%;
  height: 64px;
  font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
  border-bottom: 1px solid #C0CDD7;
  background-color: var(--color-white); }
  @media screen and (min-width: 1080px) {
    #gHeader {
      height: 80px; } }
  #gHeader .hBox {
    position: relative;
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 100%;
    z-index: 10; }
  #gHeader .site_logo a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    min-width: 150px;
    margin: 0 14px 0;
    /*background-color: red;*/ }
    @media screen and (min-width: 1080px) {
      #gHeader .site_logo a {
        min-width: 360px; } }
    #gHeader .site_logo a .logo_img {
      width: 100px; }
      @media screen and (min-width: 1080px) {
        #gHeader .site_logo a .logo_img {
          width: 167px; } }
    #gHeader .site_logo a .site_name {
      display: block;
      margin-left: 1em;
      font-size: 12px;
      font-weight: 700;
      line-height: 1.0; }
      @media screen and (min-width: 1080px) {
        #gHeader .site_logo a .site_name {
          font-size: 14px; } }
      #gHeader .site_logo a .site_name span {
        display: inline-block; }
  #gHeader .menu_block {
    display: flex;
    align-items: center;
    column-gap: 10px;
    height: 100%; }
    @media screen and (min-width: 1080px) {
      #gHeader .menu_block {
        column-gap: 20px; } }
  #gHeader .lang_menu {
    display: flex; }
    #gHeader .lang_menu > li {
      font-size: 12px;
      font-weight: 700;
      line-height: 2.0rem; }
      #gHeader .lang_menu > li span {
        display: block;
        padding: 0 0.5em;
        color: var(--color-white);
        background-color: var(--color-primary);
        border-radius: 999px; }
        @media screen and (min-width: 1080px) {
          #gHeader .lang_menu > li span {
            padding: 0 1em; } }
      #gHeader .lang_menu > li a {
        display: block;
        padding: 0 1em;
        background-color: var(--color-white); }
        #gHeader .lang_menu > li a:hover {
          color: var(--color-hover); }
  #gHeader .menu_icon {
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 64px;
    height: 100%;
    text-align: center;
    background-color: var(--color-primary);
    cursor: pointer; }
    @media screen and (min-width: 1080px) {
      #gHeader .menu_icon {
        width: 80px; } }
  #gHeader .menu-trigger {
    display: inline-block;
    -webkit-transition: all .4s;
    transition: all .4s;
    box-sizing: border-box;
    position: relative;
    width: 20px;
    height: 16px; }
    @media screen and (min-width: 1080px) {
      #gHeader .menu-trigger {
        width: 24px;
        height: 20px; } }
    #gHeader .menu-trigger span {
      display: inline-block;
      -webkit-transition: all .4s;
      transition: all .4s;
      box-sizing: border-box;
      position: absolute;
      left: 0;
      width: 100%;
      height: 2px;
      background-color: var(--color-white); }
      #gHeader .menu-trigger span:nth-of-type(1) {
        top: 0; }
      #gHeader .menu-trigger span:nth-of-type(2) {
        top: 7px; }
        @media screen and (min-width: 1080px) {
          #gHeader .menu-trigger span:nth-of-type(2) {
            top: 9px; } }
      #gHeader .menu-trigger span:nth-of-type(3) {
        bottom: 0; }
      #gHeader .menu-trigger span:nth-of-type(2)::after {
        position: absolute;
        top: 0;
        left: 0;
        content: '';
        width: 100%;
        height: 2px;
        background-color: var(--color-white);
        border-radius: 2px;
        -webkit-transition: all .4s;
        transition: all .4s; }
    #gHeader .menu-trigger.active span:nth-of-type(1) {
      translate: 0 20px;
      scale: 0; }
    #gHeader .menu-trigger.active span:nth-of-type(2) {
      rotate: -45deg; }
    #gHeader .menu-trigger.active span:nth-of-type(2)::after {
      rotate: 90deg; }
    #gHeader .menu-trigger.active span:nth-of-type(3) {
      translate: 0 -20px;
      scale: 0; }
  #gHeader #pc_navi_block {
    display: none; }
    @media screen and (min-width: 1366px) {
      #gHeader #pc_navi_block {
        display: block; }
        #gHeader #pc_navi_block .pc_navi {
          display: flex;
          column-gap: 2em; }
          #gHeader #pc_navi_block .pc_navi > li {
            position: relative; }
            #gHeader #pc_navi_block .pc_navi > li a {
              color: var(--color-maintext);
              font-size: clamp(1.2rem, 0.533rem + 0.89vw, 1.6rem);
              font-weight: 700; }
              #gHeader #pc_navi_block .pc_navi > li a:hover {
                color: var(--color-hover); }
            #gHeader #pc_navi_block .pc_navi > li#navi_inquiry a:before {
              content: '\f0e0';
              margin-right: 0.5rem;
              color: var(--color-primary);
              font-family: var(--font-family-font-awesome);
              font-weight: 900; } }
  #gHeader .menuBox {
    position: fixed;
    top: 64px;
    left: 0;
    width: 100%;
    height: calc(100% - 64px);
    overflow-y: auto;
    background-color: #fff;
    z-index: 90;
    display: none; }
    @media screen and (min-width: 1080px) {
      #gHeader .menuBox {
        top: 80px;
        height: calc(100% - 80px); } }
    #gHeader .menuBox.on {
      display: block; }
    #gHeader .menuBox .innerBox {
      width: 100%;
      max-width: 108rem;
      margin: 0 auto;
      padding: 3.1rem 2rem; }
    #gHeader .menuBox .topBox {
      margin-bottom: 3.6rem; }
      @media screen and (max-width: 767px) {
        #gHeader .menuBox .topBox {
          margin-bottom: 3.1rem; } }
    #gHeader .menuBox .naviUl {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      column-gap: 40px;
      row-gap: 40px;
      margin-bottom: 4rem; }
      @media screen and (max-width: 767px) {
        #gHeader .menuBox .naviUl {
          margin-bottom: 3.1rem;
          display: block;
          font-size: 1.4rem; } }
      #gHeader .menuBox .naviUl > li {
        /*margin-right: 5.7rem;*/ }
        @media screen and (max-width: 767px) {
          #gHeader .menuBox .naviUl > li {
            margin-right: 0 !important;
            border-bottom: 1px solid #C0CDD7; } }
        @media screen and (max-width: 767px) {
          #gHeader .menuBox .naviUl > li:first-child {
            border-top: 1px solid #C0CDD7; } }
        #gHeader .menuBox .naviUl > li:last-child {
          margin-right: -0.4rem; }
      #gHeader .menuBox .naviUl li:has(ul) .comLink02 a {
        position: relative; }
        @media screen and (max-width: 767px) {
          #gHeader .menuBox .naviUl li:has(ul) .comLink02 a::after {
            position: absolute;
            content: "";
            top: 0;
            bottom: 0;
            right: 1.2rem;
            background-color: var(--color-primary);
            display: inline-block;
            width: 1.2rem;
            height: 1.2rem;
            margin: auto;
            -webkit-mask: url("../img/icon02.svg");
            mask: url("../img/icon02.svg");
            -webkit-mask-size: cover;
            mask-size: cover;
            vertical-align: middle; } }
        @media screen and (max-width: 767px) {
          #gHeader .menuBox .naviUl li:has(ul) .comLink02 a.on::after {
            -webkit-mask: url("../img/icon03.svg");
            mask: url("../img/icon03.svg"); } }
      @media screen and (max-width: 767px) {
        #gHeader .menuBox .naviUl .linkUl {
          padding: 1.8rem 1.2rem 1.6rem;
          border-top: 1px solid #C0CDD7;
          display: none; } }
      #gHeader .menuBox .naviUl .linkUl li {
        margin-bottom: 0.8rem; }
        #gHeader .menuBox .naviUl .linkUl li:last-child {
          margin-bottom: 0; }
      @media screen and (max-width: 767px) {
        #gHeader .menuBox .naviUl .linkUl .spLink {
          font-weight: 700;
          font-size: 1.4rem;
          margin-bottom: 1.6rem; } }
      @media screen and (max-width: 767px) {
        #gHeader .menuBox .naviUl .linkUl .spLink a {
          color: #009B94;
          position: relative; } }
      @media screen and (max-width: 767px) {
        #gHeader .menuBox .naviUl .linkUl .spLink a::after {
          margin: -0.3rem 0 0 0.8rem;
          width: 2rem;
          height: 2rem;
          display: inline-block;
          vertical-align: middle;
          background: url("../../images/common/icon06.png") no-repeat left top/100% 100%;
          content: ""; } }
      @media screen and (max-width: 767px) {
        #gHeader .menuBox .naviUl .on .linkUl {
          display: block; } }
      #gHeader .menuBox .naviUl .comLink02 {
        margin-bottom: 2.1rem; }
        @media screen and (max-width: 767px) {
          #gHeader .menuBox .naviUl .comLink02 {
            margin-bottom: 0; } }
        #gHeader .menuBox .naviUl .comLink02 a {
          position: relative; }
          @media screen and (max-width: 767px) {
            #gHeader .menuBox .naviUl .comLink02 a {
              display: block;
              padding: 1.6rem 3rem 1.5rem 1.2rem;
              font-size: 1.6rem; } }
          @media screen and (max-width: 767px) {
            #gHeader .menuBox .naviUl .comLink02 a::after {
              position: absolute;
              top: 0;
              bottom: 0;
              right: 1.1rem;
              width: 1.4rem;
              height: 1.4rem;
              margin: auto; } }
    #gHeader .menuBox .comBtnUl.small {
      justify-content: flex-end; }
      #gHeader .menuBox .comBtnUl.small a {
        color: var(--color-maintext);
        border-color: var(--color-maintext); }
        #gHeader .menuBox .comBtnUl.small a:hover {
          color: var(--color-white);
          background-color: var(--color-maintext); }

/* ------------------------
main
------------------------ */
.linkBox .comLinkList {
  justify-content: center;
  gap: 1.8rem; }
  @media screen and (max-width: 767px) {
    .linkBox .comLinkList {
      display: block; } }
  .linkBox .comLinkList > li {
    width: calc((100% - 3.6rem) / 3);
    border: 1px solid #D5DCE1;
    /*&:first-child {
        @include sp {
            border-top: none;
        }
    }*/ }
    @media screen and (max-width: 767px) {
      .linkBox .comLinkList > li {
        width: 100%;
        margin-bottom: 1.8rem; } }
    .linkBox .comLinkList > li a {
      height: auto; }
      .linkBox .comLinkList > li a .img {
        position: relative; }
        .linkBox .comLinkList > li a .img::after {
          content: '';
          position: absolute;
          top: 0;
          left: 0;
          width: 100%;
          height: 100%; }
      .linkBox .comLinkList > li a .txt {
        background-color: var(--color-bg01); }
  .linkBox .comLinkList + .comLinkList {
    margin-top: 1.8rem; }
.linkBox .comLinkList:has(> :nth-child(4)) {
  justify-content: flex-start; }

.section_heading {
  width: 100%;
  padding: 4rem 0;
  border-top: 4px solid var(--color-primary); }
  @media screen and (max-width: 767px) {
    .section_heading {
      padding: 3rem 0; } }
  .section_heading:has(.btn_viewmore) {
    display: flex;
    justify-content: space-between; }

.section_title {
  color: var(--color-primary);
  font-size: 3.2rem;
  font-weight: 700; }
  @media screen and (max-width: 767px) {
    .section_title {
      font-size: 2.8rem; } }

.btn_viewmore a {
  position: relative;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  width: 20rem;
  padding: 1.4rem 3rem;
  color: var(--color-white);
  font-size: 1.6rem;
  font-weight: 600;
  background-color: var(--color-primary);
  border-radius: 5px; }
  @media screen and (max-width: 767px) {
    .btn_viewmore a {
      width: 12rem;
      padding: 1rem 1.5rem;
      font-size: 1.4rem; } }
  .btn_viewmore a::after {
    content: "";
    display: inline-block;
    position: absolute;
    right: 3rem;
    width: 1.4rem;
    height: 1.4rem;
    -webkit-mask: url("../img/icon01.svg");
    mask: url("../img/icon01.svg");
    mask-size: cover;
    vertical-align: middle;
    background-color: var(--color-white); }
    @media screen and (max-width: 767px) {
      .btn_viewmore a::after {
        right: 1rem;
        width: 1rem;
        height: 1rem; } }
  .btn_viewmore a:hover {
    color: var(--color-primary);
    background-color: var(--color-bg02); }
    .btn_viewmore a:hover::after {
      background-color: var(--color-primary); }

.imgList {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem; }
  @media screen and (max-width: 767px) {
    .imgList {
      gap: 1rem; } }
  .imgList > li {
    width: calc((100% - 6rem)/4);
    text-align: center; }
    @media screen and (max-width: 767px) {
      .imgList > li {
        width: 100%; } }
    .imgList > li a {
      display: block; }
    .imgList > li .txt {
      box-sizing: border-box;
      padding: 2rem 2rem;
      font-size: 1.4rem; }

.listUl {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.8rem; }
  @media screen and (max-width: 767px) {
    .listUl {
      padding-top: 0;
      display: block; } }
  .listUl > li {
    width: calc((100% - 3.6rem) / 3); }
    @media screen and (max-width: 767px) {
      .listUl > li {
        width: auto;
        margin-bottom: 4rem; } }
    @media screen and (max-width: 767px) {
      .listUl > li:last-child {
        margin-bottom: 0; } }
  .listUl .comLinkList {
    display: block;
    width: 100%; }
    .listUl .comLinkList li {
      width: 100%; }

/*.comLinkList {
	margin-top: 0.4rem;
	display: block;
	@include sp {
		margin-top: 0.4rem;
	}
    li {
        width: auto;
    }
	li:first-child a {
        @include sp {
		border-top: none;
        }
	}
}*/
.columns_wrap {
  display: flex;
  column-gap: 2rem; }
  @media screen and (max-width: 767px) {
    .columns_wrap {
      display: block; } }
  .columns_wrap .column {
    width: calc(50% - 2rem);
    max-width: 500px;
    margin: 0 auto 4rem; }
    @media screen and (max-width: 767px) {
      .columns_wrap .column {
        width: 100%; } }

.block_title {
  /*position: relative;*/
  width: 100%;
  margin-bottom: 3rem;
  /*padding-left: 1.5em;*/
  font-size: 2.8rem;
  font-weight: 700; }
  @media screen and (max-width: 767px) {
    .block_title {
      margin-bottom: 2rem;
      font-size: 2.2rem; } }

.block_subtitle {
  width: 100%;
  padding: 3rem 4rem;
  color: var(--color-primary);
  font-size: 2.4rem;
  font-weight: 700;
  background-color: var(--color-bg01); }
  @media screen and (max-width: 767px) {
    .block_subtitle {
      padding: 2.6rem 2rem;
      font-size: 1.8rem; } }
  .block_subtitle a {
    text-decoration: underline; }

.block_detail {
  margin-bottom: 5rem;
  line-height: 1.8; }
  .block_detail.columns {
    display: flex;
    justify-content: space-between;
    column-gap: 3rem; }
    @media screen and (max-width: 767px) {
      .block_detail.columns {
        display: block; } }
  @media screen and (max-width: 767px) {
    .block_detail {
      margin-bottom: 4rem; } }

.block_detail:has(+ .block_detail) {
  /* .block_detailが隣接する場合、前の.block_detailに適用 */
  margin-bottom: 2rem; }

.box_title {
  margin-bottom: 1em;
  font-weight: 700; }

@media screen and (max-width: 767px) {
  .box_txt p br {
    display: none; } }

.box_img {
  flex-shrink: 0; }
  .box_img img {
    width: 100%;
    /*max-width: 32rem;*/ }
    @media screen and (max-width: 767px) {
      .box_img img {
        /*margin-top: 2rem;*/ } }
  .box_img img + img {
    margin-top: 2rem; }

.img_title {
  margin-bottom: 1em;
  font-weight: 600; }

.num {
  margin-right: 0.5em;
  color: var(--color-primary); }

.caption {
  margin: 1rem auto 0;
  font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
  font-weight: 400;
  line-height: 1.5; }

.note {
  margin-top: 1rem;
  font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
  font-weight: 400;
  line-height: 1.5; }

.notice {
  margin-top: 1rem;
  font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
  font-weight: 400;
  line-height: 1.5; }

.remarks {
  margin-top: 2rem;
  font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
  line-height: 1.5; }
  .remarks dt {
    font-weight: 600; }
  .remarks dd {
    font-style: italic; }

.block_index {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1rem;
  margin: 2rem auto 4rem; }
  .block_index > li {
    width: calc(25% - 1rem);
    max-width: 300px; }
    @media screen and (max-width: 767px) {
      .block_index > li {
        width: calc(50% - 1rem); } }
    .block_index > li > a {
      display: block;
      padding: 1rem 0;
      font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
      font-weight: 600;
      text-align: center;
      background-color: var(--color-bg01);
      border-radius: 999px; }

.link_txt {
  margin-top: 0.5em; }
  .link_txt a {
    text-decoration: underline; }
    .link_txt a::before {
      width: 1.4rem;
      height: 1.4rem;
      margin-right: 1rem;
      content: "";
      display: inline-block;
      -webkit-mask: url("../img/icon01.svg");
      mask: url("../img/icon01.svg");
      mask-size: cover;
      vertical-align: middle;
      background-color: var(--color-maintext); }

.link_btn a {
  position: relative;
  display: inline-block;
  margin-top: 1em;
  padding: 0.8em 2.5em 0.8em 1.5em;
  color: var(--color-white);
  font-size: clamp(1.4rem, 1.327rem + 0.36vw, 1.6rem);
  line-height: 1.0;
  background-color: var(--color-primary);
  border: 1px solid var(--color-primary);
  border-radius: 999px; }
  .link_btn a::after {
    content: '\f105';
    position: absolute;
    right: 1.0em;
    margin-left: 0.5rem;
    font-family: var(--font-family-font-awesome);
    font-weight: 900; }
  .link_btn a:hover {
    color: var(--color-primary);
    background-color: var(--color-white); }

.box_table {
  overflow-x: scroll; }

table.data_table {
  width: 100%;
  table-layout: fixed; }
  @media screen and (max-width: 767px) {
    table.data_table {
      width: auto; } }
  table.data_table th, table.data_table td {
    padding: 0.5rem 1rem;
    font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
    text-align: center;
    line-height: 1.5;
    border: 1px solid var(--color-bg03);
    background-color: var(--color-white); }
  table.data_table th {
    font-weight: 700;
    vertical-align: top;
    background-color: var(--color-bg04); }
  table.data_table thead th, table.data_table thead td {
    background-color: var(--color-bg04); }
  table.data_table .justification-top {
    vertical-align: top; }

.box_img_list {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem; }

#category_navi {
  width: 100%;
  margin-top: 8rem;
  padding: 6rem 2rem;
  background-color: var(--color-bg02); }
  @media screen and (max-width: 767px) {
    #category_navi {
      padding: 4rem 2rem; } }
  #category_navi .innerBox {
    width: 100%;
    max-width: 108rem;
    margin: 0 auto; }
    #category_navi .innerBox .category_navi_title {
      margin-bottom: 2rem;
      font-size: 2.0rem;
      font-weight: 700; }
    #category_navi .innerBox .comLinkList {
      gap: 0;
      column-gap: 2.1rem; }
      @media screen and (max-width: 767px) {
        #category_navi .innerBox .comLinkList {
          gap: 0; } }
      #category_navi .innerBox .comLinkList > li {
        width: calc((100% - 2.1rem * 3) / 3);
        border: none; }
        @media screen and (max-width: 767px) {
          #category_navi .innerBox .comLinkList > li {
            width: 100%; } }
        #category_navi .innerBox .comLinkList > li a {
          border-bottom: 1px solid var(--color-bg03); }
      #category_navi .innerBox .comLinkList > li:first-child a {
        border-top: 1px solid var(--color-bg03); }
      #category_navi .innerBox .comLinkList > li:nth-child(2) a {
        border-top: 1px solid var(--color-bg03); }
        @media screen and (max-width: 767px) {
          #category_navi .innerBox .comLinkList > li:nth-child(2) a {
            border-top: none; } }
      #category_navi .innerBox .comLinkList > li:nth-child(3) a {
        border-top: 1px solid var(--color-bg03); }
        @media screen and (max-width: 767px) {
          #category_navi .innerBox .comLinkList > li:nth-child(3) a {
            border-top: none; } }

#inquiry_link_block {
  width: 100%;
  height: 214px;
  /*margin-top: 16rem;*/
  padding: 0 2rem;
  font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem);
  background-color: #000020;
  background-image: url("../img/inquiry_bg.png");
  background-position: center;
  background-repeat: no-repeat;
  background-size: auto 100%; }
  @media screen and (max-width: 767px) {
    #inquiry_link_block {
      height: 250px;
      /*margin-top: 8rem;*/
      background-size: cover; } }
  #inquiry_link_block .innerBox {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    max-width: 108rem;
    height: 100%;
    margin: 0 auto; }
    @media screen and (max-width: 767px) {
      #inquiry_link_block .innerBox {
        flex-wrap: wrap;
        justify-content: center;
        padding: 40px 0 20px;
        text-align: center; } }
    #inquiry_link_block .innerBox .inquiry_link_text_block {
      color: var(--color-white); }
      #inquiry_link_block .innerBox .inquiry_link_text_block .inquiry_link_title {
        font-size: 3.0rem;
        font-weight: 700;
        letter-spacing: 0.2rem; }
        @media screen and (max-width: 767px) {
          #inquiry_link_block .innerBox .inquiry_link_text_block .inquiry_link_title {
            font-size: 2.4rem; } }
      #inquiry_link_block .innerBox .inquiry_link_text_block .inquiry_link_message {
        margin-top: 0.5rem;
        color: var(--color-primary);
        font-weight: 700; }
    #inquiry_link_block .innerBox .btn_inquiry a {
      display: flex;
      justify-content: center;
      align-items: center;
      width: 350px;
      height: 74px;
      color: var(--color-white);
      font-size: 1.8rem;
      font-weight: 700;
      background-color: var(--color-primary);
      border-radius: 5px; }
      @media screen and (max-width: 767px) {
        #inquiry_link_block .innerBox .btn_inquiry a {
          max-width: 335px; } }
      #inquiry_link_block .innerBox .btn_inquiry a::before {
        content: '\f0e0';
        margin-right: 0.5rem;
        color: var(--color-white);
        font-family: var(--font-family-font-awesome);
        font-size: 2.0rem;
        font-weight: 900; }
      #inquiry_link_block .innerBox .btn_inquiry a:hover {
        color: var(--color-primary);
        background-color: var(--color-bg02); }
        #inquiry_link_block .innerBox .btn_inquiry a:hover::before {
          color: var(--color-primary); }

.content + #inquiry_link_block {
  margin-top: 16rem; }
  @media screen and (max-width: 767px) {
    .content + #inquiry_link_block {
      margin-top: 8rem; } }

/* ------------------------
footer
------------------------ */
#gFooter {
  padding: 7.7rem 0 4.3rem;
  border-top: 1px solid #C0CDD7;
  background-color: var(--color-white);
  /*.flex .comBtnUl {
      margin: 1px 0 0 0;
      flex: 1;
      justify-content: flex-end;
  }
  .flex .comBtnUl li {
      margin: 0 0 0 0.8rem;
  }*/ }
  @media screen and (max-width: 767px) {
    #gFooter {
      padding: 5.9rem 2rem 2.9rem; } }
  #gFooter .fBox {
    margin: 0 auto;
    max-width: 108rem; }
  #gFooter .btmBox {
    margin-top: 2.8rem;
    padding-top: 4.8rem;
    border-top: 1px solid #C0CDD7;
    display: flex;
    justify-content: space-between; }
    @media screen and (max-width: 767px) {
      #gFooter .btmBox {
        padding-top: 2.9rem;
        margin-bottom: 2.3rem;
        display: block; } }
  #gFooter .topBox {
    margin-bottom: 3.6rem; }
    @media screen and (max-width: 767px) {
      #gFooter .topBox {
        margin-bottom: 3.1rem; } }
  #gFooter .comBtnUl {
    flex: 1; }
    #gFooter .comBtnUl > li {
      font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem); }
  #gFooter .fNavi {
    margin-bottom: 4.0rem;
    display: flex;
    flex-wrap: wrap;
    column-gap: 40px;
    row-gap: 40px; }
    @media screen and (max-width: 767px) {
      #gFooter .fNavi {
        margin-bottom: 3.1rem;
        display: block;
        font-size: 1.4rem; } }
    #gFooter .fNavi > li {
      margin-right: 0 !important;
      min-width: 8rem;
      font-size: clamp(1.2rem, 1.127rem + 0.36vw, 1.4rem); }
      @media screen and (max-width: 767px) {
        #gFooter .fNavi > li {
          border-bottom: 1px solid #C0CDD7; } }
      @media screen and (max-width: 767px) {
        #gFooter .fNavi > li:first-child {
          border-top: 1px solid #C0CDD7; } }
      #gFooter .fNavi > li:last-child {
        margin-right: -0.4rem; }
    @media screen and (max-width: 767px) {
      #gFooter .fNavi .linkUl {
        padding: 1.5rem 1.2rem 1.6rem;
        border-top: 1px solid #C0CDD7;
        display: none; } }
    #gFooter .fNavi .linkUl a:hover {
      color: var(--color-primary); }
    #gFooter .fNavi .linkUl li {
      margin-bottom: 0.8rem;
      word-break: break-word; }
      #gFooter .fNavi .linkUl li:last-child {
        margin-bottom: 0; }
    @media screen and (max-width: 767px) {
      #gFooter .fNavi .linkUl .spLink {
        font-weight: 700;
        font-size: 1.4rem;
        margin-bottom: 1.3rem; } }
    #gFooter .fNavi .comLink02 {
      margin-bottom: 2.1rem; }
      @media screen and (max-width: 767px) {
        #gFooter .fNavi .comLink02 {
          margin-bottom: 0; } }
      #gFooter .fNavi .comLink02 a {
        position: relative; }
        @media screen and (max-width: 767px) {
          #gFooter .fNavi .comLink02 a {
            display: block;
            padding: 1.2rem 3rem 1.3rem 1.2rem;
            font-size: 1.4rem; } }
        @media screen and (max-width: 767px) {
          #gFooter .fNavi .comLink02 a::after {
            position: absolute;
            top: 0;
            bottom: 0;
            right: 1.1rem;
            width: 1.4rem;
            height: 1.4rem;
            margin: auto; } }
    @media screen and (max-width: 767px) {
      #gFooter .fNavi li:has(ul) .comLink02 a::after {
        content: "";
        right: 1.2rem;
        background-color: var(--color-primary);
        display: inline-block;
        height: 1.2rem;
        width: 1.2rem;
        -webkit-mask: url("../img/icon02.svg");
        mask: url("../img/icon02.svg");
        -webkit-mask-size: cover;
        mask-size: cover;
        vertical-align: middle; } }
    @media screen and (max-width: 767px) {
      #gFooter .fNavi li:has(ul) .comLink02 a.on::after {
        -webkit-mask: url("../img/icon03.svg");
        mask: url("../img/icon03.svg"); } }
    #gFooter .fNavi .item02 {
      margin-right: 5.9rem; }
  #gFooter .comBtnUl.small {
    justify-content: flex-end; }
    @media screen and (max-width: 767px) {
      #gFooter .comBtnUl.small {
        justify-content: flex-start; } }
    #gFooter .comBtnUl.small a {
      height: auto;
      width: auto;
      /*padding: 0.6rem 1.3rem;
      font-size: 1.2rem;*/
      color: var(--color-maintext);
      border-color: var(--color-maintext); }
      @media screen and (max-width: 767px) {
        #gFooter .comBtnUl.small a {
          /*font-size: 1.1rem;*/ } }
      #gFooter .comBtnUl.small a:hover {
        color: var(--color-white);
        background-color: var(--color-maintext); }
  #gFooter .fNavi02 {
    margin-top: -1px;
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    font-size: 1.2rem; }
    @media screen and (max-width: 767px) {
      #gFooter .fNavi02 {
        margin: 0 0 1.8rem;
        font-size: 1rem;
        justify-content: flex-start; } }
    #gFooter .fNavi02 li {
      margin-right: 2.8rem; }
      @media screen and (max-width: 767px) {
        #gFooter .fNavi02 li {
          margin: 0 1.4rem 1.1rem; } }
    #gFooter .fNavi02 a {
      display: inline-block; }
      #gFooter .fNavi02 a:hover {
        color: var(--color-primary); }
  #gFooter address {
    white-space: nowrap;
    font-size: 1.2rem;
    letter-spacing: 0; }
    @media screen and (max-width: 767px) {
      #gFooter address {
        white-space: wrap;
        font-size: 1rem;
        text-align: center; } }

:lang(en) #gFooter .fNavi {
  column-gap: 30px; }

.to_top {
  position: fixed;
  right: 0;
  bottom: 0;
  cursor: pointer;
  transition: all .3s ease 0s;
  width: 5rem;
  height: 5rem;
  z-index: 999;
  background-color: var(--color-black); }
  .to_top span {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    width: 2rem;
    height: 2rem;
    margin: auto;
    -webkit-mask: url("../img/to_top.svg");
    mask: url("../img/to_top.svg");
    -webkit-mask-size: 100%;
    mask-size: 100%;
    mask-repeat: no-repeat;
    mask-position: center;
    vertical-align: middle;
    background-color: var(--color-white); }
  .to_top:hover {
    background-color: var(--color-primary); }
