@charset "UTF-8";
/* CSS Document */
/* ###################  ブレイクポイントの設定  ################### */
/*ブレイクポイント*/
/* ####  マージン　パディング  #####*/
.mt_00 {
  margin-top: 0px !important; }

.mb_00 {
  margin-bottom: 0px !important; }

.pt_00 {
  padding-top: 0px !important; }

.pb_00 {
  padding-bottom: 0px !important; }

.mt_10 {
  margin-top: 10px !important; }

.mb_10 {
  margin-bottom: 10px !important; }

.pt_10 {
  padding-top: 10px !important; }

.pb_10 {
  padding-bottom: 10px !important; }

.mt_20 {
  margin-top: 20px !important; }

.mb_20 {
  margin-bottom: 20px !important; }

.pt_20 {
  padding-top: 20px !important; }

.pb_20 {
  padding-bottom: 20px !important; }

.mt_30 {
  margin-top: 30px !important; }

.mb_30 {
  margin-bottom: 30px !important; }

.pt_30 {
  padding-top: 30px !important; }

.pb_30 {
  padding-bottom: 30px !important; }

.mt_40 {
  margin-top: 40px !important; }

.mb_40 {
  margin-bottom: 40px !important; }

.pt_40 {
  padding-top: 40px !important; }

.pb_40 {
  padding-bottom: 40px !important; }

.mt_50 {
  margin-top: 50px !important; }

.mb_50 {
  margin-bottom: 50px !important; }

.pt_50 {
  padding-top: 50px !important; }

.pb_50 {
  padding-bottom: 50px !important; }

.mt_60 {
  margin-top: 60px !important; }

.mb_60 {
  margin-bottom: 60px !important; }

.pt_60 {
  padding-top: 60px !important; }

.pb_60 {
  padding-bottom: 60px !important; }

.mt_70 {
  margin-top: 70px !important; }

.mb_70 {
  margin-bottom: 70px !important; }

.pt_70 {
  padding-top: 70px !important; }

.pb_70 {
  padding-bottom: 70px !important; }

.mt_80 {
  margin-top: 80px !important; }

.mb_80 {
  margin-bottom: 80px !important; }

.pt_80 {
  padding-top: 80px !important; }

.pb_80 {
  padding-bottom: 80px !important; }

.mt_90 {
  margin-top: 90px !important; }

.mb_90 {
  margin-bottom: 90px !important; }

.pt_90 {
  padding-top: 90px !important; }

.pb_90 {
  padding-bottom: 90px !important; }

.mt_100 {
  margin-top: 100px !important; }

.mb_100 {
  margin-bottom: 100px !important; }

.pt_100 {
  padding-top: 100px !important; }

.pb_100 {
  padding-bottom: 100px !important; }

/*    タグリセット      */
html, body {
  margin: 0;
  padding: 0;
  font-family: "Zen Kaku Gothic Antique","Noto Sans", 'NotoSansCJKjp', "Noto Sans CJK JP", "Hiragino Kaku Gothic Pro","ヒラギノ角ゴ Pro W3","メイリオ","Meiryo","ＭＳ Ｐゴシック",sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

html {
  scroll-behavior: smooth;
  /* JSでスクロールしないので有効にしてOK */
  scroll-padding-top: calc(var(--header-h) + env(safe-area-inset-top, 0px)); }

header, main, section, div, article {
  box-sizing: border-box; }

ul, dl, ol {
  margin: 0;
  padding: 0; }

li {
  margin: 0;
  padding: 0;
  list-style: none; }

a {
  text-decoration: none;
  box-sizing: border-box; }

img {
  vertical-align: top; }

@media screen and (max-width: 640px) {
  .disp_pc {
    display: none !important; } }

@media screen and (max-width: 800px) {
  .disp_w1000 {
    display: none !important; } }

.disp_pad {
  display: none !important; }
  @media screen and (max-width: 800px) {
    .disp_pad {
      display: block !important; } }

.disp_sp {
  display: none !important; }
  @media screen and (max-width: 640px) {
    .disp_sp {
      display: block !important; } }

.center {
  text-align: center; }

body {
  color: #2B2C3B; }

.white_bg {
  background: #fff; }

#fv {
  position: relative;
  width: 100%;
  margin: auto; }
  #fv img {
    width: 100%;
    height: auto; }
  #fv .copy {
    position: absolute;
    top: 11%;
    left: 34%;
    width: 33%;
    height: auto; }
  #fv .swiper-slide {
    position: relative; }
  #fv .text_01 {
    position: absolute;
    transform: translateX(-50%);
    width: 33%;
    left: 50%;
    top: 10%; }
  #fv .text_02 {
    position: absolute;
    left: 9%;
    width: 8%;
    top: 5%; }
    @media screen and (max-width: 2000px) {
      #fv .text_02 {
        top: inherit;
        bottom: 7%; } }
  #fv .text_03 {
    position: absolute;
    left: 9%;
    top: 5%;
    width: 8%; }
    @media screen and (max-width: 2000px) {
      #fv .text_03 {
        top: inherit;
        bottom: 7%; } }
  #fv .text_04 {
    position: absolute;
    left: 9%;
    top: 5%;
    width: 8%; }
    @media screen and (max-width: 2000px) {
      #fv .text_04 {
        top: inherit;
        bottom: 7%; } }
  #fv #topics {
    position: absolute;
    right: 0;
    bottom: 20px;
    width: 25%;
    min-width: 368px;
    z-index: 100;
    background: #fff;
    padding: 24px; }
    @media screen and (max-width: 800px) {
      #fv #topics {
        position: relative;
        width: 100%;
        margin-top: 20px;
        min-width: inherit; } }
    #fv #topics a {
      color: #000; }
    #fv #topics .topics_under {
      border-top: 1px solid #C0CBD9;
      padding-top: 20px; }
    #fv #topics article {
      width: 100%; }
      #fv #topics article dl {
        margin: 0;
        padding: 0;
        display: flex;
        font-size: 12px;
        font-weight: 500;
        font-family: "Instrument Sans", sans-serif; }
      #fv #topics article dt {
        color: #fff;
        width: 100px;
        margin: 0 12px 0 0;
        padding: 6px 0;
        display: flex;
        align-items: center;
        justify-content: center; }
      #fv #topics article dd {
        color: #4986D8;
        margin: 0;
        display: flex;
        align-items: center; }
      #fv #topics article img {
        width: 80px;
        height: 80px; }
      #fv #topics article p {
        margin: 6px 0 0 0;
        font-weight: 500;
        font-family: "Zen Kaku Gothic Antique", sans-serif;
        font-size: 13px;
        line-height: 1.8; }
    #fv #topics .camp {
      display: flex;
      gap: 24px;
      padding-bottom: 24px; }
      #fv #topics .camp div:first-of-type {
        width: calc(100% - 80px - 24px); }
      #fv #topics .camp div:last-of-type {
        width: 80px; }
      #fv #topics .camp dt {
        background: #003988; }
    #fv #topics .news {
      padding-top: 24px; }
      #fv #topics .news dt {
        background: #4986D8; }

main {
  width: 100%;
  margin: auto;
  background: #F4F7FB; }
  main p {
    font-size: 12pt; }
    @media screen and (max-width: 800px) {
      main p {
        font-size: 11pt; } }
  main #acodion_box {
    padding-top: 80px;
    max-width: 1440px;
    margin: 0 auto 80px auto; }
    @media screen and (max-width: 800px) {
      main #acodion_box {
        width: 100%;
        padding-top: 40px;
        margin-bottom: 0px; } }
    main #acodion_box div {
      text-align: center;
      width: 80%;
      margin: auto; }
      @media screen and (max-width: 1000px) {
        main #acodion_box div {
          width: 92%; } }
    main #acodion_box .ac_trigger {
      position: relative;
      background: url("../img/top/ac_back.png") no-repeat;
      background-size: 100%;
      height: 100px;
      display: flex;
      align-items: center;
      justify-content: space-between; }
      @media screen and (max-width: 800px) {
        main #acodion_box .ac_trigger {
          height: auto;
          aspect-ratio: 856 / 100; } }
      main #acodion_box .ac_trigger h2 {
        font-family: "Zen Old Mincho", serif;
        color: #fff;
        margin: 0 0 0 5%;
        font-weight: 500; }
        @media screen and (max-width: 800px) {
          main #acodion_box .ac_trigger h2 {
            font-size: clamp(10pt, 5.5vw, 14pt); } }
        @media screen and (max-width: 640px) {
          main #acodion_box .ac_trigger h2 {
            font-size: clamp(10pt, 5.5vw, 10pt); } }
      main #acodion_box .ac_trigger span {
        width: 14%;
        margin-right: 5%; }
        @media screen and (max-width: 800px) {
          main #acodion_box .ac_trigger span {
            width: 20%; } }
        main #acodion_box .ac_trigger span img {
          width: 100%;
          height: auto;
          display: block; }
    main #acodion_box img {
      width: 100%;
      height: auto; }
      main #acodion_box img:hover {
        cursor: pointer; }
    main #acodion_box .ac_box {
      background: #d9e5f5;
      padding: 40px 0;
      display: none; }
      @media screen and (max-width: 800px) {
        main #acodion_box .ac_box {
          padding: 1px 5% 20px 5%; } }
      main #acodion_box .ac_box p {
        font-family: "Zen Old Mincho", serif;
        line-height: 2.2;
        font-size: 12pt; }
        @media screen and (max-width: 800px) {
          main #acodion_box .ac_box p {
            font-size: 10pt;
            line-height: 1.6;
            text-align: left; } }
      main #acodion_box .ac_box strong {
        color: #003988;
        font-size: 14pt; }
        @media screen and (max-width: 800px) {
          main #acodion_box .ac_box strong {
            font-size: 12pt; } }
      main #acodion_box .ac_box a {
        background: #003988;
        color: #fff;
        display: block;
        max-width: 240px;
        margin: auto;
        border-radius: 40px;
        padding: 10px 0;
        width: 84%; }
        @media screen and (max-width: 800px) {
          main #acodion_box .ac_box a {
            font-size: 10pt; } }
  main #jisseki {
    font-family: "Zen Old Mincho", serif;
    max-width: 1440px;
    margin: auto; }
    main #jisseki article {
      display: flex;
      justify-content: space-between;
      margin-bottom: 150px;
      width: 96%;
      max-width: 1367px; }
      @media screen and (max-width: 800px) {
        main #jisseki article {
          flex-wrap: wrap;
          margin: 0 auto 40px auto;
          width: 100%; } }
      main #jisseki article.under_height {
        align-items: flex-end; }
        @media screen and (max-width: 1000px) {
          main #jisseki article.under_height {
            align-items: flex-start; } }
    main #jisseki .text_area {
      width: 43%;
      margin-right: 4%; }
      @media screen and (max-width: 800px) {
        main #jisseki .text_area {
          width: 100%;
          margin: auto; } }
      @media screen and (max-width: 800px) {
        main #jisseki .text_area .cath {
          width: 94%;
          margin: 40px auto 0 auto; } }
      main #jisseki .text_area .cath_1 {
        width: 100%;
        height: auto;
        max-width: 640px; }
      main #jisseki .text_area .cath_2 {
        width: 100%;
        height: auto;
        max-width: 567px; }
      main #jisseki .text_area .cath_3 {
        width: 100%;
        height: auto;
        max-width: 593px; }
      main #jisseki .text_area p {
        line-height: 2; }
    main #jisseki .right_area {
      width: 51%; }
      @media screen and (max-width: 800px) {
        main #jisseki .right_area {
          width: 100%; } }
    @media screen and (max-width: 800px) {
      main #jisseki .des {
        width: 92%;
        margin: auto; } }
    @media screen and (max-width: 800px) {
      main #jisseki .des br {
        display: none; } }
    main #jisseki .img_area img {
      width: 100%;
      height: auto; }
    main #jisseki .left_text {
      margin-left: 4%; }
      @media screen and (max-width: 800px) {
        main #jisseki .left_text {
          margin: 0; } }
      main #jisseki .left_text .text_area {
        max-width: 650px; }
        main #jisseki .left_text .text_area p {
          margin-left: 11%; }
          @media screen and (max-width: 800px) {
            main #jisseki .left_text .text_area p {
              margin-left: 0; } }
          main #jisseki .left_text .text_area p b {
            color: #003988; }
      @media screen and (max-width: 800px) {
        main #jisseki .left_text .img_area {
          width: 100%;
          margin: auto; } }
      main #jisseki .left_text .sashimono {
        display: flex;
        margin-left: 11%;
        max-width: 510px;
        align-items: center; }
        @media screen and (max-width: 1200px) {
          main #jisseki .left_text .sashimono {
            flex-wrap: wrap;
            width: 89%;
            max-width: none; } }
        @media screen and (max-width: 800px) {
          main #jisseki .left_text .sashimono {
            width: 94%;
            margin: 0 auto;
            flex-wrap: nowrap; } }
        main #jisseki .left_text .sashimono h3 {
          color: #003988;
          letter-spacing: 4px; }
          main #jisseki .left_text .sashimono h3 span {
            border-width: 2px;
            border-style: solid;
            border-color: #003988;
            margin-right: 20px;
            padding: 4px 10px;
            font-size: 10pt;
            letter-spacing: 2px; }
        main #jisseki .left_text .sashimono p {
          margin: 0 18px 0 0;
          font-family: "Zen Kaku Gothic Antique", serif; }
        main #jisseki .left_text .sashimono .s_text_area {
          width: 64%; }
          @media screen and (max-width: 1200px) {
            main #jisseki .left_text .sashimono .s_text_area {
              width: 100%; } }
          @media screen and (max-width: 800px) {
            main #jisseki .left_text .sashimono .s_text_area {
              width: 100%; } }
        main #jisseki .left_text .sashimono .s_img_area {
          width: 36%;
          flex: 0 1 186px; }
          @media screen and (max-width: 1200px) {
            main #jisseki .left_text .sashimono .s_img_area {
              width: 100%;
              margin-top: 10px; } }
          @media screen and (max-width: 800px) {
            main #jisseki .left_text .sashimono .s_img_area {
              width: 40%; } }
          main #jisseki .left_text .sashimono .s_img_area img {
            width: 100%;
            height: auto; }
    main #jisseki .right_text {
      margin-right: 4%; }
      @media screen and (max-width: 800px) {
        main #jisseki .right_text {
          margin: auto; } }
      @media screen and (max-width: 800px) {
        main #jisseki .right_text .text_area {
          order: 1;
          margin: auto; } }
      main #jisseki .right_text .img_area {
        margin-right: 4%; }
        @media screen and (max-width: 800px) {
          main #jisseki .right_text .img_area {
            order: 2;
            width: 100%;
            margin: auto; } }
  main #komarigoto {
    background: #fff;
    display: flex;
    font-family: "Zen Kaku Gothic Antique", serif;
    max-width: 1440px;
    margin: auto; }
    @media screen and (max-width: 800px) {
      main #komarigoto {
        flex-wrap: wrap; } }
    main #komarigoto .cta_area {
      width: 39.8%;
      position: relative;
      overflow: hidden; }
      @media screen and (max-width: 800px) {
        main #komarigoto .cta_area {
          order: 2;
          width: 50%; } }
      @media screen and (max-width: 640px) {
        main #komarigoto .cta_area {
          width: 50%; } }
      main #komarigoto .cta_area div {
        position: absolute;
        top: 7%;
        left: 11%; }
        @media screen and (max-width: 800px) {
          main #komarigoto .cta_area div {
            display: flex;
            flex-direction: column;
            justify-content: space-evenly;
            width: 80%;
            height: 86%; } }
      main #komarigoto .cta_area h2 {
        color: #fff;
        font-family: "Zen Old Mincho", serif;
        font-size: 26pt;
        font-weight: 500;
        margin: 0; }
        @media screen and (max-width: 800px) {
          main #komarigoto .cta_area h2 {
            font-size: 5vw; } }
        @media screen and (max-width: 640px) {
          main #komarigoto .cta_area h2 {
            font-size: 12pt; } }
      main #komarigoto .cta_area p {
        color: #fff;
        margin: 20px 0;
        line-height: 1.8; }
        @media screen and (max-width: 640px) {
          main #komarigoto .cta_area p {
            margin: 10px 0 4px 0; } }
  @media screen and (max-width: 640px) and (max-width: 640px) {
    main #komarigoto .cta_area p {
      font-size: 9pt; } }

      main #komarigoto .cta_area span {
        background: #fff;
        border-radius: 25px;
        color: #003988;
        padding: 12px 0px;
        font-size: 10pt;
        display: block;
        max-width: 240px;
        width: 100%;
        box-sizing: border-box;
        text-align: center;
        font-weight: 700;
        transition: transform 0.4s ease, background-color 0.4s ease, color 0.4s ease; }
        @media screen and (max-width: 640px) {
          main #komarigoto .cta_area span {
            width: 98%;
            padding: 6px 0;
            margin-top: auto;
            font-size: 8pt; } }
      main #komarigoto .cta_area img {
        transition: transform 0.4s ease;
        display: block;
        width: 100%;
        height: auto; }
      main #komarigoto .cta_area:hover span {
        background: #003988;
        color: #fff; }
      main #komarigoto .cta_area:hover img {
        transform: scale(1.04); }
      @media screen and (max-width: 640px) {
        main #komarigoto .cta_area:hover {
          background: none !important;
          color: inherit !important;
          transform: none !important;
          text-decoration: none !important;
          opacity: 1 !important; } }
    main #komarigoto .title_area {
      width: 20%;
      display: flex;
      flex-direction: row-reverse;
      align-items: flex-start;
      justify-content: center;
      padding-top: 60px; }
      @media screen and (max-width: 800px) {
        main #komarigoto .title_area {
          order: 1;
          width: 96%;
          flex-wrap: wrap;
          margin-left: 4%;
          margin-bottom: 10px;
          justify-content: flex-start;
          flex-direction: column; } }
      main #komarigoto .title_area p {
        writing-mode: vertical-rl;
        color: #003988;
        border-left: 2px solid #003988;
        font-family: "Instrument Sans", sans-serif;
        display: inline-block;
        margin: 0;
        padding-left: 4px; }
        @media screen and (max-width: 800px) {
          main #komarigoto .title_area p {
            writing-mode: horizontal-tb;
            display: block; } }
      main #komarigoto .title_area h2 {
        writing-mode: vertical-rl;
        /* 縦書き（右→左） */
        text-orientation: upright;
        /* 縦中横を制御 */
        font-family: "Zen Old Mincho", serif;
        font-weight: 400;
        margin: 0 30px 0 0;
        font-size: 18pt; }
        @media screen and (max-width: 800px) {
          main #komarigoto .title_area h2 {
            writing-mode: horizontal-tb; } }
        @media screen and (max-width: 640px) {
          main #komarigoto .title_area h2 {
            font-size: clamp(10pt, 5.5vw, 16pt); } }
        main #komarigoto .title_area h2 strong {
          color: #003988;
          font-size: 24pt;
          font-weight: 400; }
          @media screen and (max-width: 640px) {
            main #komarigoto .title_area h2 strong {
              font-size: 18pt; } }
  main #jigyou_read,
  main #sodatsuie_read {
    margin-top: 95px;
    margin-left: 65px;
    max-width: 1440px;
    margin: 95px auto;
    padding-left: 4.5%; }
    @media screen and (max-width: 1000px) {
      main #jigyou_read,
      main #sodatsuie_read {
        margin: 40px 4% 0 4%; } }
    @media screen and (max-width: 800px) {
      main #jigyou_read,
      main #sodatsuie_read {
        width: 100%; } }
    main #jigyou_read h2,
    main #sodatsuie_read h2 {
      font-family: "Zen Old Mincho", serif;
      font-weight: 500;
      color: #003988;
      display: inline-flex;
      align-items: center;
      border-bottom: 2px solid #003988;
      margin: 0; }
      @media screen and (max-width: 800px) {
        main #jigyou_read h2,
        main #sodatsuie_read h2 {
          margin-left: 4%; } }
      @media screen and (max-width: 640px) {
        main #jigyou_read h2,
        main #sodatsuie_read h2 {
          font-size: clamp(10pt, 5.5vw, 16pt);
          margin-left: 0; } }
      main #jigyou_read h2 span,
      main #sodatsuie_read h2 span {
        font-size: 10pt;
        font-family: "Instrument Sans", sans-serif;
        display: inline-block;
        margin-right: 10px; }
    main #jigyou_read div,
    main #sodatsuie_read div {
      display: flex;
      font-family: "Zen Old Mincho", serif; }
      @media screen and (max-width: 800px) {
        main #jigyou_read div,
        main #sodatsuie_read div {
          flex-wrap: wrap;
          width: 92%;
          margin: auto 4% auto 4%; } }
      @media screen and (max-width: 640px) {
        main #jigyou_read div,
        main #sodatsuie_read div {
          margin: auto 0;
          width: 100%; } }
    main #jigyou_read h3,
    main #sodatsuie_read h3 {
      font-weight: 400;
      line-height: 1.8;
      font-size: 18pt;
      margin-right: 55px; }
      @media screen and (max-width: 800px) {
        main #jigyou_read h3,
        main #sodatsuie_read h3 {
          margin-top: 20px; } }
      @media screen and (max-width: 640px) {
        main #jigyou_read h3,
        main #sodatsuie_read h3 {
          font-size: clamp(10pt, 5.5vw, 16pt);
          margin-right: inherit;
          margin-right: 0;
          letter-spacing: -0.09em; } }
      main #jigyou_read h3 strong,
      main #sodatsuie_read h3 strong {
        color: #003988;
        font-size: 21pt; }
        @media screen and (max-width: 640px) {
          main #jigyou_read h3 strong,
          main #sodatsuie_read h3 strong {
            font-size: 6.5vw;
            letter-spacing: -0.02em; } }
    main #jigyou_read p,
    main #sodatsuie_read p {
      line-height: 2; }
      main #jigyou_read p strong,
      main #sodatsuie_read p strong {
        color: #003988; }
  main #jigyou_read {
    margin-top: 95px;
    margin-bottom: 0; }
    @media screen and (max-width: 800px) {
      main #jigyou_read {
        width: 92%; } }
  main .reform_text {
    display: flex;
    width: 92%;
    max-width: 1440px;
    margin: auto auto 15px auto; }
    @media screen and (max-width: 800px) {
      main .reform_text {
        width: 88%;
        margin-bottom: 6px; } }
    main .reform_text img {
      width: 32%;
      height: auto; }
      @media screen and (max-width: 800px) {
        main .reform_text img {
          width: 100%; } }
  main .btn_outer {
    text-align: center;
    margin: 60px auto 60px auto; }
    @media screen and (max-width: 800px) {
      main .btn_outer {
        margin: 40px auto; } }
    main .btn_outer a {
      background: #003988;
      color: #fff;
      display: block;
      max-width: 400px;
      margin: auto;
      border-radius: 40px;
      padding: 10px 0;
      width: 84%; }
      @media screen and (max-width: 800px) {
        main .btn_outer a {
          font-size: 10pt; } }
  main #sodatsuie_read {
    max-width: 1440px;
    background: #fff;
    margin: 0 auto 0 auto;
    padding-top: 65px;
    padding-left: 65px;
    padding-bottom: 65px; }
    @media screen and (max-width: 800px) {
      main #sodatsuie_read {
        padding: 30px 0; } }
    @media screen and (max-width: 800px) {
      main #sodatsuie_read h2 {
        margin-left: 4%; } }
    @media screen and (max-width: 640px) {
      main #sodatsuie_read h2 {
        font-size: clamp(10pt, 5.5vw, 16pt); } }
    @media screen and (max-width: 640px) {
      main #sodatsuie_read div {
        width: 92%;
        margin: auto; } }
    @media screen and (max-width: 640px) {
      main #sodatsuie_read h3 {
        letter-spacing: -0.15em; } }
    main #sodatsuie_read h3 strong {
      letter-spacing: -0.1em; }
    main #sodatsuie_read h3 i {
      font-style: normal;
      letter-spacing: -0.4em; }
  main #case_study {
    background: #fff;
    padding: 40px 0; }
    main #case_study .read {
      text-align: center; }
      main #case_study .read span {
        font-size: 10pt;
        font-family: "Instrument Sans", sans-serif;
        display: inline-block;
        text-align: center;
        color: #003988;
        border-bottom: 2px solid #003988;
        display: inline-block;
        padding-bottom: 2px;
        padding: 0 4px 2px 4px; }
      main #case_study .read h2 {
        font-family: "Zen Old Mincho", serif;
        font-weight: 600;
        margin: 6px 0 0 0;
        font-size: 18pt;
        text-align: center; }
    main #case_study .case {
      max-width: 1440px;
      margin: auto;
      position: relative;
      width: 95.5%;
      margin-top: 60px;
      margin-left: auto;
      background: #F4F7FB;
      display: grid;
      grid-template-columns: 30% 1fr 1fr;
      grid-template-areas: "text before after";
      align-items: start;
      gap: 3px; }
      @media screen and (max-width: 1000px) {
        main #case_study .case {
          grid-template-columns: 50% 1fr;
          grid-template-rows: auto auto;
          grid-template-areas: "text before" "text after"; } }
      @media screen and (max-width: 800px) {
        main #case_study .case {
          width: 100%; } }
      main #case_study .case > .text_block {
        grid-area: text; }
      main #case_study .case > .before {
        grid-area: before; }
      main #case_study .case > .after {
        grid-area: after; }
      @media screen and (max-width: 800px) {
        main #case_study .case {
          grid-template-columns: 1fr;
          grid-template-areas: "h3" "before" "after" "text"; }
          main #case_study .case > .text_block {
            display: contents; }
          main #case_study .case > h3 {
            grid-area: h3; }
          main #case_study .case > .info_area {
            grid-area: text; } }
      main #case_study .case h2 {
        background: #003988;
        color: #fff;
        font-family: "Zen Old Mincho", serif;
        position: absolute;
        top: -50px;
        left: -10px;
        padding: 4px 10px; }
        @media screen and (max-width: 800px) {
          main #case_study .case h2 {
            left: 0; } }
      main #case_study .case h3 {
        font-family: "Zen Old Mincho", serif;
        padding: 48px 0px 0px 0px;
        width: 80%;
        margin: 0 auto;
        font-size: 18pt; }
        @media screen and (max-width: 800px) {
          main #case_study .case h3 {
            width: 94%;
            margin-bottom: 20px;
            padding-top: 30px; } }
      main #case_study .case h4 {
        color: #003988;
        margin: 0;
        border-top: 1px solid #C0CBD9;
        padding: 20px 0; }
      main #case_study .case ul {
        margin: 0 0 10px 0; }
      main #case_study .case li {
        position: relative;
        padding-left: 1.5em;
        margin-bottom: 10px;
        font-weight: bold; }
        main #case_study .case li::before {
          content: "●";
          color: #003988;
          margin-right: 10px;
          position: absolute;
          left: 0;
          top: 0; }
      main #case_study .case p {
        margin: 0 0 10px 0;
        line-height: 1.8;
        font-size: 11pt; }
      main #case_study .case .taishin_des {
        font-weight: 500; }
      main #case_study .case .cap {
        font-size: 8pt;
        position: relative;
        padding-left: 1.5em;
        margin: 0 0 0 0;
        line-height: 1.7; }
        main #case_study .case .cap::before {
          content: "※";
          position: absolute;
          left: 0;
          top: 0; }
      main #case_study .case .prof {
        display: flex;
        align-items: center;
        gap: 20px; }
        main #case_study .case .prof .prof_text {
          font-family: "Zen Old Mincho", serif;
          display: flex;
          flex-direction: column;
          color: #003988; }
        main #case_study .case .prof span {
          border-width: 2px;
          border-style: solid;
          border-color: #003988;
          margin-right: 20px;
          padding: 4px 10px;
          font-size: 10pt;
          font-weight: 500; }
        main #case_study .case .prof p {
          font-size: 16pt;
          font-weight: 500;
          margin: 0; }
      @media screen and (max-width: 800px) {
        main #case_study .case .dot {
          margin-top: 10px; } }
      main #case_study .case .dot li {
        font-weight: 500;
        font-size: 10pt; }
        main #case_study .case .dot li::before {
          content: '・'; }
      main #case_study .case .info_area {
        width: 80%;
        margin: auto;
        padding: 20px 0;
        display: flex;
        flex-direction: column; }
        @media screen and (max-width: 800px) {
          main #case_study .case .info_area {
            width: 90%; } }
      main #case_study .case .before {
        grid-template-columns: repeat(2, minmax(0, 1fr)); }
      main #case_study .case .after {
        grid-template-columns: repeat(2, minmax(0, 1fr)); }
      main #case_study .case .before, main #case_study .case .after {
        position: relative;
        display: grid;
        gap: 3px; }
        main #case_study .case .before > img:first-of-type, main #case_study .case .after > img:first-of-type {
          grid-column: 1 / -1; }
        main #case_study .case .before img, main #case_study .case .after img {
          width: 100%;
          height: auto; }
        @media screen and (max-width: 800px) {
          main #case_study .case .before .h50, main #case_study .case .after .h50 {
            width: 100%;
            height: 100%;
            object-fit: cover;
            aspect-ratio: 1 / 1; } }
        main #case_study .case .before span, main #case_study .case .after span {
          position: absolute;
          top: 0;
          left: 0;
          background: #4986D8;
          color: #fff;
          font-family: "Instrument Sans", sans-serif;
          width: 100px;
          height: 40px;
          display: flex;
          justify-content: center;
          align-items: center;
          letter-spacing: 2px; }
      main #case_study .case .img_area {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        grid-template-rows: repeat(3, 1fr);
        gap: 3px;
        /* 左：A（縦3×横2） */
        /* 上段：B・C（各2マス分） */
        /* 中段：D（横2マス）、E（1マス）、H（縦2段） */
        /* 縦2段ぶち抜き */
        /* 下段：F（左1マス）、G（横2マス） */
        /* ← 左1マス分 */
        /* ← 右へ2マスぶち抜き */ }
        main #case_study .case .img_area .a {
          grid-area: 1 / 1 / 4 / 3; }
        main #case_study .case .img_area .b {
          grid-area: 1 / 3 / 2 / 5; }
        main #case_study .case .img_area .c {
          grid-area: 1 / 5 / 2 / 7; }
        main #case_study .case .img_area .d {
          grid-area: 2 / 3 / 3 / 5; }
        main #case_study .case .img_area .e {
          grid-area: 2 / 5 / 3 / 6; }
        main #case_study .case .img_area .h {
          grid-area: 2 / 6 / 4 / 7; }
        main #case_study .case .img_area .f {
          grid-area: 3 / 3 / 4 / 4; }
        main #case_study .case .img_area .g {
          grid-area: 3 / 4 / 4 / 6; }
        @media screen and (max-width: 800px) {
          main #case_study .case .img_area {
            grid-template-columns: repeat(3, 1fr);
            /* 3列 */
            grid-template-rows: repeat(4, minmax(0, 1fr));
            /* 6行 */
            grid-template-areas: "a a g" "a a b" "h d d" "e f c";
            width: 100%;
            aspect-ratio: 3 / 4;
            /* ← これで高さが“確定”します（高さ = 幅×4/3） */
            overflow: hidden; }
            main #case_study .case .img_area .a {
              grid-area: a; }
            main #case_study .case .img_area .b {
              grid-area: b; }
            main #case_study .case .img_area .c {
              grid-area: c; }
            main #case_study .case .img_area .d {
              grid-area: d; }
            main #case_study .case .img_area .e {
              grid-area: e; }
            main #case_study .case .img_area .f {
              grid-area: f; }
            main #case_study .case .img_area .g {
              grid-area: g; }
            main #case_study .case .img_area .h {
              grid-area: h; } }
        main #case_study .case .img_area img {
          width: 100%;
          height: auto;
          object-fit: cover;
          display: block; }
          @media screen and (max-width: 800px) {
            main #case_study .case .img_area img {
              height: 100%; } }
    main #case_study .case2 {
      grid-template-columns: 30% 1fr;
      grid-template-areas: "text img_area"; }
      main #case_study .case2 > .text_block {
        grid-area: text; }
      main #case_study .case2 > .img_area {
        grid-area: img_area; }
      @media screen and (max-width: 800px) {
        main #case_study .case2 {
          grid-template-columns: 1fr;
          grid-template-areas: "h3" "img_area" "text"; }
          main #case_study .case2 > .text_block {
            display: contents; }
          main #case_study .case2 > h3 {
            grid-area: h3; }
          main #case_study .case2 > .info_area {
            grid-area: text; }
          main #case_study .case2 > .img_area {
            grid-area: img_area; } }
    @media screen and (max-width: 1000px) {
      main #case_study .one {
        grid-template-columns: 50% 1fr;
        grid-template-rows: auto auto;
        grid-template-areas: "text before" "text after"; } }
    @media screen and (max-width: 800px) {
      main #case_study .one {
        grid-template-columns: 1fr;
        grid-template-areas: "read_h" "before" "after" "text"; }
        main #case_study .one > .case_text_block {
          display: contents; }
        main #case_study .one > .read_h {
          grid-area: read_h; }
        main #case_study .one > .info_area {
          grid-area: text; } }
    main #case_study .one h2 {
      background: #003988;
      color: #fff;
      font-family: "Zen Old Mincho", serif;
      position: absolute;
      top: -50px;
      left: -10px;
      padding: 4px 10px; }
      @media screen and (max-width: 800px) {
        main #case_study .one h2 {
          left: 0; } }
    main #case_study .one h4 {
      color: #F05A2C;
      margin: 0;
      border-top: 1px solid #C0CBD9;
      padding: 20px 0 14px 0; }
    main #case_study .one ul {
      margin: 0 0 10px 0; }
    main #case_study .one li {
      position: relative;
      padding-left: 1.5em;
      margin-bottom: 10px;
      font-weight: bold; }
      main #case_study .one li::before {
        content: "●";
        color: #003988;
        margin-right: 10px;
        position: absolute;
        left: 0;
        top: 0; }
    main #case_study .one p {
      margin: 0 0 10px 0;
      line-height: 1.8;
      font-size: 11pt; }
    main #case_study .one .read_h {
      width: 80%;
      margin: 0 auto 20px auto; }
      @media screen and (max-width: 800px) {
        main #case_study .one .read_h {
          width: 90%; } }
      main #case_study .one .read_h h3 {
        font-family: "Zen Old Mincho", serif;
        padding: 48px 0px 0px 0px;
        margin: 0 auto;
        font-size: clamp(14pt, 4vw, 18pt); }
        @media screen and (max-width: 800px) {
          main #case_study .one .read_h h3 {
            padding-top: 30px; } }
        main #case_study .one .read_h h3 span {
          display: inline-block; }
      main #case_study .one .read_h p {
        font-size: 13px;
        margin: 0;
        font-weight: 500; }
    main #case_study .one .info_area {
      width: 80%;
      margin: auto;
      padding: 0px 0;
      display: flex;
      flex-direction: column; }
      @media screen and (max-width: 1000px) {
        main #case_study .one .info_area {
          width: 100%;
          padding: 2% 3%; } }
      main #case_study .one .info_area strong {
        color: #F05A2C; }
      main #case_study .one .info_area p {
        font-size: 13px; }
      main #case_study .one .info_area .taishin_des {
        font-weight: 500; }
        main #case_study .one .info_area .taishin_des::before {
          content: '●';
          color: #F05A2C;
          margin-right: 4px; }
        main #case_study .one .info_area .taishin_des strong {
          font-size: clamp(16px, 4vw, 20px); }
      main #case_study .one .info_area .cap {
        font-size: 8pt;
        position: relative;
        padding-left: 1.5em;
        margin: 0 0 0 0;
        line-height: 1.7; }
        main #case_study .one .info_area .cap::before {
          content: "※";
          position: absolute;
          left: 0;
          top: 0; }
        main #case_study .one .info_area .cap.orange {
          color: #F05A2C; }
    main #case_study .one .before {
      grid-template-columns: repeat(2, minmax(0, 1fr)); }
      @media screen and (max-width: 800px) {
        main #case_study .one .before {
          display: block; } }
    main #case_study .one .after {
      grid-template-columns: repeat(2, minmax(0, 1fr)); }
      @media screen and (max-width: 800px) {
        main #case_study .one .after {
          display: block; } }
    main #case_study .one .before, main #case_study .one .after {
      position: relative;
      display: grid;
      gap: 3px; }
      @media screen and (max-width: 800px) {
        main #case_study .one .before, main #case_study .one .after {
          display: block; } }
      main #case_study .one .before > img:first-of-type, main #case_study .one .after > img:first-of-type {
        grid-column: 1 / -1; }
      main #case_study .one .before img, main #case_study .one .after img {
        width: 100%;
        height: auto; }
      @media screen and (max-width: 800px) {
        main #case_study .one .before .h50, main #case_study .one .after .h50 {
          width: 100%;
          height: 100%;
          object-fit: cover;
          aspect-ratio: 1 / 1; } }
      main #case_study .one .before span, main #case_study .one .after span {
        position: absolute;
        top: 0;
        left: 0;
        background: #4986D8;
        color: #fff;
        font-family: "Instrument Sans", sans-serif;
        width: 100px;
        height: 40px;
        display: flex;
        justify-content: center;
        align-items: center;
        letter-spacing: 2px; }
  main #sekou {
    background: #fff;
    max-width: 1440px;
    margin: auto; }
    main #sekou .sekou_wrapper {
      background: #F4F7FB;
      max-width: 1376px;
      margin-left: auto;
      padding-left: 70px;
      display: flex;
      justify-content: space-between; }
      @media screen and (max-width: 1000px) {
        main #sekou .sekou_wrapper {
          flex-wrap: wrap;
          padding-left: 4%; } }
    main #sekou .text_area {
      padding: 40px 0;
      width: 40%; }
      @media screen and (max-width: 1000px) {
        main #sekou .text_area {
          width: 40%; } }
      @media screen and (max-width: 800px) {
        main #sekou .text_area {
          width: 100%; } }
      @media screen and (max-width: 1000px) {
        main #sekou .text_area .info {
          width: 100%; } }
      main #sekou .text_area .info img {
        width: 100%;
        height: auto; }
      @media screen and (max-width: 1000px) {
        main #sekou .text_area ul {
          margin-top: 14px; } }
    main #sekou .eiji {
      margin: 0;
      font-family: "Instrument Sans", sans-serif;
      color: #003988; }
    main #sekou h2 {
      font-family: "Zen Old Mincho", serif;
      font-size: 24pt;
      display: flex;
      align-items: center;
      margin-top: 10px; }
      @media screen and (max-width: 640px) {
        main #sekou h2 {
          font-size: clamp(10pt, 5.5vw, 16pt); } }
      main #sekou h2 span {
        font-size: 18pt;
        margin-left: 20px; }
        @media screen and (max-width: 640px) {
          main #sekou h2 span {
            font-size: 5vw; } }
    main #sekou ul {
      margin: 0 0 40px 0; }
    main #sekou li {
      margin-bottom: 10px;
      font-weight: bold; }
      main #sekou li::before {
        content: "●";
        color: #003988;
        margin-right: 10px; }
    main #sekou h3 {
      border-top: 1px solid #C0CBD9;
      color: #003988;
      padding-top: 20px;
      font-size: 16pt;
      margin: 0;
      width: 90%; }
      @media screen and (max-width: 800px) {
        main #sekou h3 {
          width: 98%; } }
      @media screen and (max-width: 640px) {
        main #sekou h3 {
          font-size: clamp(10pt, 5.5vw, 16pt);
          margin-right: inherit; } }
    main #sekou .img_area {
      display: flex;
      width: 60%; }
      @media screen and (max-width: 1000px) {
        main #sekou .img_area {
          width: 60%; } }
      @media screen and (max-width: 800px) {
        main #sekou .img_area {
          width: 100%; } }
      main #sekou .img_area img {
        width: 100%;
        height: auto;
        object-fit: cover; }
  main #jirei_voice {
    background: #fff;
    padding: 60px 0 40px 0; }
    @media screen and (max-width: 800px) {
      main #jirei_voice {
        padding: 40px 0 10px 0;
        background: none; } }
    @media screen and (max-width: 640px) {
      main #jirei_voice {
        padding: 0px 0 10px 0; } }
    main #jirei_voice .read {
      text-align: center;
      color: #F05A2C;
      margin: 0;
      font-family: "Zen Old Mincho", serif; }
    main #jirei_voice h2 {
      text-align: center;
      font-family: "Zen Old Mincho", serif;
      margin: 10px 0 40px 0; }
      @media screen and (max-width: 640px) {
        main #jirei_voice h2 {
          font-size: clamp(10pt, 5.5vw, 16pt);
          margin-bottom: 20px; } }
    main #jirei_voice .card_wrapper {
      display: flex;
      text-align: center;
      max-width: 1312px;
      width: 91%;
      margin: auto;
      justify-content: space-between; }
      @media screen and (max-width: 1000px) {
        main #jirei_voice .card_wrapper {
          flex-wrap: wrap; } }
      main #jirei_voice .card_wrapper article {
        width: 24%;
        background: #fff; }
        @media screen and (max-width: 1000px) {
          main #jirei_voice .card_wrapper article {
            width: 48%;
            margin-bottom: 20px; } }
        @media screen and (max-width: 640px) {
          main #jirei_voice .card_wrapper article {
            width: 100%; } }
      main #jirei_voice .card_wrapper h3 {
        color: #F05A2C;
        font-size: 12pt; }
        @media screen and (max-width: 640px) {
          main #jirei_voice .card_wrapper h3 {
            font-size: 14pt; } }
      main #jirei_voice .card_wrapper p {
        font-size: 10pt; }
        @media screen and (max-width: 640px) {
          main #jirei_voice .card_wrapper p {
            font-size: 11pt; } }
      main #jirei_voice .card_wrapper div {
        display: flex;
        align-items: center;
        flex-direction: column; }
        main #jirei_voice .card_wrapper div::before {
          content: '';
          background: url("../img/iconarrow.png") no-repeat;
          width: 32px;
          height: 32px;
          margin-bottom: 10px; }
        main #jirei_voice .card_wrapper div img {
          width: 100%;
          height: auto; }
      main #jirei_voice .card_wrapper h4 {
        font-size: 12pt;
        color: #003988;
        margin-bottom: 0; }
        @media screen and (max-width: 640px) {
          main #jirei_voice .card_wrapper h4 {
            font-size: 14pt; } }
  main #omoi {
    padding: 40px 0 93px 0; }
    @media screen and (max-width: 800px) {
      main #omoi {
        padding: 0 0 20px 0; } }
    main #omoi .omoi_wrapper {
      width: 91%;
      max-width: 1312px;
      display: flex;
      justify-content: space-between;
      margin: auto; }
      @media screen and (max-width: 800px) {
        main #omoi .omoi_wrapper {
          flex-wrap: wrap; } }
    main #omoi .title_area {
      width: 10%;
      display: flex;
      align-items: flex-start;
      justify-content: center;
      padding-top: 20px; }
      @media screen and (max-width: 800px) {
        main #omoi .title_area {
          width: 100%;
          justify-content: flex-start;
          flex-direction: column; } }
      main #omoi .title_area p {
        writing-mode: vertical-rl;
        color: #003988;
        border-left: 2px solid #003988;
        font-family: "Instrument Sans", sans-serif;
        display: inline-block;
        margin: 0;
        padding-left: 4px; }
        @media screen and (max-width: 800px) {
          main #omoi .title_area p {
            writing-mode: horizontal-tb;
            display: block; } }
      main #omoi .title_area h2 {
        writing-mode: vertical-rl;
        /* 縦書き（右→左） */
        text-orientation: upright;
        /* 縦中横を制御 */
        font-family: "Zen Old Mincho", serif;
        margin: 0 30px 0 0;
        font-size: 18pt; }
        @media screen and (max-width: 800px) {
          main #omoi .title_area h2 {
            writing-mode: horizontal-tb; } }
        @media screen and (max-width: 640px) {
          main #omoi .title_area h2 {
            font-size: clamp(10pt, 5.5vw, 16pt); } }
        main #omoi .title_area h2 strong {
          color: #003988;
          font-size: 24pt;
          font-weight: 400; }
    main #omoi article {
      width: 40%;
      max-width: 514px; }
      @media screen and (max-width: 800px) {
        main #omoi article {
          max-width: none;
          width: 48%; } }
      @media screen and (max-width: 640px) {
        main #omoi article {
          width: 100%;
          max-width: none;
          margin-bottom: 40px; } }
      main #omoi article div img {
        width: 100%;
        height: auto; }
      main #omoi article h3 {
        font-family: "Zen Old Mincho", serif;
        font-size: 18pt; }
        @media screen and (max-width: 640px) {
          main #omoi article h3 {
            font-size: clamp(10pt, 5.5vw, 16pt); } }
      main #omoi article p {
        font-size: 14px;
        font-family: "Zen Old Mincho", serif;
        line-height: 2; }
  main #voc {
    max-width: 1440px;
    margin: auto;
    background: #fff;
    padding: 80px 4%; }
    @media screen and (max-width: 1000px) {
      main #voc {
        padding: 40px 4%; } }
    main #voc .voc_wrapper {
      display: flex;
      width: 100%;
      justify-content: space-between; }
      @media screen and (max-width: 1000px) {
        main #voc .voc_wrapper {
          flex-wrap: wrap; } }
    main #voc .left_area {
      width: 90%;
      max-width: 1084px; }
      @media screen and (max-width: 1000px) {
        main #voc .left_area {
          order: 2;
          width: 100%;
          max-width: none; } }
      main #voc .left_area article {
        position: relative;
        background: #F4F7FB;
        width: 99%;
        display: flex;
        align-items: center;
        margin: 0 0 40px 0; }
        @media screen and (max-width: 800px) {
          main #voc .left_area article {
            flex-wrap: wrap; } }
        @media screen and (max-width: 640px) {
          main #voc .left_area article {
            margin-bottom: 60px; } }
        main #voc .left_area article:last-of-type {
          margin-bottom: 20px; }
        main #voc .left_area article .tag {
          background: #003988;
          color: #fff;
          writing-mode: vertical-rl;
          position: absolute;
          top: -5%;
          left: 2%;
          display: inline-block;
          padding: 6px 2px;
          font-family: "Zen Old Mincho", serif;
          z-index: 10; }
          @media screen and (max-width: 800px) {
            main #voc .left_area article .tag {
              top: -1%; } }
          @media screen and (max-width: 640px) {
            main #voc .left_area article .tag {
              left: 5%; } }
        main #voc .left_area article .jinbutsu {
          margin-left: 5%;
          display: flex;
          flex-direction: column;
          align-items: center;
          font-family: "Zen Old Mincho", serif;
          width: 12%; }
          @media screen and (max-width: 800px) {
            main #voc .left_area article .jinbutsu {
              width: 24%; } }
          @media screen and (max-width: 640px) {
            main #voc .left_area article .jinbutsu {
              width: 100%;
              padding-top: 0px;
              position: relative;
              margin-left: 0; } }
          main #voc .left_area article .jinbutsu span {
            border-width: 1px;
            border-style: solid;
            border-color: #003988;
            color: #003988;
            font-size: 8pt;
            display: inline-block;
            padding: 2px 6px;
            font-weight: 500; }
            @media screen and (max-width: 640px) {
              main #voc .left_area article .jinbutsu span {
                display: none; } }
          main #voc .left_area article .jinbutsu p {
            margin: 4px 0 10px 0;
            color: #003988;
            font-weight: 600; }
            @media screen and (max-width: 640px) {
              main #voc .left_area article .jinbutsu p {
                display: none; } }
          @media screen and (max-width: 800px) {
            main #voc .left_area article .jinbutsu img {
              width: 80%;
              height: auto; } }
          @media screen and (max-width: 640px) {
            main #voc .left_area article .jinbutsu img {
              width: 100%; } }
        main #voc .left_area article .info {
          margin: 0 30px;
          width: 40.5%; }
          @media screen and (max-width: 800px) {
            main #voc .left_area article .info {
              width: 62%;
              margin: 0 4% 20px 4%; } }
          @media screen and (max-width: 640px) {
            main #voc .left_area article .info {
              width: 100%; } }
          main #voc .left_area article .info p {
            line-height: 1.8; }
          main #voc .left_area article .info ul {
            display: none; }
            @media screen and (max-width: 640px) {
              main #voc .left_area article .info ul {
                display: flex;
                margin: 10px 0;
                align-items: center; } }
            main #voc .left_area article .info ul li:first-of-type {
              border-width: 1px;
              border-style: solid;
              border-color: #003988;
              color: #003988;
              font-size: 8pt;
              display: inline-block;
              padding: 4px 6px;
              margin-right: 10px; }
            main #voc .left_area article .info ul li:last-of-type {
              color: #003988; }
      main #voc .left_area .img_area {
        width: 37%;
        max-width: 400px;
        flex: 0 1 400px; }
        @media screen and (max-width: 800px) {
          main #voc .left_area .img_area {
            width: 100%;
            max-width: none;
            flex: none; } }
        main #voc .left_area .img_area img {
          width: 100%;
          height: auto; }
    main #voc .title_area {
      width: 10%;
      display: flex;
      flex-direction: row-reverse;
      align-items: flex-start;
      justify-content: center;
      padding-top: 0px; }
      @media screen and (max-width: 1000px) {
        main #voc .title_area {
          order: 1;
          width: 100%;
          display: block;
          margin-bottom: 40px; } }
      main #voc .title_area p {
        writing-mode: vertical-rl;
        color: #003988;
        border-left: 2px solid #003988;
        font-family: "Instrument Sans", sans-serif;
        display: inline-block;
        margin: 0;
        padding-left: 4px; }
        @media screen and (max-width: 1000px) {
          main #voc .title_area p {
            writing-mode: horizontal-tb; } }
      main #voc .title_area h2 {
        writing-mode: vertical-rl;
        /* 縦書き（右→左） */
        text-orientation: upright;
        /* 縦中横を制御 */
        font-family: "Zen Old Mincho", serif;
        margin: 0 30px 0 20px;
        font-size: clamp(10pt, 5.5vw, 16pt); }
        @media screen and (max-width: 1000px) {
          main #voc .title_area h2 {
            writing-mode: horizontal-tb;
            margin: 0 0 0 0; } }
        @media screen and (max-width: 1000px) {
          main #voc .title_area h2 {
            font-size: clamp(10pt, 5.5vw, 16pt); } }
        @media screen and (max-width: 640px) {
          main #voc .title_area h2 {
            font-size: clamp(10pt, 5.5vw, 16pt); } }
        main #voc .title_area h2 strong {
          color: #003988;
          font-size: 24pt; }
          @media screen and (max-width: 1000px) {
            main #voc .title_area h2 strong {
              font-size: clamp(12pt, 7.5vw, 22pt); } }
          @media screen and (max-width: 640px) {
            main #voc .title_area h2 strong {
              font-size: clamp(12pt, 7.5vw, 22pt); } }
    main #voc .more_voice {
      display: flex;
      flex-wrap: wrap;
      width: 90%;
      max-width: 1073px;
      justify-content: space-between;
      gap: 20px; }
      @media screen and (max-width: 1000px) {
        main #voc .more_voice {
          width: 100%;
          max-width: none; } }
      main #voc .more_voice .toggle_btn {
        display: none; }
        @media screen and (max-width: 640px) {
          main #voc .more_voice .toggle_btn {
            background: #003988;
            color: #fff;
            display: block;
            max-width: 400px;
            margin: auto;
            border-radius: 40px;
            padding: 10px 0;
            width: 84%;
            text-align: center; } }
      main #voc .more_voice article {
        box-sizing: border-box;
        background: #F4F7FB;
        width: calc(50% - 10px);
        padding: 26px; }
        @media screen and (max-width: 640px) {
          main #voc .more_voice article {
            width: 100%;
            display: none; } }
        main #voc .more_voice article h3 {
          color: #003988;
          margin: 0;
          font-size: 12pt; }
          main #voc .more_voice article h3 span {
            font-weight: 400;
            margin-left: 10px;
            font-size: 10pt; }
        main #voc .more_voice article p {
          line-height: 1.8; }
  main #company {
    max-width: 1440px;
    margin: auto; }
    main #company .company_wrapper {
      display: flex;
      justify-content: space-between; }
      @media screen and (max-width: 800px) {
        main #company .company_wrapper {
          flex-wrap: wrap; } }
      main #company .company_wrapper .title_area {
        width: 15%;
        display: flex;
        align-items: flex-start;
        justify-content: center;
        padding-top: 80px; }
        @media screen and (max-width: 1000px) {
          main #company .company_wrapper .title_area {
            margin-left: 5%; } }
        @media screen and (max-width: 800px) {
          main #company .company_wrapper .title_area {
            width: 90%;
            flex-direction: column;
            margin: auto;
            padding-top: 40px; } }
        main #company .company_wrapper .title_area p {
          writing-mode: vertical-rl;
          color: #003988;
          border-left: 2px solid #003988;
          font-family: "Instrument Sans", sans-serif;
          display: inline-block;
          margin: 0;
          padding-left: 4px; }
          @media screen and (max-width: 800px) {
            main #company .company_wrapper .title_area p {
              writing-mode: horizontal-tb; } }
        main #company .company_wrapper .title_area h2 {
          writing-mode: vertical-rl;
          /* 縦書き（右→左） */
          text-orientation: upright;
          /* 縦中横を制御 */
          font-family: "Zen Old Mincho", serif;
          margin: 0 30px 0 0;
          font-size: 18pt; }
          @media screen and (max-width: 800px) {
            main #company .company_wrapper .title_area h2 {
              writing-mode: horizontal-tb;
              margin: 2px 30px 0 0; } }
          @media screen and (max-width: 640px) {
            main #company .company_wrapper .title_area h2 {
              font-size: clamp(10pt, 5.5vw, 16pt); } }
    main #company .info_area {
      width: 56%;
      padding-top: 80px;
      padding-bottom: 40px; }
      @media screen and (max-width: 1000px) {
        main #company .info_area {
          width: 80%; } }
      @media screen and (max-width: 800px) {
        main #company .info_area {
          width: 90%;
          margin: auto;
          padding-top: 20px; } }
      main #company .info_area dl {
        margin: 0;
        width: 100%;
        display: flex;
        flex-wrap: wrap; }
      main #company .info_area dt {
        margin: 0;
        padding: 0;
        font-weight: bold;
        width: 30%;
        box-sizing: border-box; }
        @media screen and (max-width: 640px) {
          main #company .info_area dt {
            width: 40%;
            margin-bottom: 4px;
            font-size: 10pt; } }
      main #company .info_area dd {
        margin: 0 0 25px 0;
        padding: 0;
        width: 68%;
        box-sizing: border-box; }
        @media screen and (max-width: 640px) {
          main #company .info_area dd {
            width: 57%;
            margin-bottom: 10px;
            margin-left: 0.5rem;
            font-size: 10pt; } }
    main #company .img_area {
      width: 24%;
      background: url("../img/top/company_img.png") no-repeat;
      background-size: cover; }
      @media screen and (max-width: 1000px) {
        main #company .img_area {
          display: none; } }
      main #company .img_area img {
        width: 100%;
        height: auto; }
  main #sub_footer {
    background: url("../img/footer_bg.png") no-repeat;
    background-size: cover;
    padding: 40px 0 120px 0;
    position: relative; }
    @media screen and (max-width: 800px) {
      main #sub_footer {
        background-position: right; } }
    main #sub_footer .sub_footer_inner {
      max-width: 1440px;
      margin: auto; }
    main #sub_footer .title_area {
      margin-left: 13%; }
      @media screen and (max-width: 1000px) {
        main #sub_footer .title_area {
          margin-left: 6%; } }
      @media screen and (max-width: 640px) {
        main #sub_footer .title_area {
          margin-left: 6%; } }
      main #sub_footer .title_area p {
        color: #003988;
        border-bottom: 2px solid #003988;
        display: inline-block;
        font-weight: 700;
        letter-spacing: 2px; }
    main #sub_footer .sub_footer_wrapper {
      width: 88%;
      margin-left: auto;
      display: flex; }
      @media screen and (max-width: 1000px) {
        main #sub_footer .sub_footer_wrapper {
          flex-wrap: wrap;
          width: 100%;
          margin: auto; } }
      main #sub_footer .sub_footer_wrapper .text_area {
        display: flex;
        align-items: flex-start;
        justify-content: center; }
        @media screen and (max-width: 1000px) {
          main #sub_footer .sub_footer_wrapper .text_area {
            flex-wrap: wrap;
            justify-content: flex-start;
            width: 97%;
            margin-left: auto; } }
        @media screen and (max-width: 1000px) {
          main #sub_footer .sub_footer_wrapper .text_area {
            margin-left: 6%; } }
        main #sub_footer .sub_footer_wrapper .text_area p {
          writing-mode: vertical-rl;
          display: inline-block;
          margin: 0;
          padding-left: 4px;
          font-size: 8pt;
          letter-spacing: 2px; }
          @media screen and (max-width: 1000px) {
            main #sub_footer .sub_footer_wrapper .text_area p {
              writing-mode: horizontal-tb;
              display: block;
              width: 100%; } }
          @media screen and (max-width: 1000px) {
            main #sub_footer .sub_footer_wrapper .text_area p br {
              display: none; } }
        main #sub_footer .sub_footer_wrapper .text_area h2 {
          writing-mode: vertical-rl;
          /* 縦書き（右→左） */
          text-orientation: upright;
          /* 縦中横を制御 */
          font-family: "Zen Old Mincho", serif;
          font-weight: 400;
          margin: 0 30px 0 10px;
          font-size: 18pt;
          letter-spacing: 2px; }
          @media screen and (max-width: 1000px) {
            main #sub_footer .sub_footer_wrapper .text_area h2 {
              writing-mode: horizontal-tb;
              display: block;
              margin-left: 0; } }
          main #sub_footer .sub_footer_wrapper .text_area h2 strong {
            color: #F05A2C; }
          @media screen and (max-width: 1000px) {
            main #sub_footer .sub_footer_wrapper .text_area h2 br {
              display: none; } }
      main #sub_footer .sub_footer_wrapper .cta_area {
        display: flex;
        justify-content: space-evenly;
        width: 100%; }
        @media screen and (max-width: 1000px) {
          main #sub_footer .sub_footer_wrapper .cta_area {
            margin-top: 20px; } }
        @media screen and (max-width: 640px) {
          main #sub_footer .sub_footer_wrapper .cta_area {
            flex-wrap: wrap; } }
        main #sub_footer .sub_footer_wrapper .cta_area div {
          background: #003988;
          border-width: 3px;
          border-style: solid;
          border-color: #C0CBD9;
          border-radius: 10px;
          text-align: center;
          color: #fff;
          padding: 20px 0;
          max-width: 400px;
          width: 42%;
          /*
          @include mq() {
              width: 86%;
              margin-bottom: 20px;
          }
          */ }
          @media screen and (max-width: 800px) {
            main #sub_footer .sub_footer_wrapper .cta_area div {
              width: 46%; } }
          main #sub_footer .sub_footer_wrapper .cta_area div img {
            margin-bottom: 10px; }
          main #sub_footer .sub_footer_wrapper .cta_area div p {
            margin: 0; }
          main #sub_footer .sub_footer_wrapper .cta_area div h3 {
            margin: 0; }
            @media screen and (max-width: 640px) {
              main #sub_footer .sub_footer_wrapper .cta_area div h3 {
                font-size: 12pt; } }
          main #sub_footer .sub_footer_wrapper .cta_area div .tel {
            color: #F05A2C;
            font-size: 18pt;
            margin: 14px 0;
            font-family: "Instrument Sans", sans-serif; }
            @media screen and (max-width: 640px) {
              main #sub_footer .sub_footer_wrapper .cta_area div .tel {
                margin: 6px 0;
                font-size: 16pt; } }
            main #sub_footer .sub_footer_wrapper .cta_area div .tel a {
              color: #F05A2C; }
          main #sub_footer .sub_footer_wrapper .cta_area div .time br {
            display: none; }
            @media screen and (max-width: 800px) {
              main #sub_footer .sub_footer_wrapper .cta_area div .time br {
                display: block; } }
          main #sub_footer .sub_footer_wrapper .cta_area div span {
            background: #fff;
            border-radius: 40px;
            color: #F05A2C;
            display: block;
            width: 60%;
            margin: 10px auto;
            padding: 4px 0;
            font-size: 10pt;
            font-weight: 700; }
            @media screen and (max-width: 640px) {
              main #sub_footer .sub_footer_wrapper .cta_area div span {
                width: 90%; } }
            main #sub_footer .sub_footer_wrapper .cta_area div span a {
              color: #F05A2C; }
    main #sub_footer .chara {
      position: absolute;
      bottom: 0;
      left: 5%;
      width: 10.5%;
      height: auto;
      max-width: 152px; }
      @media screen and (max-width: 640px) {
        main #sub_footer .chara {
          width: 20%; } }
