@keyframes heroSlowZoom{
    from{transform:translate3d(0,var(--parallax-y,0),0) scale(1.12);}
    to{transform:translate3d(0,var(--parallax-y,0),0) scale(1.04);}
}

/* =========================================================
   1180px 이하: 제품 공통
========================================================= */
@media (max-width:1180px){
    .small-screw-page,.fastener-page{padding-right:20px; padding-left:20px;}
    .product-visual-card{grid-template-columns:minmax(220px,.75fr) minmax(300px,1fr); padding:40px 34px;}
    .product-summary{padding-right:22px;}
    .product-drawing{grid-column:1 / -1; min-height:300px; margin-top:20px; padding:30px 0 0; border-top:1px solid #edf0f2; border-left:0;}
    .product-drawing img{max-width:700px;}
}

/* =========================================================
   1100px 이하: 메인
========================================================= */
@media (max-width:1100px){
    .container{width:min(calc(100% - 48px),var(--container));}
    .section-space{padding:110px 0;}
    .gnb{gap:30px;}
    .header-consult{min-width:138px; height:48px; margin-left:24px; padding:0 19px; font-size:14px;}
    .hero{height:680px;}
    .hero h1{font-size:50px;}
    .overview{height:520px;}
    .standard__layout{grid-template-columns:260px 1fr; gap:46px;}
    .standard-grid{grid-auto-rows:250px;}
    .value__layout{grid-template-columns:310px 1fr; gap:60px;}
    .value-row{grid-template-columns:50px 180px 1fr;}
    .story__layout{gap:50px;}
}

/* =========================================================
   1024px 이하: 회사소개
========================================================= */
@media (max-width:1024px){
    .section_space{padding:100px 0;}
    .content_1280{width:calc(100% - 48px);}
    .site_header_inner,.company_hero_inner{width:calc(100% - 48px);}
    .site_nav{display:none;}
    .company_hero{height:540px;}
    .company_hero_copy h1{font-size:68px;}
    .intro_head,.values_layout,.ceo_layout,.rd_layout{grid-template-columns:1fr; gap:56px;}
    .company_metrics_list > div{width:180px; height:180px;}
    .values_list article:first-child{padding-left:34px; border-left:1px solid #d7d2c9;}
    .ceo_visual{height:540px;}
    .information_top{grid-template-columns:1fr; gap:34px;}
    .company_cta_inner{align-items:flex-start; justify-content:center; flex-direction:column; gap:34px;}
}

/* =========================================================
   820px 이하: 메인 모바일 메뉴 및 섹션
========================================================= */
@media (max-width:820px){
    html{scroll-padding-top:72px;}
    .container{width:calc(100% - 36px);}
    .section-space{padding:86px 0;}
    .section-copy h2,.section-copy--light h2,.standard__copy h2,.value__copy h2,.facilities__copy h2,.story__copy h2{font-size:36px;}
    .header{height:72px;}
    .header__inner{position:relative;}
    .logo__mark{width:34px; height:34px;}
    .header-consult{display:none;}

    /* 모바일 햄버거 버튼 */
    .nav-toggle-button{display:flex; flex-direction:column; justify-content:center; gap:5px; width:40px; height:40px; margin-left:auto; position:relative; z-index:302; cursor:pointer;}
    .nav-toggle-button span{display:block; width:24px; height:2px; margin-left:auto; background:#111; transition:transform .25s ease,opacity .25s ease;}
    .nav-toggle:checked + .nav-toggle-button span:nth-child(1){transform:translateY(7px) rotate(45deg);}
    .nav-toggle:checked + .nav-toggle-button span:nth-child(2){opacity:0;}
    .nav-toggle:checked + .nav-toggle-button span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

    /* 모바일 전체 메뉴 */
    .gnb{display:block; width:100%; max-height:0; height:auto; margin:0; position:absolute; top:72px; left:0; z-index:300; overflow:hidden; overflow-y:auto; background:#fff; border-top:1px solid #e8e8e8; box-shadow:0 14px 30px rgba(7,17,29,.1); transition:max-height .32s ease;}
    .nav-toggle:checked ~ .gnb{max-height:calc(100vh - 72px);}

    /* PC에서 상속된 height:100% 때문에 첫 메뉴만 보이던 문제 해제 */
    .gnb-item{display:block; width:100%; height:auto; position:relative; border-bottom:1px solid #e8e8e8;}
    .gnb-link{display:flex; align-items:center; width:100%; height:auto; min-height:58px; padding:0 24px; font-size:16px; line-height:1.4; font-weight:750; color:#111; white-space:normal;}
    .gnb-link:after{display:none;}

    /* PC용 absolute/hidden 드롭다운을 모바일에서 일반 문서 흐름으로 변경 */
    .gnb-sub{visibility:visible; opacity:1; width:100%; min-width:0; position:static; top:auto; left:auto; z-index:auto; padding:0; transform:none; transition:none;}
    .gnb-sub-inner{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; overflow:visible; padding:10px 18px 14px; border:0; border-radius:0; background:#f7f8f9; box-shadow:none;}
    .gnb-sub-link{display:flex; align-items:center; min-width:0; min-height:42px; padding:9px 10px; border:0; border-radius:5px; font-size:14px; line-height:1.4; font-weight:500; color:#555; white-space:normal;}
    .gnb-sub-link:before{content:""; width:3px; height:3px; flex:0 0 auto; margin-right:8px; border-radius:50%; background:#b3b7bc;}
    .gnb-sub-link:hover,.gnb-sub-link:focus{background:#fff; color:var(--orange);}
    .hero{height:620px;}
    .hero h1{padding:0 18px 18px; font-size:42px; white-space:normal;}
    .hero p{font-size:14px;}
    .overview{height:auto; padding:100px 0;}
    .overview__graphic{width:100%; opacity:.45;}
    .overview .section-copy{width:100%; max-width:560px;}
    .standard__layout,.value__layout,.story__layout{grid-template-columns:1fr; gap:52px;}
    .standard__copy,.value__copy{max-width:520px;}
    .standard-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:260px;}
    .standard-card--01,.standard-card--02,.standard-card--03,.standard-card--04{grid-column:auto;}
    .standard-card--05{grid-column:1 / span 2;}
    .value-row{grid-template-columns:48px 180px 1fr;}
    .facility-slider{grid-template-columns:1fr;}
    .slider-arrow{display:none;}
    .facility-grid{grid-auto-columns:minmax(280px,82vw);}
    .story__media{height:360px;}
    .contact__grid{grid-template-columns:1fr;}
    .contact-panel{min-height:auto; border-right:0; border-bottom:1px solid #e1e4e6;}
    .contact-panel:last-child{border-bottom:0;}
    .footer__inner{flex-direction:column; gap:24px;}
}

/* =========================================================
   768px 이하: 제품 페이지 공통
========================================================= */
@media (max-width:768px){
    .small-screw-page,.fastener-page{padding:42px 16px 76px;}
    .product-page-head{align-items:flex-start; margin-bottom:24px;}
    .product-page-title{align-items:flex-start; flex-direction:column; gap:8px;}
    .product-page-title h1{font-size:32px;}
    .product-page-title span{font-size:14px;}

    .small-screw-page .product-tabs,.fastener-page .product-tabs{display:flex; gap:7px; overflow-x:auto; padding:7px; border-radius:11px; scrollbar-width:none;}
    .small-screw-page .product-tabs::-webkit-scrollbar,.fastener-page .product-tabs::-webkit-scrollbar{display:none;}
    .small-screw-page .product-tabs a{flex:0 0 auto; min-width:118px; min-height:50px; padding:0 16px 0 30px; font-size:14px;}
    .fastener-page .product-tabs a{flex:0 0 auto; min-width:116px; min-height:50px; padding:0 16px; font-size:14px;}

    .product-visual-card{display:block; min-height:0; padding:30px 22px; border-radius:8px;}
    .product-summary{padding-right:0;}
    .product-summary h2{font-size:26px;}
    .product-summary-copy{margin-top:18px; font-size:14px;}
    .product-photo{min-height:240px; margin-top:20px; padding:10px;}
    .product-photo img{max-height:250px;}
    .product-drawing{min-height:260px; margin-top:18px; padding-top:26px;}
    .product-drawing img{max-height:240px;}
    .spec-section{margin-top:40px;}
    .spec-head{align-items:flex-start;}
    .spec-head h2{font-size:19px;}
    .table-scroll-guide{display:block;}
    .spec-table{min-width:1220px;}
    .spec-table th,.spec-table td{height:42px; padding:6px; font-size:11px;}
    .spec-table th:first-child,.spec-table td:first-child{position:sticky; left:0; z-index:2; box-shadow:1px 0 0 #e3e7ea;}
    .spec-table thead th:first-child{z-index:4; background:#f1f4f6;}
    .spec-table tbody th:first-child{background:#fafbfc;}
}

/* =========================================================
   767px 이하: 회사소개 및 공용 서브탑
========================================================= */
@media (max-width:767px){
    .sub_category_nav{display:block;}

    .content_1280{width:calc(100% - 36px);}
    .section_space{padding:76px 0;}
    .site_header{height:68px;}
    .site_header_inner,.company_hero_inner{width:calc(100% - 36px);}
    .site_logo{width:132px;}
    .header_contact{padding:11px 15px; font-size:12px;}

    .company_hero{height:440px;}
    .company_hero_inner{padding-top:0;}
    .company_hero_copy h1{font-size:49px;}
    .company_hero_copy p{font-size:18px;}
    .breadcrumb{flex-wrap:wrap; gap:7px 9px; margin-bottom:28px; line-height:1.4;}

    .intro_head{gap:32px;}
    .intro_head h2,.section_heading h2{font-size:32px;}
    .intro_text p{font-size:15px;}
    .company_metrics{height:auto; margin-top:44px; padding:42px 18px;}
    .company_metrics > img,.company_metrics_dim{position:absolute; inset:0; height:100%;}
    .company_metrics_list{position:relative; display:grid; grid-template-columns:1fr 1fr; gap:10px;}
    .company_metrics_list > div{width:100%; height:auto; aspect-ratio:1/1; margin:0;}
    .company_metrics_list span{font-size:22px;}
    .values_list{grid-template-columns:1fr;}
    .values_list article,.values_list article:first-child{min-height:0; padding:26px 0; border-left:0; border-top:1px solid #d7d2c9;}
    .values_list article:first-child{border-top:0;}
    .values_list article > span{margin-bottom:12px;}
    .ceo_body p{font-size:15px;}
    .ceo_visual{height:420px;}
    .ceo_sign{flex-wrap:wrap;}
    .information_heading{display:block;}
    .factory_main{height:270px;}
    .company_profile > div{grid-template-columns:94px 1fr;}
    .company_profile dt,.company_profile dd{font-size:13px;}
    .facility_gallery{grid-template-columns:1fr;}
    .facility_gallery figure{height:250px;}
    .rd_fields{grid-template-columns:1fr;}
    .rd_fields article{min-height:240px; border-left:0; border-top:1px solid #ddd;}
    .rd_fields article:first-child{border-top:0;}
    .organization_teams{grid-template-columns:1fr;}
    .organization_branch{display:none;}
    .organization_teams span + span{margin-top:-8px;}
    .company_cta{height:auto; padding:80px 0;}
    .company_cta_inner h2{font-size:34px;}
    .company_cta_buttons{width:100%; flex-direction:column;}
    .company_cta_buttons a{width:100%;}
    .site_footer_inner{width:calc(100% - 36px); align-items:flex-start; flex-direction:column; gap:16px;}
    .site_footer_inner span{margin-left:0;}
}

/* =========================================================
   560px 이하: 메인 소형 모바일
========================================================= */
@media (max-width:560px){
    .container{width:calc(100% - 28px);}
    .section-space{padding:72px 0;}
    .section-copy h2,.section-copy--light h2,.standard__copy h2,.value__copy h2,.facilities__copy h2,.story__copy h2{font-size:31px;}
    .section-copy p{font-size:14px;}
    .hero{height:540px;}
    .hero h1{padding:0 8px 16px; font-size:33px;}
    .hero p{max-width:330px;}
    .overview{padding:82px 0;}
    .standard-grid{display:flex; flex-direction:column;}
    .standard-card{height:260px;}
    .value-row{grid-template-columns:42px 1fr; gap:8px 14px; padding:24px 0;}
    .value-row p{grid-column:2; font-size:14px;}
    .facility-card__media{height:235px;}
    .story__media{height:285px;}
    .story-features{gap:8px;}
    .contact-panel{padding:42px 26px;}
    .footer__info i{display:none;}
    .footer__info p{font-size:11px;}
}

/* =========================================================
   480px 이하: 제품 및 서브 메뉴
========================================================= */
@media (max-width:480px){
    .sub_category_nav_item{min-height:60px; padding:9px 14px;}
    .sub_category_nav_item strong{font-size:13px;}

    .product-page-title h1{font-size:29px;}
    .small-screw-page .product-tabs a{min-width:110px;}
    .fastener-page .product-tabs a{min-width:108px;}
    .product-visual-card{padding:26px 18px;}
    .product-summary h2{font-size:23px;}
    .product-summary-meta div{grid-template-columns:70px minmax(0,1fr);}
    .spec-head{display:block;}
    .spec-head span{display:block; margin-top:8px; padding-left:16px;}
}

/* =========================================================
   420px 이하: 모바일 GNB 2차 메뉴 한 줄 배치
========================================================= */
@media (max-width:420px){
    .gnb-sub-inner{grid-template-columns:1fr;}
    .gnb-link{min-height:56px; padding:0 20px;}
    .gnb-sub-inner{padding:8px 16px 12px;}
    .gnb-sub-link{min-height:40px; padding:8px 8px;}
}

/* =========================================================
   DONGJIN BOLT - 모바일 전체화면 GNB
========================================================= */

@media (max-width:820px){
    body.menu-open{overflow:hidden;}

    .header{position:sticky; top:0; z-index:1000; background:#fff;}
    .header__inner{width:100%; max-width:none; padding:0 22px;}
    .logo img{width:auto; max-width:170px; max-height:42px;}

    .header-consult{display:none;}

    /* 햄버거 / 닫기 버튼 */
    .nav-toggle-button{
        display:flex;
        align-items:flex-end;
        justify-content:center;
        flex-direction:column;
        gap:5px;
        width:42px;
        height:42px;
        margin-left:auto;
        position:relative;
        z-index:1002;
        cursor:pointer;
    }

    .nav-toggle-button span{
        display:block;
        width:24px;
        height:2px;
        margin:0;
        background:#111;
        transition:transform .25s ease,opacity .2s ease;
    }

    .nav-toggle:checked + .nav-toggle-button span:nth-child(1){
        transform:translateY(7px) rotate(45deg);
    }

    .nav-toggle:checked + .nav-toggle-button span:nth-child(2){
        opacity:0;
    }

    .nav-toggle:checked + .nav-toggle-button span:nth-child(3){
        transform:translateY(-7px) rotate(-45deg);
    }

    /* 전체 화면 메뉴 레이어 */
    .gnb{
        display:block;
        width:100%;
        height:calc(100dvh - 72px);
        max-height:none;
        margin:0;
        padding:14px 0 60px;
        position:fixed;
        top:72px;
        right:0;
        bottom:0;
        left:0;
        z-index:1001;
        overflow-x:hidden;
        overflow-y:auto;
        overscroll-behavior:contain;
        background:#fff;
        border-top:1px solid #eceef1;
        box-shadow:none;
        opacity:0;
        visibility:hidden;
        transform:translateY(-10px);
        transition:opacity .22s ease,visibility .22s ease,transform .22s ease;
        -webkit-overflow-scrolling:touch;
    }

    .nav-toggle:checked ~ .gnb{
        opacity:1;
        visibility:visible;
        transform:translateY(0);
    }

    /* 1차 메뉴 */
    .gnb-item{
        display:block;
        width:100%;
        height:auto;
        position:relative;
        border-bottom:1px solid #eceef1;
    }

    .gnb-link{
        display:flex;
        align-items:center;
        width:100%;
        height:auto;
        min-height:68px;
        position:relative;
        padding:0 56px 0 24px;
        border:0;
        font-size:22px;
        line-height:1.35;
        font-weight:600;
        letter-spacing:-.035em;
        color:#17191c;
        white-space:normal;
    }

    .gnb-link:after{
        display:none;
    }

    /* 하위 메뉴 화살표 */
    .gnb-item.has-sub > .gnb-link:after{
        content:"";
        display:block;
        width:8px;
        height:8px;
        position:absolute;
        top:50%;
        right:27px;
        margin-top:-6px;
        border-right:1.5px solid #17191c;
        border-bottom:1.5px solid #17191c;
        background:none;
        transform:rotate(45deg);
        transition:transform .22s ease,margin-top .22s ease;
    }

    .gnb-item.has-sub.is-open > .gnb-link:after{
        margin-top:-1px;
        transform:rotate(225deg);
    }

    /* PC용 hover 드롭다운 무효화 */
    .gnb-item:hover .gnb-sub,
    .gnb-item:focus-within .gnb-sub{
        visibility:hidden;
        opacity:0;
        transform:none;
    }

    /* 2차 메뉴 */
    .gnb-sub{
        visibility:hidden;
        opacity:0;
        width:100%;
        min-width:0;
        max-height:0;
        position:static;
        top:auto;
        left:auto;
        z-index:auto;
        overflow:hidden;
        padding:0;
        background:#f7f8fa;
        transform:none;
        transition:max-height .28s ease,opacity .18s ease,visibility .18s ease;
    }

    .gnb-item.is-open .gnb-sub,
    .gnb-item.is-open:hover .gnb-sub,
    .gnb-item.is-open:focus-within .gnb-sub{
        visibility:visible;
        opacity:1;
        max-height:520px;
        transform:none;
    }

    .gnb-sub-inner{
        display:block;
        overflow:visible;
        padding:16px 24px 18px;
        border:0;
        border-radius:0;
        background:#f7f8fa;
        box-shadow:none;
    }

    .gnb-sub-link{
        display:flex;
        align-items:center;
        min-height:40px;
        padding:8px 0;
        border:0;
        border-radius:0;
        font-size:16px;
        line-height:1.45;
        font-weight:450;
        letter-spacing:-.02em;
        color:#45494f;
        white-space:normal;
        transition:color .18s ease;
    }

    .gnb-sub-link:hover,
    .gnb-sub-link:focus{
        background:transparent;
        color:var(--orange);
    }
}

@media (max-width:480px){
    .header__inner{padding:0 18px;}
    .logo img{max-width:155px;}
    .gnb-link{min-height:64px; padding-right:50px; padding-left:20px; font-size:21px;}
    .gnb-item.has-sub > .gnb-link:after{right:22px;}
    .gnb-sub-inner{padding:14px 20px 16px;}
    .gnb-sub-link{min-height:38px; font-size:15px;}
}

/* =========================================================
   모바일 GNB 화살표 위치 고정
   PC용 :hover / :focus-within 밑줄 좌표 상속 방지
========================================================= */
@media (max-width:820px){
    .gnb-item.has-sub > .gnb-link::after,
    .gnb-item.has-sub:hover > .gnb-link::after,
    .gnb-item.has-sub:focus-within > .gnb-link::after{
        width:8px !important;
        height:8px !important;
        top:50% !important;
        right:27px !important;
        bottom:auto !important;
        left:auto !important;
        margin-top:-6px;
        border:0 !important;
        border-right:1.5px solid #17191c !important;
        border-bottom:1.5px solid #17191c !important;
        background:none !important;
        transform:rotate(45deg);
    }

    .gnb-item.has-sub.is-open > .gnb-link::after,
    .gnb-item.has-sub.is-open:hover > .gnb-link::after,
    .gnb-item.has-sub.is-open:focus-within > .gnb-link::after{
        margin-top:-1px;
        transform:rotate(225deg);
    }
}

@media (max-width:480px){
    .gnb-item.has-sub > .gnb-link::after,
    .gnb-item.has-sub:hover > .gnb-link::after,
    .gnb-item.has-sub:focus-within > .gnb-link::after{
        right:22px !important;
    }
}