@charset "UTF-8";
@import url("global.css");
@import url("https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400..700;1,400..700&display=swap");
@keyframes mainimage {
  0% {
    opacity: 0;
    filter: grayscale(1); }
  100% {
    opacity: 1;
    filter: none; } }
#topcontent {
  position: relative;
  height: 45vw;
  /*&::before {
  	content: "";
  	position: fixed;
  	z-index: -1;
  	left: 0;
  	top: 0;
  	width: 100%;
  	height: 100svh;
  	background: url("../img/corporate/mv.jpg") no-repeat center center;
  	background-size: cover;
  	animation: mainimage 2s ease .1s 1;
  	animation-fill-mode: both;
  }*/ }
  #topcontent .mv_bg {
    width: 100%;
    height: 100%; }
  #topcontent .top_inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    position: absolute;
    z-index: 1;
    background-color: #F1F1EF;
    top: 50%;
    left: 0;
    right: 0;
    translate: 0 -50%;
    box-sizing: border-box;
    margin: 0 auto;
    width: fit-content;
    padding: 2% 2.5%; }
    #topcontent .top_inner .catch_main {
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-size: clamp(26px, 4vw, 47px);
      line-height: 1.2; }
    #topcontent .top_inner .catch_sub {
      font-family: "Libre Baskerville", serif;
      font-size: clamp(9px, 1vw, 14px);
      margin-top: .8em;
      letter-spacing: .15em; }

/* ------ News ------ */
#newsarea {
  padding-top: 15px;
  margin-inline: auto 20px;
  width: 800px; }
  #newsarea .title_box {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    z-index: 1;
    margin-bottom: 15px; }
    #newsarea .title_box::before {
      content: "";
      position: absolute;
      z-index: -1;
      left: 0;
      right: 0;
      top: 50%;
      height: 1px;
      background-color: #D6D6D6; }
    #newsarea .title_box .title {
      width: fit-content;
      padding-right: 20px;
      background-color: #F1F1EF;
      font-size: 1.125em;
      font-family: "Jost", "Zen Kaku Gothic New", sans-serif; }
    #newsarea .title_box .link {
      width: fit-content;
      padding-left: 20px;
      background-color: #F1F1EF;
      font-size: .825em;
      font-weight: 600;
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
  #newsarea .swiper-container {
    width: 100%;
    height: 30px; }
  #newsarea ul.list {
    height: 100%; }
    #newsarea ul.list li .inner {
      display: flex;
      align-items: center;
      height: 30px;
      line-height: 30px;
      text-align: left;
      font-size: .94em;
      overflow: hidden; }
    #newsarea ul.list li a.inner .text {
      position: relative;
      padding-right: 1.5em; }
      #newsarea ul.list li a.inner .text::after {
        content: "\f04b";
        position: absolute;
        right: 0;
        top: 0;
        font-family: 'Font Awesome 6 free','Font Awesome 6 Brands';
        font-weight: 900;
        font-size: .8em; }
    @media (any-hover: hover) {
      #newsarea ul.list li a.inner:hover {
        opacity: .8; } }
    #newsarea ul.list li .date {
      display: block;
      position: relative;
      font-family: "Jost", "Zen Kaku Gothic New", sans-serif;
      font-weight: 400;
      padding-top: 1px; }
    #newsarea ul.list li .text {
      display: block;
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-weight: 600;
      margin-left: 10px;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap; }

/* ------ section-common ------ */
.section .sec_title span {
  display: block;
  line-height: 1.4; }
  .section .sec_title span.en {
    font-family: "Jost", "Zen Kaku Gothic New", sans-serif;
    color: #A2A2A2; }
  .section .sec_title span.ja {
    font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    font-size: clamp(25px, 3.2vw, 40px); }

/* ------ PageTitle & Introduction ------ */
#contents {
  padding-top: 0; }

#companytitle.section {
  margin-top: 60px; }
  #companytitle.section .sec_title {
    margin-bottom: 35px; }
  #companytitle.section .companynavi ul {
    display: flex;
    align-items: center;
    column-gap: 25px; }
    #companytitle.section .companynavi ul li a {
      display: flex;
      align-items: center;
      column-gap: 10px;
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
      #companytitle.section .companynavi ul li a::before {
        content: "-";
        display: block; }
      @media (any-hover: hover) {
        #companytitle.section .companynavi ul li a:hover {
          color: #1A1A3F; } }

#introduction {
  margin-top: 100px; }
  #introduction .intro_ph {
    position: absolute;
    top: 0;
    left: 0;
    width: 55%;
    height: 100%;
    overflow: hidden; }
  #introduction .textarea {
    flex-grow: 1;
    -webkit-writing-mode: vertical-rl;
    -moz-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    white-space: nowrap;
    line-height: 1.4;
    letter-spacing: .1em;
    display: inline-block;
    font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: 45%;
    margin-left: auto;
    padding: 40px;
    box-sizing: border-box; }
    #introduction .textarea .intro_sec_title {
      background-color: #1A1A3F;
      color: #fff;
      font-size: 16px;
      margin-left: 35px;
      padding: .8em .5em; }
    #introduction .textarea .catch {
      font-size: 34px;
      margin-left: 40px; }
    #introduction .textarea .text {
      line-height: 1.8; }
      #introduction .textarea .text p + p {
        margin-right: 2em; }

/* ------ Service ------ */
#sec_service.section {
  margin-top: 90px;
  padding-block: 110px 140px;
  padding-left: 7.4vw;
  position: relative; }
  #sec_service.section::after {
    content: "";
    position: absolute;
    z-index: -1;
    left: 0;
    right: 0;
    bottom: 0;
    height: 40%;
    background-color: #E1E1E1; }
  #sec_service.section .titlebox {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    padding-inline: 30px 8vw;
    padding-bottom: 30px; }
    #sec_service.section .titlebox .catch {
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-size: clamp(17px, 2.5vw, 32px); }
  #sec_service.section ol.service_list {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1px; }
    #sec_service.section ol.service_list li {
      display: contents; }
      #sec_service.section ol.service_list li a {
        display: grid;
        grid-template-rows: subgrid;
        grid-row: span 3;
        padding: 230px 1.5vw 30px;
        height: 100%;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
        color: #FFF;
        position: relative; }
        #sec_service.section ol.service_list li a .title span {
          display: block; }
          #sec_service.section ol.service_list li a .title span.num {
            font-family: "Jost", "Zen Kaku Gothic New", sans-serif;
            display: flex;
            align-items: center;
            font-size: .8125em;
            line-height: 1; }
            #sec_service.section ol.service_list li a .title span.num::before {
              content: "[";
              display: block;
              margin-right: 7px; }
            #sec_service.section ol.service_list li a .title span.num::after {
              content: "]";
              display: block;
              margin-left: 7px; }
          #sec_service.section ol.service_list li a .title span.ja {
            line-height: 1.4;
            font-weight: 600;
            font-size: clamp(21px, 3vw, 30px);
            letter-spacing: 0; }
        #sec_service.section ol.service_list li a .text {
          margin-top: 10px; }
          #sec_service.section ol.service_list li a .text > p {
            font-size: .9em; }
        #sec_service.section ol.service_list li a .link {
          margin-top: 30px;
          display: flex;
          align-items: center;
          width: fit-content;
          font-size: .93em; }
          #sec_service.section ol.service_list li a .link::before {
            content: "";
            display: block;
            margin-right: 10px;
            width: 13px;
            height: 13px;
            background: url("../img/corporate/arrow_blank.svg") no-repeat center center;
            background-size: contain; }
          #sec_service.section ol.service_list li a .link span {
            display: block; }
        #sec_service.section ol.service_list li a .img {
          position: absolute;
          z-index: -1;
          left: 0;
          top: 0;
          width: 100%;
          height: 100%; }
          #sec_service.section ol.service_list li a .img::before {
            content: "";
            position: absolute;
            z-index: 1;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            background-color: #1D1D1D;
            opacity: .48; }
          #sec_service.section ol.service_list li a .img figure {
            width: 100%;
            height: 100%; }
  #sec_service.section .bg {
    position: absolute;
    z-index: -1;
    top: 0;
    right: 0;
    max-width: 68.54vw; }

/* ------ Message ------ */
#sec_message.section {
  clip-path: inset(0);
  overflow: hidden;
  padding-block: 120px; }
  #sec_message.section::before {
    content: "";
    position: fixed;
    z-index: -1;
    left: 0;
    top: 0;
    width: 100%;
    height: 100svh;
    background-color: rgba(29, 29, 29, 0.6);
    background: linear-gradient(180deg, rgba(29, 29, 29, 0) 30%, rgba(29, 29, 29, 0.7) 40%, rgba(29, 29, 29, 0.6) 50%); }
  #sec_message.section .wrapper {
    color: #FFF; }
  #sec_message.section .sec_title {
    padding-left: 20px;
    padding-bottom: 50px; }
    #sec_message.section .sec_title span.ja {
      color: #FFF; }
  #sec_message.section .main_area {
    display: flex;
    justify-content: space-between;
    align-items: flex-start; }
  #sec_message.section .president {
    flex-shrink: 0; }
    #sec_message.section .president figure {
      padding: 20px;
      background-color: #FFF; }
    #sec_message.section .president .name {
      text-align: right;
      margin-top: 10px; }
  #sec_message.section .textbox {
    width: 100%;
    padding-left: 5vw;
    -webkit-box-sizing: border-box;
    box-sizing: border-box; }
    #sec_message.section .textbox .key {
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
      font-size: clamp(22px, 3.6vw, 40px);
      text-indent: -.5em;
      line-height: 1.6; }
    #sec_message.section .textbox .comment {
      margin-top: 40px;
      text-align: justify; }
  #sec_message.section .officer_area {
    border-top: 1px solid #fff;
    padding-top: 60px;
    margin-top: 100px; }
    #sec_message.section .officer_area .sec_subtitle {
      margin-bottom: 40px;
      font-size: clamp(20px, 2.9vw, 28px);
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
    #sec_message.section .officer_area .list_officer {
      display: grid;
      grid-template-columns: 1fr 1fr 1fr;
      grid-gap: 50px; }
      #sec_message.section .officer_area .list_officer li figure {
        padding: 20px;
        background-color: #FFF; }
      #sec_message.section .officer_area .list_officer li .name {
        text-align: right;
        margin-top: 10px; }
  #sec_message.section .bg {
    position: fixed;
    z-index: -2;
    left: 0;
    top: 0;
    width: 100%;
    height: 100svh; }

/* ------ Company ------ */
#sec_company.section {
  background-color: #1A1A3F;
  padding-block: 140px; }
  #sec_company.section .sec_wrap {
    margin-inline: auto 0;
    max-width: 950px;
    color: #FFF; }
    #sec_company.section .sec_wrap + .sec_wrap {
      margin-top: 90px; }
  #sec_company.section .sec_title {
    text-align: right;
    margin-bottom: 75px; }
  #sec_company.section table.outline {
    width: 100%;
    border-spacing: 0 20px;
    border-bottom: #FFF solid 1px; }
    #sec_company.section table.outline tr {
      position: relative; }
      #sec_company.section table.outline tr::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -10px;
        height: 1px;
        background-color: #FFF; }
    #sec_company.section table.outline th, #sec_company.section table.outline td {
      padding: 10px 35px; }
    #sec_company.section table.outline th {
      vertical-align: top;
      text-align: right;
      width: 25%; }
    #sec_company.section table.outline td {
      border-left: #FFF solid 1px;
      font-size: .93em;
      line-height: 1.5; }
      #sec_company.section table.outline td > p:not([class]) + p.h {
        margin-top: 1em; }
      #sec_company.section table.outline td > p:not([class]) + dl {
        margin-top: 1em; }
      #sec_company.section table.outline td > p.h::before {
        content: "-";
        display: inline-block;
        margin: 0 10px 2px 0; }
      #sec_company.section table.outline td > p.h + p.h {
        margin-top: .3em; }
      #sec_company.section table.outline td > p.h .add {
        display: block;
        font-size: 90%;
        padding-left: 1.1em; }
      #sec_company.section table.outline td > p.h + ul {
        padding-left: 1em; }
      #sec_company.section table.outline td > p.pdf {
        margin-top: 1em; }
        #sec_company.section table.outline td > p.pdf a {
          display: block;
          width: fit-content;
          text-decoration: underline; }
          #sec_company.section table.outline td > p.pdf a::before {
            content: "-";
            display: inline-block;
            margin: 0 10px 2px 0; }
      #sec_company.section table.outline td > ul.float {
        display: flex;
        flex-wrap: wrap;
        gap: 5px 15px; }
      #sec_company.section table.outline td > ul li {
        padding-left: 10px;
        position: relative;
        margin-top: 6px; }
        #sec_company.section table.outline td > ul li::before {
          content: "";
          display: block;
          width: 5px;
          height: 5px;
          background-color: #FFF;
          -webkit-border-radius: 100%;
          border-radius: 100%;
          position: absolute;
          left: 0;
          top: 10px; }
        #sec_company.section table.outline td > ul li > small {
          display: block;
          font-size: 90%; }
      #sec_company.section table.outline td > ul + p.h {
        margin-top: 1em; }
      #sec_company.section table.outline td > dl + dl {
        margin-top: 1em; }
      #sec_company.section table.outline td > dl dt {
        display: flex;
        align-items: center; }
        #sec_company.section table.outline td > dl dt::before {
          content: "【";
          display: block;
          margin-right: 3px; }
        #sec_company.section table.outline td > dl dt::after {
          content: "】";
          display: block;
          margin-left: 3px; }
      #sec_company.section table.outline td > dl dd {
        padding-left: .6em; }
  #sec_company.section .mapbox {
    width: 100%;
    height: 0;
    padding-top: 56.84%;
    overflow: hidden;
    position: relative; }
    #sec_company.section .mapbox iframe {
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%; }
  #sec_company.section .bannerbox {
    margin-top: 30px;
    border: rgba(255, 255, 255, 0.23) solid 1px;
    padding: 45px 50px; }
    #sec_company.section .bannerbox ul li {
      display: flex;
      width: 100%; }
      #sec_company.section .bannerbox ul li + li {
        margin-top: 20px; }
      #sec_company.section .bannerbox ul li .bnr {
        flex-shrink: 0;
        width: 200px; }
        #sec_company.section .bannerbox ul li .bnr a {
          display: block;
          width: fit-content;
          margin-left: auto; }
      #sec_company.section .bannerbox ul li .text {
        padding-left: 30px;
        font-size: .93em;
        line-height: 1.3; }

/* ------ Staff ------ */
.staff_banner {
  height: 360px;
  position: relative;
  margin-top: 120px;
  margin-inline: 150px; }
  .staff_banner a {
    height: 100%;
    padding-inline: 160px;
    box-sizing: border-box;
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #fff;
    background: url("../img/corporate/bg_staff.jpg") no-repeat center center;
    background-size: cover; }
    .staff_banner a::before {
      content: "";
      width: 100%;
      height: 100%;
      background: rgba(29, 29, 29, 0.5);
      position: absolute;
      left: 0;
      top: 0;
      transition: all 0.5s cubic-bezier(0.04, 0.435, 0.315, 0.9) 0s;
      backface-visibility: hidden; }
    @media (any-hover: hover) {
      .staff_banner a:hover::before {
        background: rgba(29, 29, 29, 0.35); } }
  .staff_banner .ban_title {
    position: relative;
    z-index: 2; }
    .staff_banner .ban_title span {
      display: block; }
      .staff_banner .ban_title span.en {
        font-family: "Jost", "Zen Kaku Gothic New", sans-serif;
        color: #A2A2A2; }
      .staff_banner .ban_title span.ja {
        font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
        font-size: clamp(25px, 3.2vw, 40px); }
  .staff_banner .text {
    flex: 1;
    padding-left: 100px;
    font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
    position: relative;
    z-index: 2; }
    .staff_banner .text .links {
      margin-top: 30px;
      margin-left: auto;
      width: fit-content;
      padding-left: 20px;
      font-size: .825em;
      font-weight: 600;
      font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
      .staff_banner .text .links .more {
        display: flex;
        align-items: center;
        width: fit-content;
        font-weight: 600;
        font-family: "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif; }
        .staff_banner .text .links .more .arrow {
          display: block; }
          .staff_banner .text .links .more .arrow::before {
            content: "";
            display: inline-block;
            margin-right: 10px;
            background-image: none;
            background-color: #fff;
            mask: url("../img/arrow.svg") no-repeat center/contain;
            -webkit-mask: url("../img/arrow.svg") no-repeat center/contain;
            width: 24px;
            height: 13px; }

/* ------ Data ------ */
#sec_data.section {
  padding-block: 160px 140px; }
  #sec_data.section .sec_title {
    text-align: center;
    margin-bottom: 50px; }
  #sec_data.section ul.list_data {
    padding: 40px 32px;
    background-color: #FFF;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    display: grid;
    grid-template-columns: repeat(2, 1fr); }
    #sec_data.section ul.list_data li {
      padding: 40px;
      -webkit-box-sizing: border-box;
      box-sizing: border-box;
      border-top: dashed #A2A2A2 2px;
      position: relative; }
      #sec_data.section ul.list_data li:nth-child(1), #sec_data.section ul.list_data li:nth-child(2) {
        border-top: none; }
      #sec_data.section ul.list_data li:nth-child(2)::before, #sec_data.section ul.list_data li:nth-child(5)::before, #sec_data.section ul.list_data li:nth-child(7)::before {
        content: "";
        position: absolute;
        left: -1px;
        top: 40px;
        bottom: 40px;
        border-left: dashed #A2A2A2 2px; }
      #sec_data.section ul.list_data li:nth-child(3) {
        grid-column: span 2; }
      #sec_data.section ul.list_data li .inner {
        overflow: hidden; }
        #sec_data.section ul.list_data li .inner .title {
          font-weight: 500;
          font-size: clamp(18px, 2.3vw, 27px);
          width: fit-content;
          margin: 0 auto 20px;
          background-repeat: no-repeat;
          background-position: bottom right;
          background-image: linear-gradient(#1D1D1D, #1D1D1D);
          background-size: 100% 1px; }
        #sec_data.section ul.list_data li .inner .number {
          display: flex;
          justify-content: center;
          align-items: flex-end;
          font-family: "Libre Caslon Text", "Zen Old Mincho", "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
          font-size: clamp(20px, 2.5vw, 35px);
          line-height: 1; }
          #sec_data.section ul.list_data li .inner .number > strong {
            color: #3A3A66;
            font-size: 300%;
            line-height: .8;
            margin-right: 5px; }
          #sec_data.section ul.list_data li .inner .number > small {
            position: absolute;
            bottom: -1.4em;
            left: 0;
            font-size: 12px;
            white-space: nowrap; }
          #sec_data.section ul.list_data li .inner .number .tate {
            -webkit-writing-mode: vertical-rl;
            -moz-writing-mode: vertical-rl;
            -ms-writing-mode: tb-rl;
            writing-mode: vertical-rl;
            white-space: nowrap;
            line-height: 1.4;
            letter-spacing: .1em;
            display: inline-block;
            margin-right: 10px;
            line-height: 1;
            -webkit-border-radius: 66px;
            border-radius: 66px;
            padding: 20px 10px;
            background-color: #3A3A66;
            font-family: "Zen Kaku Gothic New", "游ゴシック体", YuGothic, "游ゴシック", "Yu Gothic", "游ゴシック Medium", "Yu Gothic Medium", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic Pro", "ヒラギノ角ゴ Pro", "Meiryo", "メイリオ", Helvetica, sans-serif;
            color: #FFF;
            font-size: 20px;
            font-weight: 500; }
          #sec_data.section ul.list_data li .inner .number .before {
            display: block;
            margin-right: 15px;
            line-height: 1; }
        #sec_data.section ul.list_data li .inner .numberlist {
          margin-inline: 3vw;
          background-color: #E5E5E5;
          -webkit-border-radius: 4px;
          border-radius: 4px;
          padding: 45px 30px;
          display: flex;
          justify-content: space-around; }
          #sec_data.section ul.list_data li .inner .numberlist dl dt {
            width: fit-content;
            margin: 0 auto 25px;
            padding: 0 20px;
            background-color: #3A3A66;
            color: #FFF;
            font-size: 1.25em;
            font-weight: 500;
            -webkit-border-radius: 66px;
            border-radius: 66px; }
        #sec_data.section ul.list_data li .inner:has(.chart) {
          position: relative; }
        #sec_data.section ul.list_data li .inner .chart {
          max-width: 266px;
          margin-inline: auto;
          margin-bottom: 60px; }
          #sec_data.section ul.list_data li .inner .chart + .number {
            position: absolute;
            right: -7px;
            bottom: 50px; }
        #sec_data.section ul.list_data li .inner .catch {
          margin-top: 10px;
          font-weight: 500;
          text-align: center; }

/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-1 ( 1600px )

------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 1600px) {
  #introduction .img3 {
    margin-inline: 7.4vw 5.2vw;
    width: 23vw; }
  #introduction .textarea .catch {
    padding-right: 4.5vw; }
  #introduction .textarea .text {
    padding-bottom: 4em; }

  /* ------ Service ------ */
  #sec_service.section::after {
    height: 56%; }
  #sec_service.section .titlebox {
    padding-inline: 30px 50px; }
  #sec_service.section ol.service_list {
    grid-template-columns: 2fr 1fr 1fr 2fr; }
    #sec_service.section ol.service_list li {
      display: block; }
      #sec_service.section ol.service_list li:nth-child(1) {
        grid-column: 1 / 2; }
      #sec_service.section ol.service_list li:nth-child(2) {
        grid-column: 2 / 4; }
      #sec_service.section ol.service_list li:nth-child(3) {
        grid-column: 4 / 5; }
      #sec_service.section ol.service_list li:nth-child(4) {
        grid-column: 1 / 3; }
        #sec_service.section ol.service_list li:nth-child(4) a {
          padding-top: 100px; }
      #sec_service.section ol.service_list li:nth-child(5) {
        grid-column: 3 / 5; }
        #sec_service.section ol.service_list li:nth-child(5) a {
          padding-top: 100px; }
      #sec_service.section ol.service_list li a {
        padding: 180px 2.4vw 30px; }

  /* ------ Message ------ */
  /* ------ Company ------ */
  #sec_company.section {
    padding-block: 110px 140px; }
    #sec_company.section .sec_title {
      margin-bottom: 65px; }
    #sec_company.section .mapbox {
      padding-top: 40%; } }
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-2 ( 1300px )

------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 1300px) {
  #topcontent {
    height: 55vw; }

  /* ------ News ------ */
  #newsarea {
    width: auto;
    margin-inline: 5vw; }

  /* ------ section-common ------ */
  /* ------ PageTitle & Introduction ------ */
  #companytitle.section {
    margin-top: 60px; }
    #companytitle.section .sec_title {
      text-align: center; }
    #companytitle.section .companynavi ul {
      justify-content: center;
      column-gap: 20px; }

  #introduction .intro_ph {
    display: none; }
  #introduction .textarea {
    width: auto;
    margin: 0 auto;
    padding: 0; }
    #introduction .textarea .catch {
      font-size: 30px; }

  /* ------ Service ------ */
  #sec_service.section {
    margin-top: 0;
    padding-block: 10px 100px;
    padding-left: 6vw; }
    #sec_service.section .titlebox {
      padding-inline: 30px 6vw; }
    #sec_service.section ol.service_list li a .link {
      margin-top: 20px; }

  /* ------ Message ------ */
  #sec_message.section .sec_title {
    padding-left: 15px;
    padding-bottom: 35px; }
  #sec_message.section .textbox {
    padding-left: 4vw; }

  /* ------ Company ------ */
  #sec_company.section {
    padding-block: 100px; }
    #sec_company.section .sec_wrap {
      max-width: 100%; }
      #sec_company.section .sec_wrap + .sec_wrap {
        margin-top: 75px; }
    #sec_company.section .sec_title {
      margin-bottom: 45px; }
    #sec_company.section table.outline th {
      width: 22%; }
    #sec_company.section .bannerbox {
      padding: 45px 40px; }

  /* ------ Staff ------ */
  .staff_banner {
    margin-inline: auto; }
    .staff_banner a {
      padding-inline: 100px; }

  /* ------ Data ------ */
  #sec_data.section {
    padding-block: 120px 100px; }
    #sec_data.section .sec_title {
      margin-bottom: 40px; }
    #sec_data.section ul.list_data {
      padding: 35px 30px; }
      #sec_data.section ul.list_data li {
        padding: 40px 15px; }
        #sec_data.section ul.list_data li .inner .numberlist {
          margin-inline: 2vw;
          padding: 35px 30px; }
        #sec_data.section ul.list_data li .inner .chart {
          max-width: 80%; } }
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-3 ( 959px )

------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 959px) {
  #topcontent {
    height: 100vw; }
    #topcontent .top_inner {
      padding: 3% 3.5%; }

  /* ------ News ------ */
  #newsarea {
    padding-top: 10px;
    margin-inline: 5vw;
    width: auto; }
    #newsarea .title_box {
      margin-bottom: 10px; }

  /* ------ section-common ------ */
  /* ------ PageTitle & Introduction ------ */
  #companytitle.section .sec_title {
    margin-bottom: 30px; }
  #companytitle.section .companynavi ul {
    column-gap: 15px; }
    #companytitle.section .companynavi ul li a {
      column-gap: 7px; }

  #introduction .img1 {
    margin-bottom: 65px;
    width: 56vw;
    aspect-ratio: 2 / 1; }
  #introduction .img2 {
    margin-left: 6vw;
    aspect-ratio: 2 / 1.2; }
  #introduction .img3 {
    margin-inline: 6vw 4vw;
    width: 28vw;
    aspect-ratio: 1 / 1.3; }
  #introduction .textarea {
    width: 57vw;
    padding-right: 5vw; }
    #introduction .textarea .text > p {
      font-size: 1em; }

  /* ------ Service ------ */
  #sec_service.section {
    margin-top: 60px;
    padding-left: 5vw;
    padding-block: 15px 80px; }
    #sec_service.section::after {
      height: 70%; }
    #sec_service.section .titlebox {
      padding-inline: 0 5vw; }
      #sec_service.section .titlebox .catch {
        line-height: 1.4; }
    #sec_service.section ol.service_list {
      grid-template-columns: repeat(2, 1fr); }
      #sec_service.section ol.service_list li:nth-child(1), #sec_service.section ol.service_list li:nth-child(3) {
        grid-column: 1 / 2; }
      #sec_service.section ol.service_list li:nth-child(2), #sec_service.section ol.service_list li:nth-child(4) {
        grid-column: 2 / 3; }
      #sec_service.section ol.service_list li:nth-child(5) {
        grid-column: span 3; }
      #sec_service.section ol.service_list li a {
        padding: 160px 3vw 25px; }
        #sec_service.section ol.service_list li a .link {
          margin-top: 20px; }
    #sec_service.section .bg {
      max-width: 73vw; }

  /* ------ Message ------ */
  #sec_message.section {
    padding-block: 100px; }
    #sec_message.section .sec_title {
      padding-left: 0;
      text-align: center; }
    #sec_message.section .main_area {
      display: block; }
    #sec_message.section .president {
      width: fit-content;
      margin-inline: auto; }
      #sec_message.section .president figure {
        padding: 14px; }
      #sec_message.section .president .name {
        margin-top: 8px; }
    #sec_message.section .textbox {
      padding: 30px 0 0; }
      #sec_message.section .textbox .key {
        text-indent: 0;
        text-align: center; }
      #sec_message.section .textbox .comment {
        margin-top: 30px; }
    #sec_message.section .officer_area .list_officer {
      grid-gap: 30px; }
      #sec_message.section .officer_area .list_officer li figure {
        padding: 14px; }
      #sec_message.section .officer_area .list_officer li .name {
        margin-top: 8px; }

  /* ------ Company ------ */
  #sec_company.section {
    padding-block: 90px; }
    #sec_company.section .sec_title {
      margin-bottom: 40px; }
    #sec_company.section table.outline th, #sec_company.section table.outline td {
      padding: 10px 25px; }
    #sec_company.section table.outline th {
      width: auto;
      white-space: nowrap; }
    #sec_company.section .mapbox {
      padding-top: 54%; }
    #sec_company.section .bannerbox {
      padding: 40px 30px; }
      #sec_company.section .bannerbox ul li + li {
        margin-top: 15px; }
      #sec_company.section .bannerbox ul li .bnr {
        width: 160px; }
      #sec_company.section .bannerbox ul li .text {
        padding-left: 20px;
        line-height: 1.2; }

  /* ------ Staff ------ */
  .staff_banner {
    height: 280px; }
    .staff_banner a {
      padding-inline: 50px; }
    .staff_banner .text {
      padding-left: 60px; }

  /* ------ Data ------ */
  #sec_data.section {
    padding-block: 100px 90px; }
    #sec_data.section .sec_title {
      margin-bottom: 35px; }
    #sec_data.section ul.list_data {
      padding: 35px 25px; }
      #sec_data.section ul.list_data li {
        padding: 30px 15px; }
        #sec_data.section ul.list_data li:nth-child(2)::before, #sec_data.section ul.list_data li:nth-child(5)::before, #sec_data.section ul.list_data li:nth-child(7)::before {
          top: 30px;
          bottom: 30px; }
        #sec_data.section ul.list_data li .inner .number > small {
          bottom: -1.5em;
          font-size: 9px; }
        #sec_data.section ul.list_data li .inner .number .tate {
          margin-right: 8px;
          padding: 10px 7px;
          font-size: 16px; }
        #sec_data.section ul.list_data li .inner .number .before {
          margin-right: 10px; }
        #sec_data.section ul.list_data li .inner .numberlist {
          margin-inline: 0;
          padding: 30px 20px; }
          #sec_data.section ul.list_data li .inner .numberlist dl dt {
            padding: 0 15px;
            font-size: 1.13em; }
        #sec_data.section ul.list_data li .inner .chart {
          margin-bottom: 35px; }
          #sec_data.section ul.list_data li .inner .chart + .number {
            right: 3px;
            bottom: 40px; }
        #sec_data.section ul.list_data li .inner .catch {
          font-size: 12px; } }
/* ------------------------------------------------------------------------------------------------------------------------

 Responsive-Breakpoint-4 ( 644px )

------------------------------------------------------------------------------------------------------------------------ */
@media only screen and (max-width: 644px) {
  #topcontent {
    height: 140vw; }

  /* ------ News ------ */
  #newsarea {
    padding-top: 15px; }
    #newsarea .title_box .title {
      padding-right: 15px;
      font-size: 1em; }
    #newsarea .title_box .link {
      padding-left: 15px; }

  /* ------ section-common ------ */
  /* ------ PageTitle & Introduction ------ */
  #companytitle.section .sec_title {
    margin-bottom: 30px; }
  #companytitle.section .companynavi {
    background-color: #ddd;
    padding: 15px; }
    #companytitle.section .companynavi ul {
      justify-content: flex-start;
      flex-wrap: wrap;
      gap: 8px 0; }
      #companytitle.section .companynavi ul li {
        width: 50%; }

  #introduction {
    margin-top: 70px;
    display: block;
    position: relative; }
    #introduction .textarea {
      width: 100%;
      -webkit-writing-mode: horizontal-tb;
      -moz-writing-mode: horizontal-tb;
      -ms-writing-mode: tb-rl;
      writing-mode: horizontal-tb;
      white-space: normal;
      line-height: normal;
      text-align: center; }
      #introduction .textarea .intro_sec_title {
        font-size: 13px;
        padding: 5px 15px;
        margin: 0 auto 10px; }
      #introduction .textarea .catch {
        width: 100%;
        font-size: 26px;
        margin: 0 auto 30px;
        padding: 0; }
      #introduction .textarea .text {
        -webkit-writing-mode: vertical-rl;
        -moz-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
        writing-mode: vertical-rl;
        white-space: nowrap;
        line-height: 1.4;
        letter-spacing: .1em;
        display: inline-block;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: center;
        width: 100%;
        text-align: left; }

  /* ------ Service ------ */
  #sec_service.section {
    margin-top: 50px;
    padding-block: 40px 65px;
    padding-left: 5vw;
    overflow: hidden; }
    #sec_service.section::after {
      display: none; }
    #sec_service.section .titlebox {
      padding-inline: 0 5vw;
      padding-bottom: 20px; }
    #sec_service.section ol.service_list {
      display: block; }
      #sec_service.section ol.service_list li {
        margin-bottom: 2px; }
        #sec_service.section ol.service_list li:nth-child(4) a, #sec_service.section ol.service_list li:nth-child(5) a {
          padding-top: 35px; }
        #sec_service.section ol.service_list li a {
          display: flex;
          padding: 35px 5vw 70px;
          position: relative; }
          #sec_service.section ol.service_list li a .title {
            width: 48%;
            line-height: 1.5; }
          #sec_service.section ol.service_list li a .text {
            margin-top: 0;
            width: 50%; }
          #sec_service.section ol.service_list li a .link {
            margin-top: 0;
            position: absolute;
            right: 5vw;
            bottom: 20px; }
    #sec_service.section .bg {
      right: auto;
      left: 10vw;
      max-width: none;
      width: 115vw; }

  /* ------ Message ------ */
  #sec_message.section {
    clip-path: none;
    padding-block: 0 65px; }
    #sec_message.section::before {
      display: none; }
    #sec_message.section .wrapper {
      color: #1D1D1D; }
    #sec_message.section .sec_title {
      padding-bottom: 30px;
      text-align: left; }
      #sec_message.section .sec_title span.ja {
        color: #1D1D1D; }
    #sec_message.section .president {
      width: 76%; }
      #sec_message.section .president figure {
        padding: 0;
        background-color: transparent; }
    #sec_message.section .textbox .key {
      text-align: left;
      text-indent: -.5em; }
    #sec_message.section .officer_area {
      border-color: #A2A2A2;
      padding-top: 40px;
      margin-top: 50px; }
      #sec_message.section .officer_area .sec_subtitle {
        margin-bottom: 20px; }
      #sec_message.section .officer_area .list_officer {
        display: block; }
        #sec_message.section .officer_area .list_officer li {
          width: 70%;
          margin: 0 auto 30px; }
          #sec_message.section .officer_area .list_officer li figure {
            padding: 0;
            background-color: transparent; }
    #sec_message.section .bg {
      display: none; }

  /* ------ Company ------ */
  #sec_company.section {
    padding-block: 70px; }
    #sec_company.section .sec_wrap {
      margin-inline: 0; }
      #sec_company.section .sec_wrap + .sec_wrap {
        margin-top: 50px; }
    #sec_company.section .sec_title {
      text-align: left;
      margin-bottom: 30px; }
    #sec_company.section table.outline {
      border-spacing: 0;
      border-collapse: collapse; }
      #sec_company.section table.outline tr {
        position: static; }
        #sec_company.section table.outline tr::before {
          display: none; }
      #sec_company.section table.outline th, #sec_company.section table.outline td {
        border: none;
        display: block;
        -webkit-box-sizing: border-box;
        box-sizing: border-box;
        width: 100%; }
      #sec_company.section table.outline th {
        vertical-align: middle;
        text-align: left;
        border-top: #FFF solid 1px;
        border-bottom: rgba(255, 255, 255, 0.1) solid 1px;
        padding: 10px 0; }
      #sec_company.section table.outline td {
        padding: 10px 1em 20px; }
    #sec_company.section .mapbox {
      padding-top: 70%; }
    #sec_company.section .bannerbox {
      padding: 20px; }
      #sec_company.section .bannerbox ul li .bnr {
        width: 30vw; }

  /* ------ Staff ------ */
  .staff_banner {
    height: auto;
    margin-top: 60px; }
    .staff_banner a {
      padding: 30px;
      display: block; }
    .staff_banner .ban_title {
      margin-bottom: 20px; }
    .staff_banner .text {
      padding-left: 0;
      font-size: 12px; }
      .staff_banner .text .links {
        margin-top: 20px; }

  /* ------ Data ------ */
  #sec_data.section {
    padding-block: 60px; }
    #sec_data.section ul.list_data {
      padding: 0;
      background-color: transparent;
      -webkit-border-radius: 0;
      border-radius: 0;
      display: block; }
      #sec_data.section ul.list_data li {
        padding: 35px 0; }
        #sec_data.section ul.list_data li:nth-child(1), #sec_data.section ul.list_data li:nth-child(2) {
          border-top: dashed #A2A2A2 2px; }
        #sec_data.section ul.list_data li:nth-child(2)::before, #sec_data.section ul.list_data li:nth-child(5)::before, #sec_data.section ul.list_data li:nth-child(7)::before {
          display: none; }
        #sec_data.section ul.list_data li .inner {
          text-align: center; }
          #sec_data.section ul.list_data li .inner .number .tate {
            font-size: 13px; }
          #sec_data.section ul.list_data li .inner .numberlist {
            margin-inline: 0;
            padding: 15px 5vw;
            justify-content: space-between;
            flex-wrap: wrap; }
            #sec_data.section ul.list_data li .inner .numberlist dl {
              width: 50%;
              padding: 20px 10px;
              -webkit-box-sizing: border-box;
              box-sizing: border-box; }
              #sec_data.section ul.list_data li .inner .numberlist dl dt {
                font-size: 11px; }
          #sec_data.section ul.list_data li .inner:has(.chart) {
            position: static; }
          #sec_data.section ul.list_data li .inner .chart {
            max-width: 170px;
            margin: 0;
            display: inline-block; }
            #sec_data.section ul.list_data li .inner .chart + .number {
              position: static;
              display: inline-block; }
              #sec_data.section ul.list_data li .inner .chart + .number small {
                margin-top: 10px;
                position: static;
                display: block; } }
