::selection {background: #737373; color: #ffffff;}

/* font */
@import url('https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&display=swap');

.biz-udpgothic-regular {
  font-family: "BIZ UDPGothic", sans-serif;
  font-weight: 400;
  font-style: normal;
}

.biz-udpgothic-bold {
  font-family: "BIZ UDPGothic", sans-serif;
  font-weight: 700;
  font-style: normal;
}



/* css */
/* main */
html {font-family: "BIZ UDPGothic", sans-serif;}
#wrap {position: relative; width: 100%; margin: 0 auto; overflow-x: hidden;}


/* header */
#header {position: fixed; top: 0; left: 0; z-index: 1000; width: 100%; height: 80px; background: rgba(255, 255, 255, 0.6); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255, 255, 255, 0.6); box-sizing: border-box;}
#header .area {position: relative; display: grid; grid-template-columns: 250px 1fr auto; align-items: center; width: 100%; height: 100%; margin: 0 auto; padding-left: 5%; box-sizing: border-box;}
#header .header-logo {display: inline-flex; align-items: center; width: 130px;}
#header .header-logo img {display: block; width: 100%; height: auto;}


/* nav */
#header .nav {display: flex; align-items: center; justify-content: center; height: 100%;}
#header .gnb {display: flex; align-items: center; justify-content: center; gap: clamp(34px, 4vw, 72px); height: 100%; margin: 0; padding: 0; list-style: none;}
#header .gnb .depth1 {position: relative; display: flex; align-items: center; height: 100%;}
#header .gnb .depth1 > a {display: flex; align-items: center; height: 100%; padding: 0 5px; color: #222; font-size: 17px; font-weight: 700; white-space: nowrap; transition: color 0.25s ease;}
#header .gnb .depth1:hover > a {color: #E8380D;}
#header .lnb_wrap {position:absolute; top:100%; left:50%; min-width:180px; padding-top:10px; opacity:0; visibility:hidden; transform:translate(-50%, -10px); pointer-events:none; transition:opacity .25s ease, transform .25s ease, visibility .25s ease;}
#header .depth1:hover .lnb_wrap {opacity:1; visibility:visible; transform:translate(-50%, 0); pointer-events:auto;}
#header .lnb {display:flex; flex-direction:column; gap:14px; margin:0; padding:24px; background:#E8380D; border-radius:10px; list-style:none;}
#header .lnb a {display: block; color: rgba(255, 255, 255, 0.7); font-size: 17px; text-align: center; white-space: nowrap;}
#header .lnb a:hover {color: #fff;}


/* right */
.header-util {display: flex; align-items: center; height: 100%;}
.header-lang {display: flex; align-items: center; gap: 16px; padding: 0 22px;}
.header-lang a {color: #222; font-size: 17px; font-weight: 500;}
.header-lang a:hover, .header-lang a.active {color: #E8380D;}

/* hamburger */
#header .menu {position:static; display:block; width:80px; height:80px; background:#E8380D; flex-shrink:0;}
#header .global-menu-btn {display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; width:100%; height:100%; margin:0; padding:0; border:0; border-radius:0; outline:0; background:transparent; appearance:none; -webkit-appearance:none; cursor:pointer; box-sizing:border-box;}
#header .global-menu-btn span {display:block; width:22px; height:2px; margin:0; padding:0; background:#fff; transition:transform .3s ease, opacity .3s ease;}
#header .global-menu-btn.is-open span:nth-child(1) {transform:translateY(8px) rotate(45deg);}
#header .global-menu-btn.is-open span:nth-child(2) {opacity:0;}
#header .global-menu-btn.is-open span:nth-child(3) {transform:translateY(-8px) rotate(-45deg);}

/* global menu */
.side-panel {position:fixed; top:80px; left:0; z-index:950; width:100%; max-height:460px; padding:45px 8.5% 50px; background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.08); opacity:0; visibility:hidden; transform:translateY(-18px); transition:opacity .3s ease, transform .3s ease, visibility .3s ease; overflow-y:auto; box-sizing:border-box;}
.side-panel.is-open {opacity:1; visibility:visible; transform:translateY(0);}

.side-nav {display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:55px; width:100%; max-width:1600px; margin:0 auto;}
.side-menu-group {min-width:0;}
.side-menu-title {display:block; padding-bottom:16px; border-bottom:1px solid #ddd; color:#555; font-size:19px; font-weight:700; line-height:1.4; transition:color .2s ease;}
.side-menu-title:hover {color:#E8380D;}
.side-menu-group ul {margin:18px 0 0; padding:0; list-style:none;}
.side-menu-group li + li {margin-top:11px;}
.side-menu-group li a {display:block; color:#888; font-size:15px; line-height:1.5; transition:color .2s ease;}
.side-menu-group li a:hover {color:#E8380D;}

body.menu-open {overflow:hidden;}

.side-contact {display:flex; justify-content:center; width:100%; margin-top:32px;}
.side-contact a {display:inline-flex; align-items:center; justify-content:center; gap:12px; min-width:210px; height:48px; padding:0 28px; border-radius:30px; background:#E8380D; color:#fff; font-size:16px; font-weight:700; box-sizing:border-box; transition:background .25s ease, transform .25s ease;}
.side-contact a span{color: #fff;}
.side-contact a:hover {background:#cf2e0a; transform:translateY(-2px);}
.side-contact img {display:block; width:24px; height:auto;}


@media (max-width: 1200px) {
    #header .area {grid-template-columns: 1fr auto; padding-left: 30px;}
    #header .nav {display: none;}
    #header .header-logo {width: 120px;}

    .side-panel {top:80px; max-height:calc(100vh - 80px); padding:35px;}
    .side-nav {grid-template-columns:repeat(2, minmax(0, 1fr)); gap:35px 50px;}
    .side-menu-title {font-size:20px;}
    .side-menu-group li a {font-size:16px;}
}

@media (max-width:768px) {
    #header {height: 68px;}
    #header .area {padding-left: 20px;}
    #header .header-logo {width: 105px;}
    .header-lang {gap: 10px; padding: 0 14px;}
    .header-lang a {font-size: 17px;}
    #header .menu {width: 68px; height: 68px;}

    .side-panel {padding:0 20px 50px; top: 68px; height: auto;  max-height:calc(100dvh - 68px); overscroll-behavior: contain;}
    .side-panel.is-open{opacity: 1; visibility: visible; transform: translateY(0);}
    .side-nav {grid-template-columns:1fr; gap:0; padding-top:20px;}
    .side-menu-group {padding:25px 0; border-bottom:1px solid #eee;}
    .side-menu-title {padding:0; border:0; font-size:19px;}
    .side-menu-group ul {margin-top:16px;}
    .side-menu-group li + li {margin-top:11px;}
    .side-menu-group li a {font-size:15px;}

    .side-contact {margin-top:25px; padding-bottom:10px;}
    .side-contact a {width:100%; min-width:0; height:52px; border-radius:6px; font-size:16px;}
    .side-contact img {width:23px;}
}


/* main */
/* main-slide */
#mainVisual {position: relative; width: 100%; overflow: hidden;}
.main-slide {position: relative; width: 100%; overflow: hidden; border-radius: 0 0 100px 0; background: #d9d9d9;}
.main-slide .main-s-wrapper {height: calc(100vh - 76px); min-height: 650px; max-height: 820px;}


.main-visual-item { position:relative; width:100%; height:100%; overflow:hidden; --main-bg:none;}
.main-visual-item::before { content:""; position:absolute; inset:0; z-index:0; background-image:var(--main-bg); background-repeat:no-repeat; background-position:center center; background-size:cover; transform:scale(1.06); animation:bannerZoomOut 1.8s cubic-bezier(.22, 1, .36, 1) forwards; pointer-events:none;}
.mainS01 {--main-bg:url("../images/main_banner01.png");}
.mainS02 {--main-bg:url("../images/main_banner02.png");}
.mainS03 {--main-bg:url("../images/main_banner03.png");}
.main-visual-inner {position:relative; z-index:1; width:100%; max-width:1740px; height:100%; margin:0 auto; padding:0 24px; box-sizing:border-box;}

@keyframes bannerZoomOut {
    0% {
        transform:scale(1.06);
    }

    100% {
        transform:scale(1);
    }
}

.main-visual-inner {position: relative; width: 100%; max-width: 1740px; height: 100%; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.main-slide .txt-box {position:absolute; top:50%; left:40px; width:calc(100% - 80px); max-width:1100px; transform:translateY(-50%); z-index:5;}
.main-slide .txt-box h2 {margin:0; color:#fff; font-size:clamp(38px, 3vw, 58px); font-weight:700; line-height:1.42; letter-spacing:-0.045em; text-shadow:none; opacity:0; transform:translateY(55px);}
.main-slide .swiper-slide-active .txt-box h2 {animation: mainTextUp 1s cubic-bezier(.22, 1, .36, 1) forwards;}

.main-slide .main-slide-pagination {position:absolute; left:max(90px, calc((100% - 1740px) / 2 + 40px)); right:auto; bottom:38px; width:auto; display:flex; align-items:center; gap:14px; z-index:20;}
.main-slide .main-slide-pagination .swiper-pagination-bullet {display:block; width:16px; height:16px; margin:0 !important; border-radius:0; background:#fff; opacity:1; transition:background .25s ease;}
.main-slide .main-slide-pagination .swiper-pagination-bullet-active {background:#E8380D;}

@media (max-width:1024px) {
    .main-slide .main-slide-pagination {left:12%; bottom:32px; gap:12px;}
    .main-slide .main-slide-pagination .swiper-pagination-bullet {width:16px; height:16px;}
}

@media (max-width:768px) {
    .main-slide .main-slide-pagination {left:16%px; bottom:24px; gap:10px;}
    .main-slide .main-slide-pagination .swiper-pagination-bullet {width:18px; height:18px;}
    .main-slide .main-s-wrapper {min-height: 540px; max-height: 600px;}
}

@keyframes mainTextUp {
    0% {opacity: 0; transform: translateY(55px);}
    100% {opacity: 1; transform: translateY(0);}
}

.main-slide .swiper-button-prev, .main-slide .swiper-button-next {position: absolute; top: 50%; width: 60px; height: 60px; margin: 0; transform: translateY(-50%); z-index: 10; cursor: pointer; background-repeat: no-repeat; background-position: center; background-size: contain;}
.main-slide .swiper-button-prev {left: 22px; background-image: url("../images/main_prev.png");}
.main-slide .swiper-button-next {right: 22px; background-image: url("../images/main_next.png");}
.main-slide .swiper-button-prev::after, .main-slide .swiper-button-next::after {display: none;}


@media (max-width: 1024px) {
    .main-slide .swiper-button-prev, .main-slide .swiper-button-next {width: 52px; height: 52px;}
    .main-slide .swiper-button-prev {left: 18px;}
    .main-slide .swiper-button-next {right: 18px;}
    .main-slide .txt-box {left:40px; width:calc(100% - 80px); max-width:850px;}
    .main-slide .txt-box h2 {font-size:clamp(32px, 4vw, 42px);}
}

@media (max-width:768px) {
    .main-slide .swiper-button-prev, .main-slide .swiper-button-next {width: 44px; height: 44px;}
    .main-slide .swiper-button-prev {left: 14px;}
    .main-slide .swiper-button-next {right: 14px;}
    .main-slide .txt-box {left:20px; width:calc(100% - 40px);}
    .main-slide .txt-box h2 {font-size:clamp(24px, 6vw, 32px); line-height:1.45; letter-spacing:-0.035em;}
}

@media (max-width: 480px) {
    .main-slide .swiper-button-prev, .main-slide .swiper-button-next {display: none;}
}

.section1 {width: 100%; padding: 150px 0 120px; box-sizing: border-box;}
.section1_inner {width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.section1 .title {margin-bottom: 70px; text-align: center;}


/* 공통 */
.title h2 {position: relative; font-weight: bold; color: #222; font-size: 36px;}
.title h2::before {content: ""; position: absolute; top: -36px; left: 50%; width: 100%; height: 19px; background: url("../images/motif_icon.png") no-repeat center center; background-size: contain; transform: translateX(-50%);}

.section1 .sub_title {margin: 22px 0 0; color: #626262; font-size: 17px; line-height: 1.7;}
.section1 .content {display: grid; grid-template-columns: repeat(3, 1fr); gap: 70px; width: 100%;}
.section1 .content_box {text-align: center;}
.section1 .content_img {width: 100%; aspect-ratio: 1.42 / 1; overflow: hidden; background: #f4f4f4;}
.section1 .content_img img {display: block; width: 100%; height: 100%; object-fit: cover;}


.section1 .content_img { width:100%; aspect-ratio:1.42 / 1; overflow:hidden; background:#f4f4f4;}
.section1 .content_img img { display:block; width:100%; height:100%; object-fit:cover; transform:scale(1); transition:transform .6s cubic-bezier(.22, 1, .36, 1);}

@media (hover:hover) and (pointer:fine) {
.section1 .content_box:hover .content_img img {transform:scale(1.08);}
}

.section1 .content_box h3 {margin: 42px 0 26px; color: #555555; font-size: 20px; font-weight: 700; line-height: 1.4; letter-spacing: -0.04em;}
.section1 .more_btn {display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 145px; height: 38px; padding: 3px 5px 3px 16px; border: 1px solid #777777; border-radius: 30px; color: #626262; background: #ffffff; font-size: 17px; line-height: 1; box-sizing: border-box; transition: border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;}
.section1 .more_btn:hover {color: #E8380D; border-color: #E8380D; transform: translateY(-2px);}
.section1 .btn_arrow {display: block; width: 27px; height: 27px; object-fit: cover; flex-shrink: 0;}
.section2 {position: relative; width: 100%; padding: 105px 0 125px; background: url("../images/main_secbg_01.png") no-repeat center center; background-size: cover; box-sizing: border-box;}
.section2_inner {width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.section2 .title {margin-bottom: 48px; text-align: center;}
.section2 .title h2 {position: relative; margin: 0; color: #fff; font-size: 34px; font-weight: 700; line-height: 1.3; letter-spacing: -0.04em;}
.section2 .sub_title {margin: 18px 0 0; color: #fff; font-size: 17px; line-height: 1.7;}
.section2 .content {width: 100%;}
.section2 .content_box {display: grid; grid-template-columns: repeat(3, 1fr); gap: 46px; width: 100%;}

.sec02_card { --card-bg:none; position:relative; display:flex; align-items:center; justify-content:center; min-height:285px; overflow:hidden; text-align:center; box-sizing:border-box;}
.sec02_card::before { content:""; position:absolute; inset:0; z-index:0; background-image:var(--card-bg); background-repeat:no-repeat; background-position:center center; background-size:cover; transform:scale(1); transition:transform .6s cubic-bezier(.22, 1, .36, 1);}
.sec02_card::after {content:"";position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.18);pointer-events:none;}
@media (hover:hover) and (pointer:fine) {
    .sec02_card:hover::before {
        transform:scale(1.08);
    }
}
.card01 {--card-bg:url("../images/main_sec02_01.png");}
.card02 {--card-bg:url("../images/main_sec02_02.png");}
.card03 {--card-bg:url("../images/main_sec02_03.png");}

.sec02_txt {position: relative; z-index: 2; width: 100%; padding: 30px; color: #fff; box-sizing: border-box;}
.sec02_txt h3 {position: relative; margin: 0 0 22px; padding-bottom: 18px; color: #fff; font-size: 23px; font-weight: 700; line-height: 1.4;}
.sec02_txt h3::after {content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 2px; background: #E8380D;}
.sec02_txt p {min-height: 48px; margin: 0 0 22px; color: #fff; font-size: 17px; line-height: 1.7;}
.section2 .more_btn1 {display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 130px; height: 32px; padding: 2px 4px 2px 13px; border: 1px solid rgba(255, 255, 255, 0.8); border-radius: 30px; color: #fff; font-size: 17px; line-height: 1; box-sizing: border-box; transition: background 0.25s ease, border-color 0.25s ease;}
.section2 .more_btn1:hover {background: rgba(255, 255, 255, 0.15); border-color: #fff;}
.section2 .more_btn1 span{color: #fff;}
.section2 .btn_arrow {display: block; width: 24px; height: 24px; object-fit: cover; flex-shrink: 0;}
.section3 {width: 100%; padding: 100px 0; background: #fff; box-sizing: border-box;}
.section3_inner {display: grid; grid-template-columns: 1fr 1.08fr; align-items: center; gap: 90px; width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.section3 .title {margin-bottom: 20px; text-align: left;}
.section3 .title h2 {margin: 0; color: #222; font-size: 34px; font-weight: 700; line-height: 1.35; letter-spacing: -0.04em;}
.section3 .title h2::before {display: none;}
.section3 .sec03_txt p {margin: 0 0 18px; color: #626262; font-size: 17px; line-height: 1.8;}
.section3 .sec03_txt p:last-child {margin-bottom: 0;}
.sec03_links {display: flex; flex-wrap: wrap; gap: 14px 24px; margin: 42px 0 0; padding: 0; list-style: none;}
.sec03_links a {display: inline-flex; align-items: center; gap: 7px; color: #222; font-size: 17px; transition: color 0.2s ease;}
.sec03_links a:hover {color: #E8380D;}
.sec03_links img {display: block; width: 24px; height: 24px; object-fit: cover;}
.sec03_img {width: 100%; overflow: hidden;}
.sec03_img img {display: block; width: 100%; height: auto; aspect-ratio: 1.52 / 1; object-fit: cover;}

.section3 .sec03_img {opacity:0; transform:translateY(70px); transition:opacity .9s ease, transform .9s cubic-bezier(.22, 1, .36, 1); will-change:opacity, transform;
}

.section3 .sec03_img.is-visible { opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion:reduce) {
    .section3 .sec03_img { opacity:1; transform:none; transition:none;}
}

.section4 {position: relative; width: 100%; min-height: 340px; display: flex; align-items: center; justify-content: center; background: url("../images/main_secbg_02.png") no-repeat center center; background-size: cover; box-sizing: border-box;}
.section4_inner {position: relative; z-index: 2; width: 100%; max-width: 1740px; margin: 0 auto; padding: 75px 40px; text-align: center; box-sizing: border-box;}
.section4 .title {margin-bottom: 34px;}
.section4 .title h2 {position: relative; margin: 0; color: #fff; font-size: 32px; font-weight: 700; line-height: 1.35; letter-spacing: -0.04em;}
.section4 .sub_title {margin: 15px 0 0; color: #fff; font-size: 17px; line-height: 1.7;}
.section4 .more_btn {display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 130px; height: 32px; padding: 2px 4px 2px 13px; border: 1px solid rgba(255,255,255,.85); border-radius: 30px; color: #fff; font-size: 17px; box-sizing: border-box; transition: background 0.25s ease;}
.section4 .more_btn:hover {background: rgba(255,255,255,.15);}
.section4 .more_btn span{color: #fff;}
.section4 .btn_arrow {display: block; width: 24px; height: 24px; object-fit: cover;}

@media (max-width: 1024px) {
    .section1 {padding: 100px 0 110px;}
    .section1_inner {padding: 0 35px;}
    .section1 .content {gap: 35px;}
    .section1 .content_box h3 {margin-top: 32px;}
    .section2 {padding: 95px 0 105px;}
    .section2_inner {padding: 0 35px;}
    .section2 .content_box {gap: 25px;}
    .sec02_card {min-height: 260px;}
    .sec02_txt {padding: 25px 20px;}
    .sec02_txt h3 {font-size: 20px;}
    .section3 {padding: 85px 0;}
    .section3_inner {grid-template-columns: 1fr 1fr; gap: 50px; padding: 0 35px;}
    .section3 .title h2 {font-size: 30px;}
    .section3 .sec03_txt p {font-size: 17px;}
    .sec03_links {gap: 12px 18px; margin-top: 32px;}
    .section4 {min-height: 310px;}
}

@media (max-width: 900px) {
    /* .section1 .content {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px 30px;} */
    /* .section1 .content_box:last-child {grid-column: 1 / -1; width: calc(50% - 15px); margin: 0 auto;} */
    .section1 .content_box h3 {margin: 28px 0 22px;}
    .section1 .title h2 {padding-top: 38px; font-size: 30px;}
    .section1 .title h2::before {width: 82px; height: 20px;}
    .section2 {padding: 85px 0 95px;}
    .section2 .title {margin-bottom: 42px;}
    .section2 .title h2 {font-size: 30px;}
    .section2 .content_box {grid-template-columns: repeat(1, 1fr); gap: 24px;}
}

@media (max-width:768px) {
    .section1 {padding: 100px 0 80px;}
    .section1_inner {padding: 0 20px;}
    .section1 .content {grid-template-columns: 1fr; gap: 45px;}
    .section1 .content_box:last-child {grid-column: auto; width: 100%; margin: 0;}
    .section1 .content_img {aspect-ratio: 1.42 / 1;}
    .section1 .content_box h3 {margin: 22px 0 18px; font-size: 19px;}
    .section1 .more_btn {min-width: 140px;}
    .section1 .title {margin-bottom: 45px;}
    .section1 .title h2 {padding-top: 10px; font-size: 27px;}
    .section1 .title h2::before {width: 72px; height: 18px;}
    .section1 .sub_title {margin-top: 16px; font-size: 17px;}
    .section2 {padding: 70px 0 80px;}
    .section2_inner {padding: 0 20px;}
    .section2 .title {margin-bottom: 38px;}
    .section2 .title h2 {padding-top: 34px; font-size: 27px;}
    .section2 .title h2::before {width: 72px; height: 18px;}
    .section2 .sub_title {margin-top: 15px; font-size: 17px;}
    .section2 .content_box {grid-template-columns: 1fr; gap: 22px;}
    .sec02_card, .sec02_card:nth-child(3) {width: 100%; min-height: 245px; margin: 0; grid-column: auto;}
    .sec02_txt h3 {margin-bottom: 18px; padding-bottom: 15px; font-size: 20px;}
    .sec02_txt p {min-height: auto; margin-bottom: 20px; font-size: 17px;}
    .section3 {padding: 70px 0;}
    .section3_inner {grid-template-columns: 1fr; gap: 40px; padding: 0 20px;}
    .section3 .title {margin-bottom: 18px;}
    .section3 .title h2 {font-size: 27px;}
    .section3 .sec03_txt p {font-size: 17px; line-height: 1.75;}
    .section3 .sec03_txt br {display: none;}
    .sec03_links {gap: 13px 20px; margin-top: 30px;}
    .sec03_links a {font-size: 17px;}
    .sec03_img img {aspect-ratio: 1.35 / 1;}
    .section4 {min-height: 290px;}
    .section4_inner {padding: 60px 20px;}
    .section4 .title {margin-bottom: 28px;}
    .section4 .title h2 {padding-top: 34px; font-size: 27px;}
    .section4 .title h2::before {width: 72px; height: 18px;}
    .section4 .sub_title {font-size: 17px;}
}


/* sub_head */
.sub-visual {
    --sub-visual-height: 360px;
    position: relative;
    display: flex;
    width: 100%;
    min-height: var(--sub-visual-height);
    margin-top: 80px;
    overflow: hidden;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    background:none;
    border-radius: 0 0 100px 0;
    box-sizing: border-box;
}

.sub-visual::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background: rgba(0, 0, 0, .2);
}

.sub-visual::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    background-image:var(--sub-bg);
    background-repeat:no-repeat;
    background-position:inherit;
    background-size:cover;
    transform:scale(1.06);
    animation:bannerZoomOut 1.8s cubic-bezier(.22, 1, .36, 1) forwards;
    pointer-events:none;
}

/* 배너 이미지 */
.sub-visual.business {--sub-bg:url("../images/sub/sub_business.png");}
.sub-visual.polishing {--sub-bg:url("../images/sub/sub_polishing.png");}
.sub-visual.equipment {--sub-bg:url("../images/sub/sub_equipment.png");}
.sub-visual.contact {--sub-bg:url("../images/sub/sub_contact.png");}
.sub-visual.company {--sub-bg:url("../images/sub/sub_company.png");}
.sub-visual.area {--sub-bg:url("../images/sub/sub_business.png");}


.sub-visual.area {background-image: url("../images/sub/sub_business.png");}
.sub-visual-inner { position: relative; z-index: 2; display: flex; align-items: center; width: 100%; max-width: 1740px; min-height: var(--sub-visual-height); margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.sub-visual-txt { width: 100%; max-width: 950px; color: #fff;}
.sub-visual-txt h1 { margin: 0; color: #fff; font-size: 36px; font-weight: 700; line-height: 1.4; letter-spacing: -0.04em; word-break: normal; overflow-wrap: break-word;}
.sub-visual-txt p {margin: 16px 0 0; color: #fff; font-size: 17px; line-height: 1.7; word-break: normal; overflow-wrap: break-word;}

.sub-location {position: relative; z-index: 20; width: 100%; height: 58px; background: #fff; border-bottom: 1px solid #ddd;}
.sub-location-inner {display: flex; align-items: stretch; width: 100%; max-width: 1740px; height: 100%; margin: 0 auto; box-sizing: border-box;}
.location-home {display: flex; align-items: center; justify-content: center; width: 52px; flex-shrink: 0;}
.location-home img {display: block; width: 24px; height: 24px; object-fit: cover;}
.location-menu {position: relative; width: 210px;}
.location-menu summary {display: flex; align-items: center; justify-content: space-between; width: 100%; height: 58px; padding: 0 20px; font-size: 17px; font-weight: 700; cursor: pointer; list-style: none; box-sizing: border-box;}

.location-menu summary span{color: #222;}
.location-menu:last-child summary span{color: #656565; font-weight: 400;}


.location-menu summary::-webkit-details-marker {display: none;}
.location-menu summary img {display: block; width: 24px; height: auto; transition: transform .25s ease;}
.location-menu[open] summary img {transform: rotate(180deg);}
.location-menu ul {position: absolute; top: 58px; left: -1px; z-index: 30; width: calc(100% + 2px); margin: 0; padding: 10px 0; background: #fff; border: 1px solid #ddd; list-style: none; box-shadow: 0 8px 18px rgba(0,0,0,.08);}
.location-menu li a {display: block; padding: 10px 20px; color: #222; font-size: 17px; transition: color .2s ease, background .2s ease;}
.location-menu li a:hover {color: #E8380D; background: #f7f7f7;}

@media (max-width: 1024px) {
    .sub-visual { --sub-visual-height: 300px; margin-top: 80px; border-radius: 0 0 70px 0;}
    .sub-visual-inner {padding: 0 35px;}
    .sub-visual-txt {max-width: 800px;}
    .sub-visual-txt h1 {font-size: 31px;}
    .sub-visual-txt p {margin-top: 14px; font-size: 17px;}
    .sub-location-inner {padding: 0 35px;}
}

@media (max-width:768px) {
    .sub-visual {
        --sub-visual-height: 250px;
        margin-top: 68px;
        border-radius: 0 0 45px 0;
        background-position: center center;
    }

    .sub-visual-inner {
        padding: 0 20px;
    }

    .sub-visual-txt {
        max-width: 100%;
    }

    .sub-visual-txt h1 {
        font-size: 25px;
        line-height: 1.45;
        letter-spacing: -0.035em;
    }

    .sub-visual-txt p {
        margin-top: 12px;
        font-size: 17px;
        line-height: 1.65;
    }

    .sub-location {height: 52px;}
    .sub-location-inner {padding: 0 10px;}
    .location-home {width: 42px;}
    .location-home img {width: 16px; height: 16px;}
    .location-menu {flex: 1; width: auto; min-width: 0;}
    .location-menu summary {height: 52px; padding: 0 12px; font-size: 15px;}
    .location-menu summary span {overflow: hidden; text-overflow: ellipsis;}
    .location-menu summary img {width: 9px; margin-left: 8px; flex-shrink: 0;}
    .location-menu ul {top: 52px;}
    .location-menu li a {padding: 10px 12px; font-size: 17px;}
}

@media (prefers-reduced-motion:reduce) {
    .main-visual-item::before,
    .sub-visual::after {
        animation:none;
        transform:scale(1);
    }
}


/* sub */
#sub.business_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}

/* 서브 공통 */
.sub01_title h2::before, .general_title h2::before, .field_title h2::before, .technology_title h2::before, .special_title h2::before,.measurement_title h2::before, .faq_title h2::before, .greeting_title h2::before, .vision_title h2::before, .history_title h2::before, .certification_title h2::before, .access_title h2::before, .area03_title h2::before{content: ""; position: absolute; top: 0; left: 0; width: 58px; height: 16px; background: url("../images/motif_icon.png") no-repeat left center; background-size: contain;}

.sub01_txt h3::before, .general_sub_title h3::before, .general03_title h2::before, .special01_title h3::before, .business_page .sub02_title h2::before, .area02_title h2::before,.area_title h2::before {content: ""; position: absolute; top: .6em; left: 0; width: 12px; height: 12px; background: url("../images/sub/title_icon.png") no-repeat center; background-size: contain; transform: translateY(-50%);}

/* business */
.business_page .sub01 {width: 100%; margin-bottom: 130px;}
.business_page .sub01_inner {width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.business_page .sub01_title {margin-bottom: 42px;}
.business_page .sub01_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}
.business_page .sub01_content {display: grid; grid-template-columns: minmax(0, 1fr) minmax(480px, 1.05fr); align-items: flex-start; gap: 80px;}
.business_page .sub01_text_area {min-width: 0;}
.business_page .sub01_txt + .sub01_txt {margin-top: 48px;}
.business_page .sub01_txt h3 {position: relative; margin: 0 0 12px; padding-left: 24px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.55;}
.business_page .sub01_txt h3::before {content: ""; position: absolute; top: .6em; left: 0; width: 12px; height: 12px; background: url("../images/sub/title_icon.png") no-repeat center; background-size: contain; transform: translateY(-50%);}
.business_page .sub01_txt > p {margin: 0 0 10px; color: #626262; font-size: 17px; line-height: 1.75; word-break: normal; overflow-wrap: break-word; white-space: normal;}
.business_page .sub01_list_box {margin-top: 16px;}
.business_page .sub01_list_box h4 {margin: 0 0 8px; color: #626262; font-size: 17px; font-weight: 500;}
.business_page .sub01_list {margin: 0; padding: 0; list-style: none;}
.business_page .sub01_list li {position: relative; margin-top: 4px; padding-left: 12px; color: #626262; font-size: 17px; line-height: 1.65;}
.business_page .sub01_list li::before {content: ""; position: absolute; top: .82em; left: 2px; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.business_page .sub01_slider {width: 100%; min-width: 0;}
.business_page .sub01_slide {position: relative; width: 100%; overflow: hidden;}
.business_page .sub01_slide .swiper-slide {width: 100%; aspect-ratio: 1.45 / 1; background: #eee;}
.business_page .sub01_slide .swiper-slide img {display: block; width: 100%; height: 100%; object-fit: cover;}
.business_page .sub01_prev, .business_page .sub01_next {position: absolute; top: 50%; z-index: 10; width: 42px; height: 42px; padding: 0; border: 0; background: transparent; transform: translateY(-50%); cursor: pointer;}
.business_page .sub01_prev {left: 14px;}
.business_page .sub01_next {right: 14px;}
.business_page .sub01_prev img, .business_page .sub01_next img {display: block; width: 100%; height: 100%; object-fit: cover;}
.business_page .sub02 {width: 100%;}
.business_page .sub02_inner {width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.business_page .sub02_title {margin-bottom: 58px;}
.business_page .sub02_title h2 {position: relative; display: flex; align-items: center; gap: 10px; margin: 0; color: #222; font-size: 32px; font-weight: 700; line-height: 1.4;}
.business_page .sub02_title_icon {display: block; width: 12px; height: 12px; object-fit: cover; flex-shrink: 0;}
.business_page .sub02_group > h3 {margin: 0 0 20px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.5;}
.business_page .sub02_grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 85px; width: 100%;}
.business_page .sub02_item {min-width: 0;}
.business_page .sub02_img {position: relative; width: 100%; aspect-ratio: 1.43 / 1; overflow: hidden; background: #eee;}
.business_page .sub02_img > img:first-child {display: block; width: 100%; height: 100%; object-fit: cover;}
.business_page .sub02_corner_icon {position: absolute; right: 0; bottom: 0; z-index: 2; display: block; width: 42px; height: 42px; object-fit: cover;}
.business_page .sub02_txt {padding-top: 14px;}
.business_page .sub02_txt strong {display: block; color: #222; font-size: 17px; font-weight: 700; line-height: 1.55; word-break: normal; overflow-wrap: break-word;}
.business_page .sub02_txt p {margin: 3px 0 0; color: #626262; font-size: 17px; line-height: 1.6;}
.business_page .sub02_notice {margin-top: 22px; padding: 23px 22px; border: 1px solid #ddd; box-sizing: border-box;}
.business_page .sub02_notice p {margin: 0; color: #626262; font-size: 17px; line-height: 1.65; word-break: normal; overflow-wrap: break-word;}
.business_page .sub03 {width: 100%; padding-top: 120px;}
.business_page .sub03_inner {width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.business_page .sub03_grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 60px; width: 100%;}
.business_page .sub03_item {min-width: 0;}
.business_page .sub03_img {position: relative; width: 100%; aspect-ratio: 1.75 / 1; overflow: hidden; background: #eee;}
.business_page .sub03_img > img:first-child {display: block; width: 100%; height: 100%; object-fit: cover;}
.business_page .sub03_corner_icon {position: absolute; right: 0; bottom: 0; z-index: 2; display: block; width: 42px; height: 42px; object-fit: cover;}
.business_page .sub03_txt {padding-top: 36px;}
.business_page .sub03_txt h3 {margin: 0 0 10px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.5;}
.business_page .sub03_txt p {margin: 0; color: #626262; font-size: 17px; line-height: 1.7; word-break: normal; overflow-wrap: break-word; white-space: normal;}
.business_page .sub03_list {margin: 0 0 2px; padding: 0; list-style: none;}
.business_page .sub03_list li {position: relative; margin-top: 3px; padding-left: 14px; color: #626262; font-size: 17px; line-height: 1.7;}
.business_page .sub03_list li::before {content: ""; position: absolute; top: .82em; left: 2px; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}

@media (max-width: 1024px) {
    #sub.business_page {padding: 80px 0 100px;}
    .business_page .sub01 {margin-bottom: 100px;}
    .business_page .sub01_inner, .business_page .sub02_inner {padding: 0 35px;}
    .business_page .sub01_content {grid-template-columns: 1fr; align-items: start; gap: 50px;}
    .business_page .sub01_slider {width: 100%; max-width: 760px; margin: 0 auto;}
    .business_page .sub01_txt h3 {font-size: 17px;}
    .business_page .sub01_txt > p, .business_page .sub01_list_box h4 {font-size: 17px;}
    .business_page .sub01_list li {font-size: 17px;}
    .business_page .sub02_title {margin-bottom: 45px;}
    .business_page .sub02_title h2 {font-size: 28px;}
    .business_page .sub02_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 30px;}
    .business_page .sub02_item:last-child {grid-column: 1 / -1; width: calc(50% - 15px); margin: 0 auto;}
    .business_page .sub02_txt strong {font-size: 17px;}
    .business_page .sub02_txt p {font-size: 17px;}
    .business_page .sub02_notice {margin-top: 30px;}
    .business_page .sub03 {padding-top: 100px;}
    .business_page .sub03_inner {padding: 0 35px;}
    .business_page .sub03_grid {gap: 40px;}
    .business_page .sub03_txt {padding-top: 28px;}
    .business_page .sub03_txt h3 {font-size: 17px;}
    .business_page .sub03_txt p, .business_page .sub03_list li {font-size: 17px;}
}
@media (max-width:768px) {
    #sub.business_page {padding: 65px 0 80px;}
    .business_page .sub01 {margin-bottom: 75px;}
    .business_page .sub01_inner, .business_page .sub02_inner {padding: 0 20px;}
    .business_page .sub01_title {margin-bottom: 32px;}
    .business_page .sub01_title h2 {padding-top: 29px; font-size: 27px;}
    .business_page .sub01_title h2::before {width: 50px; height: 14px;}
    .business_page .sub01_content {grid-template-columns: 1fr; gap: 34px;}
    .business_page .sub01_slider {max-width: none;}
    .business_page .sub01_txt h3 {font-size: 17px;}
    .business_page .sub01_txt > p {font-size: 17px;}
    .business_page .sub01_txt > p br {display: none;}
    .business_page .sub01_list li {font-size: 17px;}
    .business_page .sub01_slide {}
    .business_page .sub01_slide .swiper-slide {aspect-ratio: 1.25 / 1;}
    .business_page .sub01_prev, .business_page .sub01_next {width: 36px; height: 36px;}
    .business_page .sub01_prev {left: 10px;}
    .business_page .sub01_next {right: 10px;}
    .business_page .sub02_title {margin-bottom: 38px;}
    .business_page .sub02_title h2 {gap: 8px; font-size: 24px;}
    .business_page .sub02_title_icon {width: 10px; height: 10px;}
    .business_page .sub02_group > h3 {margin-bottom: 16px; font-size: 17px;}
    .business_page .sub02_grid {grid-template-columns: 1fr; gap: 32px;}
    .business_page .sub02_item:last-child {grid-column: auto; width: 100%; margin: 0;}
    .business_page .sub02_img {aspect-ratio: 1.43 / 1;}
    .business_page .sub02_corner_icon {width: 34px; height: 34px;}
    .business_page .sub02_txt {padding-top: 11px;}
    .business_page .sub02_txt strong {font-size: 17px; line-height: 1.55;}
    .business_page .sub02_txt p {font-size: 17px;}
    .business_page .sub02_notice {margin-top: 28px; padding: 18px 16px;}
    .business_page .sub02_notice p {font-size: 17px; line-height: 1.7;}
    .business_page .sub02_notice p br {display: none;}
    .business_page .sub03 {padding-top: 75px;}
    .business_page .sub03_inner {padding: 0 20px;}
.business_page .sub03_grid {display: grid; grid-template-columns: repeat(1, minmax(0, 1fr)); gap: 40px; width: 100%;}
    .business_page .sub03_img {aspect-ratio: 1.5 / 1;}
    .business_page .sub03_corner_icon {width: 34px; height: 34px;}
    .business_page .sub03_txt {padding-top: 20px;}
    .business_page .sub03_txt h3 {margin-bottom: 8px; font-size: 17px;}
    .business_page .sub03_txt p, .business_page .sub03_list li {font-size: 17px; line-height: 1.7;}
    .business_page .sub03_txt p br {display: none;}
    .business_page .sub03_list {margin-bottom: 5px;}
    .business_page .sub03_list li {padding-left: 12px;}
    .business_page .sub03_list li::before {left: 1px; width: 4px; height: 4px;}
}


/* general polishing */
#sub.general_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.general_page .general_inner {width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 24px; box-sizing: border-box;}
.general_page .general_title {margin-bottom: 55px;}
.general_page .general_title_icon {display: block; width: 62px; height: auto; margin-bottom: 18px; object-fit: cover;}
.general_page .general_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}
.general_page .general_row {display: grid; grid-template-columns: minmax(0,1fr) minmax(480px,1.05fr); align-items: flex-start; gap: 90px; width: 100%;}
.general_page .general_row + .general_row {margin-top: 100px; margin-bottom: 120px;}
.general_page .general_txt {min-width: 0;}
.general_page .general_sub_title {display: flex; align-items: center; gap: 10px; margin-bottom: 17px;}
.general_page .general_sub_icon {display: block; width: 12px; height: 12px; object-fit: cover; flex-shrink: 0;}
.general_page .general_sub_title h3 {position: relative;  padding-left: 24px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.55;}
.general_page .general_txt > p {margin: 0; color: #626262; font-size: 17px; line-height: 1.75; word-break: normal; overflow-wrap: break-word;}
.general_page .general_list {margin: 24px 0 0; padding: 0; list-style: none;}
.general_page .general_list li {position: relative; margin-top: 10px; padding-left: 13px; color: #626262; font-size: 17px; line-height: 1.65;}
.general_page .general_list li::before {content: ""; position: absolute; top: .78em; left: 0; width: 3px; height: 3px; background: #E8380D; border-radius: 50%; transform: translateY(-50%);}
.general_page .general_list li span {display: inline-block; min-width: 112px; color: #626262; font-weight: 700;}
.general_page .general_list_box {margin-top: 24px;}
.general_page .general_list_box h4 {position: relative; margin: 0 0 8px; padding-left: 13px; color: #626262; font-size: 17px; font-weight: 500;} 
.general_page .general_list_box h4::before {content: ""; position: absolute; top: .78em; left: 0; width: 3px; height: 3px; background: #E8380D; border-radius: 50%; transform: translateY(-50%);}
.general_page .general_list.gray {margin-top: 0;}
.general_page .general_list.gray li::before {background: #999;}
.general_page .general_img {width: 100%; overflow: hidden;}
.general_page .general_img img {display: block; width: 100%; aspect-ratio: 1.65 / 1; object-fit: cover;}

.general_page .general_slider {width: 100%; min-width: 0;}
.general_page .general_slide {position: relative; width: 100%; overflow: hidden;}
.general_page .general_slide .swiper-slide {width: 100%; aspect-ratio: 1.65 / 1; background: #eee;}
.general_page .general_slide .swiper-slide img {display: block; width: 100%; height: 100%; object-fit: cover;}
.general_page .general_prev, .general_page .general_next {position: absolute; top: 50%; z-index: 10; width: 42px; height: 42px; padding: 0; border: 0; background: transparent; transform: translateY(-50%); cursor: pointer;}
.general_page .general_prev {left: 14px;}
.general_page .general_next {right: 14px;}
.general_page .general_prev img, .general_page .general_next img {display: block; width: 100%; height: 100%; object-fit: cover;}
.general_page .general_pagination {bottom: 10px !important;}
.general_page .general_pagination .swiper-pagination-bullet {width: 6px; height: 6px; margin: 0 3px !important; background: #fff; opacity: .7;}
.general_page .general_pagination .swiper-pagination-bullet-active {background: #E8380D; opacity: 1;}

.general_page .general02 {position: relative; width: 100vw; min-height: 440px; margin-left: calc(50% - 50vw); overflow: hidden; background: url('../images/sub/sub_business02_05.png') no-repeat center center; background-size: cover;}
.general_page .general02::before {content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.08) 30%, rgba(198,54,13,.75) 100%);}
.general_page .general02_inner {position: relative; z-index: 2; display: flex; align-items: flex-end; width: 100%; max-width: 1740px; min-height: 450px; margin: 0 auto; padding: 0 40px 42px; box-sizing: border-box;}
.general_page .general02_txt {width: 100%; color: #fff;}
.general_page .general02_txt p {margin: 0 0 12px; color: #fff; font-size: 22px; line-height: 1.5;}
.general_page .general02_txt h2 {margin: 0; color: #fff; font-size: 32px; font-weight: 700; line-height: 1.45; letter-spacing: -0.03em;}

.general_page .general03 {width: 100%; padding-top: 100px;}
.general_page .general03_inner {width: 100%; max-width: 1740px; margin: 0 auto; box-sizing: border-box;}
.general_page .general03_title {display: flex; align-items: center; gap: 12px; margin-bottom: 48px;}
.general_page .general03_title_icon {display: block; width: 13px; height: 13px; object-fit: cover; flex-shrink: 0;}
.general_page .general03_title h2 {position: relative; margin: 0; padding-left: 24px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}
.general_page .general03_content > h3 {margin: 0 0 28px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.6;}
.general_page .general03_compare {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px;}
.general_page .general03_box {min-height: 170px; padding: 28px 32px; border: 1px solid #d9d9d9; box-sizing: border-box;}
.general_page .general03_box_title {display: flex; align-items: center; gap: 10px; margin-bottom: 20px;}
.general_page .general03_box_icon {display: block; width: 8px; height: 8px; object-fit: cover; flex-shrink: 0;}
.general_page .general03_box h4 {position: relative; margin: 0; color: #222; font-size: 19px; font-weight: 700; line-height: 1.5; padding-left: 13px;}
.general_page .general03_box h4::before {content: ""; position: absolute; top: .78em; left: 0; width: 3px; height: 3px; background: #E8380D; border-radius: 50%; transform: translateY(-50%);}
.general_page .general03_box h4 span {margin-left: 10px; color: #999; font-size: 17px; font-weight: 400;}
.general_page .general03_box p {margin: 0; color: #626262; font-size: 17px; line-height: 1.7;}
.general_page .general03_desc {margin-top: 28px;}
.general_page .general03_desc p {margin: 0 0 17px; color: #626262; font-size: 17px; line-height: 1.75;}
.general_page .general03_desc p:last-child {margin-bottom: 0;}

@media (max-width: 1024px) {
    .general_page .general02 {min-height: 380px;}
    .general_page .general02_inner {min-height: 380px; padding: 0 35px 35px;}
    .general_page .general02_txt p {font-size: 19px;}
    .general_page .general02_txt h2 {font-size: 27px;}
    .general_page .general03 {padding: 75px 0 100px;}
    .general_page .general03_inner {padding: 0 0px;}
    .general_page .general03_title h2 {font-size: 27px;}
    .general_page .general03_compare {gap: 22px;}
    .general_page .general03_box {padding: 25px 24px;}
}

@media (max-width:768px) {
    .general_page .general02 {min-height: 330px; background-position: center center;}
    .general_page .general02_inner {min-height: 330px; padding: 0 20px 28px;}
    .general_page .general02_txt p {margin-bottom: 10px; font-size: 17px;}
    .general_page .general02_txt h2 {font-size: 22px; line-height: 1.5;}
    .general_page .general03 {padding: 65px 0 0px;}
    .general_page .general03_title {align-items: flex-start; gap: 9px; margin-bottom: 36px;}
    .general_page .general03_title_icon {width: 11px; height: 11px; margin-top: 7px;}
    .general_page .general03_title h2 {font-size: 24px;}
    .general_page .general03_content > h3 {margin-bottom: 22px; font-size: 17px;}
    .general_page .general03_compare {grid-template-columns: 1fr; gap: 18px;}
    .general_page .general03_box {min-height: auto; padding: 23px 20px;}
    .general_page .general03_box_title {align-items: flex-start; margin-bottom: 16px;}
    .general_page .general03_box h4 {font-size: 17px;}
    .general_page .general03_box h4 span {display: block; margin: 3px 0 0; font-size: 17px;}
    .general_page .general03_box p {font-size: 17px;}
    .general_page .general03_desc {margin-top: 24px;}
    .general_page .general03_desc p {font-size: 17px;}
    .general_page .general03_desc br {display: none;}
}

/* large area polishing */
#sub.area_page {width: 100%; padding-top: 120px; background: #fff; box-sizing: border-box;}
.area_page .area_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.area_page .area_title {display: flex; align-items: center; gap: 12px; margin-bottom: 48px;}
.area_page .area_title h2 {position: relative; margin: 0; padding-left: 24px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.area_page .area01 {width: 100%;}
.area_page .area_grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 55px 32px; width: 100%;}
.area_page .area_item {min-width: 0;}
.area_page .area_img {width: 100%; aspect-ratio: 1.25 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.area_page .area_img img {display: block; width: 100%; height: 100%; object-fit: cover;}
.area_page .area_txt {padding-top: 16px;}
.area_page .area_txt strong {position: relative; display: block; padding-left: 13px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.55; white-space: normal; overflow-wrap: anywhere;}
.area_page .area_txt strong::before {content: ""; position: absolute; top: .78em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.area_page .area_txt p {margin: 7px 0 0; padding-left: 13px; color: #626262; font-size: 17px; line-height: 1.65; white-space: normal; overflow-wrap: anywhere;}

/* area02 */
.area_page .area02 {width: 100%; margin-top: 120px;}
.area_page .area02_visual {position: relative; width: 100vw; min-height: 330px; margin-left: calc(50% - 50vw); background: url("../images/sub/sub_business03_06.png") no-repeat center center; background-size: cover;}
.area_page .area02_visual::before {content: ""; position: absolute; inset: 0; background: rgba(0, 30, 55, .28);}
.area_page .area02_visual_inner {position: relative; z-index: 2; width: 100%; max-width: 1740px; margin: 0 auto; padding: 85px 40px; box-sizing: border-box;}
.area_page .area02_visual h2 {margin: 0 0 22px; color: #fff; font-size: 32px; font-weight: 700; line-height: 1.4;}
.area_page .area02_visual p {max-width: 1150px; margin: 0; color: #fff; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}

.area_page .area02_inner {width: 100%; max-width: 1740px; margin: 0 auto; padding: 0px 40px 120px; box-sizing: border-box;}
.area_page .area02_title {margin-bottom: 25px;}
.area_page .area02_title h2 {position: relative; margin: 0; margin-top: 120px; padding-left: 24px; color: #222; font-size: 30px; font-weight: 700; line-height: 1.45;}

.area_page .area02_goal {display: flex; flex-wrap: wrap; gap: 15px 30px; margin: 0 0 45px; padding: 0; list-style: none;}
.area_page .area02_goal li {position: relative; display: flex; align-items: center; gap: 12px; padding-left: 13px; color: #626262; font-size: 17px; line-height: 1.6; white-space: normal;}
.area_page .area02_goal li::before {content: ""; position: absolute; top: .8em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.area_page .area02_goal strong {color: #222; font-size: 17px; font-weight: 700;}

.area_page .area02_grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 55px 32px; width: 100%;}
.area_page .area02_item {min-width: 0;}
.area_page .area02_img {width: 100%; aspect-ratio: 1.25 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.area_page .area02_img img {display: block; width: 100%; height: 100%; object-fit: cover;}
.area_page .area02_txt {padding-top: 16px;}
.area_page .area02_txt strong {position: relative; display: block; padding-left: 13px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.55; white-space: normal; overflow-wrap: anywhere;}
.area_page .area02_txt strong::before {content: ""; position: absolute; top: .78em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.area_page .area02_txt p {margin: 7px 0 0; padding-left: 13px; color: #626262; font-size: 17px; line-height: 1.65; white-space: normal; overflow-wrap: anywhere;}
/* area03 */
.area_page .area03 {width: 100%; padding-bottom: 120px; background: #fff;}
.area_page .area03_inner {width: 100%; max-width: 1740px; margin: 0 auto;  box-sizing: border-box;}
.area_page .area03_title {margin-bottom: 55px;}
.area_page .area03_title h2 {position: relative; margin: 0; padding-left: 24px; color: #222; font-size: 30px; font-weight: 700; line-height: 1.45;}

.area_page .area03_group + .area03_group {margin-top: 130px;}
.area_page .area03_group_title {margin-bottom: 38px;}
.area_page .area03_group_title h3 {position: relative; margin: 100px 0 15px; padding-left: 22px; color: #222; font-size: 28px; font-weight: 700; line-height: 1.45; white-space: normal; overflow-wrap: anywhere;}
.area_page .area03_group_title h3::before {content: ""; position: absolute; top: .12em; bottom: .12em; left: 0; width: 4px; background: #E8380D;}
.area_page .area03_group_title h3 span {margin-left: 10px; color: #626262; font-size: 17px; font-weight: 500;}
.area_page .area03_group_title > p {margin: 0; color: #626262; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}

.area_page .area03_product {display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: start; gap: 55px; width: 100%;}
.area_page .area03_product + .area03_product {margin-top: 70px;}
.area_page .area03_img {width: 100%; aspect-ratio: 1.25 / 1; overflow: hidden; background: #f5f5f5; box-sizing: border-box;}
.area_page .area03_img img {display: block; width: 100%; height: 100%; object-fit: cover;}

.area_page .area03_info {min-width: 0;}
.area_page .area03_info_title { margin-bottom: 30px;}
.area_page .area03_info_title h4::before {content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 5px; background: #aaa;}
.area_page .area03_info_title h4 {position: relative; margin: 0 0 10px; color: #222; font-size: 25px; font-weight: 700; line-height: 1.45; white-space: normal; overflow-wrap: anywhere; padding-left: 20px;}
.area_page .area03_info_title h4 span {color: #626262; font-size: 17px; font-weight: 400;}
.area_page .area03_info_title p {margin: 0; color: #626262; font-size: 17px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere; padding-left: 20px;}

.area_page .area03_info_block {margin-top: 28px;}
.area_page .area03_info_block h5 {position: relative; margin: 0 0 9px; padding-left: 13px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.5;}
.area_page .area03_info_block h5::before {content: ""; position: absolute; top: .78em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.area_page .area03_info_block p {margin: 0; padding-left: 13px; color: #626262; font-size: 17px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere;}
.area_page .area03_info_block ul {margin: 0; padding: 0 0 0 26px; list-style: none;}
.area_page .area03_info_block li {position: relative; margin-top: 7px; color: #626262; font-size: 17px; line-height: 1.6; white-space: normal; overflow-wrap: anywhere;}
.area_page .area03_info_block li::before {content: "-"; position: absolute; left: -13px; color: #626262;}

.area_page .area03_cnc .area03_info {display: flex; flex-direction: column; gap: 35px;}
.area_page .area03_cnc .area03_info {display: flex; flex-direction: column; gap: 70px;}
.area_page .area03_cnc_block {margin: 0;}
.area_page .area03_cnc_block h5 {position: relative; margin: 0 0 24px; padding-left: 28px; color: #222; font-size: 23px; font-weight: 700; line-height: 1.45;}
.area_page .area03_cnc_block h5::before {content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 6px; background: #aaa;}
.area_page .area03_cnc_block > p {margin: 0 0 26px; padding: 0; color: #626262; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}
.area_page .area03_cnc_block ul {margin: 0; padding: 0; list-style: none;}
.area_page .area03_cnc_block li {position: relative; margin-top: 13px; padding-left: 17px; color: #222; font-size: 17px; font-weight: 600; line-height: 1.6; white-space: normal; overflow-wrap: anywhere;}
.area_page .area03_cnc_block li:first-child {margin-top: 0;}
.area_page .area03_cnc_block li::before {content: ""; position: absolute; top: .8em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.area_page .area03_cnc_block h4 {padding-left: 0; font-size: 20px; color: #222; font-weight: 700;}
.area_page .area03_cnc_block h4::before {display: none;}
.area_page .area03_cnc_block p {padding-left: 0;}
.area_page .area03_cnc_block ul {padding-left: 14px;}

.area_page .area04 {width:100vw; margin-left:calc(50% - 50vw); padding:55px 0 60px; background:url("../images/sub/sub_business03_16.png") no-repeat center center; background-size:cover; box-sizing:border-box;}
.area_page .area04_inner {width:100%; max-width:1500px; margin:0 auto; padding:0 40px; box-sizing:border-box;}
.area_page .area04_title {margin-bottom:25px; text-align:center;}
.area_page .area04_title h2 {margin:0; color:#fff; font-size:30px; font-weight:700; line-height:1.4;}
.area_page .area04_process {width:100%; max-width:1100px; margin:0 auto;}
.area_page .area04_process picture {display:block; width:100%;}
.area_page .area04_process img {display:block; width:100%; height:auto; margin:0 auto;}


@media (max-width: 1024px) {
    #sub.area_page {padding: 80px 0 0px;}
    .area_page .area_inner {padding: 0 35px;}
    .area_page .area_title {margin-bottom: 45px;}
    .area_page .area_title h2 {font-size: 29px;}
    .area_page .area_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px 28px;}
    .area_page .area02 {margin-top: 100px;}
    .area_page .area02_visual {min-height: 300px;}
    .area_page .area02_visual_inner {padding: 70px 35px;}
    .area_page .area02_visual h2 {font-size: 28px;}
    .area_page .area02_inner {padding: 80px 35px 100px;}
    .area_page .area02_title h2 {font-size: 27px;}
    .area_page .area02_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px 28px;}
    .area_page .area03_title {margin-bottom: 45px;}
    .area_page .area03_group + .area03_group {margin-top: 0px;}
    .area_page .area03_group_title h3 {font-size: 25px;}
    .area_page .area03_product {grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 35px;}
   
    .area_page .area03_info_title h4 {font-size: 22px;}
}
@media (max-width: 820px) {
    .area_page .area03_product {grid-template-columns: 1fr; gap: 35px;}
    .area_page .area03_product + .area03_product {margin-top: 65px;}
    .area_page .area03_img {max-width: 760px;}
}

@media (max-width:768px) {
    #sub.area_page {padding: 65px 0 0px;}
    .area_page .area_inner {padding: 0 20px;}
    .area_page .area_title {margin-bottom: 38px;}
    .area_page .area_grid {grid-template-columns: 1fr; gap: 38px;}
    .area_page .area_img {aspect-ratio: 1.3 / 1;}
    .area_page .area_txt {padding-top: 13px;}
    .area_page .area_txt strong, .area_page .area_txt p {font-size: 17px;}
    .area_page .area02 {margin-top: 75px;}
    .area_page .area02_visual {min-height: 320px; background-position: center;}
    .area_page .area02_visual_inner {padding: 55px 20px;}
    .area_page .area02_visual h2 {margin-bottom: 17px; font-size: 25px;}
    .area_page .area02_visual p {font-size: 17px; line-height: 1.7;}
    .area_page .area02_visual p br {display: none;}
    .area_page .area02_inner {padding: 75px 20px 80px;}
    .area_page .area02_title {margin-bottom: 22px;}
    .area_page .area02_title h2 {padding-left: 22px; font-size: 24px;}
    .area_page .area02_title h2::before {width: 11px; height: 11px;}
    .area_page .area02_goal {display: block; margin-bottom: 35px;}
    .area_page .area02_goal li {align-items: flex-start; margin-top: 9px; font-size: 17px;}
    .area_page .area02_goal strong {flex-shrink: 0; font-size: 17px;}
    .area_page .area02_grid {grid-template-columns: 1fr; gap: 38px;}
    .area_page .area02_img {aspect-ratio: 1.3 / 1;}
    .area_page .area02_txt {padding-top: 13px;}
    .area_page .area02_txt strong, .area_page .area02_txt p {font-size: 17px;}
    .area_page .area03 {padding: 0px 0 80px;}
    .area_page .area03_title {margin-bottom: 38px;}
    .area_page .area03_title h2 {padding-left: 22px; font-size: 24px;}
    .area_page .area03_title h2::before {width: 11px; height: 11px;}
    .area_page .area03_group + .area03_group {margin-top: 80px;}
    .area_page .area03_group_title {margin-bottom: 30px;}
    .area_page .area03_group_title h3 {padding-left: 18px; font-size: 23px; margin-top: 50px;}
    .area_page .area03_group_title h3::before {width: 3px;}
    .area_page .area03_group_title h3 span {display: block; margin: 4px 0 0; font-size: 17px;}
    .area_page .area03_group_title > p {font-size: 17px;}
    .area_page .area03_img {aspect-ratio: 1.25 / 1;}
    .area_page .area03_info-title::before {width: 3px;}
    .area_page .area03_info_title h4 {font-size: 21px;}
    .area_page .area03_info_title h4 span {display: block; margin-top: 3px; font-size: 17px;}
    .area_page .area03_info_title p, .area_page .area03_info_block p, .area_page .area03_info_block li {font-size: 17px;}
    .area_page .area03_info_title p br {display: none;}
    .area_page .area03_info_block h5 {font-size: 17px;}
    .area_page .area03_cnc .area03_info {gap: 30px;}
    .area_page .area04 {margin-top: 75px;}
    .area_page .area04_process img {width: 100%; max-width: 360px; height: auto;}

    .area_page .area02_title h2 {margin-top: 0px;}
}

#sub.business_page.business01_page {padding-bottom:0;}
.business_page .business01_area {
    width:100%;
    margin-top:120px;
}

.business_page .business01_area .area04 {
    margin-top:0;
}

@media (max-width:1024px) {
    .business_page .business01_area {
        margin-top:100px;
    }

    .business_page .business01_area .area04 {
        margin-top:0;
    }
}

/* field polishing */
#sub.field_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.field_page .field_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.field_page .field_title {margin-bottom: 38px;}
.field_page .field_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}
.field_page .field_title p {margin: 55px 0 0; color: #222; font-size: 20px; font-weight: 600; line-height: 1.65; white-space: normal; overflow-wrap: anywhere;}

.field_page .field01 {position: relative; width: 100%; padding-bottom: 110px;}
.field_page .field_img {width: 100%; aspect-ratio: 3.9 / 1; overflow: hidden; background: #f5f5f5;}
.field_page .field_img img {display: block; width: 100%; height: 100%; object-fit: cover;}

.field_page .field_list_box {position: absolute; left: 50%; bottom: 0; width: calc(100% - 160px); min-height: 150px; padding: 35px 45px; background: #fff; transform: translateX(-50%); box-sizing: border-box;}
.field_page .field_list {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 60px; margin: 0; padding: 0; list-style: none;}
.field_page .field_list li {position: relative; min-width: 0; padding-left: 17px; color: #626262; font-size: 17px; line-height: 1.6; white-space: normal; overflow-wrap: anywhere;}
.field_page .field_list li::before {content: ""; position: absolute; top: .8em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.field_page .field02 {width: 100%; margin-top: 120px;}
.field_page .field02_intro {margin-bottom: 75px;}
.field_page .field02_intro_title {margin-bottom: 22px;}
.field_page .field02_intro_title h2 {position: relative; margin: 0; padding-left: 22px; color: #222; font-size: 30px; font-weight: 700; line-height: 1.45;}
.field_page .field02_intro_title h2::before {content: ""; position: absolute; top: .75em; left: 0; width: 8px; height: 8px; border: 2px solid #E8380D; border-radius: 50%; transform: translateY(-50%); box-sizing: border-box;}
.field_page .field02_intro_title h2 span {margin-left: 12px; color: #777; font-size: 22px; font-weight: 400;}
.field_page .field02_intro > p { margin: 0; color: #626262; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}

.field_page .field02_item {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: flex-start; gap: 55px; width: 100%; padding: 0 20px 75px; border-bottom: 1px solid #ddd; box-sizing: border-box;}
.field_page .field02_item + .field02_item {padding-top: 75px;}
.field_page .field02_item.reverse .field02_txt {order: 2;}
.field_page .field02_item.reverse .field02_img {order: 1;}

.field_page .field02_item:last-child{
    border-bottom: none; padding: 75px 0px 0px;
}

.field_page .field02_txt {min-width: 0;}
.field_page .field02_item_title {margin-bottom: 28px;}
.field_page .field02_item_title h3 {position: relative; margin: 0; padding-left: 22px; color: #222; font-size: 28px; font-weight: 700; line-height: 1.45; white-space: normal; overflow-wrap: anywhere;}
.field_page .field02_item_title h3::before {content: ""; position: absolute; top: .08em; bottom: .08em; left: 0; width: 4px; background: #E8380D;}
.field_page .field02_item_title h3 span {margin-left: 12px; color: #777; font-size: 17px; font-weight: 400;}
.field_page .field02_txt > p {margin: 0; color: #626262; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}

.field_page .field02_service {margin-top: 30px; padding-top: 25px; border-top: 1px solid #ddd;}
.field_page .field02_service h4 {position: relative; margin: 0 0 12px; padding-left: 14px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.5;}
.field_page .field02_service h4::before {content: ""; position: absolute; top: .78em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.field_page .field02_service p {margin: 0; color: #626262; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}

.field_page .field02_img {width: 100%; aspect-ratio: 1.45 / 1; overflow: hidden; background: #f7f7f7; border: 1px solid #ddd; box-sizing: border-box;}
.field_page .field02_img img {display: block; width: 100%; height: 100%; object-fit: cover;}

@media (max-width: 1024px) {
    #sub.field_page {padding: 80px 0 100px;}
    .field_page .field_inner {padding: 0 35px;}
    .field_page .field_title h2 {font-size: 29px;}
    .field_page .field_title p {margin-top: 42px; font-size: 17px;}
    .field_page .field01 {padding-bottom: 145px;}
    .field_page .field_img {aspect-ratio: 2.5 / 1;}
    .field_page .field_list_box {width: calc(100% - 80px); min-height: 185px; padding: 30px 35px;}
    .field_page .field_list {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 35px;}
    .field_page .field02 {margin-top: 100px;}
    .field_page .field02_intro {margin-bottom: 60px;}
    .field_page .field02_intro_title h2 {font-size: 27px;}
    .field_page .field02_item {gap: 35px; padding: 0 0 60px;}
    .field_page .field02_item + .field02_item {padding-top: 60px;}
    .field_page .field02_item_title h3 {font-size: 24px;}
}

@media (max-width:840px) {
        .field_page .field02_item {grid-template-columns: 1fr; gap: 35px;}
    .field_page .field02_item .field02_img, .field_page .field02_item.reverse .field02_img {order: 1;}
    .field_page .field02_item .field02_txt, .field_page .field02_item.reverse .field02_txt {order: 2;}
}

@media (max-width:768px) {
    #sub.field_page {padding: 65px 0 80px;}
    .field_page .field_inner {padding: 0 20px;}
    .field_page .field_title {margin-bottom: 30px;}
    .field_page .field_title h2 {padding-top: 29px; font-size: 27px;}
    .field_page .field_title h2::before {width: 50px; height: 14px;}
    .field_page .field_title p {margin-top: 32px; font-size: 17px; line-height: 1.7;}
    .field_page .field_title p br {display: none;}
    .field_page .field01 {padding-bottom: 0;}
    .field_page .field_img {aspect-ratio: 1.6 / 1;}
    .field_page .field_list_box {position: static; width: 100%; min-height: 0; padding: 28px 20px; transform: none; border: 1px solid #eee; border-top: 0;}
    .field_page .field_list {grid-template-columns: 1fr; gap: 15px;}
    .field_page .field_list li {font-size: 17px;}
    .field_page .field02 {margin-top: 75px;}
    .field_page .field02_intro {margin-bottom: 45px;}
    .field_page .field02_intro_title {margin-bottom: 18px;}
    .field_page .field02_intro_title h2 {padding-left: 19px; font-size: 24px;}
    .field_page .field02_intro_title h2::before {width: 7px; height: 7px;}
    .field_page .field02_intro_title h2 span {display: block; margin: 4px 0 0; font-size: 17px;}
    .field_page .field02_intro > p {font-size: 17px;}
    /* .field_page .field02_intro > p br {display: none;} */
    .field_page .field02_item {gap: 28px; padding-bottom: 50px;}
    .field_page .field02_item + .field02_item {padding-top: 50px;}
    .field_page .field02_img {aspect-ratio: 1.3 / 1;}
    .field_page .field02_item_title {margin-bottom: 20px;}
    .field_page .field02_item_title h3 {padding-left: 18px; font-size: 22px; text-wrap: auto;}
    .field_page .field02_item_title h3::before {width: 3px;}
    .field_page .field02_item_title h3 span {display: block; margin: 4px 0 0; font-size: 17px;}
    .field_page .field02_txt > p, .field_page .field02_service p {font-size: 17px;}
    /* .field_page .field02_txt > p br {display: none;} */
    .field_page .field02_service {margin-top: 25px; padding-top: 22px;}
    .field_page .field02_service h4 {font-size: 17px;}
}

/* technology */
#sub.technology_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.technology_page .technology_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.technology_page .technology_title {margin-bottom: 55px;}
.technology_page .technology_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.technology_page .technology01 {width: 100%;}
.technology_page .technology_list {width: 100%;}
.technology_page .technology_item {display: grid; grid-template-columns: minmax(360px, .72fr) minmax(0, 1.75fr); align-items: stretch; gap: 50px; width: 100%; padding-bottom: 50px;}
.technology_page .technology_item + .technology_item {padding-top: 50px; border-top: 1px solid #ddd;}
.technology_page .technology_img {width: 100%; aspect-ratio: 1.45 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.technology_page .technology_img img {display: block; width: 100%; height: 100%; object-fit: cover;}

.technology_page .technology_info {display: grid; grid-template-rows: auto 1fr; min-width: 0; border-top: 2px solid #999; border-bottom: 1px solid #ddd;}
.technology_page .technology_info_row {display: grid; grid-template-columns: 250px minmax(0, 1fr); align-items: center; min-width: 0; padding: 28px 0; border-bottom: 1px solid #ddd;}
.technology_page .technology_info_row:last-child {border-bottom: 0;}
.technology_page .technology_info_row > strong {color: #999; font-size: 20px; font-weight: 700; line-height: 1.5;}
.technology_page .technology_info_txt {min-width: 0; color: #626262; font-size: 17px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere;}
.technology_page .technology_info_txt b {color: #222; font-size: 20px; font-weight: 700;}
.technology_page .technology_info_txt p {margin: 0; color: #626262; font-size: 17px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere;}

@media (max-width: 1024px) {
    #sub.technology_page {padding: 80px 0 100px;}
    .technology_page .technology_inner {padding: 0 35px;}
    .technology_page .technology_title {margin-bottom: 45px;}
    .technology_page .technology_title h2 {font-size: 29px;}
    .technology_page .technology_item {grid-template-columns: minmax(280px, .8fr) minmax(0, 1.4fr); gap: 35px;}
    .technology_page .technology_info_row {grid-template-columns: 180px minmax(0, 1fr); padding: 24px 0;}
    .technology_page .technology_info_row > strong, .technology_page .technology_info_txt b {font-size: 17px;}
}

@media (max-width: 820px) {
    .technology_page .technology_item {grid-template-columns: 1fr; gap: 30px; padding-bottom: 55px;}
    .technology_page .technology_item + .technology_item {padding-top: 55px;}
    .technology_page .technology_img {max-width: 650px;}
}

@media (max-width:768px) {
    #sub.technology_page {padding: 65px 0 80px;}
    .technology_page .technology_inner {padding: 0 20px;}
    .technology_page .technology_title {margin-bottom: 38px;}
    .technology_page .technology_title h2 {padding-top: 29px; font-size: 27px;}
    .technology_page .technology_title h2::before {width: 50px; height: 14px;}
    .technology_page .technology_item {gap: 25px; padding-bottom: 45px;}
    .technology_page .technology_item + .technology_item {padding-top: 45px;}
    .technology_page .technology_img {aspect-ratio: 1.35 / 1;}
    .technology_page .technology_info_row {grid-template-columns: 1fr; gap: 10px; padding: 22px 0;}
    .technology_page .technology_info_row > strong {font-size: 17px;}
    .technology_page .technology_info_txt b {font-size: 17px;}
    .technology_page .technology_info_txt, .technology_page .technology_info_txt p {font-size: 17px;}
}

/* special polishing */
#sub.special_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.special_page .special_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.special_page .special_title {margin-bottom: 55px;}
.special_page .special_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.special_page .special01 {width: 100%;}
.special_page .special01_title {margin-bottom: 28px;}
.special_page .special01_title h3 {position: relative; margin: 0; padding-left: 24px; color: #222; font-size: 20px; font-weight: 700; line-height: 1.5;}

.special_page .special_product_grid {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; width: 100%;}
.special_page .special_product_box {min-width: 0;}
.special_page .special_product_img {width: 100%; aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.special_page .special_product_img img {display: block; width: 100%; height: 100%; object-fit: cover;}

.special_page .special_new {display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; width: 100%; margin-top: 45px; padding: 32px 0 35px; border-top: 2px solid #999; border-bottom: 1px solid #bbb; box-sizing: border-box;}
.special_page .special_new_label {color: #999; font-size: 20px; font-weight: 700; line-height: 1.6;}
.special_page .special_new_content {min-width: 0;}
.special_page .special_new_content h3 {margin: 0 0 22px; color: #222; font-size: 24px; font-weight: 700; line-height: 1.45;}
.special_page .special_new_content p {margin: 0; color: #626262; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}

@media (max-width: 1024px) {
    #sub.special_page {padding: 80px 0 100px;}
    .special_page .special_inner {padding: 0 35px;}
    .special_page .special_title {margin-bottom: 45px;}
    .special_page .special_title h2 {font-size: 29px;}
    .special_page .special_product_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px;}
    .special_page .special_new {grid-template-columns: 180px minmax(0, 1fr); gap: 30px;}
}

@media (max-width:768px) {
    #sub.special_page {padding: 65px 0 80px;}
    .special_page .special_inner {padding: 0 20px;}
    .special_page .special_title {margin-bottom: 38px;}
    .special_page .special_title h2 {padding-top: 29px; font-size: 27px;}
    .special_page .special_title h2::before {width: 50px; height: 14px;}
    .special_page .special01_title {margin-bottom: 22px;}
    .special_page .special01_title h3 {padding-left: 22px; font-size: 17px;}
    .special_page .special01_title h3::before {width: 11px; height: 11px;}
    .special_page .special_product_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px;}
    .special_page .special_new {grid-template-columns: 1fr; gap: 12px; margin-top: 35px; padding: 26px 0 28px;}
    .special_page .special_new_label {font-size: 17px;}
    .special_page .special_new_content h3 {margin-bottom: 17px; font-size: 21px;}
    .special_page .special_new_content p {font-size: 17px;}
    .special_page .special_new_content p br {display: none;}
}

@media (max-width: 480px) {
    .special_page .special_product_grid {grid-template-columns: 1fr;}
    .special_page .special_product_img {aspect-ratio: 1.25 / 1;}
}

/* measurement */
#sub.measurement_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.measurement_page .measurement_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.measurement_page .measurement_title {margin-bottom: 45px;}
.measurement_page .measurement_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.measurement_page .measurement01 {width: 100%;}
.measurement_page .measurement_intro {padding-bottom: 45px; border-bottom: 1px solid #bbb;}
.measurement_page .measurement_intro h3 {position: relative; margin: 0 0 18px; padding-left: 24px; color: #222; font-size: 20px; font-weight: 700; line-height: 1.6;}
.measurement_page .measurement_intro h3::before {content: ""; position: absolute; top: .8em; left: 0; width: 8px; height: 8px; border: 2px solid #E8380D; border-radius: 50%; transform: translateY(-50%); box-sizing: border-box;}
.measurement_page .measurement_intro ul {margin: 0; padding: 0 0 0 24px; list-style: none;}
.measurement_page .measurement_intro li {position: relative; margin-top: 10px; padding-left: 12px; color: #333; font-size: 17px; line-height: 1.65; white-space: normal; overflow-wrap: anywhere;}
.measurement_page .measurement_intro li::before {content: ""; position: absolute; top: .8em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}

.measurement_page .measurement_list_title {margin: 45px 0 30px;}
.measurement_page .measurement_list_title h3 {position: relative; margin: 0; padding-left: 20px; color: #222; font-size: 20px; font-weight: 700; line-height: 1.5;}
.measurement_page .measurement_list_title h3::before {content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background: #aaa;}

.measurement_page .measurement_grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 55px 36px; width: 100%;}
.measurement_page .measurement_item {min-width: 0;}
.measurement_page .measurement_img {width: 100%; aspect-ratio: 1.12 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.measurement_page .measurement_img img {display: block; width: 100%; height: 100%; object-fit: cover;}

.measurement_page .measurement_info {width: 100%; border-top: 2px solid #999; border-bottom: 1px solid #ddd; margin-top: 24px;}
.measurement_page .measurement_info_row {display: grid; grid-template-columns: 80px minmax(0, 1fr); align-items: center; min-width: 0; padding: 15px 0; border-bottom: 1px solid #ddd;}
.measurement_page .measurement_info_row span {color: #999; font-size: 17px; font-weight: 700;}
.measurement_page .measurement_info_row strong {min-width: 0; color: #222; font-size: 17px; font-weight: 700; line-height: 1.5; white-space: normal; overflow-wrap: anywhere;}
.measurement_page .measurement_desc {min-height: 105px; margin: 0; padding: 16px 0; color: #626262; font-size: 17px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere;}

@media (max-width: 1024px) {
    #sub.measurement_page {padding: 80px 0 100px;}
    .measurement_page .measurement_inner {padding: 0 35px;}
    .measurement_page .measurement_title {margin-bottom: 40px;}
    .measurement_page .measurement_title h2 {font-size: 29px;}
    .measurement_page .measurement_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px 25px;}
}

@media (max-width:768px) {
    #sub.measurement_page {padding: 65px 0 80px;}
    .measurement_page .measurement_inner {padding: 0 20px;}
    .measurement_page .measurement_title {margin-bottom: 35px;}
    .measurement_page .measurement_title h2 {padding-top: 29px; font-size: 27px;}
    .measurement_page .measurement_title h2::before {width: 50px; height: 14px;}
    .measurement_page .measurement_intro {padding-bottom: 35px;}
    .measurement_page .measurement_intro h3 {padding-left: 20px; font-size: 17px;}
    .measurement_page .measurement_intro h3::before {width: 7px; height: 7px;}
    .measurement_page .measurement_intro li {font-size: 17px;}
    .measurement_page .measurement_list_title {margin: 35px 0 25px;}
    .measurement_page .measurement_list_title h3 {font-size: 17px;}
    .measurement_page .measurement_grid {grid-template-columns: 1fr; gap: 40px;}
    .measurement_page .measurement_img {aspect-ratio: 1.25 / 1;}
    .measurement_page .measurement_info_row {grid-template-columns: 70px minmax(0, 1fr); padding: 14px 0;}
    .measurement_page .measurement_info_row span {font-size: 17px;}
    .measurement_page .measurement_info_row strong {font-size: 17px;}
    .measurement_page .measurement_desc {min-height: 0; font-size: 17px;}
}

/* faq */
#sub.faq_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.faq_page .faq_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.faq_page .faq_title {margin-bottom: 55px;}
.faq_page .faq_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.faq_page .faq_question{cursor:pointer; user-select:none;}

/* intro */
.faq_page .faq_intro {width: 100%; margin-bottom: 85px;}
.faq_page .faq_intro_img {position: relative; display: flex; align-items: flex-end; width: 100%; aspect-ratio: 4 / 1; overflow: hidden; padding: 35px 40px; background: #eee; box-sizing: border-box;}
.faq_page .faq_intro_img::after {content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.45), rgba(0,0,0,0) 55%); pointer-events: none;}
.faq_page .faq_intro_img img {position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover;}
.faq_page .faq_intro_img h3 {position: relative; z-index: 2; margin: 0; color: #fff; font-size: 36px; font-weight: 600; line-height: 1.45;}
.faq_page .faq_intro_txt {max-width: 1400px; margin: 35px auto 0;}
.faq_page .faq_intro_txt p {margin: 0; color: #626262; font-size: 17px; line-height: 1.8; white-space: normal; overflow-wrap: anywhere;}

.faq_page .faq_list {width: 100%;}
.faq_page .faq_item {width: 100%; margin: 60px 0; border-top: 2px solid #ccc; border-bottom: 1px solid #ccc;}
.faq_page .faq_question {display: grid; grid-template-columns: 44px minmax(0, 1fr) 42px; align-items: center; gap: 20px; min-height: 100px; box-sizing: border-box;}
.faq_page .faq_question h3 {min-width: 0; margin: 0; color: #222; font-size: 20px; font-weight: 700; line-height: 1.55; white-space: normal; overflow-wrap: anywhere;}
.faq_page .faq_mark {display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; font-size: 24px; font-weight: 600; box-sizing: border-box;}
.faq_page .faq_mark.q {color: #fff; background: #E8380D;}
.faq_page .faq_mark.a {color: #fff; background: #ccc;}

.faq_page .faq_toggle {position: relative; width: 42px; height: 42px; padding: 0; border: 0; background: transparent; cursor: pointer;}
.faq_page .faq_toggle span {position: absolute; top: 50%; left: 50%; width: 11px; height: 11px; border-right: 2px solid #E8380D; border-bottom: 2px solid #E8380D; transform: translate(-50%, -70%) rotate(45deg); transition: transform .3s ease;}
.faq_page .faq_item.active .faq_toggle span {transform: translate(-50%, -30%) rotate(225deg);}

.faq_page .faq_answer {height: 0; overflow: hidden; transition: height .4s ease;}
.faq_page .faq_answer_inner {display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 18px; padding: 0 60px 35px 62px; box-sizing: border-box;}
.faq_page .faq_answer_txt {min-width: 0; padding-top: 5px;}
.faq_page .faq_answer_txt p {margin: 0; color: #626262; font-size: 17px; line-height: 1.8; white-space: normal; overflow-wrap: anywhere;}
.faq_page .faq_answer_txt ul {margin: 0; padding: 0; list-style: none;}
.faq_page .faq_answer_txt li {position: relative; margin-top: 12px; padding-left: 14px; color: #626262; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}
.faq_page .faq_answer_txt li:first-child {margin-top: 0;}
.faq_page .faq_answer_txt li::before {content: ""; position: absolute; top: .8em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #626262; transform: translateY(-50%);}

/* faq-제품 소개 목록용 */
.faq_page .faq_product_grid {display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; width: 100%; margin-top: 32px;}
.faq_page .faq_product_item {min-width: 0;}
.faq_page .faq_product_img {width: 100%; aspect-ratio: 1.65 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.faq_page .faq_product_img img {display: block; width: 100%; height: 100%; object-fit: cover;}
.faq_page .faq_product_txt {padding-top: 12px;}
.faq_page .faq_product_txt strong {position: relative; display: block; padding-left: 14px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.5; white-space: normal; overflow-wrap: anywhere;}
.faq_page .faq_product_txt strong::before {content: ""; position: absolute; top: .78em; left: 0; width: 7px; height: 7px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}
.faq_page .faq_product_txt p {margin: 4px 0 0; padding-left: 14px; color: #626262; font-size: 17px; line-height: 1.5; white-space: normal; overflow-wrap: anywhere;}

.faq_page .faq_detail_list {margin: 0; padding: 0; list-style: none;}
.faq_page .faq_detail_list > li {position: relative; margin: 0 0 24px; padding-left: 14px; color: #626262; font-size: 17px; font-weight: 400; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}
.faq_page .faq_detail_list > li:last-child {margin-bottom: 0;}
.faq_page .faq_detail_list > li::before {content: ""; position: absolute; top: .8em; left: 0; width: 4px; height: 4px; border-radius: 50%; background: #222; transform: translateY(-50%);}
.faq_page .faq_detail_list > li > span {display: block; margin-bottom: 7px; color: #222; font-size: 17px; font-weight: 700; line-height: 1.55;}

.faq_page .faq_detail_list.numbered {counter-reset: faq-num;}
.faq_page .faq_detail_list.numbered > li {counter-increment: faq-num; padding-left: 34px; margin-bottom: 30px;}
.faq_page .faq_detail_list.numbered > li::before {content: counter(faq-num); top: 3px; left: 0; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; background: #222; color: #fff; font-size: 17px; font-weight: 700; line-height: 1; transform: none;}
.faq_page .faq_detail_list.numbered > li > span {margin-bottom: 9px;}


@media (max-width: 1024px) {
    #sub.faq_page {padding: 80px 0 100px;}
    .faq_page .faq_inner {padding: 0 35px;}
    .faq_page .faq_title {margin-bottom: 45px;}
    .faq_page .faq_title h2 {font-size: 29px;}
    .faq_page .faq_intro {margin-bottom: 70px;}
    .faq_page .faq_intro_img {aspect-ratio: 2.8 / 1; padding: 30px;}
    .faq_page .faq_intro_img h3 {font-size: 30px;}
    .faq_page .faq_answer_inner {padding-right: 40px;}
    .faq_page .faq_product_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px;}
    .faq_page .faq_detail_list > li {margin-bottom: 22px;}
    .faq_page .faq_detail_list.numbered > li {margin-bottom: 26px;}
}

@media (max-width:768px) {
    #sub.faq_page {padding: 65px 0 80px;}
    .faq_page .faq_inner {padding: 0 20px;}
    .faq_page .faq_title {margin-bottom: 38px;}
    .faq_page .faq_title h2 {padding-top: 29px; font-size: 27px;}
    .faq_page .faq_title h2::before {width: 50px; height: 14px;}
    .faq_page .faq_intro {margin-bottom: 55px;}
    .faq_page .faq_intro_img {aspect-ratio: 1.6 / 1; padding: 25px 20px;}
    .faq_page .faq_intro_img h3 {font-size: 24px;}
    .faq_page .faq_intro_txt {margin-top: 25px;}
    .faq_page .faq_intro_txt p {font-size: 17px;}
    .faq_page .faq_intro_txt p br {display: none;}
    .faq_page .faq_question {grid-template-columns: 38px minmax(0, 1fr) 34px; gap: 12px; min-height: 82px;}
    .faq_page .faq_mark {width: 38px; height: 38px; font-size: 21px;}
    .faq_page .faq_question h3 {font-size: 17px; margin: 10px 0;}
    .faq_page .faq_toggle {width: 34px; height: 34px;}
    .faq_page .faq_answer_inner {grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 0 0 30px;}
    .faq_page .faq_answer_txt p, .faq_page .faq_answer_txt li {font-size: 17px;}
    .faq_page .faq_answer_txt p{word-break: break-all;}

    .faq_page .faq_product_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 12px; margin-top: 25px;}
    .faq_page .faq_product_img {aspect-ratio: 1.25 / 1;}
    .faq_page .faq_product_txt {padding-top: 10px;}
    .faq_page .faq_product_txt strong {padding-left: 12px; font-size: 17px;}
    .faq_page .faq_product_txt strong::before {width: 5px; height: 5px;}
    .faq_page .faq_product_txt p {padding-left: 12px; font-size: 17px;}
    .faq_page .faq_detail_list > li {margin-bottom: 20px; padding-left: 12px; font-size: 17px; line-height: 1.7;}
    .faq_page .faq_detail_list > li > span {margin-bottom: 6px; font-size: 17px; line-height: 1.5;}
    .faq_page .faq_detail_list.numbered > li {padding-left: 32px; margin-bottom: 24px;}
    .faq_page .faq_detail_list.numbered > li::before {top: 2px; width: 20px; height: 20px; font-size: 17px;}
}

/* greeting */
#sub.greeting_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.greeting_page .greeting_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.greeting_page .greeting_title {margin-bottom: 55px;}
.greeting_page .greeting_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.greeting_page .greeting01 {display: grid; grid-template-columns: minmax(0, 1fr) minmax(500px, 1fr); align-items: flex-start; gap: 90px;}
.greeting_page .greeting01_txt {min-width: 0;}
.greeting_page .greeting01_txt h3 {margin: 0 0 25px; color: #222; font-size: 42px; font-weight: 700; line-height: 1.35; letter-spacing: -0.04em;}
.greeting_page .greeting01_txt h4 {margin: 0 0 32px; color: #222; font-size: 22px; font-weight: 600; line-height: 1.65; white-space: normal; overflow-wrap: anywhere;}
.greeting_page .greeting01_txt p {margin: 0; color: #626262; font-size: 17px; line-height: 1.8; white-space: normal; overflow-wrap: anywhere;}
.greeting_page .greeting01_img {width: 100%; aspect-ratio: 1.65 / 1; overflow: hidden; background: #f7f7f7;}
.greeting_page .greeting01_img img {display: block; width: 100%; height: 100%; object-fit: cover;}

.greeting_page .greeting02 {display: grid; grid-template-columns: minmax(420px, .85fr) minmax(0, 1.15fr); align-items: start; gap: 65px; margin-top: 110px;}
.greeting_page .greeting02_img {width: 100%; aspect-ratio: 1.32 / 1; overflow: hidden; background: #f7f7f7;}
.greeting_page .greeting02_img img {display: block; width: 100%; height: 100%; object-fit: cover;}
.greeting_page .greeting02_txt {min-width: 0;}
.greeting_page .greeting02_txt h3 {margin: 0 0 35px; color: #222; font-size: 24px; font-weight: 600; line-height: 1.55; white-space: normal; overflow-wrap: anywhere;}
.greeting_page .greeting02_desc p {margin: 0 0 24px; color: #626262; font-size: 17px; line-height: 1.8; white-space: normal; overflow-wrap: anywhere;}
.greeting_page .greeting02_desc p:last-child {margin-bottom: 0;}
.greeting_page .greeting_sign {margin: 55px 0 0; color: #626262; font-size: 17px; line-height: 1.6; text-align: right;}

@media (max-width: 1024px) {
    #sub.greeting_page {padding: 80px 0 100px;}
    .greeting_page .greeting_inner {padding: 0 35px;}
    .greeting_page .greeting_title {margin-bottom: 45px;}
    .greeting_page .greeting_title h2 {font-size: 29px;}
    .greeting_page .greeting01 {grid-template-columns: minmax(0, 1fr) minmax(400px, 1fr); gap: 50px;}
    .greeting_page .greeting01_txt h3 {font-size: 34px;}
    .greeting_page .greeting01_txt h4 {font-size: 20px;}
    .greeting_page .greeting02 {grid-template-columns: .9fr 1.1fr; gap: 45px; margin-top: 90px;}
    .greeting_page .greeting02_txt h3 {font-size: 22px;}
}

@media (max-width:768px) {
    #sub.greeting_page {padding: 65px 0 80px;}
    .greeting_page .greeting_inner {padding: 0 20px;}
    .greeting_page .greeting_title {margin-bottom: 38px;}
    .greeting_page .greeting_title h2 {padding-top: 29px; font-size: 27px;}
    .greeting_page .greeting_title h2::before {width: 50px; height: 14px;}
    .greeting_page .greeting01 {gap: 32px;}
    .greeting_page .greeting01_txt h3 {margin-bottom: 20px; font-size: 29px;}
    .greeting_page .greeting01_txt h4 {margin-bottom: 24px; font-size: 17px;}
    .greeting_page .greeting01_txt p {font-size: 17px;}
    .greeting_page .greeting01_img {aspect-ratio: 1.35 / 1;}
    .greeting_page .greeting02 {gap: 30px; margin-top: 65px;}
    .greeting_page .greeting02_img {aspect-ratio: 1.25 / 1;}
    .greeting_page .greeting02_txt h3 {margin-bottom: 28px; font-size: 21px;}
    .greeting_page .greeting02_txt h3 br {display: none;}
    .greeting_page .greeting02_desc p {margin-bottom: 20px; font-size: 17px;}
    .greeting_page .greeting_sign {margin-top: 35px; font-size: 17px;}
}

@media (max-width: 820px) {
    .greeting_page .greeting01, .greeting_page .greeting02 {grid-template-columns: 1fr;}
    .greeting_page .greeting01 {gap: 40px;}
    .greeting_page .greeting02 {gap: 40px; margin-top: 80px;}
    .greeting_page .greeting01_img, .greeting_page .greeting02_img {max-width: 760px;}
}

/* vision */
#sub.vision_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.vision_page .vision_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.vision_page .vision_title {margin-bottom: 55px;}
.vision_page .vision_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.vision_page .vision01 {width: 100%;}
.vision_page .vision_main {position: relative; display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 2.45 / 1; overflow: hidden; background: #ddd;}
.vision_page .vision_main::after {content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(0,0,0,.08) 30%, rgba(205,55,15,.55) 100%);}
.vision_page .vision_main > img {position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover;}
.vision_page .vision_main_txt {position: relative; z-index: 2; width: 100%; padding: 40px; color: #fff; text-align: center; box-sizing: border-box;}
.vision_page .vision_main_txt h3 {margin: 0 0 20px; color: #fff; font-size: 36px; font-weight: 700; line-height: 1.4;}
.vision_page .vision_main_txt p {margin: 0; color: #fff; font-size: 17px; line-height: 1.75; white-space: normal; overflow-wrap: anywhere;}

.vision_page .vision_line {width: 2px; height: 170px; margin: -45px auto 35px; position: relative; z-index: 3; background: linear-gradient(to bottom, #E8380D 0%, #A7A7A7 100%);}
.vision_page .vision_desc {max-width: 950px; margin: 0 auto 75px; text-align: center;}
.vision_page .vision_desc p {margin: 0; color: #626262; font-size: 17px; line-height: 1.8; white-space: normal; overflow-wrap: anywhere;}

.vision_page .vision_equipment {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 90px; width: 100%;}
.vision_page .vision_equipment_item {min-width: 0;}
.vision_page .vision_equipment_item.is-lower {margin-top: 70px;}
.vision_page .vision_equipment_img {width: 100%; aspect-ratio: 1.18 / 1; overflow: hidden; background: #f7f7f7;}
.vision_page .vision_equipment_img img {display: block; width: 100%; height: 100%; object-fit: cover;}
.vision_page .vision_equipment_item p {position: relative; margin: 14px 0 0; padding-left: 14px; color: #222; font-size: 17px; font-weight: 600; line-height: 1.5;}
.vision_page .vision_equipment_item p::before {content: ""; position: absolute; top: .78em; left: 0; width: 6px; height: 6px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}

/* .vision_page .vision_desc, */
.vision_page .vision_equipment_item { opacity:0; transform:translateY(38px); transition:opacity .75s ease, transform .75s cubic-bezier(.22, 1, .36, 1); will-change:opacity, transform;}

/* .vision_page .vision_desc.is-visible, */
.vision_page .vision_equipment_item.is-visible { opacity:1; transform:translateY(0);}

@media (prefers-reduced-motion:reduce) {
    /* .vision_page .vision_desc, */
    .vision_page .vision_equipment_item { opacity:1; transform:none; transition:none;
    }
}

@media (max-width: 1024px) {
    #sub.vision_page {padding: 80px 0 100px;}
    .vision_page .vision_inner {padding: 0 35px;}
    .vision_page .vision_title {margin-bottom: 45px;}
    .vision_page .vision_title h2 {font-size: 29px;}
    .vision_page .vision_main {aspect-ratio: 2 / 1;}
    .vision_page .vision_main_txt h3 {font-size: 31px;}
    .vision_page .vision_line {height: 140px;}
    .vision_page .vision_equipment {gap: 50px;}
    .vision_page .vision_equipment_item.is-lower {margin-top: 40px;}
}

@media (max-width:768px) {
    #sub.vision_page {padding: 65px 0 80px;}
    .vision_page .vision_inner {padding: 0 20px;}
    .vision_page .vision_title {margin-bottom: 38px;}
    .vision_page .vision_title h2 {padding-top: 29px; font-size: 27px;}
    .vision_page .vision_title h2::before {width: 50px; height: 14px;}
    .vision_page .vision_main {aspect-ratio: 1 / 1;}
    .vision_page .vision_main_txt {padding: 30px 20px;}
    .vision_page .vision_main_txt h3 {margin-bottom: 15px; font-size: 25px;}
    .vision_page .vision_main_txt p {font-size: 17px; line-height: 1.65;}
    .vision_page .vision_main_txt p br {display: none;}
    .vision_page .vision_line {height: 105px; margin: -25px auto 28px;}
    .vision_page .vision_desc {margin-bottom: 55px;}
    .vision_page .vision_desc p {font-size: 17px;}
    .vision_page .vision_desc p br {display: none;}
    .vision_page .vision_equipment {grid-template-columns: 1fr; gap: 45px;}
    .vision_page .vision_equipment_item.is-lower {margin-top: 0;}
    .vision_page .vision_equipment_img {aspect-ratio: 1.3 / 1;}
    .vision_page .vision_equipment_item p {font-size: 17px;}
}

/* history */
#sub.history_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.history_page .history_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.history_page .history_title {margin-bottom: 55px;}
.history_page .history_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.history_page .history_group {display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 210px; align-items: start;}
.history_page .history_group + .history_group {margin-top: 100px;}
.history_page .history_period h3 {margin: 0; color: #999; font-size: 44px; font-weight: 500; line-height: 1.2; letter-spacing: -0.02em;}

.history_page .history_list {position: relative; width: 100%; max-width: 850px;}
.history_page .history_list::before {content: ""; position: absolute; top: 10px; bottom: 10px; left: 138px; width: 1px; background: linear-gradient(to bottom, #E8380D 0%, #A7A7A7 100%);}

.history_page .history_item { position:relative; display:grid; grid-template-columns:112px 52px minmax(0, 1fr); align-items:start; min-width:0; opacity:0; transform:translateY(35px); transition:opacity .7s ease, transform .7s cubic-bezier(.22, 1, .36, 1); will-change:opacity, transform;}
.history_page .history_item + .history_item {margin-top: 32px;}
.history_page .history_item.has-image + .history_item {margin-top: 42px;}

.history_page .history_item.is-visible {
    opacity:1;
    transform:translateY(0);
}

.history_page .history_date {padding-top: 1px; color: #222; font-size: 22px; font-weight: 700; line-height: 1.3; text-align: right; white-space: nowrap;}
.history_page .history_dot {position: relative; min-height: 26px;}
.history_page .history_dot::before {content: ""; position: absolute; top: 7px; left: 26px; width: 9px; height: 9px; border-radius: 50%; background: #E8380D; transform: translateX(-50%);}

.history_page .history_body {min-width: 0;}
.history_page .history_txt {margin: 0 0 14px; color: #333; font-size: 17px; font-weight: 500; line-height: 1.65; white-space: normal; overflow-wrap: anywhere;}

.history_page .history_media {width: 220px; aspect-ratio: 1.25 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.history_page .history_media img {display: block; width: 100%; height: 100%; object-fit: cover;}

.history_page .history_media_narrow {width: 130px; aspect-ratio: .72 / 1;}
.history_page .history_media_company {width: 270px; aspect-ratio: 1.45 / 1;}

.history_page .history_media_grid {display: grid; gap: 10px; width: 100%; max-width: 370px;}
.history_page .history_media_grid.col-2 {grid-template-columns: repeat(2, minmax(0, 1fr));}
.history_page .history_media_box {aspect-ratio: 1.25 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.history_page .history_media_box img {display: block; width: 100%; height: 100%; object-fit: cover;}

@media (max-width: 1024px) {
    #sub.history_page {padding: 80px 0 100px;}
    .history_page .history_inner {padding: 0 35px;}
    .history_page .history_title {margin-bottom: 45px;}
    .history_page .history_title h2 {font-size: 29px;}

    .history_page .history_group {grid-template-columns: 220px minmax(0, 1fr); gap: 45px;}
    .history_page .history_group + .history_group {margin-top: 85px;}
    .history_page .history_period h3 {font-size: 34px;}

    .history_page .history_list::before {left: 119px;}
    .history_page .history_item {grid-template-columns: 98px 42px minmax(0, 1fr);}
    .history_page .history_date {font-size: 20px;}
    .history_page .history_dot::before {left: 21px;}

    .history_page .history_item + .history_item {margin-top: 28px;}
    .history_page .history_item.has-image + .history_item {margin-top: 38px;}
    .history_page .history_media {width: 190px;}
    .history_page .history_media_company {width: 240px;}
}

@media (max-width:768px) {
    #sub.history_page {padding: 65px 0 80px;}
    .history_page .history_inner {padding: 0 20px;}
    .history_page .history_title {margin-bottom: 38px;}
    .history_page .history_title h2 {padding-top: 29px; font-size: 27px;}
    .history_page .history_title h2::before {width: 50px; height: 14px;}

    .history_page .history_group {grid-template-columns: 1fr; gap: 30px;}
    .history_page .history_group + .history_group {margin-top: 70px;}
    .history_page .history_period h3 {font-size: 28px;}

    .history_page .history_list {max-width: none;}
    .history_page .history_list::before {top: 8px; bottom: 8px; left: 6px;}

    .history_page .history_item {grid-template-columns: 20px minmax(0, 1fr); row-gap: 6px;}
    .history_page .history_item + .history_item {margin-top: 30px;}
    .history_page .history_item.has-image + .history_item {margin-top: 38px;}

    .history_page .history_date {grid-column: 2; grid-row: 1; padding: 0; font-size: 20px; text-align: left;}
    .history_page .history_dot {grid-column: 1; grid-row: 1 / span 2; min-height: 100%;}
    .history_page .history_dot::before {top: 6px; left: 6px; width: 9px; height: 9px; transform: translateX(-50%);}

    .history_page .history_body {grid-column: 2; grid-row: 2;}
    .history_page .history_txt {margin-bottom: 12px; font-size: 17px;}

    .history_page .history_media {width: 100%; max-width: 280px; aspect-ratio: 1.3 / 1;}
    .history_page .history_media_narrow {width: 130px; aspect-ratio: .72 / 1;}
    .history_page .history_media_company {width: 100%; max-width: 300px; aspect-ratio: 1.45 / 1;}

    .history_page .history_media_grid {max-width: 100%;}
    .history_page .history_media_grid.col-2 {grid-template-columns: repeat(2, minmax(0, 1fr));}
}

@media (prefers-reduced-motion: reduce) {
    .history_page .history_item {
        opacity:1;
        transform:none;
        transition:none;
    }
}

/* certification */
#sub.certification_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.certification_page .certification_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.certification_page .certification_title {margin-bottom: 55px;}
.certification_page .certification_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.certification_page .certification01 {width: 100%;}
.certification_page .certification_grid {display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 55px 32px; width: 100%;}
.certification_page .certification_item {min-width: 0;}
.certification_page .certification_img {display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: .72 / 1; overflow: hidden; border: 1px solid #ddd; background: #fafafa; box-sizing: border-box;}
.certification_page .certification_img img {display: block; width: 100%; height: 100%; object-fit: cover;}
.certification_page .certification_item p {position: relative; margin: 14px 0 0; padding-left: 14px; color: #222; font-size: 17px; font-weight: 600; line-height: 1.55; white-space: normal; overflow-wrap: anywhere;}
.certification_page .certification_item p::before {content: ""; position: absolute; top: .78em; left: 0; width: 6px; height: 6px; border-radius: 50%; background: #E8380D; transform: translateY(-50%);}

@media (max-width: 1024px) {
    #sub.certification_page {padding: 80px 0 100px;}
    .certification_page .certification_inner {padding: 0 35px;}
    .certification_page .certification_title {margin-bottom: 45px;}
    .certification_page .certification_title h2 {font-size: 29px;}
    .certification_page .certification_grid {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 45px 28px;}
}

@media (max-width:768px) {
    #sub.certification_page {padding: 65px 0 80px;}
    .certification_page .certification_inner {padding: 0 20px;}
    .certification_page .certification_title {margin-bottom: 38px;}
    .certification_page .certification_title h2 {padding-top: 29px; font-size: 27px;}
    .certification_page .certification_title h2::before {width: 50px; height: 14px;}
    .certification_page .certification_grid {grid-template-columns: 1fr; gap: 38px;}
    .certification_page .certification_img {max-width: 420px; margin: 0 auto; aspect-ratio: .72 / 1;}
    .certification_page .certification_item p {font-size: 17px;}
}

/* access */
#sub.access_page {width: 100%; padding: 90px 0 120px; background: #fff; box-sizing: border-box;}
.access_page .access_inner {width: 100%; max-width: 1740px; margin: 0 auto;  padding: 0 24px; box-sizing: border-box;}
.access_page .access_title {margin-bottom: 55px;}
.access_page .access_title h2 {position: relative; margin: 0; padding-top: 34px; color: #222; font-size: 32px; font-weight: 700; line-height: 1.3;}

.access_page .access01 {width: 100%;}
.access_page .access_subtitle {margin-bottom: 35px;}
.access_page .access_subtitle h3 {position: relative; margin: 0; padding-left: 22px; color: #222; font-size: 24px; font-weight: 700; line-height: 1.4;}
.access_page .access_subtitle h3::before {content: ""; position: absolute; top: .05em; bottom: .05em; left: 0; width: 4px; background: #aaa;}

.access_page .access_photo {width: 100%; aspect-ratio: 2.45 / 1; overflow: hidden; background: #f5f5f5;}
.access_page .access_photo img {display: block; width: 100%; height: 100%; object-fit: cover;}

.access_page .access_map {width: 100%; aspect-ratio: 2.45 / 1; margin-top: 25px; overflow: hidden; background: #f5f5f5;}
.access_page .access_map iframe {display: block; width: 100%; height: 100%; border: 0;}

.access_page .access_office {display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 60px; width: 100%; padding: 35px 0 40px; border-top: 1px solid #bbb; border-bottom: 1px solid #ddd; box-sizing: border-box; margin-top: 40px;}
.access_page .access_office + .access_office {margin-top: 35px;}
.access_page .access_office_name h3 {margin: 0; color: #222; font-size: 20px; font-weight: 700; line-height: 1.5;}
.access_page .access_office_info {min-width: 0;}
.access_page .access_info_row {display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 12px; align-items: start;}
.access_page .access_info_row + .access_info_row {margin-top: 28px;}
.access_page .access_info_icon {width: 20px; height: 20px;}
.access_page .access_info_icon img {display: block; width: 100%; height: 100%; object-fit: cover;}
.access_page .access_info_txt {min-width: 0;}
.access_page .access_info_txt strong {display: block; margin-bottom: 8px; color: #333; font-size: 17px; font-weight: 700; line-height: 1.5;}
.access_page .access_info_txt p {margin: 3px 0 0; color: #626262; font-size: 17px; line-height: 1.65; white-space: normal; overflow-wrap: anywhere;}
.access_page .access_info_txt a {color: inherit; text-decoration: none;}
.access_page .access_info_txt a:hover {text-decoration: underline;}

@media (max-width: 1024px) {
    #sub.access_page {padding: 80px 0 100px;}
    .access_page .access_inner {padding: 0 35px;}
    .access_page .access_title {margin-bottom: 45px;}
    .access_page .access_title h2 {font-size: 29px;}
    .access_page .access_photo, .access_page .access_map {aspect-ratio: 1.9 / 1;}
    .access_page .access_office {grid-template-columns: 220px minmax(0, 1fr); gap: 40px;}
}

@media (max-width:768px) {
    #sub.access_page {padding: 65px 0 80px;}
    .access_page .access_inner {padding: 0 20px;}
    .access_page .access_title {margin-bottom: 38px;}
    .access_page .access_title h2 {padding-top: 29px; font-size: 27px;}
    .access_page .access_title h2::before {width: 50px; height: 14px;}

    .access_page .access_subtitle {margin-bottom: 25px;}
    .access_page .access_subtitle h3 {padding-left: 18px; font-size: 21px;}
    .access_page .access_subtitle h3::before {width: 3px;}

    .access_page .access_photo {aspect-ratio: 1.45 / 1;}
    .access_page .access_map {aspect-ratio: auto; height: 320px; margin-top: 15px;}

    .access_page .access_office {grid-template-columns: 1fr; gap: 25px; padding: 30px 0 35px;}
    .access_page .access_office + .access_office {margin-top: 25px;}
    .access_page .access_office_name h3 {font-size: 19px;}
    .access_page .access_info_row {grid-template-columns: 22px minmax(0, 1fr); gap: 10px;}
    .access_page .access_info_row + .access_info_row {margin-top: 24px;}
    .access_page .access_info_icon {width: 18px; height: 18px;}
    .access_page .access_info_txt strong, .access_page .access_info_txt p {font-size: 17px;}
}

/* contact-tab */
body.menu-open .contact-tab {opacity:0; visibility:hidden; pointer-events:none; transform:translateX(100%);}

.contact-tab {position:fixed; right:0; bottom:120px; z-index:900; display:flex; flex-direction:column; align-items:center; width:76px; padding:20px 0 17px; background:#E8380D; border-radius:20px 0 0 20px; color:#fff; box-sizing:border-box; opacity:1; visibility:visible; transform:translateX(0); transition:bottom .25s ease, background .25s ease, opacity .25s ease, transform .25s ease, visibility .25s ease;}
.contact-tab:hover {background: #cf2e0a;}
.contact-tab-txt {color: #fff; font-size: 20px; font-weight: 500; line-height: 1.15; letter-spacing: .05em; writing-mode: vertical-rl; text-orientation: upright;}
.contact-tab-icon {display: block; width: 31px; height: auto; margin-top: 12px; object-fit: cover;}

@media (max-width:1024px) {
    #sub.general_page {padding: 80px 0 100px;}
    .general_page .general_inner {padding: 0 35px;}
    .general_page .general_title {margin-bottom: 45px;}
    .general_page .general_title h2 {font-size: 29px;}
    .general_page .general_row {grid-template-columns: 1fr; gap: 42px;}
    .general_page .general_row + .general_row {margin-top: 80px;}
    .general_page .general_img, .general_page .general_slider {width: 100%; max-width: 760px; margin: 0 auto;}
}

@media (max-width:768px) {
    #sub.general_page {padding: 65px 0 80px;}
    .general_page .general_inner {padding: 0 20px;}
    .general_page .general_title {margin-bottom: 38px;}
    .general_page .general_title_icon {width: 52px; margin-bottom: 15px;}
    .general_page .general_title h2 {font-size: 25px;}
    .general_page .general_row {gap: 30px;}
    .general_page .general_row + .general_row {margin-top: 65px;}
    .general_page .general_sub_title {gap: 8px; margin-bottom: 13px;}
    .general_page .general_sub_icon {width: 10px; height: 10px;}
    .general_page .general_sub_title h3 {font-size: 17px;}
    .general_page .general_txt > p {font-size: 17px; line-height: 1.75;}
    .general_page .general_txt > p br {display: none;}
    .general_page .general_list {margin-top: 18px;}
    .general_page .general_list li {margin-top: 7px; font-size: 17px;}
    .general_page .general_list li span {min-width: 95px;}
    .general_page .general_img img, .general_page .general_slide .swiper-slide {aspect-ratio: 1.35 / 1;}
    .general_page .general_prev, .general_page .general_next {width: 36px; height: 36px;}
    .general_page .general_prev {left: 10px;}
    .general_page .general_next {right: 10px;}
}


@media (max-width: 768px) {
    .contact-tab {width: 62px; bottom: 90px; padding: 16px 0 14px; border-radius: 16px 0 0 16px; display: none;}
    .contact-tab-txt {font-size: 20px;}
    .contact-tab-icon {width: 26px; margin-top: 10px;}
}


@media (max-width: 480px) {
    .contact-tab {width: 54px; bottom: 75px;}
    .contact-tab-txt {font-size: 17px;}
    .contact-tab-icon {width: 23px;}
}


/* footer */
#footer {position: relative; width: 100%; padding: 50px 0 32px; background: #ECECEC; color: #626262; box-sizing: border-box;}
#footer * {box-sizing: border-box;}
#footer a {color: #626262; text-decoration: none; transition: color 0.2s ease;}
#footer a:hover {color: #E8380D;}
.footer-inner {display: grid; grid-template-columns: minmax(430px, 2.4fr) 4fr; gap: 80px; width: 100%; max-width: 1740px; margin: 0 auto; padding: 0 30px;}
.footer-info {min-width: 0;}
.footer-logo {display: inline-block; width: 120px; margin-bottom: 16px;}
.footer-logo img {display: block; width: 100%; height: auto;}
.footer-company {font-size: 15px; line-height: 1.55;}
.footer-company strong {display: block; margin-bottom: 3px; color: #626262; font-size: 17px; font-weight: 700;}
.footer-company p {margin: 0;}
.footer-company p span {display: inline-block; min-width: 60px;}
.footer-submail {padding-left: 60px;}
.footer-company-sub {margin-top: 28px;}
.footer-nav {display: grid; grid-template-columns: repeat(5, minmax(105px, 1fr)); gap: 38px; align-items: start;}
.footer-nav-group strong {display: block; margin-bottom: 15px; color: #505050; font-size: 17px; font-weight: 700;}
.footer-nav-group ul {margin: 0; padding: 0; list-style: none;}
.footer-nav-group li {margin-bottom: 11px;}
.footer-nav-group li:last-child {margin-bottom: 0;}
.footer-nav-group a {display: inline-block; font-size: 15px; line-height: 1.45;}
.footer-bottom {width: 100%; max-width: 1740px; margin: 20px auto 0; padding: 0 30px;}
.footer-bottom p {margin: 0; color: #333333; font-size: 13px; line-height: 1.5;}
.footer-top {position: absolute; right: 70px; bottom: 25px; display: flex; flex-direction: column; align-items: center; gap: 7px; color: #222222 !important;}
.footer-top-icon {position: relative; display: block; width: 40px; height: 40px; border: 1px solid #222222; border-radius: 5px;}
.footer-top-icon::before {content: ""; position: absolute; top: 11px; left: 50%; width: 11px; height: 11px; border-top: 3px solid #222111; border-left: 3px solid #222111; transform: translateX(-50%) rotate(45deg);}
.footer-top-icon::after {content: ""; position: absolute; top: 12px; left: 50%; width: 3px; height: 18px; background: #222111; transform: translateX(-50%);}
.footer-top-txt {color: #333333; font-size: 11px; white-space: nowrap;}


@media (max-width: 1200px) {
.footer-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(105px, 1fr));
    gap: 38px;
    align-items: start;
}
}

@media (max-width: 1024px) {
    .footer-inner {grid-template-columns: 1fr; gap: 42px;  padding: 0 24px;}
    .footer-info {display: grid; grid-template-columns: 1fr 1fr; gap: 40px;}
    .footer-logo {grid-column: 1 / -1; margin-bottom: -20px;}
    .footer-company-sub {margin-top: 0;}
    .footer-nav {grid-template-columns: repeat(5, 1fr); gap: 25px;}
    .footer-bottom { padding: 0 24px;}
    .footer-top {right: 35px;}
}

@media (max-width: 900px) {
    #footer {padding-top: 42px;}
    .footer-nav {grid-template-columns: repeat(3, 1fr); row-gap: 35px;}
}

@media (max-width:768px) {
    #footer {padding: 50px 0 24px;}
    .footer-inner {gap: 36px; padding: 0 20px;}
    .footer-info {display: block;}
    .footer-logo {width: 120px; margin-bottom: 20px;}
    .footer-company {font-size: 15px; line-height: 1.65;}
    .footer-company strong {font-size: 17px;}
    .footer-company-sub {margin-top: 28px;}
    .footer-company p span {min-width: 46px; display: block;}
    .footer-submail {padding-left: 0px;}
    .footer-nav {grid-template-columns: repeat(2, 1fr); gap: 30px 20px;}
    .footer-nav-group strong {margin-bottom: 12px; font-size: 15px;}
    .footer-nav-group li {margin-bottom: 9px;}
    .footer-nav-group a {font-size: 15px;}
    .footer-bottom {margin-top: 32px; padding: 0 75px 0 20px;}
    .footer-bottom p {font-size: 13px;}
    .footer-top {right: 20px; bottom: 22px;}
    .footer-top-icon {width: 38px; height: 38px;}
    .footer-top-txt {font-size: 10px;}
}

@media (max-width: 480px) {
    .footer-nav {grid-template-columns: 1fr 1fr;}
    .footer-submail {padding-left: 0;}
}

