html.overflow {
  overflow-y: hidden;
}

header .logo .m-only {
  display: none;
}
header .inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5rem;
  height: 100%;
}
header .main_link {
  display: flex;
  align-items: center;
  gap: 0 6rem;
}
header .main_link.depth1 > li {
  display: flex;
  align-items: center;
  position: relative;
  padding: 1.6rem 1rem;
}
header .main_link.depth1 > li:hover span.arrow {
  background-image: url(/img/nav_arrow_active.png);
}
header .main_link.depth1 > li:last-child {
  padding: 0;
}
header .main_link.depth1 > li > div {
  display: flex;
  align-items: center;
  gap: 0 1rem;
}
header .main_link.depth1 span.arrow {
  width: 1.4rem;
  height: 0.9rem;
  background: url(/img/nav_arrow.png) no-repeat left center;
  background-size: cover;
}
header .btn-wrap {
  display: none;
  align-items: center;
  gap: 0 1.6rem;
}
header .product {
  background: url(/img/icon_header_product.png) no-repeat center;
  background-size: cover;
  width: 21.5rem;
  height: 7rem;
  display: block;
}
header .sns {
  display: flex;
  align-items: center;
  gap: 0 1rem;
}
header .sns a {
  width: 4.9rem;
  height: 4.9rem;
}
header .sns a:first-of-type {
  background: url(/img/header_home.png) no-repeat;
  background-size: cover;
}
header .depth2 {
  display: none;
  flex-direction: column;
  position: absolute;
  gap: 1.5rem 0;
  text-align: center;
  background: #002a4f;
  padding: 2rem 0;
  border-top: 1px solid #eeb508;
  top: 5.2rem;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
}
header .depth2 li {
  font-size: 1.5rem;
  width: 100%;
}
header .depth2 li:hover {
  color: #eeb508;
}
header .depth2 li a {
  display: block;
  width: 100%;
}

.contact-btn {
  background: url(/img/btn_contact.png) no-repeat;
  width: 5.2rem;
  height: 5.2rem;
  background-position: center;
  background-size: cover;
}

.close-wrap {
  display: none;
  align-items: center;
  gap: 0 1.6rem;
}
.close-wrap a {
  width: 4.9rem;
  height: 4.9rem;
  background: url(/img/m_btn_contact.png) no-repeat center;
  background-size: cover;
}

@media screen and (max-width: 1600px) {
  header .main_link {
    gap: 0 2rem;
  }
}
@media screen and (max-width: 1400px) {
  header nav {
    width: auto;
  }
  header nav.active {
    max-height: 100vh;
    overflow-y: auto;
  }
  header .product {
    background-image: url(/img/m_icon_header_product.png);
    background-size: cover;
    width: 19.8rem;
    height: 6.4rem;
  }
  header:has(.inner.active) .logo img {
    display: none;
  }
  header:has(.inner.active) .logo img.m-only {
    display: block;
  }
  header:has(.inner.active) .btn-wrap {
    display: none;
  }
  header:has(.inner.active) .close-wrap {
    display: flex;
    position: relative;
    z-index: 110;
  }
  header .inner {
    width: 100%;
    padding: 0 2rem;
  }
  header .sns {
    display: none;
  }
  header .btn-wrap {
    display: flex;
  }
  header .btn-wrap .contact-btn {
    display: none;
  }
  header .m_panner {
    background-color: #fff;
    padding-top: 98px;
  }
  header .main_link {
    flex-direction: column;
    width: 100%;
    padding-bottom: 14rem;
  }
  header .main_link.depth1 > li {
    flex-direction: column;
    padding: 0;
    width: 100%;
    margin: 0;
  }
  header .main_link.depth1 > li:last-child {
    justify-content: center;
    margin-top: 4rem;
  }
  header .main_link.depth1 > li > div {
    width: 100%;
    display: flex;
    justify-content: space-between;
    padding: 2.5rem 5rem;
  }
  header .main_link.depth1 > li > div a {
    color: #252525;
    font-size: 2.6rem;
    font-weight: 400;
  }
  header .main_link.depth1 > li.active {
    background-color: #002a4f;
  }
  header .main_link.depth1 > li.active > div a {
    color: #fff;
  }
  header .main_link.depth1 > li.active > div span.arrow {
    background-image: url(/img/m_header_arrow_active.png);
  }
  header .main_link.depth1 span.arrow {
    order: 2;
    background-image: url(/img/m_nav_arrow.png);
    width: 2.8rem;
    height: 1.3rem;
  }
  header .main_link .depth2 {
    position: unset;
    background-color: #efefef;
    z-index: 1;
    transform: none;
    padding: 3rem 5rem;
    border-top: none;
  }
  header .main_link .depth2 li {
    padding-block: 1rem;
  }
  header .main_link .depth2 li a {
    font-weight: 300;
    font-size: 2.6rem;
    color: #252525;
  }
  header .close {
    top: 30px;
    font-size: initial;
    background: url(/img/header_close.png) no-repeat;
    background-position: center;
    background-size: cover;
    width: 3.5rem;
    height: 3.5rem;
  }
}
.main_visual {
  display: flex;
}
.main_visual a {
  flex: 1;
  height: calc(100vh - 110px);
  background: url(/img/main_visual_1.png) no-repeat center;
  background-size: cover;
  position: relative;
  overflow: hidden;
  transition: flex 0.3s;
}
.main_visual a:nth-of-type(2) {
  background: url(/img/main_visual_2.png) no-repeat center;
}
.main_visual a:nth-of-type(3) {
  background: url(/img/main_visual_3.png) no-repeat center;
}
.main_visual a:nth-of-type(4) {
  background: url(/img/main_visual_4.png) no-repeat center;
}
.main_visual a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: #000;
  opacity: 0.6;
  z-index: 1;
}
.main_visual a:hover {
  flex: 1.3;
}
.main_visual a:hover::after {
  display: none;
}
.main_visual a:hover .desc {
  transform: translate(-50%, 0);
}
.main_visual img {
  max-width: 100%;
}
.main_visual .txt {
  display: flex;
  flex-direction: column;
  color: #fff;
  position: absolute;
  top: 5.5rem;
  left: 4rem;
  z-index: 10;
}
.main_visual .txt em {
  font-size: 1.6rem;
  font-weight: 400;
  margin-left: 2px;
}
.main_visual .txt h2 {
  font-size: 3.2rem;
  font-weight: 700;
}
.main_visual .txt img {
  width: 6.4rem;
  height: 0.9rem;
  align-self: flex-end;
  margin-left: 1rem;
  -o-object-fit: cover;
     object-fit: cover;
  position: relative;
  left: 2rem;
}
.main_visual .desc {
  position: absolute;
  left: 50%;
  bottom: 3.5rem;
  transform: translate(-50%, 150%);
  transition: all 0.3s;
  font-size: 2rem;
  color: #fff;
  background: #003e59;
  opacity: 0.7;
  border: 5px solid #d5d9d6;
  width: calc(100% - 4rem);
  z-index: 2;
  padding: 1.8rem;
}
.main_visual .desc ul {
  display: flex;
  flex-direction: column;
  gap: 2rem 0;
}
.main_visual .desc h4 {
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.main_visual .desc p {
  font-weight: 500;
  font-size: 1.8rem;
}

.m-main-visual {
  width: 100%;
  display: none;
  position: relative;
}

.main-slide .slide-content-wrap {
  position: relative;
  width: 100%;
  height: 100vh;
  background-size: cover !important;
}
.main-slide .txt {
  top: 10rem;
}
.main-slide .slide-content-1 {
  background: url(/img/main_visual_1.png) no-repeat center;
}
.main-slide .slide-content-2 {
  background: url(/img/main_visual_2.png) no-repeat center;
}
.main-slide .slide-content-3 {
  background: url(/img/main_visual_3.png) no-repeat center;
}
.main-slide .slide-content-4 {
  background: url(/img/main_visual_4.png) no-repeat center;
}

.main-section {
  width: 100%;
  max-width: 1690px;
  margin: 0 auto;
  padding: 0 20px;
}
.main-section.content-1 {
  margin-top: 23rem;
}
.main-section.content-2 {
  padding-bottom: 40rem;
}
.main-section.content-3 {
  margin-top: -11rem;
}
.main-section.contact {
  margin-top: 0;
  padding: 12.5rem 20px;
  max-width: none;
}
.main-section + section {
  margin-top: 23rem;
}

.content-1-grid {
  width: 100%;
  height: 100%;
  gap: 2rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.content-1-grid > div {
  max-width: calc(50% - 1rem);
}
.content-1-grid div:not(.grid-desc) ul {
  display: flex;
  align-items: center;
  gap: 0 1.5rem;
}
.content-1-grid div:not(.grid-desc) li {
  position: relative;
  box-sizing: border-box;
  border: 3px solid transparent;
  display: flex;
  overflow: hidden;
}
.content-1-grid div:not(.grid-desc) li:hover {
  border-color: #75b2e8;
}
.content-1-grid div:not(.grid-desc) li:hover::after {
  display: flex;
}
.content-1-grid div:not(.grid-desc) li:hover p {
  transform: translate(-50%, 0);
}
.content-1-grid div:not(.grid-desc) li::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background: #000;
  opacity: 0.2;
  z-index: 1;
  display: none;
}
.content-1-grid div:not(.grid-desc) li p {
  font-size: 2rem;
  font-weight: 500;
  color: #000;
  background: #fff;
  opacity: 0.7;
  position: absolute;
  bottom: 3rem;
  left: 50%;
  transform: translate(-50%, 170%);
  transition: all 0.3s;
  width: 100%;
  max-width: 27.5rem;
  height: 5rem;
  line-height: 4.8rem;
  text-align: center;
  z-index: 2;
}
.content-1-grid div:not(.grid-desc) li img {
  max-width: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.grid-desc {
  display: flex;
  flex-direction: column;
  gap: 2rem 0;
  width: 100%;
  padding-right: 2rem;
}
.grid-desc em {
  font-size: 3rem;
  color: #087db0;
  font-weight: 400;
}
.grid-desc h3 {
  font-size: 6.2rem;
  color: #003e59;
  font-weight: 700;
  margin-top: 0.8rem;
}
.grid-desc p {
  color: #555555;
  line-height: 28px;
}
.grid-desc .desc {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.grid-desc .desc a {
  font-size: 2.2rem;
  color: #010101;
  border: 1px solid #000;
  width: 22.6rem;
  height: 5.4rem;
  line-height: 5rem;
  text-align: center;
}

.content-2 {
  background: #f9f9f9;
  max-width: 100%;
}
.content-2 .content-inner {
  max-width: 1690px;
  padding: 0 20px;
  margin: 0 auto;
}
.content-2 .title {
  width: 100%;
  text-align: center;
  padding-top: 13.5rem;
}
.content-2 .title h3 {
  font-size: 6.5rem;
  color: #000;
  font-weight: 700;
  margin-bottom: 2rem;
}
.content-2 .title p {
  font-size: 1.8rem;
  color: #5d5d5d;
}

.content-grid-2 {
  margin-top: 10rem;
}
.content-grid-2 ul {
  display: flex;
  width: 100%;
}
.content-grid-2 li {
  display: flex;
}
.content-grid-2 li:not(.desc-list > li) {
  position: relative;
  flex: 1;
  background: url(/img/main_content2_img_1.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  height: auto;
  padding: 12.1%;
  transition: transform 0.15s;
  overflow: hidden;
}
.content-grid-2 li:not(.desc-list > li):hover {
  transform: scale(1.2);
  transition: transform 0.3s;
  z-index: 2;
  box-shadow: 5px 5px 0 rgba(0, 0, 0, 0.1);
}
.content-grid-2 li:not(.desc-list > li):hover::after {
  display: none;
}
.content-grid-2 li:not(.desc-list > li):hover h3 {
  display: none;
}
.content-grid-2 li:not(.desc-list > li):hover .desc {
  transform: translateY(0);
}
.content-grid-2 li:not(.desc-list > li):nth-child(2) {
  background-image: url(/img/main_content2_img_2.jpeg);
}
.content-grid-2 li:not(.desc-list > li):nth-child(3) {
  background-image: url(/img/main_content2_img_3.png);
}
.content-grid-2 li:not(.desc-list > li):nth-child(4) {
  background-image: url(/img/main_content2_img_4.png);
}
.content-grid-2 li:not(.desc-list > li)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background: #000;
  opacity: 0.3;
  z-index: 1;
}
.content-grid-2 h3 {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  font-size: 2.5rem;
  font-weight: 700;
  color: #fff;
  z-index: 2;
}
.content-grid-2 .desc {
  display: flex;
  flex-direction: column;
  gap: 1rem 0;
  background-color: #002a4f;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
  padding: 1.5rem 2.5rem 1.5rem;
  min-height: 40%;
  transform: translateY(150%);
  transition: transform 0.2s;
}
.content-grid-2 .desc h4 {
  color: #36c2ff;
  font-weight: 500;
  font-size: 1.6rem;
}
.content-grid-2 .desc ul {
  display: flex;
  flex-direction: column;
  gap: 0.8rem 0;
}
.content-grid-2 .desc li {
  color: #fff;
  font-weight: 500;
  font-size: 2rem;
}
.content-grid-2 .desc a {
  font-size: 1.6rem;
  color: #fff;
  border: 1px solid #fff;
  padding: 0.6rem 1.5rem;
  width: -moz-fit-content;
  width: fit-content;
  margin-top: 1rem;
}

.m-content-2-slide {
  display: none;
}

.content-product {
  background: url(/img/main_content_3_img.png) no-repeat center;
  height: 22.3rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.content-product-title {
  color: #fff;
  padding-left: 8rem;
}
.content-product-title h3 {
  font-size: 3.2rem;
  font-weight: 700;
  margin-bottom: 1rem;
}
.content-product-title p {
  font-size: 2.2rem;
  font-weight: 400;
}
.content-product a {
  font-size: 1.6rem;
  color: #fff;
  border: 1px solid #fff;
  height: 3.6rem;
  width: 13.6rem;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 8rem;
}

.content-slide {
  width: 100%;
}
.content-slide .swiper-slide-active {
  transform: scale(1.5);
  z-index: 3;
}
.content-slide .swiper-slide-active .desc {
  display: flex;
}

.m-content-2-slide {
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  padding: 8rem 0;
}

.slide-content2-wrap {
  background-size: cover !important;
  height: auto;
  padding-bottom: 100%;
  position: relative;
}
.slide-content2-wrap .desc {
  padding: 1.5rem 2rem;
  display: none;
  flex-direction: column;
  gap: 1rem 0;
  background-color: #002a4f;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2;
}
.slide-content2-wrap .desc h4 {
  color: #36c2ff;
  font-weight: 500;
  font-size: 1.4rem;
}
.slide-content2-wrap .desc ul {
  display: flex;
  flex-direction: column;
  gap: 0.2rem 0;
}
.slide-content2-wrap .desc li {
  color: #fff;
  font-weight: 500;
  font-size: 1.4rem;
}
.slide-content2-wrap .desc a {
  font-size: 1.3rem;
  color: #fff;
  border: 1px solid #fff;
  padding: 0.2rem 1rem;
  width: -moz-fit-content;
  width: fit-content;
}
.slide-content2-wrap.slide-content-1 {
  background: url(/img/main_content2_img_1.png) no-repeat center;
}
.slide-content2-wrap.slide-content-2 {
  background: url(/img/main_content2_img_2.jpeg) no-repeat center;
}
.slide-content2-wrap.slide-content-3 {
  background: url(/img/main_content2_img_3.png) no-repeat center;
}
.slide-content2-wrap.slide-content-4 {
  background: url(/img/main_content2_img_4.png) no-repeat center;
}

.content-partner {
  border: 14px solid #f0f0f0;
  height: 17.7rem;
  margin-block: 7rem;
  overflow: hidden;
}

.content-partner-slide-wrapper {
  height: 100%;
}

.partner-slide {
  height: 100%;
  position: relative;
}
.partner-slide .swiper-btn-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: absolute;
  left: 3rem;
  top: 50%;
  transform: translateY(-50%);
  width: 11.2rem;
  height: 4rem;
  border: 1px solid #f0f0f0;
  background: #fff;
  border-radius: 19px;
  z-index: 1;
  padding: 0 2rem;
}
.partner-slide .swiper-play {
  width: 0.9rem;
  height: 1.4rem;
  background: url(/img/partner_slide_play.png) no-repeat center;
  background-size: cover;
}
.partner-slide .swiper-button-prev {
  position: unset;
  width: auto;
  height: 100%;
  margin-top: 0;
}
.partner-slide .swiper-button-prev::after {
  content: "";
  background: url(/img/partner_slide_prev.png) no-repeat center;
  width: 1.1rem;
  height: 1.7rem;
}
.partner-slide .swiper-button-next {
  position: unset;
  width: auto;
  height: 100%;
  margin-top: 0;
}
.partner-slide .swiper-button-next::after {
  content: "";
  width: 1.1rem;
  height: 1.7rem;
  background: url(/img/partner_slide_next.png) no-repeat center;
}

.slide-content3-wrap {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  height: 100%;
}

.contact {
  position: relative;
}
.contact .form {
  position: relative;
  z-index: 2;
}
.contact::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background: #002a4f;
  opacity: 0.4;
}

@media screen and (max-width: 1400px) {
  .main_visual {
    height: calc(100vh - 60px);
  }
  .main_visual a.item {
    display: none;
  }
  .m-main-visual {
    display: block;
  }
  .m-main-visual .swiper-pagination {
    display: flex;
    align-items: center;
    gap: 0 0.5rem;
    bottom: 3rem;
    left: 50%;
    transform: translateX(-50%);
  }
  .m-main-visual .swiper-pagination .swiper-pagination-bullet {
    background: #fff;
    opacity: 1;
  }
  .m-main-visual .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background: #0000cc;
  }
  .main-section {
    padding: 0;
  }
  .main-section.content-1 {
    margin-top: 10rem;
  }
  .main-section.content-2 {
    padding-bottom: 20rem;
  }
  .main-section + section {
    margin-top: 10rem;
  }
  .main-section:not(.content-2, .contact) {
    padding: 0 1rem;
  }
  .content-1-grid {
    flex-direction: column;
    align-items: center;
  }
  .content-1-grid > div {
    max-width: 100%;
  }
  .content-1-grid div:not(.grid-desc) ul {
    display: flex;
    align-items: center;
    gap: 0 1.5rem;
    width: 100%;
  }
  .content-1-grid div:not(.grid-desc) li {
    width: 50%;
  }
  .content-1-grid div:not(.grid-desc) li::after {
    display: none;
  }
  .content-1-grid div:not(.grid-desc) li img {
    width: 100%;
  }
  .content-1-grid div:not(.grid-desc) li p {
    transform: translate(-50%, 0);
    bottom: 1.5rem;
    width: calc(100% - 6rem);
  }
  .grid-desc {
    align-items: center;
    padding-right: 0;
  }
  .grid-desc br {
    display: none;
  }
  .grid-desc h3 {
    margin-top: 0.8rem;
  }
  .grid-desc .desc {
    flex-direction: column;
    gap: 2rem 0;
  }
  .content-2 .content-inner {
    padding: 0;
  }
  .content-2 .title {
    padding-top: 10rem;
    margin-bottom: 10rem;
  }
  .content-grid-2 {
    display: none;
    margin-top: 10rem;
  }
  .m-content-2-slide {
    display: block;
  }
  .content-product {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2rem 0;
  }
  .content-product .content-product-title {
    width: 100%;
    padding-left: 0;
    text-align: center;
  }
  .content-product .content-product-title h3 {
    font-size: 2.4rem;
  }
  .content-product a {
    margin-right: 0;
  }
  .content-partner {
    margin-block: 3rem;
    position: relative;
    overflow: visible;
  }
  .content-partner .partner-slide {
    position: unset;
  }
  .content-partner .content-partner-slide-wrapper {
    overflow: hidden;
    height: 100%;
  }
  .content-partner .swiper-btn-wrap {
    position: absolute;
    left: 2rem;
    top: 1rem;
  }
  .content-partner .slide-content3-wrap {
    justify-content: center;
    align-items: center;
  }
  .content-partner .slide-content3-wrap img {
    width: 100%;
  }
}
@media screen and (max-width: 768px) {
  .content-slide .swiper-slide-active {
    transform: scale(1.8);
  }
  .content-slide .swiper-slide-active .desc-list {
    display: none;
  }
  .slide-content2-wrap .desc {
    padding: 1.5rem 1rem;
    gap: 1rem 0;
  }
  .slide-content2-wrap .desc h4 {
    font-size: 1.1rem;
  }
  .slide-content2-wrap .desc ul {
    gap: 0.2rem 0;
  }
  .slide-content2-wrap .desc li {
    font-size: 1.2rem;
  }
  .slide-content2-wrap .desc a {
    font-size: 1.1rem;
    padding: 0.5rem;
  }
  .slide-content2-wrap .desc-list {
    display: none;
  }
  .content-partner {
    border-width: 7px;
  }
  .content-partner .swiper-btn-wrap {
    display: none;
  }
}
@media screen and (max-width: 500px) {
  .content-1-grid div:not(.grid-desc) li p {
    font-size: 1.6rem;
    height: 3.5rem;
    line-height: 3.2rem;
    width: calc(100% - 2rem);
  }
  .grid-desc .desc a {
    height: 3.5rem;
    line-height: 3.2rem;
    font-size: 1.8rem;
    width: 15rem;
  }
  .content-2 .title {
    padding-top: 5rem;
    margin-bottom: 4rem;
  }
  .content-2 .title h3 {
    font-size: 3.6rem;
  }
  .slide-content2-wrap .desc {
    padding: 1.2rem 0.8rem;
    gap: 0.6rem 0;
  }
  .slide-content2-wrap .desc li {
    font-size: 1.2rem;
  }
  .slide-content2-wrap .desc a {
    font-size: 1.1rem;
    padding: 0.5rem;
  }
}
.sub-img {
  display: flex;
}
.sub-img.mo {
  display: none;
}

@media screen and (max-width: 1400px) {
  .sub-img {
    display: none;
  }
  .sub-img.mo {
    display: flex;
  }
}
.product-content {
  display: flex;
  flex-direction: column;
  gap: 6rem 0;
  max-width: 1200px;
  width: 100%;
  margin: 7rem auto 0;
}
.product-top {
  display: flex;
  justify-content: space-between;
}
.product-desc {
  display: flex;
  flex-direction: column;
  gap: 3rem 0;
}
.product-desc h3 {
  color: #0186c0;
  font-size: 3rem;
  font-weight: 700;
}
.product-desc ul {
  display: flex;
  flex-direction: column;
  gap: 1rem 0;
}
.product-desc ul li {
  color: #787878;
  font-size: 1.8rem;
  font-weight: 300;
}
.product-item {
  display: flex;
  flex-direction: column;
  gap: 5rem 0;
}
.product-item > div:not(.product-item-image) {
  display: flex;
  flex-direction: column;
  gap: 1.5rem 0;
}
.product-item h4 {
  font-size: 2.6rem;
  color: #242424;
  font-weight: 700;
}
.product.sub_visual::after {
  background-image: url(/img/product_visual.png);
}
.product-item-image {
  display: flex;
  width: 100%;
}
.product-item-image .img-wrap + .img-wrap {
  margin-left: 0rem;
}

@media screen and (max-width: 1400px) {
  .product-content {
    gap: 6rem 0;
    margin: 7rem auto 0;
  }
  .product-desc {
    gap: 3rem 0;
  }
  .product-desc h3 {
    font-size: 3rem;
  }
  .product-desc ul {
    gap: 1rem 0;
  }
  .product-desc ul li {
    font-size: 1.8rem;
  }
  .product-item {
    gap: 5rem 0;
  }
  .product-item > div:not(.product-item-image) {
    gap: 1.8rem 0;
  }
  .product-item h4 {
    font-size: 2.6rem;
  }
}
@media screen and (max-width: 768px) {
  .product-content {
    gap: 6rem 0;
    margin: 4rem auto 0;
  }
  .product-top {
    flex-direction: column;
    gap: 3rem 0;
  }
  .product-item-image {
    flex-direction: column;
  }
  .product-item-image .img-wrap + .img-wrap {
    margin-left: 0;
    margin-top: 3rem;
  }
}
.history-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 1160px;
  padding-inline: 2rem;
  width: 100%;
  margin: 10rem auto 0;
}
.history-slide {
  overflow: hidden;
}
.history-slide .swiper-button-prev {
  left: -5rem;
}
.history-slide .swiper-button-prev::after {
  content: "";
  font-size: 0;
  background: url(/img/history_arrow_prev.png) no-repeat center;
  background-size: cover;
  width: 2.3rem;
  height: 7.2rem;
}
.history-slide .swiper-button-next {
  right: -5rem;
}
.history-slide .swiper-button-next::after {
  content: "";
  font-size: 0;
  background: url(/img/history_arrow_next.png) no-repeat center;
  background-size: cover;
  width: 2.3rem;
  height: 7.2rem;
}
.history-slide-wrap {
  margin-top: 2.5rem;
  max-width: calc(100% - 1px);
  position: relative;
}
.history-info {
  display: flex;
  flex-direction: column;
  gap: 10rem;
}
.history-info dl {
  display: flex;
  flex-direction: column;
  gap: 3rem 0;
  padding-inline: 3rem;
}
.history-info dl > dt {
  font-size: 2.8rem;
  color: #013c71;
  font-weight: 700;
}
.history-info dl > dd {
  display: flex;
  flex-direction: column;
  gap: 3rem 0;
}
.history-info dl > dd > dl {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-end;
  padding-inline: 0;
  gap: 3rem;
}
.history-info dl > dd > dl > dt {
  font-size: 2rem;
  color: #0c662f;
  width: 6rem;
}
.history-info dl > dd > dl > dd {
  width: calc(100% - 9rem);
  font-size: 1.8rem;
  line-height: 1.6;
  color: #787878;
  gap: 0;
  flex-direction: row;
}
.history-info dl > dd > dl > dd em {
  font-weight: 700;
  color: #000;
  margin-right: 0.5rem;
}
.history-total-info-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-block: 4rem;
  background-color: #f9f9f9;
  margin-top: 7rem;
}
.history-total-info {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 4rem;
}
.history-total-info .left {
  display: flex;
  flex-direction: column;
  gap: 2rem 0;
  padding-left: 17rem;
}
.history-total-info .right {
  display: flex;
  flex-direction: column;
  gap: 3rem 0;
}
.history-total-info .right > h3 {
  font-size: 2.8rem;
  color: #020202;
  font-weight: 700;
}
.history-total-info .right ul {
  display: flex;
  flex-direction: column;
  gap: 3.5rem 0;
}
.history-total-info .right li {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0 3rem;
}
.history-total-info .right h4 {
  font-size: 2rem;
  font-weight: 700;
  color: #454545;
  width: 5.4rem;
}
.history-total-info .right p {
  width: calc(100% - 8.4rem);
  color: #787878;
  font-weight: 300;
  font-size: 1.8rem;
}
.history-now {
  margin-top: 10rem;
  padding-bottom: 10rem;
  border-bottom: 1px solid #787878;
}

@media screen and (max-width: 1160px) {
  .history-content {
    padding-inline: 0;
    margin: 0 auto;
  }
  .history-slide .swiper-button-prev {
    display: none;
  }
  .history-slide .swiper-button-next {
    display: none;
  }
  .history-slide img {
    width: 100%;
  }
  .history-slide-wrap {
    margin-top: 2.5rem;
    max-width: 100%;
  }
  .history-info {
    gap: 5rem;
  }
  .history-info dl {
    padding-inline: 0;
  }
  .history-info dl > dd {
    gap: 2rem 0;
  }
  .history-info dl > dd > dl {
    flex-direction: column;
    justify-content: flex-end;
    gap: 0.8rem 0;
  }
  .history-info dl > dd > dl > dt {
    width: auto;
    flex: 1;
  }
  .history-info dl > dd > dl > dd {
    width: auto;
    flex: 1;
  }
  .history-info dl > dd > dl > dd em {
    margin-right: 1rem;
    white-space: nowrap;
  }
  .history-total-info-wrap {
    padding: 2rem;
    margin-top: 4rem;
  }
  .history-total-info {
    gap: 3rem 0;
    flex-direction: column;
    width: 100%;
  }
  .history-total-info .left {
    flex-direction: row;
    gap: 0 2rem;
    padding-left: 0;
    width: 100%;
  }
  .history-total-info .left .img-wrap {
    flex: 1;
  }
  .history-total-info .left .img-wrap img {
    width: 100%;
  }
  .history-total-info .right {
    display: flex;
    flex-direction: column;
    gap: 3rem 0;
    width: 100%;
  }
  .history-total-info .right ul {
    gap: 2.5rem 0;
  }
  .history-total-info .right li {
    gap: 1.5rem 0;
    flex-direction: column;
  }
  .history-total-info .right h4 {
    font-size: 2rem;
    font-weight: 700;
    color: #454545;
    width: auto;
    flex: 1;
  }
  .history-total-info .right p {
    width: auto;
    flex: 1;
  }
  .history-now {
    margin-top: 5rem;
    padding-bottom: 5rem;
  }
}
.chart-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 7rem;
}
.chart-content .img-wrap {
  margin-top: 3rem;
}
.chart-content .mo-only {
  display: none;
}

@media screen and (max-width: 1400px) {
  .chart-content .mo-only {
    display: flex;
  }
  .chart-content .pc-only {
    display: none;
  }
}
.mission-content {
  max-width: 1180px;
  padding-inline: 2rem;
  margin: 7rem auto 0;
}
.mission-list {
  display: grid;
  gap: 0 2.4rem;
  grid-template-rows: 1fr;
  grid-template-columns: 1fr 1fr 1fr;
  margin-top: 5rem;
}
.mission-list li {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border: 1px solid #d9d9d9;
  padding: 2rem 0.8rem 1rem;
}
.mission-list li:nth-child(2) .mission-title {
  color: #c53131;
}
.mission-list li:nth-child(2) .mission {
  background-color: #fff5f5;
  color: #c53131;
}
.mission-list li:nth-child(3) .mission-title {
  color: #026a2e;
}
.mission-list li:nth-child(3) .mission {
  background-color: #f2fff6;
  color: #026a2e;
}
.mission-title {
  font-size: 2.6rem;
  font-weight: 700;
  color: #005c8a;
  margin-bottom: 1.5rem;
}
.mission-img {
  border-bottom: 1px solid #d9d9d9;
  padding-bottom: 2rem;
}
.mission-img h5 {
  font-size: 2rem;
  font-weight: 700;
  color: #282828;
  margin: 2rem 0 2rem;
}
.mission-img p {
  font-size: 1.8rem;
  font-weight: 300;
  line-height: 25px;
}
.mission-desc {
  width: 100%;
}
.mission-desc p:not(.mission) {
  font-size: 1.5rem;
  font-weight: 300;
  padding-block: 2rem;
  line-height: 25px;
}
.mission {
  padding-block: 1.5rem 2rem;
  background-color: #f2faff;
  color: #005c8a;
  line-height: 20px;
}

@media screen and (max-width: 1200px) {
  .mission-content {
    padding-inline: 0;
  }
  .mission-content br {
    display: none;
  }
  .mission-list {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr 1fr;
    gap: 4rem 0;
  }
  .mission {
    padding-inline: 1rem;
  }
  .mission-desc p:not(.mission) {
    line-height: 1.4;
  }
}
.outline-content {
  display: flex;
  flex-direction: column;
  max-width: 1180px;
  padding-inline: 2rem;
  margin: 7rem auto 0;
}
.outline-content .font {
  margin-bottom: 3rem;
}
.outline-img {
  margin-bottom: 5rem;
}
.outline-img p {
  font-size: 1.8rem;
  line-height: 1.66;
  font-weight: 300;
  color: #787878;
  margin-top: 7rem;
}
.outline-table table {
  width: 100%;
}
.outline-table br {
  display: none;
}
.outline-table tbody tr {
  border-bottom: 1px solid #dee1e6;
}
.outline-table tbody tr:first-of-type {
  border-top: 1px solid #dee1e6;
}
.outline-table tbody td {
  padding-left: 2rem;
  height: 4.8rem;
  line-height: 4.8rem;
  width: calc(100% - 21.9rem);
}
.outline-table tbody td:first-of-type {
  padding-left: 0;
  text-align: center;
  color: #fff;
  background-color: #002a4f;
  width: 21.9rem;
}

@media screen and (max-width: 1200px) {
  .outline-content {
    padding-inline: 0;
  }
  .outline-table table br {
    display: block;
  }
  .outline-table table tr td {
    width: calc(100% - 12rem);
  }
  .outline-table table tr td:first-of-type {
    width: 12rem;
  }
  .outline-table table tr:nth-child(6) td:first-of-type, .outline-table table tr:nth-child(7) td:first-of-type {
    line-height: 18.6rem;
    vertical-align: top;
  }
}
.map-content {
  margin: 7rem auto 0;
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 1180px;
  padding-inline: 2rem;
}
.map-content .font {
  margin-bottom: 3rem;
}
.map-factory-wrap {
  display: flex;
  flex-direction: column;
  gap: 7rem 0;
}
.map-factory {
  display: flex;
  flex-direction: column;
}
.map-factory .map-wrap {
  width: 100%;
}
.map-factory .map-wrap iframe {
  width: 100%;
}
.map-factory:first-of-type {
  border-bottom: 1px solid #dedede;
  padding-bottom: 4rem;
}
.map-desc {
  display: flex;
  flex-direction: column;
  padding-inline: 5rem;
  padding-block: 2rem;
  gap: 2rem 0;
}
.map-desc h4 {
  font-size: 2.5rem;
  font-weight: 700;
  color: #000000;
}
.map-desc ul {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.map-desc li {
  display: flex;
  align-items: center;
  gap: 0 1rem;
}
.map-desc li:nth-child(2) .icon {
  width: 2.9rem;
  height: 3.7rem;
  background-image: url(/img/map_icon_2.png);
}
.map-desc li:nth-child(3) .icon {
  width: 3.9rem;
  height: 3.8rem;
  background-image: url(/img/map_icon_3.png);
}
.map-desc .icon {
  background: url(/img/map_icon_1.png) no-repeat center;
  background-size: cover;
  width: 3.3rem;
  height: 3.5rem;
}

@media screen and (max-width: 1200px) {
  .map-content {
    padding-inline: 0;
  }
  .map-desc {
    padding-inline: 0;
  }
  .map-desc ul {
    flex-direction: column;
    align-items: flex-start;
    gap: 2rem 0;
  }
}
.partner-content {
  margin: 7rem auto 0;
  padding-inline: 2rem;
  max-width: 1180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3rem 0;
}
.partner-list ul {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
  gap: 2rem;
}
.partner-list li {
  border: 1px solid #dedede;
}

@media screen and (max-width: 1200px) {
  .partner-content {
    padding-inline: 0;
  }
  .partner-list ul {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(6, 1fr);
  }
}
.certificate-content {
  display: flex;
  flex-direction: column;
  margin: 7rem auto 0;
  max-width: 1180px;
  padding-inline: 2rem;
}
.certificate-list {
  margin-top: 7rem;
}
.certificate-list ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: auto;
  gap: 6rem 2rem;
}
.certificate-list li {
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 0;
}
.certificate-info {
  display: flex;
  flex-direction: column;
}
.certificate-desc {
  width: 100%;
  height: calc(100% - 350px - 1rem);
  gap: 1rem 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
}
.certificate-desc p {
  color: #787878;
  font-size: 1.8rem;
  line-height: 2.5rem;
  text-align: center;
}
.certificate-more {
  background: #002a4f;
  font-size: 1.2rem;
  color: #fff;
  width: 10.2rem;
  height: 2.7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0 0.6rem;
}
.certificate-more .icon {
  position: relative;
  width: 1.6rem;
  height: 1.6rem;
  background: #fff;
  border-radius: 50%;
}
.certificate-more .icon::after, .certificate-more .icon::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 2px;
  height: 10px;
  background: #002a4f;
}
.certificate-more .icon::after {
  transform: translate(-50%, -50%) rotate(-90deg);
}

@media screen and (max-width: 1200px) {
  .certificate-list ul {
    grid-template-columns: repeat(3, 1fr);
  }
  .certificate-desc {
    height: auto;
  }
  .certificate-info {
    height: 4.5rem;
  }
}
@media screen and (max-width: 768px) {
  .certificate-content {
    padding-inline: 0;
    margin-top: 4rem;
  }
  .certificate-list {
    margin-top: 3rem;
  }
  .certificate-list ul {
    grid-template-columns: repeat(2, 1fr);
  }
}
.major-product-content {
  margin: 7rem auto 0;
  max-width: 1180px;
  width: 100%;
  padding-inline: 2rem;
  display: flex;
  flex-direction: column;
}
.major-product-header {
  background: #eff1f4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  width: 100%;
  gap: 2rem 0;
}
.major-product-header p {
  font-size: 2.2rem;
  line-height: 1.5;
  color: #303031;
  font-weight: 300;
  text-align: center;
}
.major-product-header p em {
  font-weight: 700;
  color: #0183c0;
}
.major-product-tel {
  width: 100%;
}
.major-product-tel ul {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  width: 100%;
}
.major-product-tel li {
  display: flex;
  align-items: center;
  gap: 0 0.6rem;
  font-size: 2rem;
  font-weight: 700;
  color: #002a4f;
}
.major-product-tel li:nth-child(2) .icon {
  width: 3.9rem;
  height: 3.8rem;
  background-image: url(/img/map_icon_3.png);
}
.major-product-tel .icon {
  background-image: url(/img/map_icon_2.png);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  width: 2.9rem;
  height: 3.7rem;
}
.major-product-list {
  display: flex;
  flex-direction: column;
  padding-inline: 4rem;
  margin-top: 7rem;
}
.major-product-list > li {
  display: flex;
  justify-content: space-between;
  padding-block: 5rem;
  border-bottom: 1px solid #ededed;
}
.major-product-list ul {
  display: flex;
  flex-direction: column;
  gap: 0.8rem 0;
}
.major-product-list ul li {
  font-size: 1.8rem;
  color: #787878;
  font-weight: 300;
}
.major-product-desc {
  display: flex;
  flex-direction: column;
  gap: 2rem 0;
}

@media screen and (max-width: 860px) {
  .major-product-content {
    margin-top: 5rem;
    padding-inline: 0;
  }
  .major-product-header p {
    font-size: 2rem;
  }
  .major-product-tel li {
    gap: 0 0.6rem;
    font-size: 1.8rem;
  }
  .major-product-list {
    padding-inline: 0;
    margin-top: 5rem;
  }
  .major-product-list > li {
    padding-block: 3rem;
    flex-direction: column;
    gap: 3rem 0;
  }
}
@media screen and (max-width: 424px) {
  .major-product-tel ul {
    flex-direction: column;
    gap: 2rem 0;
  }
}
.sub_visual.aboutus::after {
  background-image: url(/img/aboutus_bg.png);
}

.sub-visual-text-wrap {
  margin-top: 7rem;
}

.font.title {
  font-size: 3rem;
  line-height: 1.3;
  color: #0186c0;
  font-weight: 700;
}
.font.title.center {
  text-align: center;
}

.sub-content {
  width: 100%;
  max-width: 1650px;
  margin: 0 auto 300px;
  display: flex;
  flex-direction: column;
  padding: 0 2rem;
}
.sub-content .bread {
  margin: 0;
  margin-left: auto;
  margin-top: 2rem;
}

.about-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin: 7rem auto 0;
  width: 100%;
  max-width: 1300px;
}
.about-title {
  font-size: 3.5rem;
  font-weight: 700;
  color: #0186c0;
}
.about-header {
  background: url(/img/aboutus_img.png) no-repeat;
  width: 100%;
  height: 200px;
  background-size: cover;
  background-position: center;
  margin-top: 2.5rem;
}
.about-desc {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 2.5rem;
  width: 100%;
}
.about-left {
  display: flex;
  flex-direction: column;
  gap: 30px;
  margin-top: 1.5rem;
}
.about-left p {
  line-height: 1.66;
  color: #787878;
  font-weight: 400;
}
.about-sign {
  display: flex;
  align-items: center;
  gap: 0 2rem;
  margin-top: 2rem;
}
.about-sign p {
  color: #474747;
  font-weight: 500;
}
.about-sign .sign {
  background: url(/img/ceo_sign.png) no-repeat;
  width: 20.4rem;
  height: 7.5rem;
  background-size: cover;
}
.about-ceo-img {
  background-color: #f0f1f1;
  font-size: 2rem;
  font-weight: 400;
  color: #787878;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

.floating-menu {
  display: none;
  width: -moz-fit-content;
  width: fit-content;
  position: fixed;
  bottom: 5rem;
  right: 2rem;
  z-index: 10;
}
.floating-menu ul {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.floating-menu li {
  width: 7rem;
  height: 7rem;
  border-radius: 100%;
}
.floating-menu li a, .floating-menu li button {
  display: block;
  width: 100%;
  height: 100%;
}
.floating-menu li a {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #fff;
  line-height: 1.2;
  text-align: center;
}
.floating-menu li:first-child {
  display: none;
  background-color: #0000cc;
}
.floating-menu li:last-child {
  background-color: #777a7a;
  background-image: url(../img/btn_top.png);
  background-repeat: no-repeat;
  background-position: center;
}

footer {
  border-top: 1px solid #c2d1d7;
  margin-top: 2rem;
}
footer ul {
  display: flex;
  flex-direction: column;
  gap: 0.3rem 0;
  width: -moz-fit-content;
  width: fit-content;
}
footer ul li {
  display: flex;
  gap: 0 2rem;
}
footer .copy {
  margin-top: 3rem;
}

.img-wrap img {
  max-width: 100%;
}

.image-popup {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}
.image-popup .popup-body {
  z-index: 2;
  max-height: calc(100vh - 2rem);
  max-width: calc(100vw - 2rem);
  position: relative;
}
.image-popup .popup-body .img-wrap {
  height: 100%;
}
.image-popup .popup-body .img-wrap img {
  height: inherit;
}
.image-popup .dimm {
  content: "";
  background-color: #000;
  opacity: 0.3;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
}

[data-ui=popup-close] {
  width: 2.8rem;
  height: 2.8rem;
  border-radius: 50%;
  background: #002a4f;
  position: absolute;
  right: 1rem;
  top: 1rem;
}
[data-ui=popup-close]::after, [data-ui=popup-close]::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) rotate(45deg);
  width: 1px;
  height: 12px;
  background: #fff;
}
[data-ui=popup-close]::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

@media screen and (max-width: 1400px) {
  .font.title {
    font-size: 2.4rem;
  }
  .floating-menu {
    display: block;
  }
  .sub-content .bread {
    display: none;
  }
  .about-desc {
    flex-wrap: wrap;
    flex-direction: column;
    margin-top: 3rem;
  }
  .about-desc br {
    display: none;
  }
  .about-left {
    order: 2;
    margin-top: 3rem;
  }
  .about-right {
    order: 1;
  }
  footer ul {
    gap: 0.3rem 0;
  }
  footer ul li {
    flex-wrap: wrap;
  }
  footer ul li:nth-child(3) {
    margin-top: 3rem;
  }
  footer ul li:nth-child(2) p:first-of-type, footer ul li:nth-child(3) p:first-of-type {
    width: 100%;
  }
  footer .copy {
    margin-top: 3rem;
  }
}
@media screen and (max-width: 768px) {
  html {
    font-size: 9px;
  }
  .floating-menu {
    display: block;
  }
  .sub-content .bread {
    display: none;
  }
  .about-title {
    font-size: 3.5rem;
  }
  .about-desc {
    flex-wrap: wrap;
    flex-direction: column;
    margin-top: 3rem;
  }
  .about-desc br {
    display: none;
  }
  .about-left {
    margin-top: 3rem;
  }
}
@media screen and (max-width: 424px) {
  html {
    font-size: 8px;
  }
}/*# sourceMappingURL=new_common.css.map */