@charset "UTF-8";

@import "settings.css";

/*============================================================================================
      Header
=============================================================================================*/
/* ヘッダー */
body {
      padding-top: 10.25rem;
}
body:has(.top_heros_area) {
      padding-top: 0;
}
.header {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 9999;
      width: 100%;
      margin: auto;
      padding: 2.5rem 2.4rem;
}
.header:has(.g_hamb.js_open) {
      border: var(--color-sub);
      background-color: var(--color-reverse);
}
.header.header_shadow {
      -webkit-box-shadow: 0px 2px 16px 0px rgba(0, 77, 160, 0.12);
              box-shadow: 0px 2px 16px 0px rgba(0, 77, 160, 0.12);
}
body:has(.js_header_following) .header.header_shadow {
      -webkit-box-shadow: none;
              box-shadow: none;
}
.nav_box {
      width: 100%;
}
.nav_box__logo_link {
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
}
.nav_box__logo_msg {
      margin-top: auto;
      display: block;
      color: var(--color-bclack);
      letter-spacing: 0;
      text-transform: uppercase;
      line-height: 1.3;
}
.nav_box__nav {
      padding: 1rem 1.8rem;
      border-radius: 7rem;
      color: var(--color-header-green);
      background-color: var(--color-reverse);
}
.nav_box__nav_item {
      position: relative;
}
.nav_box__nav_item.u_ic::after {
      content: "";
      position: absolute;
      right: -1.2rem;
      top: -2px;
      bottom: 0;
      display: block;
      height: 1.45rem;
      margin: auto;
      border-right: 1px solid;
}
.nav_box__nav_item_gap {
      padding-right: 2.4rem;
}
.nav_menu__ttl.u_ic {
      position: relative;
      -webkit-transition: var(--transition);
      -o-transition: var(--transition);
      transition: var(--transition);
}
.nav_box__btn {
      &::before {
            content: "";
            display: block;
            width: 0;
            height: 44px;
      }
}
.g_btn__nav .nav_box__btn_cta {
      padding: 1rem 2.4rem;
      border: 1px solid var(--color-header-green);
      border-radius: 5rem;
      color: var(--color-reverse);
      background-color: var(--color-header-green);
      -webkit-transition: var(--transition);
      -o-transition: var(--transition);
      transition: var(--transition);
}

@media (any-hover:hover) {
      .nav_menu__ttl:hover {
            opacity: var(--opacity);
      }
      .g_btn__nav .nav_box__btn_cta:hover {
            color: var(--color-header-green);
            background-color: var(--color-reverse);
      }
      .nav_plural_menu__item:hover {
            opacity: var(--opacity);
      }
}
@media (min-width:1201px) {
      .just_hamb {
            display: none;
      }
}
@media (max-width:1200px) {
      body {
            padding-top: 6.48rem;
      }
      .header {
            padding: 1.6rem;
      }
      html.u_scrollPrevent .follow_menu {
            display: none !important;
      }
      /* .nav_box__logo_img img {
            height: 2.2rem;
      } */
      .nav_box__logo_link {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            -webkit-box-align: start;
                -ms-flex-align: start;
                    align-items: flex-start;
            gap: 0.4rem;
      }
      .nav_box__body {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            width: 100vw;
            height: 100vh;
            background-color: var(--color-reverse);
            position: absolute;
            top: 0;
            left: 0;
            overflow-y: scroll;
      }
      .nav_box__nav {
            width: 100%;
            padding: 0 1.6rem;
            margin-top: 2.4rem;
            color: var(--color-title);
      }
      .nav_box__nav_lst {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            gap: 0;
      }
      .nav_box__nav_item {
            display: block;
            padding: 2.4rem 0;
            width: 100%;
            font-size: 2rem;
            border-bottom: 1px solid var(--color-brackets);
      }
      .nav_box__nav_item.u_ic::after {
            border-right: none;
      }
      .nav_box__nav_item.nav_box__nav_item_plural {
            border-bottom: none;
            padding-bottom: 0;
      }
      .nav_menu__ttl {
            font-size: 2rem;
            font-weight: 700;
      }
      .nav_menu__ttl.u_ic {
            padding-right: 0;
            &::before {
                  top: 50%;
                  right: 0;
                  width: 0.8rem;
                  height: 0.8rem;
                  border: 1px solid;
                  border-color: var(--color-main) var(--color-main) transparent transparent;
                  -webkit-transform: rotate(45deg);
                      -ms-transform: rotate(45deg);
                          transform: rotate(45deg);
            }
      }
      .nav_plural_menu__item {
            line-height: 1.5;
            -webkit-transition: var(--transition);
            -o-transition: var(--transition);
            transition: var(--transition);
      }
      .nav_plural_menu__item img {
            width: 3.2rem;
            height: 3.2rem;
      }
      .nav_box__btn {
            display: none;
      }
}


/* 背景 */
.bg_msg {
      position: relative;
      width: 100vw;
      z-index: 1;
      bottom: -2.5rem;
}
.bg_msg_inr {
      width: 100%;
}
.bg_msg__track {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      width: 100%;
      -webkit-animation: slideLoop 20s linear infinite;
              animation: slideLoop 20s linear infinite;
}
.bg_msg__txt {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      width: -webkit-max-content;
      width: -moz-max-content;
      width: max-content;
      -webkit-animation: slide-to-left 30s linear infinite;
              animation: slide-to-left 30s linear infinite;
}
.bg_msg__item {
      font-size: 13.8rem;
      font-weight: 700;
      white-space: nowrap;
      font-family: var(--font-en);
      color: var(--color-bg);
      -ms-flex-negative: 0;
          flex-shrink: 0;
      padding-right: 4rem;
      line-height: 1;
}
.bg_msg__txt.bg_msg__txtL {
      -webkit-animation: slide-to-left 100s linear infinite;
              animation: slide-to-left 100s linear infinite;
}
.bg_msg__txt.bg_msg__txtR {
      -webkit-animation: slide-to-right 100s linear infinite;
              animation: slide-to-right 100s linear infinite;
}
.bg_msg__item {
      font-size: 13.8rem;
      font-family: var(--font-en);
      color: var(--color-bg);
      -ms-flex-negative: 0;
          flex-shrink: 0;
      padding-right: 4rem;
      flex-shrink: 0;
      line-height: 1;
}

@-webkit-keyframes slide-to-left {
      0% {
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
      }
      100% {
            -webkit-transform: translateX(-100%);
                    transform: translateX(-100%);
      }
}
@keyframes slide-to-left {
      0% {
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
      }
      100% {
            -webkit-transform: translateX(-100%);
                    transform: translateX(-100%);
      }
}
@-webkit-keyframes slide-to-right {
      0% {
            -webkit-transform: translateX(-100%);
                    transform: translateX(-100%);
      }
      100% {
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
      }
}
@keyframes slide-to-right {
      0% {
            -webkit-transform: translateX(-100%);
                    transform: translateX(-100%);
      }
      100% {
            -webkit-transform: translateX(-50%);
                    transform: translateX(-50%);
      }
}

@media (max-width:896px) {
      .bg_msg {
            bottom: 3.8rem;
            height: 0;
      }
      .bg_msg__item {
            font-size: 8.1rem;
      }
}
@media (max-width:576) {
      .bg_msg__item {
            font-size: 8.1rem;
      }
}


/*============================================================================================
      Footer
=============================================================================================*/
/* footer-body （関連サイト） */
.sec_related {
      position: relative;
      padding-top: 6.2rem;
      padding-bottom: 6.2rem;
      background-color: var(--color-bg);
}
.sec_related__inr .heading_ttl {
      font-size: 2.5rem;
      line-height: 1;
      white-space: nowrap;
      color: var(--color-sub);
}
.related_item {
      width: 26.0397vw;
      max-width: 28.8rem;
      max-height: 7.1rem;
      background-color: var(--color-reverse);
}
.related_item__inr.item_corp {
      padding: 1.8rem 5.1rem;
}
.related_item__inr.item_onl {
      padding: 1.8rem 5rem;
}
.related_item__inr.item_cad {
      padding: 1.8rem 3.1rem;
}
.related_item__inr {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      width: 100%;
      height: 100%;
      -webkit-transition: var(--transition);
      -o-transition: var(--transition);
      transition: var(--transition);
      color: var(--color-sub);
      text-decoration: none;
      padding: 0 5.1rem;
}
.related_item__inr.item_corp img,
.related_item__inr.item_onl img {
      width: 2.5rem;
      height: 2.5rem;
}
.related_item__inr.item_cad img {
      width: 3.2rem;
      height: 2.3rem;
}

@media (any-hover:hover) {
      .related_item__inr:hover {
            opacity: var(--opacity);
      }
}
@media (max-width:1147px) {
      .sec_related {
            padding-top: 3.2rem;
            padding-bottom: 9.6rem;
      }
      .footer_wrap__body .sec_related__inr {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
      }
      .footer_wrap__body .related_lst {
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            width: 100%;
      }
      .related_item {
            width: 100%;
            max-width: 100%;
      }
      .related_item__inr {
            -webkit-box-pack: center;
                -ms-flex-pack: center;
                    justify-content: center;
      }
      .related_item.item_corp {
            position: relative;
            padding: 2rem 0;
            max-width: 100%;
      }
      .related_item.item_onl {
            position: relative;
            padding: 2rem 0;
            max-width: 100%;
      }
      .related_item.item_cad {
            position: relative;
            padding: 2rem 0;
            max-width: 100%;
      }
}
@media (max-width:896px) {
      .sec_related__inr .heading_ttl {
            font-size: 2rem;
      }
}


/* footer btm */
.footer_wrap__btm {
      background-color: var(--color-bclack);
      padding: 2.7rem 4rem;
}
.footer_wrap__btm > * {
      color: var(--color-reverse);
      line-height: 1;
}
.footer_box__logo_link {
      display: block;
      text-align: left;
      margin-right: auto;
      margin-left: 0;
      padding-left: 0;
}

@media (max-width:896px) {
      .footer {
            margin-bottom: 70px;
      }
      .footer_wrap__btm {
            padding: 1.6rem;
      }
      .footer_box__logo_img img {
            max-width: 106px;
      }
}


/*============================================================================================
      Contents
=============================================================================================*/
/* 追従menu */
.follow_sidenav {
      opacity: 0;
      visibility: hidden;
      -webkit-transition: opacity 0.6s ease, visibility 0.6s ease 0.6s;
      -o-transition: opacity 0.6s ease, visibility 0.6s ease 0.6s;
      transition: opacity 0.6s ease, visibility 0.6s ease 0.6s; 
      position: fixed;
      bottom: 2.5rem;
      right: 0;
      z-index: 10000000;
}
.follow_sidenav.js_show {
      opacity: 1;
      visibility: visible;
      -webkit-transition-delay: 0s, 0s;
           -o-transition-delay: 0s, 0s;
              transition-delay: 0s, 0s;
}
.follow_sidenav.js_stc_fade {
      opacity: 0;
      visibility: visible;
      pointer-events: none;
      -webkit-transition: opacity 0.6s ease;
      -o-transition: opacity 0.6s ease;
      transition: opacity 0.6s ease;
}
.follow_sidenav.js_stc_position {
      position: absolute;
      bottom: calc(var(--footer-height, 120px) + 2rem);
      top: auto;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      -webkit-transition: none;
      -o-transition: none;
      transition: none;
}
.follow_sidenav.js_stc {
      position: absolute;
      bottom: calc(var(--footer-height, 120px) + 2rem);
      top: auto;
      opacity: 0.3; 
      -webkit-transition: opacity 0.6s ease, bottom 0.6s ease; 
      -o-transition: opacity 0.6s ease, bottom 0.6s ease; 
      transition: opacity 0.6s ease, bottom 0.6s ease;
}
.follow_sidenav.is-hidden {
      display: none;
}
.follow_sidenav_link {
      position: relative;
      display: block;
      -webkit-transform: translateX(-25px);
          -ms-transform: translateX(-25px);
              transform: translateX(-25px);
}
.follow_sidenav__item {
      -webkit-transition: 1s cubic-bezier(0.48, 0.98, 1, 1), 0.3s ease-out;
      -o-transition: 1s cubic-bezier(0.48, 0.98, 1, 1), 0.3s ease-out;
      transition: 1s cubic-bezier(0.48, 0.98, 1, 1), 0.3s ease-out;
      -webkit-transition-delay: 2s, 0s;
           -o-transition-delay: 2s, 0s;
              transition-delay: 2s, 0s;
      background-color: var(--color-reverse);
      border-radius: 50%;
      -webkit-box-shadow: 0px 2px 16px 0px rgba(0, 77, 160, 0.12);
              box-shadow: 0px 2px 16px 0px rgba(0, 77, 160, 0.12);
      width: 11.2rem;
      height: 11.2rem;
}
.follow_menu {
      position: fixed;
      width: 100%;
      top: auto;
      bottom: 0;
      z-index: 9999999;
      background-color: var(--color-reverse);
}
.follow_menu__lst {
      width: 100%;
}
.follow_menu__item {
      color: var(--color-sub);
      background-color: var(--color-reverse);
      position: relative;
      width: 100%;
      height: 7rem;
      cursor: pointer;
}
.follow_menu__item_bg {
      color: var(--color-reverse);
      background-color: var(--color-header-green);
}
.follow_menu__item_inr {
      width: 100%;
}
.follow_menu__item_inr img {
      line-height: 2.18;
      width: 100%;
}
.follow_menu__item_inr.u_ic::after {
      position: absolute;
      content: "";
      right: 0.65rem;
      width: 0.1rem;
      height: 100%;
      background-color: var(--color-menubar);
}
.follow_sidenav__item img {
      width: 4.2rem;
      height: 4.2rem;
      max-width: fit-content;
}
.follow_menu__item_inr img {
      width: 2.8rem;
      height: 2.8rem;
      max-width: fit-content;
}
.follow_menu__item_bg .follow_menu__item_inr img {
      width: 2.4rem;
      height: 2.4rem;
}
.follow_menu__item_txt.follow_menu__item_txt_br {
      line-height: 1.1;
}
.main_wrapper .follow_sidenav__item_txt,
.btm_wrapper .follow_sidenav__item_txt {
      position: relative;
      line-height: 1.5;
      padding-top: 4.4rem;
}
.main_wrapper .follow_sidenav__item_txt.icon_onl::before,
.main_wrapper .follow_sidenav__item_txt.icon_mail::before,
.main_wrapper .follow_sidenav__item_txt.icon_cad::before,
.btm_wrapper .follow_sidenav__item_txt.icon_onl::before,
.btm_wrapper .follow_sidenav__item_txt.icon_mail::before,
.btm_wrapper .follow_sidenav__item_txt.icon_cad::before {
      display: inline-block;
      width: 4.2rem;
      height: 4.2rem;
      position: absolute;
      content: "";
      top: -0.2rem;
      left: 50%;
      transform: translateX(-50%);
      mask-repeat: no-repeat;
      mask-size: cover;
      background-color: var(--color-main);
      transition: var(--transition);
}
.main_wrapper .follow_sidenav__item_txt.icon_onl::before {
      mask-image: url(./img/common/icon_onl.svg);
      -webkit-mask-image: url('/img/common/icon_onl.svg');
}
.main_wrapper .follow_sidenav__item_txt.icon_mail::before {
      mask-image: url(./img/common/icon_mail.svg);
      -webkit-mask-image: url('/img/common/icon_mail.svg');
}
.main_wrapper .follow_sidenav__item_txt.icon_cad::before {
      mask-image: url(./img/common/icon_cad.svg);
      -webkit-mask-image: url('/img/common/icon_cad.svg');
}
.btm_wrapper .follow_sidenav__item_txt.icon_onl::before {
      mask-image: url(../img/common/icon_onl.svg);
      -webkit-mask-image: url('/img/common/icon_onl.svg');
}
.btm_wrapper .follow_sidenav__item_txt.icon_mail::before {
      mask-image: url(../img/common/icon_mail.svg);
      -webkit-mask-image: url('/img/common/icon_mail.svg');
}
.btm_wrapper .follow_sidenav__item_txt.icon_cad::before {
      mask-image: url(../img/common/icon_cad.svg);
      -webkit-mask-image: url('/img/common/icon_cad.svg');
}

@media (any-hover:hover) {
      .follow_sidenav__item:hover {
            background-color: var(--color-main);
            color: var(--color-reverse);
      }
      .follow_sidenav__item:hover .follow_sidenav__item_txt::before {
            background-color: var(--color-reverse);
      }
}
@media (max-width: 896px){
      .follow_sidenav,
      .follow_sidenav.js_show {
            display: none;
            opacity: 0;
      }
}


/* 共通パーツ */
.heading_sub {
      font-weight: 700;
      line-height: 1;
      letter-spacing: 0.28rem;
      color: var(--color-main);
}
.heading_ttl {
      font-weight: 700;
      line-height: 1;
      color: var(--color-title);
}
.heading_copy {
      line-height: 1.6;
      letter-spacing: 0.16rem;
      color: var(--color-title);
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: fit-content;
}
.heading_copy.u_ic {
      position: relative;
      padding-left: 1.9rem;
      padding-right: 1.9rem;
      &::before {
            border-left: 0.2rem solid;
            left: 0;
      }
      &::after {
            border-right: 0.2rem solid;
            right: 0;
      }
}
.heading_copy.u_ic::before,
.heading_copy.u_ic::after {
      position: absolute;
      top: 0;
      width: 1.1rem;
      height: 100%;
      content: '';
      border-top: 0.2rem solid;
      border-bottom: 0.2rem solid;
      color: var(--color-brackets);
}
.btm_wrapper {
      overflow: hidden;
      margin-top: 4rem;
}
.btm_wrapper .heading_cont.not_copy {
      margin-top: 10rem;
}
.btm_wrapper .heading_copy {
      color: var(--color-copy);
      font-size: 1.4rem;
      line-height: 2.52;
      letter-spacing: 0.196rem;
}
.heros_area__item {
      gap: 15.7rem;
}
.heros_area__txt {
      min-width: 33.6rem;
      max-width: 33.6rem;
      width: 100%;
}
.heros_area__img picture {
      width: 77.5rem;
      height: 40rem;
}
.heros_area__img img {
      width: 77.5rem;
      height: 40rem;
}

@media (max-width:896px) {
      .heading_copy.u_ic {
            padding-left: 0;
            padding-right: 0;
            &::before {
                  border: none;
            }
            &::after {
                  border: none;
            }
      }
      .btm_wrapper {
            margin-top: 8rem;
      }
      .btm_wrapper .heading_cont.not_copy {
            margin-top: 0;
      }
      .btm_wrapper .heading_copy {
            font-size: 1.2rem;
            line-height: 1.6;
            letter-spacing: 0.168rem;
      }
      .heros_area__item {
            gap: 1.6rem;
      }
      .heros_area__txt {
            min-width: 0;
            max-width: 100%;
            width: 100%;
            height: fit-content;
      }
      .heros_area__img {
            width: 100vw;
            margin: 0 calc(50% - 50vw);
            height: fit-content;
      }
      .heros_area__img picture {
            width: 100vw;
            height: fit-content;
      }
      .heros_area__img img {
            width: 100vw;
            height: fit-content;
      }
}


/* topページ */
.top_heros_area {
      position: relative;
}
.top_heros_area__kv {
      background-position: top left;
      background-repeat: no-repeat;
      background-size: cover;
}
.top_heros_area__msg{
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
      width: 31.5972vw;
}
.m_sec_item__inr.modul_imgL {
      justify-content: flex-end;
}
.m_sec_item__inr.modul_imgR {
      justify-content: flex-start;
}
.m_sec_item__inr .heading_cont,
.m_sec_item__inr .body_cont,
.m_sec_item__inr .footer_cont {
      max-width: 54.9rem;
      width: 100%;
}
.m_sec_item {
      overflow: hidden;
}
.m_sec_item__inr:first-child {
      margin-top: 0;
}
.m_sec_item__inr:last-child {
      padding-bottom: 12rem;
}
.m_sec_item__inr {
      grid-auto-rows: -webkit-min-content;
      grid-auto-rows: min-content;
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: 1fr 6.4rem 1fr;
      grid-template-columns: repeat(2, 1fr);
      -ms-grid-rows: auto;
      grid-template-rows: auto;
      -webkit-column-gap: 6.4rem;
         -moz-column-gap: 6.4rem;
              column-gap: 6.4rem;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: start;
      grid-auto-rows: min-content;
      margin-top: 26.3rem;
}
.m_sec_item__inr > *:nth-child(1) {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
}
.m_sec_item__inr > *:nth-child(2) {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
}
.m_sec_item__inr + .m_sec_item__inr {
      margin-top: 10.4rem;
}
.m_item_inr__img {
      margin-top: 14.5rem;
      width: 65.5rem;
      height: 51.6rem;
}
.m_item_inr__img img {
      width: 65.5rem;
      height: 51.6rem;
}
.m_sec_item__inr.modul_imgL .heading_cont {
      -ms-grid-row: 1;
      -ms-grid-row-span: 1;
      -ms-grid-column: 2;
      -ms-grid-column-span: 1;
      grid-area: 1 / 2 / 2 / 3;
}
.m_sec_item__inr.modul_imgL .body_cont {
      -ms-grid-row: 2;
      -ms-grid-row-span: 1;
      -ms-grid-column: 2;
      -ms-grid-column-span: 1;
      grid-area: 2 / 2 / 3 / 3;
}
.m_sec_item__inr.modul_imgL .footer_cont {
      -ms-grid-row:3;
      -ms-grid-row-span:1;
      -ms-grid-column:2;
      -ms-grid-column-span:1;
      grid-area:3 / 2 / 4 / 3;
}
.modul_imgL .m_item_inr__img {
      -ms-grid-row: 1;
      -ms-grid-row-span: 3;
      -ms-grid-column: 1;
      -ms-grid-column-span: 1;
      grid-area: 1 / 1 / 4 / 2;
      -ms-grid-row-align: stretch;
          align-self: stretch;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
}
.m_sec_item__inr.modul_imgR .heading_cont {
      -ms-grid-row: 1;
      -ms-grid-row-span: 1;
      -ms-grid-column: 1;
      -ms-grid-column-span: 1;
      grid-area: 1 / 1 / 2 / 2;
}
.m_sec_item__inr.modul_imgR .body_cont {
      -ms-grid-row: 2;
      -ms-grid-row-span: 1;
      -ms-grid-column: 1;
      -ms-grid-column-span: 1;
      grid-area: 2 / 1 / 3 / 2;
}
.m_sec_item__inr.modul_imgR .footer_cont {
      -ms-grid-row: 3;
      -ms-grid-row-span: 1;
      -ms-grid-column: 1;
      -ms-grid-column-span: 1;
      grid-area: 3 / 1 / 4 / 2;
}
.modul_imgR .m_item_inr__img {
      -ms-grid-row: 1;
      -ms-grid-row-span: 3;
      -ms-grid-column: 2;
      -ms-grid-column-span: 1;
      grid-area: 1 / 2 / 4 / 3;
      -ms-grid-row-align: stretch;
          align-self: stretch;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
}
.m_sec_item__inr .body_msg {
      font-weight: 500;
      line-height: 2;
}
.m_sec_item__inr .body_msg + .body_msg {
      margin-top: 2.4rem;
}

@media (max-width:896px) {
      .top_heros_area__msg{
            width: 79.2vw;
      }
      .m_sec_item__inr + .m_sec_item__inr {
            margin-top: 8.3rem;
      }
      .m_sec_item__inr:last-child {
            padding-bottom: 0;
      }
      .m_sec_item__inr .heading_cont,
      .m_sec_item__inr .body_cont,
      .m_sec_item__inr .footer_cont {
            max-width: 100%;
      }
      .m_sec_item__inr {
            display: -webkit-box;
            display: -ms-flexbox;
            display: flex;
            -webkit-box-orient: vertical;
            -webkit-box-direction: normal;
                -ms-flex-direction: column;
                    flex-direction: column;
            margin-top: 8.8rem;
      }
      .m_sec_item__inr .heading_cont {
            -webkit-box-ordinal-group: 2;
                -ms-flex-order: 1;
                    order: 1;
      }
      .m_sec_item__inr .body_cont {
            -webkit-box-ordinal-group: 4;
                -ms-flex-order: 3;
                    order: 3;
      }
      .m_sec_item__inr .footer_cont {
            -webkit-box-ordinal-group: 5;
                -ms-flex-order: 4;
                    order: 4;
      }
      .modul_imgL .m_item_inr__img,
      .modul_imgR .m_item_inr__img {
            -webkit-box-ordinal-group: 3;
                -ms-flex-order: 2;
                    order: 2;
            display: block;
            width: 100vw;
            margin: 0 calc(50% - 50vw);
            height: -webkit-fit-content;
            height: -moz-fit-content;
            height: fit-content;
      }
      .m_item_inr__img img {
            width: 100vw;
            height: auto;
      }
}


/* カタログエリア */
.m_sec_catalog__inr {
      border: 0.1rem solid var(--color-main);
      padding: 4.8rem;
      display: -ms-grid;
      display: grid;
      -ms-grid-columns: 1fr 9.6rem 1fr;
      grid-template-columns: repeat(2, 1fr);
      -ms-grid-rows: auto;
      grid-template-rows: auto;
      -webkit-column-gap: 9.6rem;
         -moz-column-gap: 9.6rem;
              column-gap: 9.6rem;
      -webkit-box-align: start;
          -ms-flex-align: start;
              align-items: start;
      grid-auto-rows: -webkit-min-content;
      grid-auto-rows: min-content;
}
.m_sec_catalog__inr > *:nth-child(1) {
      -ms-grid-row: 1;
      -ms-grid-column: 1;
}
.m_sec_catalog__inr > *:nth-child(2) {
      -ms-grid-row: 1;
      -ms-grid-column: 3;
}
.m_sec_catalog_inr__txt {
      max-width: calc(9.6rem + 49.9rem);
      width: 100%;
}
.m_sec_catalog_inr__txt .heading_sub {
      line-height: 1;
      letter-spacing: 0.26rem;
      color: var(--color-main);
}
.m_sec_catalog_inr__img {
      max-width: 39rem;
      width: 100%;
}
.m_sec_catalog_inr__img img {
      width: 100%;
      height: auto;
      max-height: 100%;
      -o-object-fit: contain;
         object-fit: contain;
}
.m_sec_catalog__inr .m_sec_catalog_inr__txt.heading_cont {
      -ms-grid-row: 1;
      -ms-grid-row-span: 1;
      -ms-grid-column: 1;
      -ms-grid-column-span: 1;
      grid-area: 1 / 1 / 2 / 2;
      -ms-grid-row-align: start;
          align-self: start;
      margin: 0;
}
.m_sec_catalog__inr .m_sec_catalog_inr__txt.body_cont {
      -ms-grid-row: 2;
      -ms-grid-row-span: 1;
      -ms-grid-column: 1;
      -ms-grid-column-span: 1;
      grid-area: 2 / 1 / 3 / 2;
      line-height: 2;
}
.m_sec_catalog__inr .m_sec_catalog_inr__txt.footer_cont {
      -ms-grid-row: 3;
      -ms-grid-row-span: 1;
      -ms-grid-column: 1;
      -ms-grid-column-span: 1;
      grid-area: 3 / 1 / 4 / 2;
}
.m_sec_catalog__inr .m_sec_catalog_inr__img {
      -ms-grid-row: 1;
      -ms-grid-row-span: 3;
      -ms-grid-column: 2;
      -ms-grid-column-span: 1;
      grid-area: 1 / 2 / 4 / 3;
      -ms-grid-row-align: stretch;
          align-self: stretch;
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center;
      -webkit-box-align: center;
          -ms-flex-align: center;
              align-items: center;
}

@media (max-width:896px) {
      .m_sec_catalog__inr {
            padding: 2.4rem;
            -ms-grid-columns: 1fr;
            grid-template-columns: 1fr;
            -ms-grid-rows: auto;
            grid-template-rows: auto;
            margin-top: 8rem;
      }
      .m_sec_catalog__inr > *:nth-child(1) {
            -ms-grid-row: 1;
            -ms-grid-column: 1;
      }
      .m_sec_catalog_inr__txt {
            max-width: 100%;
      }     
      .m_sec_catalog__inr .m_sec_catalog_inr__txt.heading_cont {
            -ms-grid-row: 1;
            -ms-grid-row-span: 1;
            -ms-grid-column: 1;
            -ms-grid-column-span: 1;
            grid-area: 1 / 1 / 2 / 2;
      }
      .m_sec_catalog__inr .m_sec_catalog_inr__txt.body_cont {
            -ms-grid-row: 3;
            -ms-grid-row-span: 1;
            -ms-grid-column: 1;
            -ms-grid-column-span: 1;
            grid-area: 3 / 1 / 4 / 2;
      }
      .m_sec_catalog__inr .m_sec_catalog_inr__txt.footer_cont {
            -ms-grid-row: 4;
            -ms-grid-row-span: 1;
            -ms-grid-column: 1;
            -ms-grid-column-span: 1;
            grid-area: 4 / 1 / 5 / 2;
      }
      .m_sec_catalog__inr .m_sec_catalog_inr__img {
            -ms-grid-row: 2;
            -ms-grid-row-span: 1;
            -ms-grid-column: 1;
            -ms-grid-column-span: 1;
            grid-area: 2 / 1 / 3 / 2;
      }
}


/* 製品一覧ページ */
.product_item__inr {
      -webkit-transition: var(--transition);
      -o-transition: var(--transition);
      transition: var(--transition);
}
.product_img {
      width: -webkit-fit-content;
      width: -moz-fit-content;
      width: 100%;
}
.product_ttl__sub {
      line-height: 1;
      letter-spacing: 0.52px;
      color: var(--color-equipment-sub);
}
.product_ttl__main {
      line-height: 1;
      color: var(--color-title);
      transition: var(--transition);
}
.product_ttl__main .sub_ttl {
      line-height: 1.4;
}

@media (any-hover:hover) {
      .product_item__inr:hover .product_ttl__main {
            color: var(--color-main);
      }
}


/* 製品詳細ページ */
.sec_product_detail .main_cont {
      margin-top: 12rem;
      padding-bottom: 12rem;
}
.sec_product_detail__item + .sec_product_detail__item {
      margin-top: 12rem;
}
.sec_product_detail__item .body_cont__item:has(.grow_txt) {
      display: flex;
      flex-direction: column;
}
.sec_product_detail__item .body_cont__item:first-child {
      margin-top: 3.2rem;
}
.sec_product_detail__item .body_cont__item + .body_cont__item {
      margin-top: 12rem;
}
.sec_product_detail__item .heading_ttl {
      line-height: 1.6;
}
.sec_product_detail__item .sub_ttl {
      font-weight: 700;
      line-height: 1.6;
}
.sec_product_detail__item .sub_ttl__copy,
.heading_ttl_copy {
      font-weight: 500;
      line-height: 2;
}
.detail_lst__item_sep {
      width: 100%;
      display: grid;
      column-gap: 3.2rem;
      grid-template-columns: repeat(2, 1fr);
      align-items: start;
      grid-template-rows: max-content  1fr auto;
}
.detail_lst__item_sep.item_inr__imgL .detail_item__ttl {
      grid-area: 1 / 2 / 2 / 3;
}
.detail_lst__item_sep.item_inr__imgL .detail_item__copy {
      grid-area: 2 / 2 / 3 / 3;
}
.detail_lst__item_sep.item_inr__imgL .detail_item__img {
      grid-area: 1 / 1 / 3 / 2;
}
.detail_lst__item_sep.item_inr__imgR .detail_item__ttl {
      grid-area: 1 / 1 / 2 / 2;
}
.detail_lst__item_sep.item_inr__imgR .detail_item__copy {
      grid-area: 2 / 1 / 3 / 2;
}
.detail_lst__item_sep.item_inr__imgR .detail_item__img {
      grid-area: 1 / 2 / 3 / 3;
}
.sec_product_detail__item .detail_lst {
      counter-reset: detail_lst__num;
}
.sec_product_detail__item .detail_lst__item .sub_ttl::before {
      position: absolute;
      top: 1.2rem;
      left: 0;
      display: block;
      counter-increment: detail_lst__num 1;
      content: counter(detail_lst__num, decimal-leading-zero);
      color: var(--color-main);
      margin: 0 auto;
      font-size: 2.6rem;
      font-weight: 700;
      line-height: 1;
}
.sec_product_detail__item .detail_lst__item_sep + .detail_lst__item_sep {
      margin-top: 7.2rem;
}
.sec_product_detail__item .detail_lst__item .sub_ttl {
      position: relative;
      padding-left: 3.7rem;
}
.sec_product_detail .g_breadcrumb_lst {
      margin-top: 4.8rem;
}
.detail_lst__item_sep .detail_item__txt {
      max-width: 56rem;
}
.detail_point__lst .detail_point__item {
      position: relative;
      padding-left: 1em;
}
.sec_product_detail__item .body_cont__item .grow_txt {
      flex-grow: 1;
      flex-shrink: 0;
}
.detail_item__sep {
      display: grid;
      grid-template-columns: repeat(2, 1fr);
}
.detail_item__sep.detail_item__img {
      grid-area: 1 / 1 / 2 / 2;
}
.detail_item__sep.detail_item__txt {
      grid-area: 1 / 2 / 2 / 3;
}
.detail_point__lst .detail_point__item::before {
      position: absolute;
      content: "";
      top: 0.8rem;
      left: 0;
      width: 1rem;
      height: 1rem;
      background-color: var(--color-main);
      border-radius: 50%;
      
}
.detail_point__lst .detail_point__item + .detail_point__item {
      margin-top: 1.6rem;
}
.sec_product_detail__item .modul_imgR .detail_txt {
      min-width: 44rem;
      max-width: 4.4rem;
}
.sec_product_detail__item .modul_imgR .detail_img {
      width: 74.3rem;
      height: 40rem;
}
.case_lst__item {
      cursor: pointer;
}
.case_lst__ttl {
      color: var(--color-title);
      line-height: 1.6;
      font-weight: 700;
}
.case_lst__img {
      position: relative;
      &::before {
            position: absolute;
            right: 0;
            bottom: 0;
            content: url(../img/common/icon_glass.svg);
            width: 3.6rem;
            height: 3.6rem;
      }
}
.sec_product_detail__item .modul_column2 {
      display: flex;
      gap: 5.6rem;
}
.sec_product_detail__item .modul_column2.gap_72 {
      gap: 7.2rem;
}

.modul_column2__item {
      width: 50%;
      height: 100%;
      height: auto;
}
.modul_column2__item > .body_cont__item {
      flex: 1;
      display: flex;
      flex-direction: column;
}
.modal_cont {
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      max-height: 82.5%;
      max-width: 104rem;
      overflow: hidden;
      padding: 6rem 4.8rem 0;
      scrollbar-width: none;
      box-sizing: border-box;
      overflow: hidden;
      max-height: 82.5vh;
      width: calc(100% - 4rem);
      padding: 4vw;
      box-sizing: border-box;
}
.modal_cont__inr, .modal_img__item {
      margin: 0 -0.03rem;
      max-height: 60rem;
}
.modal_img__item {
      display: flex;
      justify-content: center;
      height: 100%;
}
.modal_img__item img {
      width: auto;
      max-width: 100%;
      max-height: 100%;
      display: block;
      object-fit: cover;
}
.modal_close_icon {
      position: absolute;
      top: 0;
      right: 0;
      width: 4rem;
      height: 4rem;
      z-index: 2;
      background-color: var(--color-reverse);
      border-radius: 50%;
}
.modal_close_icon::before {
      content: "";
      position: absolute;
      width: 1.6rem;
      height: 0.2rem;
      top: 50%;
      right: 50%;
      transform: translate(50%, -50%) rotate(45deg);
      background-color: var(--color-main);
}
.modal_close_icon::after {
      content: "";
      position: absolute;
      width: 1.6rem;
      height: 0.2rem;
      top: 50%;
      right: 50%;
      transform: translate(50%, -50%) rotate(-45deg);
      background-color: var(--color-main);
}
.modal_slider_dots.swiper-pagination {
      top: auto !important;
      bottom: -30px !important;
      left: auto !important;
      right: 0 !important;
      width: fit-content;
}

@media (max-width:896px) {
      .heading_copy.u_ic, .heading_copy.u_ic {
            padding: 0;
      }
      .heading_copy.u_ic::before, .heading_copy.u_ic::after {
            border: none;
      }
      .sec_product_detail .heros_area__item {
            gap: 2rem;
      }
      .sec_product_detail__item .body_cont__item:first-child {
            margin-top: 0;
      }
      .detail_point__lst .detail_point__item + .detail_point__item {
            margin-top: 1.2rem;
      }
      .sec_product_detail__item + .sec_product_detail__item {
            margin-top: 8rem;
      }
      .sec_product_detail__item .body_cont__item + .body_cont__item {
            margin-top: 6.4rem;
      }
      .sec_product_detail__item .sub_ttl {
            line-height: 1.6;
      }
      .sec_product_detail .g_breadcrumb_lst {
            margin-top: 4.8rem;
            overflow-x: auto;
            overflow-y: hidden;
            padding-bottom: 0;
      }
      .sec_product_detail .heros_area__img {
            width: 100vw;
            margin: 0 calc(50% - 50vw);
      }
      .detail_item__sep {
            grid-template-columns: 1fr;
      }
      .detail_item__sep.detail_item__img {
            grid-area: 1 / 1 / 2 / 2;
      }
      .detail_item__sep.detail_item__txt {
            grid-area: 2 / 1 / 3 / 2;
      }
      .detail_item__sep.detail_item__img {
            min-width: 100%;
            max-width: 100%;
      }
      .detail_lst__item_sep .detail_item__img img {
            width: 100%;
      }
      .sec_product_detail__item .modul_imgR .detail_img {
            width: 100vw;
            height: auto;
            margin: 0 calc(50% - 50vw)
      }
      .sec_product_detail__item .modul_imgR .detail_img img {
            width: 100vw;
      }
      .sec_product_detail__item .modul_imgR .detail_txt {
            min-width: 100%;
      }
      .detail_lst__item_sep .detail_item__txt {
            max-width: 100%;
      }
      .case_lst__img img {
            width: 100vw;
      }
      .sec_product_detail .main_cont {
            margin-top: 8rem;
            padding-bottom: 8.3rem;
      }
      .sec_product_detail__item .detail_lst__item .sub_ttl::before {
            top: 1rem;
            font-size: 2.2rem;
      }
      .detail_lst__item_sep {
            width: 100%;
            display: grid;
            grid-template-columns: auto;
            grid-row: 7.1rem;
            grid-column: 4rem;
      }
      .sec_product_detail__item .detail_lst__item .sub_ttl {
            padding-left: 0;
            padding-top: 3rem;
      }
      .detail_lst .sub_ttl::before {
            top: 0;
            left: 0;
            font-size: 2.2rem;
      }
      .detail_lst__item_sep.item_inr__imgL .detail_item__ttl,
      .detail_lst__item_sep.item_inr__imgR .detail_item__ttl {
            grid-area: 1 / 1 / 2 / 2;
      }
      .detail_lst__item_sep.item_inr__imgL .detail_item__copy,
      .detail_lst__item_sep.item_inr__imgR .detail_item__copy {
            grid-area: 3 / 1 / 4 / 2;
      }
      .detail_lst__item_sep.item_inr__imgL .detail_item__img,
      .detail_lst__item_sep.item_inr__imgR .detail_item__img {
            grid-area: 2 / 1 / 3 / 2;
      }
      .sec_product_detail__item .modul_column2 {
            flex-direction: column;
            gap: 0;
      }
      .sec_product_detail__item .modul_column2.gap_72 {
            gap: 0;
      }
      .modul_column2__item {
            width: 100%;
      }
      .sec_product_detail__item .detail_lst__item_sep + .detail_lst__item_sep {
            margin-top: 3.2rem;
      }
      .modal_cont {
            padding: 0 2.4rem;
      }
      .modal_cont__inr, .modal_img__item {
            max-height: 29.5rem;
      }
      .modal_close_icon {
            top: 1.6rem;
            right: 1.6rem;
      }
}


/* 404ページ */
.sec_404 .heros_area__txt {
      max-width: 100%;
}
.sec_404 .heading_ttl {
      font-size: 4.8rem;
}