.sub-visual {
  /* border-bottom: 1px solid #ccc; */
}

.sub-tab {
  border-bottom: 1px solid #ccc;
  font-size: 20px;
}
.sub-tab ul {
  display: flex;
  gap: 2.8rem;
}
.sub-tab a {
  display: block;
  padding: 0 0 2.4rem;
  font-weight: 500;
  color: #999;
  transition: 0.2s;
}
.sub-tab li {
}
.sub-tab li.active {
  border-bottom: 2px solid #000;
}
.sub-tab li.active a,
.sub-tab li:hover a {
  color: var(--Color---black, #0e0e0e);
}

.sub_wrap .t_red {
  font-weight: 600;
  color: #ce2929 !important;
}
.sub-con {
  padding: 10rem 0;
}
/* sub quick */
.sub-quick {
  position: sticky;
  top: 15rem;
  right: 5%;
  min-width: 470px;
  padding: 2.4rem;
  overflow: hidden;
  z-index: 98;
  background: #f7f7f7;
  border-radius: 2rem;
}
.sub-quick.scr {
  position: fixed;
  top: 12.5rem;
}

.sub-quick .q-info .row {
  margin-bottom: 2.4rem;
  padding-bottom: 2.4rem;
  border-bottom: 1px solid rgba(204, 204, 204, 0.6);
}
.sub-quick .q-info .row:last-of-type {
  margin: 0;
  padding: 0;
  border-bottom: 0;
}
.sub-quick .q-info dl {
  margin-bottom: 2.4rem;
  font-size: 18px;
}
.sub-quick .q-info dt {
  margin-bottom: 0.8rem;
  font-size: 20px;
  font-weight: 600;
}

/* gallery */
.gall-list ul {
  display: flex;
  flex-wrap: wrap;
  text-align: center;
  flex-wrap: wrap;
  /* justify-content: space-between; */
  gap: 2rem 2%;
}
.gall-list ul li {
  width: 32%;
  border: 1px solid #ccc;
}
.gall-list ul li a {
  display: block;
  padding: 2.4rem 3rem;
  position: relative;
}
.gall-list ul li .img-box {
  margin-bottom: 1.6rem;
}
.gall-list .text-box .s-title {
  color: #777;
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 0.2rem;
}
.gall-list .text-box .title {
  font-size: 20px;
  font-weight: 500;
}
.gall-list .text-box .title i {
  display: inline-block;
  vertical-align: -20%;
  width: 2.4rem;
  height: 2.5rem;
  background: url(../img/icon_arrow_up_right.svg) no-repeat center/100%;
}

.gall-list .text-box .title:after {
  background: url(../img/icon_arrow_up_right.svg) no-repeat right;
}

.view-top {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.view-top .img-box {
  width: 40%;
}
.view-top .view-info {
  width: 55%;
}

.view-info .cate {
  display: inline-flex;
  align-items: center;
  font-size: 20px;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 1rem;
}
.view-info .cate:hover {
  text-decoration: underline;
}
.view-info .cate::after {
  content: "";
  width: 2.4rem;
  height: 2.4rem;
  display: inline-flex;
  background: url(../img/icon_chevron_right.svg) no-repeat center/cover;
}
.view-info .title {
  display: flex;
  justify-content: space-between;
  font-size: 48px;
  font-weight: 700;
  align-items: center;
  margin-bottom: 2rem;
}

.view-info .desc {
  font-size: 24px;
  color: var(--Color---dark-gray);
  font-weight: 500;
}
.view-info .spec {
  margin-top: 5.6rem;
}
.view-info .spec-title {
  font-size: 20px;
  margin-bottom: 1.6rem;
}
.view-info .spec-list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  text-align: center;
}
.view-info .spec-list dl {
  flex: 1;
}
.view-info .spec-list dt,
.view-info .spec-list dd {
  padding: 1.6rem;
  font-size: 15px;
  border-top: 1px solid #ccc;
}
.view-info .spec-list dt {
  background-color: var(--Color---black);
  color: #fff;
}
.view-info .spec-list dd {
  border-bottom: 1px solid #ccc;
}
.view-con {
  background: #f7f7f7;
}
.view-con img {
  width: 100%;
  max-width: 100%;
  margin-bottom: 2.4rem;
}
.sub-cate ul,
#bo_cate_ul
{
  display: flex;
  gap: 1.4rem;
}

.sub-cate li a,
#bo_cate_ul li a
{
  display: block;
  padding: 1.6rem 2rem;
  border: 1px solid var(--Color---dark-gray);
  font-size: 18px;
  font-weight: 600;
  color: var(--Color---dark-gray);
  border-radius: 100rem;
  transition: 0.2s;
  text-transform: uppercase;
}
.sub-cate li:hover a,
.sub-cate li.active a ,
#bo_cate_ul li:hover a,
#bo_cate_ul li #bo_cate_on
{
  border: 1px solid var(--Color---black);
  color: var(--Color---white);
  background: var(--Color---black);
}

/* form */
.ipt-box {
  margin-bottom: 2.5rem;
  font-size: 1.25rem;
}
.ipt-box input[type="text"],
.ipt-box input[type="email"],
.ipt-box input[type="tel"],
.ipt-box select,
textarea {
  width: 100%;
  padding: 1.5rem 1.25rem;
  border: 1px solid #ccc;
  box-shadow: none;
  background: #fff;
  font-size: 18px;
  border-radius: 0.8rem;
}
.ipt-box input:focus {
  outline: 0;
  box-shadow: none;
}
.ipt-box input[type="checkbox"] {
  width: 20px;
  border-radius: 0;
  aspect-ratio: 1/1;
}
.ipt-box label {
  position: relative;
  display: inline-block;
  margin-bottom: 1.2rem;
  font-size: 18px;
  color: var(--Color---black);
}
.ipt-box label.required {
  background: none !important;
}
.ipt-box label.required:after {
  content: "";
  position: absolute;
  top: 0;
  right: -0.8rem;
  width: 5px;
  height: 5px;
  background: var(--color-point);
  border-radius: 50%;
}

.ipt-box button {
  border: 0;
  box-shadow: 0;
}
.ipt-box h5 {
  margin-bottom: 1.125rem;
  font-size: 18px;
  font-weight: 600;
}

.email-box {
  display: flex;
  gap: 1rem;
  align-items: center;
}

.ipt-list {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.ipt-list > li.wd100 {
  width: 100%;
  margin-bottom: 0.3125rem;
}
.ipt-list.list1 > li {
  width: 100%;
  margin-bottom: 0.25rem;
}
.ipt-list.list1 > li:last-child {
  margin-bottom: 0;
}
.ipt-list.list2 > li {
  width: 49%;
}
.ipt-list.list3 > li {
  width: 32%;
  margin-bottom: 0.3125rem;
}
.ipt-list.list4 {
  justify-content: flex-start;
}
.ipt-list.list4 > li {
  width: 24%;
  margin: 0 0.5%;
  margin-bottom: 0.3125rem;
}
.ipt-list.list5 {
  justify-content: flex-start;
}
.ipt-list.list5 > li {
  width: 19%;
  margin: 0 0.5%;
  margin-bottom: 0.3125rem;
}

.ipt-list.list8 > li {
  width: calc(100% / 8);
  margin-bottom: 0.3125rem;
}

.ipt-list.check {
  gap: 1rem;
  justify-content: start;
}
.ipt-list.check li {
  display: flex;
  gap: 0.3125rem;
  align-items: center;
}

.small-inner {
  width: 100%;
  max-width: 685px;
}

.submit-btn {
  width: 100%;
  background: url(../img/submit_btn_bg.jpg) no-repeat center/cover;
  font-size: 18px;
  font-weight: 600;
  color: var(--Color---white);
  border-radius: 100rem;
  padding: 2rem 0.5rem;
}

.bk-btn {
  display: inline-block;
  background: url(../img/submit_btn_bg.jpg) no-repeat center/cover;
  font-size: 18px;
  font-weight: 600;
  color: var(--Color---white);
  border-radius: 100rem;
  padding: 1.2rem 2.4rem;
}
.bk-btn span {
  padding-right: 2rem;
  background: url(../img/icon_arrow_up_right_w.svg) no-repeat 200%;
}
.en_body .bk-btn span {
  background: url(../img/icon_arrow_up_right_w.svg) no-repeat 170%;
}

.sub-tit-wrap .stxt {
  display: inline-block;
  margin-bottom: 1.2rem;
  font-size: 20px;
  font-weight: 600;
}
.sub-tit-wrap h2 {
  font-size: 48px;
  color: var(--Color---black);
}

.sub-tit-wrap h3 {
  font-size: 40px;
  color: var(--Color---black);
}

.sub-desc {
  font-size: 20px;
  font-style: normal;
  line-height: 1.7;
}

/* sub01 */
.sub01-1 .con01 {
  text-align: center;
  text-transform: uppercase;
}
.sub01-1 .con01 .img-box {
  margin: 6rem 0;
}

.sub01-1 .con01 h4 {
  margin-bottom: 1.6rem;
  font-size: 28px;
  font-weight: 700;
}

.sub01-1 .con02 {
  padding: 24.8rem 0;
  background: url(../img/sub01_1_bg01.jpg) no-repeat 100% / cover;
}
.sub01-1 .con02 .inner {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
}
.sub01-1 .con02 .stxt {
  margin-bottom: 0.8rem;
  font-size: 16px;
}
.sub01-1 .con02 .sub-desc {
  margin-top: 2rem;
  margin-bottom: 4.8rem;
  font-size: 16px;
  line-height: 1.7;
  color: var(--Color---dark-gray);
}
.sub01-1 .con02 .sub-tit-wrap {
  width: 35%;
}
.sub01-1 .con02 .pd-list {
  width: 60%;
  display: flex;
  gap: 4rem;
}
.sub01-1 .con02 .pd-list li {
  position: relative;
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 10rem 3rem;
  box-shadow: 12px 12px 48px 0 rgba(0, 0, 0, 0.05);
  background: #fff;
  transition: 0.2s;
  border-radius: 4rem;
}
.sub01-1 .con02 .pd-list li > p {
  position: absolute;
  bottom: 3rem;
  left: 50%;
  font-weight: 600;
  transform: translateX(-50%);
}
.sub01-1 .con02 .pd-list li:hover {
  border-radius: 100rem;
}
.sub01-1 .con02 .pd-list li:hover > p {
  opacity: 0;
}
.sub01-1 .con02 .pd-list li:hover .over-layer {
  z-index: 1;
  opacity: 1;
}
.over-layer {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
  background: rgba(206, 41, 41, 0.8);
  transition: 0.2s;
  opacity: 0;
  border-radius: 100rem;
}

.over-layer p {
  position: absolute;
  top: 50%;
  left: 50%;
  font-weight: 600;
  color: #fff;
  transform: translate(-50%, -50%);
}
.sub01-1 .con03 .t_red {
  color: var(--color---primary-color) !important;
}
.sub01-1 .con03 h3 {
  color: #fff;
}
.sub01-1 .con03 {
  background: url(../img/sub01_1_bg02.jpg) no-repeat 100% / cover;
  /* padding: 24.8rem 0; */
  text-align: center;
}

.sub01-1 .con03 .img-box img {
  max-width: 322px;
}

.cert-list {
  display: flex;
  gap: 3.6rem;
  justify-content: center;
  margin-top: 6rem;
  color: #fff;
}
.cert-list li {
  width: 50%;
  max-width: 322px;
}
.cert-list p {
  margin-top: 2rem;
  font-size: 20px;
}

/* sub02 */
.sub02-1 .sub-con {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  padding: 0;
}

.sub02-1 .img-box,
.sub02-1 .text-box {
  width: 50%;
  text-align: center;
}

.sub02-1 .text-box {
  display: flex;
  align-items: center;
  background: linear-gradient(131deg, #fff 0%, #eef0f8 100%);
}
.sub02-1 .text-box span {
  display: block;
  margin-bottom: 1.2rem;
  font-size: 20px;
  font-weight: 600;
  color: var(--Color---black, #0e0e0e);
  text-transform: uppercase;
}
.sub02-1 .text-box h2 {
  font-size: 56px;
  color: var(--Color---black, #0e0e0e);
  text-align: center;
  text-transform: uppercase;
}
.sub02-1 .text-box h2:after {
  content: "";
  width: 4rem;
  height: 2px;
  display: block;
  margin: 4rem auto;
  background: var(--Color---dark-gray, #555);
}
.sub02-1 .text-box p {
  font-size: 18px;
  line-height: 1.7;
}
.sub02-1 .img-box {
  position: relative;
  height: 900px;
  color: #fff;
}
.sub02-1 .img-box span {
  position: absolute;
  bottom: 3rem;
  left: 50%;
  font-size: 24px;
  font-weight: 600;
  text-shadow: 0 0 36px rgba(0, 0, 0, 0.3);
  transform: translateX(-50%);
}

.sub02-1 .con01 {
  padding: 14.5rem 0 4rem;
  background: url(../img/sub02_1_bg01.jpg) no-repeat center/cover;
  color: #fff;
  text-align: center;
  text-shadow: 0 0 36px rgba(0, 0, 0, 0.3);
}
.sub02-1 .con01 h3 {
  margin-bottom: 1.6rem;
  font-size: 40px;
  font-weight: 700;
}
.sub02-1 .con01 h4 {
  margin-bottom: 0.8rem;
  font-size: 24px;
  font-weight: 700;
}
.sub02-1 .con01 p {
  font-size: 18px;
  font-weight: 500;
  line-height: 1.7;
}
.sub02-1 .con01 .mv-scroll span {
  margin-top: 4.4rem;
  color: #fff;
}
.sub02-1 .con02 .img-box {
  background: url(../img/sub02_1_bg02.jpg) no-repeat center/cover;
}

.sub02-1 .con03 .img-box {
  background: url(../img/sub02_1_bg03.jpg) no-repeat center/cover;
}

.sub02-1 .con04 .img-box {
  background: url(../img/sub02_1_bg04.jpg) no-repeat center/cover;
}

.sub02-1 .con05 .img-box {
  background: url(../img/sub02_1_bg05.jpg) no-repeat center/cover;
}
/* sub03 */

/* sub06 */
.sub06-1 .con01 .inner {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}

@media screen and (max-width: 1440px) {
  .sub02-1 .text-box h2 {
    font-size: 46px;
  }
  .sub02-1 .text-box p {
    font-size: 16px;
  }
}
@media screen and (max-width: 1280px) {
  .sub-quick {
    display: none;
  }
  .small-inner {
    max-width: 100%;
  }
}

@media screen and (max-width: 1024px) {
  .sub-cate li a ,
  #bo_cate_on li a
  {
    padding: 1rem 2rem;
    font-size: 16px;
  }
  .sub-con,
  .sub01-1 .con02 {
    padding: 6rem 0;
  }
  .ipt-box input[type="text"],
  .ipt-box input[type="email"],
  .ipt-box input[type="tel"],
  .ipt-box select,
  textarea,
  .submit-btn {
    font-size: 14px;
    padding: 1.6rem 0.5rem;
  }
  .ipt-box label {
    font-size: 16px;
  }
  .sub-tit-wrap h3 {
    font-size: 30px;
  }
  .sub-desc,
  .cert-list p {
    font-size: 16px;
  }
  .sub01-1 .con02 .more-btn {
    justify-content: center;
  }
  .sub01-1 .con02 .inner {
    gap: 4rem;
    text-align: center;
  }
  .sub01-1 .con02 .sub-tit-wrap,
  .sub01-1 .con02 .pd-list {
    width: 100%;
    justify-content: center;
  }
  .sub01-1 .con02 .sub-tit-wrap br {
    display: none;
  }
  .sub-tit-wrap h2 {
    font-size: 38px;
  }
  .sub01-1 .con02 .pd-list,
  .cert-list {
    gap: 2rem;
  }
  .sub01-1 .con02 .pd-list li {
    padding: 5rem 3rem 10rem;
  }
  .sub01-1 .con02 .sub-desc {
    font-size: 14px;
  }
  .sub02-1 .img-box,
  .sub02-1 .text-box {
    width: 100%;
  }
  .sub02-1 .text-box {
    padding: 6rem 0;
  }
  .sub02-1 .img-box {
    height: 360px;
  }
  .sub02-1 .con02,
  .sub02-1 .con04 {
    flex-direction: column-reverse;
  }
  .view-info .title {
    font-size: 38px;
  }
  .view-info .cate {
    font-size: 15px;
  }
  .bk-btn span {
    font-size: 14px;
    padding-right: 3rem;
  }
  .view-info .desc {
    font-size: 20px;
  }
  .view-info .spec-title {
    font-size: 18px;
  }
  .view-info .spec {
    margin-top: 3.6rem;
  }
  .view-info .spec-list dl {
    flex: auto;
    width: 100%;
    margin-bottom: 1rem;
  }
}

@media screen and (max-width: 768px) {
  .sub-tab,
  .sub-cate,
  #bo_cate
  {
    overflow-x: auto;
    font-size: 16px;
    white-space: nowrap;
  }

  .subtop-con-wrap {
    padding: 4rem 0;
  }
  .sub_nav_ul {
    font-size: 14px;
  }
  .gall-list ul li {
    width: 100%;
  }
  .gall-list .text-box .s-title {
    font-size: 14px;
  }
  .gall-list .text-box .title {
    font-size: 16px;
  }
  .gall-list .text-box .title i {
    width: 2rem;
    height: 2.1rem;
    display: block;
    margin: 0 auto;
  }

  .sub02-1 .text-box h2,
  .sub02-1 .con01 h3 {
    font-size: 26px;
  }
  .sub02-1 .text-box span {
    font-size: 14px;
  }
  .sub02-1 .img-box span,
  .sub02-1 .con01 h4 {
    font-size: 16px;
  }
  .sub02-1 .con01 p {
    font-size: 13px;
  }
  .sub02-1 .con01 {
    padding-top: 6rem;
  }
  .sub02-1 .text-box p {
    font-size: 14px;
  }
  .sub02-1 .text-box p br {
    display: none;
  }
  .view-top {
    flex-direction: column;
    align-items: center;
  }
  .view-top .view-info,
  .view-top .img-box {
    width: 100%;
    text-align: center;
  }

  .view-info .title {
    flex-direction: column;
    font-size: 28px;
    gap: 1rem;
  }
  .gall-view-wrap .con01 {
    padding-top: 0;
  }
  .view-info .desc {
    font-size: 18px;
  }
  .view-info .spec-list dt,
  .view-info .spec-list dd {
    padding: 1rem 1.6rem;
  }
}
