.box_sp {
    display: none;
}

.box_pc {
    display: block;
}

/* responsive */
@media screen and (max-height: 950px) {
    #idx_mainvisual .mv_title {
        font-size: 9.421vh;
        margin-bottom: 0;
    }

    #idx_mainvisual h2 {
        font-size: 4.211vh;
    }
}

@media screen and (max-height: 900px) {
    #header {
        padding-top: 5vh;
    }

    #header .overlay::after {
        right: 7.111vh;
    }

    #header .overlay .h_connect {
        margin-bottom: 2.556vh;
    }

    #header .overlay .h_connect .h_slogan .word_special {
        font-size: 13.333vh;
    }

    #header .overlay .h_connect .h_slogan .word_slogan {
        font-size: 2.222vh;
    }

    #header .overlay .h_connect .nav_link {
        row-gap: 2.333vh;
    }

    #header .overlay .h_connect .nav_link li {
        margin-bottom: 1.111vh;
    }

    #header .overlay .h_connect .nav_link li::before {
        width: 28px;
        height: 3px;
        top: 2.556vh;
    }

    #header .overlay .h_connect .nav_link li a {
        font-size: 3.333vh;
    }

    #header .overlay .h_connect .nav_bnr li a {
        font-size: 2.667vh;
    }

    #header .overlay .h_connect .nav_bnr li a i {
        width: 3.444vh;
        height: 3.333vh;
        margin-left: 17px;
        top: 0.778vh;
    }

    #header .overlay .h_bnr .btn_primary {
        height: 11.111vh;
    }

    #header .overlay .h_bnr .btn_primary a {
        font-size: 2.778vh;
    }

    #header .overlay .h_bnr .btn_primary a .icon {
        width: 8.889vh;
        height: 8.889vh;
        right: 1.111vh;
    }

    #header .overlay .h_bnr .btn_primary a .icon svg {
        width: 4.111vh;
    }
}

@media screen and (max-width: 1700px) {
    .video_cover .mv_gallery .image02 {
        right: 10.471vw;
    }

    .video_cover .mv_gallery .image03 {
        right: -2vw;
    }
}

@media screen and (max-width: 1500px) {
    #header .overlay::after {
        right: 1.5vw;
    }

    .video_cover .cz_mask {
        width: 500px;
    }

    /*----- idx_intro -----*/
    #idx_intro .idx_intro_title {
        margin-bottom: 10.067vw;
    }

    #idx_intro .idx_intro_headline h3 .main_ttl {
        font-size: 6vw;
    }

    #idx_intro .idx_intro_person {
        top: 12.667vw;
        right: 6.667vw;
    }

    #idx_intro .idx_intro_photo .image02 {
        margin: -16.733vw 3.133vw 0 auto;
    }

    /*----- idx_numbers -----*/
    #idx_numbers .idx_numbers_layer .layer_frame .layer_number span.record {
        font-size: 6vw;
    }

    /*----- idx_people -----*/
    #idx_people::before {
        left: 4.933vw;
    }

    #idx_people .idx_people_list::before,
    #idx_people .idx_people_list::after {
        left: -2vw;
    }

    /*----- footer -----*/
    #box_guidelines .inner::before {
        left: -3.4vw;
    }

    #box_guidelines .inner::after {
        right: 3vw;
    }

}

@media screen and (max-width: 1300px) {
    #header {
        padding-top: 15px;
        padding-left: 3%;
    }

    #header #top a img {
        width: 130px;
        height: 100%;
        object-fit: contain;
    }

    #header #top a .company_name {
        font-size: 18px;
    }

    .h_bnr_fixed {
        max-width: 150px;
        top: 15px;
        right: 110px;
    }

    .h_bnr_fixed .loop_box {
        height: 50px;
        border-width: 3px;
    }

    .h_bnr_fixed .loop_box::before {
        top: 13px;
    }

    #toggle-menu {
        width: 80px;
        height: 80px;
        border-bottom-left-radius: 25px;
    }

    .hamburger {
        width: 48px;
        height: 22px;
        margin-bottom: 5px;
    }

    .hamburger span {
        height: 2px;
    }

    .hamburger span:nth-child(2),
    .hamburger span:nth-child(3) {
        top: 10px;
    }

    .hamburger span:nth-child(4) {
        width: 35px;
        top: 20px;
    }

    .hamburger.active span:nth-child(2),
    .hamburger.active span:nth-child(3) {
        top: 10px;
    }

    #toggle-menu .txt span {
        font-size: 13px;
    }

    #header .overlay .h_connect .h_slogan {
        max-width: 450px;
    }

    #header .overlay .h_bnr .btn_primary {
        height: 70px;
    }

    #header .overlay .h_bnr .btn_primary a {
        font-size: 20px;
    }

    #header .overlay .h_bnr .btn_primary a .icon {
        width: 50px;
        height: 50px;
        right: 10px;
    }

    #header .overlay .h_bnr .btn_primary a .icon svg {
        width: 28px;
    }

    .h3title span.jp {
        font-size: 7.692vw;
    }

    .h3title span.en {
        font-size: 11.538vw;
    }

    .video_cover .mv_gallery .image02 {
        top: 0;
        right: 8vw;
    }

    /*----- idx_intro -----*/
    #idx_intro .idx_intro_wrap {
        gap: 30px;
    }

    #idx_intro .idx_intro_txt {
        font-size: 18px;
    }

    #idx_intro .idx_intro_photo .image02 {
        margin-right: 0;
        margin-top: -12vw;
    }

    /*----- idx_company -----*/
    #idx_company .gallery_list .item,
    #idx_company .gallery_special {
        border-radius: 10px;
    }

    #idx_company .gallery_special {
        -webkit-clip-path: inset(0 round calc(var(--roud, 0) * 10px));
        clip-path: inset(0 round calc(var(--roud, 0) * 10px));
    }

    #idx_company .idx_company_wrap .special_title {
        font-size: 13.846vw;
        margin-bottom: -2.077vw;
    }

    #idx_company .idx_company_wrap .inner {
        border-radius: 25px;
        padding: 60px 0 65px;
    }

    #idx_company .idx_company_wrap .idx_company_title {
        font-size: 5.385vw;
    }

    #idx_company .idx_company_wrap .idx_company_title .main_title {
        padding: 2.051vw 35px 7px;
    }

    #idx_company .idx_company_wrap .idx_company_title .sub {
        font-size: 6.923vw;
    }

    #idx_company .idx_company_wrap .idx_company_list {
        margin-bottom: 50px;
    }

    #idx_company .idx_company_wrap .idx_company_list li a {
        border-radius: 25px;
    }

    #idx_company .idx_company_wrap .idx_company_list li a::before {
        font-size: 12.308vw;
        top: -2.769vw;
    }

    #idx_company .idx_company_wrap .idx_company_list li h4 {
        font-size: 26px;
    }

    #idx_company .idx_company_wrap .idx_company_list li h4 span {
        font-size: 16px;
    }

    #idx_company .idx_company_wrap .idx_company_list li i {
        width: 50px;
        height: 50px;
        right: 15px;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(1) figure {
        left: 1.692vw;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(2) figure {
        left: 2.385vw;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(3) figure {
        left: 3.462vw;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(4) figure {
        left: 2.308vw;
    }

    #idx_company .catcher_gallery {
        top: -17%;
    }

    #idx_company .catcher_gallery .marquee img {
        height: 220px;
    }

    /*----- idx_job -----*/
    #idx_job {
        padding: 20vw 0 12.308vw;
    }

    #idx_job .h3title span.en {
        font-size: 18.462vw;
    }

    #idx_job .special_image {
        top: -13.462vw;
    }

    /*----- idx_numbers -----*/
    #idx_numbers .h3title span.en {
        font-size: 15.385vw;
    }

    #idx_numbers .idx_numbers_decor .idx_numbers_balloon {
        font-size: 1.538vw;
        width: 14.769vw;
        height: 14.077vw;
        padding-top: 0.385vw;
        top: -6.077vw;
        left: -3vw;
    }

    #idx_numbers .idx_numbers_layer ul li {
        min-height: 19.231vw;
    }

    #idx_numbers .idx_numbers_layer .layer_frame h4 {
        font-size: 28px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame .item_record .layer_number span.unit {
        font-size: 24px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame .item_record.layer02 .layer_number,
    #idx_numbers .idx_numbers_layer .layer_frame .layer_years {
        font-size: 18px;
    }

    /*----- idx_people -----*/
    #idx_people .h3title span.en {
        font-size: 18.462vw;
    }

    #idx_people .idx_people_list .person_card .person_info {
        padding: 0 2.231vw 3.077vw;
    }

    #idx_people .idx_people_list .person_card .department_name span {
        font-size: 16px;
    }

    #idx_people .idx_people_list .person_card .icon {
        right: 2.154vw;
        bottom: 3.077vw;
    }

    /*----- idx_crosstalk -----*/
    #idx_crosstalk .idx_crosstalk_title {
        font-size: 13.692vw;
        margin-top: -10.846vw;
    }

    #idx_crosstalk .idx_crosstalk_title span {
        font-size: 3.077vw;
        padding: 0.615vw 3.154vw 0.692vw 3.308vw;
        top: 4.692vw;
        right: 11.769vw;
    }

    /*----- idx_enviroment -----*/
    #idx_enviroment .enviroment_card .card_component {
        padding: 25px 4.231vw;
    }

    #idx_enviroment .enviroment_card .card_component::after {
        font-size: 15.385vw;
        bottom: -3.231vw;
        right: -1.769vw;
    }

    #idx_enviroment .enviroment_card .card_component h4 {
        font-size: 3.077vw;
    }

    #footer .box_footer .f_bnr_logo {
        margin-right: 0;
    }
}

@media screen and (min-width: 1025px) {
    a[href^="tel:"] {
        pointer-events: none;
    }

    #header .overlay .h_connect .nav_link li a:hover::after,
    #header .overlay .h_connect .nav_bnr li a:hover::after {
        transform: scaleX(1);
        transform-origin: bottom left;
    }

    .btn_primary a:hover {
        background-color: var(--blue-color);
    }

    .btn_primary a:hover .label span {
        color: var(--white-color);
    }

    .btn_primary a:hover .icon::before {
        background-color: var(--white-color);
    }

    .btn_primary a:hover .icon svg.arrow01 {
        animation: arrow_animation2 .3s ease forwards .2s;
    }

    .btn_primary a:hover .icon svg.arrow02 {
        animation: arrow_animation1 .3s ease forwards;
    }

    .btn_primary a:hover .icon svg path {
        fill: var(--blue-color);
    }
    
    #idx_company .idx_company_wrap .idx_company_list li a:hover i {
        background: var(--white-color);
    }

    #idx_company .idx_company_wrap .idx_company_list li a:hover i svg path {
        fill: var(--blue-color);
    }

    #idx_company .idx_company_wrap .idx_company_list li a:hover figure {
        transform: scale(1.1);
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(1) a:hover {
        background-color: #FFBA4D;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(2) a:hover {
        background-color: #EE9CD4;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(3) a:hover {
        background-color: #68CDFF;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(4) a:hover {
        background-color: #6CEED6;
    }

    #idx_people .idx_people_list .person_card a:hover .balloon {
        opacity: 1;
        transform: translateX(-50%) scale(1);
    }

    #idx_people .idx_people_list .person_card a:hover .icon {
        background: var(--white-color);
    }

    #idx_people .idx_people_list .person_card a:hover .icon svg path {
        fill: var(--blue-color);
    }

    #idx_people .idx_people_list .person_card a:hover figure::before {
        opacity: 0;
    }

    #idx_people .idx_people_list .person_card a:hover figure img {
        transform: scale(1.1);
    }

    #box_guidelines .btn_primary a:hover .icon_l {
        transform: translate(11px, 0);
    }

    #footer .box_footer .nav_link li a:hover,
    #footer .box_footer .nav_bnr li a:hover {
        color: var(--blue-color);
    }

    #footer .box_footer .nav_link li a:hover::after,
    #footer .box_footer .nav_bnr li a:hover::after {
        transform: scaleX(1);
        transform-origin: bottom left;
    }

    #footer .box_footer .f_bnr .btn_primary a:hover .icon_l {
        transform: translate(15px, 0);
    }

    .bnr_fixed.is-active a:hover::before {
        opacity: 1;
        transform: scale(1);
        pointer-events: auto;
    }

    .bnr_fixed a:hover .balloon {
        transform: scale(1);
        opacity: 1;
        transition-delay: .7s;
    }
}

@media screen and (max-width: 1024px) and (orientation: portrait) {

    /*----- idx_mainvisual -----*/
    #idx_mainvisual .mv_title {
        font-size: 7.813vw;
        margin-bottom: 0;
    }

    #idx_mainvisual h2 {
        font-size: 3.906vw;
    }
}

@media screen and (max-width: 1024px) {
    body {
        font-size: 14px;
    }

    #header .overlay {
        align-items: flex-start;
        padding-top: 100px;
        padding-bottom: 100px;
        overflow: auto;
    }

    #header .overlay::after {
        display: none;
    }

    #header .overlay .h_connect .h_slogan .word_special {
        font-size: 88px;
    }

    #header .overlay .h_connect {
        gap: 20px;
        margin-bottom: 20px;
    }

    #header .overlay .h_connect .menu {
        max-width: 100%;
    }

    #header .overlay .h_connect .nav_link {
        gap: 25px;
        row-gap: 25px;
    }

    #header .overlay .h_connect .nav_link li {
        width: calc((100% - 30px) / 2);
        padding-left: 28px;
        margin-bottom: 0;
    }

    #header .overlay .h_connect .nav_link li::before {
        width: 18px;
        height: 3px;
        top: 14px;
    }

    #header .overlay .h_connect .nav_link li a {
        font-size: 20px;
    }

    #header .overlay .h_connect .nav_bnr {
        margin-top: 8px;
    }

    #header .overlay .h_connect .nav_bnr li a {
        font-size: 18px;
    }

    #header .overlay .h_connect .nav_bnr li a i {
        width: 25px;
        height: 24px;
        margin-left: 10px;
    }

    #header .overlay .h_bnr {
        width: 100%;
        max-width: 100%;
        gap: 10px;
    }

    #header .overlay .h_bnr .btn_primary {
        width: calc((100% - 15px) / 2);
    }

    #header .overlay .h_bnr .btn_primary a {
        font-size: 18px;
        padding-left: 15px;
    }

    .btn_primary a {
        font-size: 16px;
    }

    /*----- video_cover -----*/
    .video_cover .cz_mask {
        width: 400px;
        border-width: 5px;
    }

    .video_cover .mv_gallery .image01 {
        top: 0;
        left: -3vw;
    }

    .video_cover .mv_gallery .image02 {
        top: -7vw;
    }

    /*----- idx_intro -----*/
    #idx_intro .inner {
        padding: 100px 0 80px;
    }

    #idx_intro .idx_intro_person {
        top: 50px;
    }

    #idx_intro .idx_intro_headline {
        width: 55vw;
    }

    #idx_intro .idx_intro_photo div {
        border-width: 5px;
        border-radius: 25px;
    }

    #idx_intro .idx_intro_decor {
        height: 80px;
    }

    #idx_intro .hashtag01::before {
        background-size: 1840px 100%;
        height: 30px;
        top: 25px;
        animation-name: hashtag01_sp;
    }

    #idx_intro .hashtag01::after {
        background-size: 1939px 100%;
        height: 90px;
        animation-name: idx_intro_decor01_sp;
    }

    #idx_intro .hashtag02::before {
        background-size: 2431px 100%;
        height: 30px;
        top: 25px;
        animation-name: hashtag02_sp;
    }

    #idx_intro .hashtag02::after {
        background-size: 2395px 100%;
        height: 90px;
        animation-name: idx_intro_decor02_sp;
    }

    /*----- idx_job -----*/
    #idx_job {
        padding-top: 12vw;
    }

    #idx_job .idx_job_txt {
        margin-bottom: 35px;
    }

    #idx_job .idx_job_txt p:not(:last-child) {
        margin-bottom: 20px;
    }

    #idx_job .special_image {
        top: -8vw;
    }

    #idx_job .special_image img {
        border-radius: 25px;
    }

    #idx_job .idx_job_slider img {
        border-radius: 25px;
    }

    /*----- idx_numbers -----*/
    #idx_numbers {
        padding-top: 65px;
    }

    #idx_numbers .idx_numbers_layer {
        padding: 0 0 90px;
        margin-top: 24vw;
    }

    #idx_numbers .idx_numbers_layer::after {
        background-size: 707px 100%;
        height: 50px;
        bottom: 20px;
        animation-name: idx_numbers_slogan_sp;
        animation-duration: 15s;
    }

    #idx_numbers .idx_numbers_layer ul li:nth-child(1),
    #idx_numbers .idx_numbers_layer ul li:nth-child(2) {
        margin-top: -9vw;
    }

    #idx_numbers .idx_numbers_layer ul li .layer_frame {
        border-radius: 25px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame h4 {
        font-size: 22px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame h4.set02 {
        font-size: 18px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame h4.set03 {
        font-size: 14px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame .layer_number span.record {
        font-size: 55px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame .item_record .layer_number span.unit {
        font-size: 18px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame .item_record.layer02 .layer_number {
        font-size: 15px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame .item_record .layer_number:first-child::after {
        font-size: 26px;
        top: 26px;
        right: -19px;
    }

    #idx_numbers .idx_numbers_layer .layer_frame .layer_years {
        font-size: 15px;
        margin-top: 5px;
    }

    /*----- idx_people -----*/
    #idx_people {
        padding: 65px 0 130px;
    }

    #idx_people .h3title {
        margin-bottom: 130px;
    }

    #idx_people .idx_people_list {
        gap: 20px;
        margin-bottom: 145px;
    }

    #idx_people .idx_people_list::before {
        border-top-left-radius: 25px;
        border-bottom-left-radius: 25px;
    }

    #idx_people .idx_people_list .person_card {
        width: calc((100% - 40px) / 3);
    }

    #idx_people .idx_people_list .person_card a {
        height: 41.406vw;
        max-height: 424px;
    }

    #idx_people .idx_people_list .person_card .balloon {
        height: 80px;
        padding: 0 25px;
        top: -90px;
        transform: translateX(-50%) scale(1);
        opacity: 1;
    }

    #idx_people .idx_people_list .person_card .person_profile {
        margin-right: 45px;
    }

    #idx_people .idx_people_list .person_card .person_info h4 span {
        font-size: 30px;
    }

    #idx_people .idx_people_list .person_card .department_name span {
        font-size: 14px;
    }

    #idx_people .idx_people_list .person_card .icon {
        width: 40px;
        height: 40px;
    }

    #idx_people .idx_people_list .person_card .icon svg {
        width: 22px;
    }

    #idx_people .idx_people_list .person_card figure {
        border-radius: 25px;
    }

    #idx_people .idx_people_notes {
        font-size: 20px;
    }

    /*----- idx_crosstalk -----*/
    #idx_crosstalk {
        padding: 55px 0 65px;
    }

    #idx_crosstalk .crosstalk_component {
        flex-direction: column-reverse;
    }

    #idx_crosstalk .crosstalk_component .idx_crosstalk_txt {
        font-size: 16px;
        padding-bottom: 0;
    }

    /*----- idx_enviroment -----*/
    #idx_enviroment {
        padding: 95px 0 65px;
    }

    #idx_enviroment .idx_enviroment_txt {
        font-size: 16px;
        margin-bottom: 45px;
    }

    #idx_enviroment .idx_enviroment_list .enviroment_card {
        border-radius: 25px;
    }

    #idx_enviroment .enviroment_card .card_component h4 {
        font-size: 28px;
    }

    #idx_enviroment .enviroment_card .card_component .card_txt {
        margin-bottom: 25px;
    }

    /*----- footer -----*/
    #box_guidelines {
        padding: 65px 0 70px;
        margin-bottom: 150px;
    }

    #box_guidelines .inner::after {
        right: 0;
    }

    #box_guidelines .guidelines_title {
        font-size: 24px;
    }

    #box_guidelines .guidelines_txt {
        font-size: 16px;
    }

    #box_guidelines .btn_primary {
        height: 90px;
    }

    #box_guidelines .btn_primary a {
        font-size: 20px;
        padding-left: 25px;
    }

    #box_guidelines .btn_primary a .icon {
        width: 80px;
        height: 80px;
        right: 5px;
    }

    #box_guidelines .catcher_gallery {
        bottom: 80%;
    }

    #box_guidelines .catcher_gallery .marquee img {
        height: 220px;
    }

    #footer .box_footer {
        border-top-left-radius: 25px;
        border-top-right-radius: 25px;
        padding-top: 55px;
    }

    #footer .box_footer::before {
        background-size: 1886px 100%;
        height: 50px;
        animation-name: f_slogan_sp;
        top: -100px;
    }

    #footer .box_footer .f_connect {
        flex-direction: column;
        gap: 35px;
    }

    #footer .box_footer .f_bnr_logo {
        max-width: 100%;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        gap: 20px;
    }

    #footer .box_footer .f_link {
        display: none;
    }

    #footer .box_footer .f_bnr {
        gap: 15px;
    }

    #footer .box_footer .f_bnr .btn_primary {
        width: calc((100% - 15px) / 2);
        height: 80px;
    }

    #footer .box_footer .f_bnr .btn_primary a {
        font-size: 17px;
        padding-left: 20px;
    }

    #footer .box_footer .f_bnr .btn_primary a .icon {
        width: 60px;
        height: 60px;
    }

    #footer .box_footer .f_bnr .btn_primary a .icon svg {
        width: 30px;
    }

    #footer address {
        font-size: 13px;
    }

    .bnr_fixed {
        max-width: 150px;
        bottom: 2vh;
        right: 2%;
    }

    .bnr_fixed .loop_box {
        height: 50px;
        border-width: 2px;
    }

    .bnr_fixed .loop_box::before {
        top: 14px;
    }
}

@media screen and (max-width: 810px) {
    #header .overlay .h_connect .h_slogan .word_special {
        font-size: 80px;
    }

    .video_cover .cz_mask {
        width: 49.383vw;
    }

    #idx_company .catcher_gallery {
        top: -28%;
    }

    #box_guidelines .catcher_gallery {
        bottom: 120%;
    }
}

@media screen and (min-width: 769px) {}

@media screen and (max-width: 768px) {

    #wrapper,
    #header,
    #main,
    #footer,
    .pages .pages_inner {
        width: 100% !important;
        min-width: inherit !important;
    }

    .box_sp {
        display: block;
    }

    .box_pc {
        display: none;
    }

    #header {
        padding-top: 11px;
    }

    #header #top a {
        align-items: center;
    }

    #header #top a img {
        width: 60px;
    }

    #header #top a .company_name {
        font-size: 14px;
        margin-left: 10px;
    }

    .h_bnr_fixed {
        top: auto;
        bottom: 2vh;
        right: 2%;
    }

    #toggle-menu {
        width: 60px;
        height: 60px;
        border-bottom-left-radius: 10px;
    }

    .hamburger {
        width: 30px;
    }

    .hamburger span:nth-child(4) {
        width: 20px;
    }

    #toggle-menu .txt {
        line-height: 1;
    }

    #toggle-menu .txt span {
        font-size: 11px;
    }

    #header .overlay .h_connect .h_slogan {
        display: none;
    }

    #header .overlay .h_connect .menu {
        padding-top: 0;
    }

    #header .overlay .h_bnr .btn_primary a {
        font-size: 16px;
    }

    .h3title span.jp {
        font-size: 45px;
    }

    /*----- idx_mainvisual -----*/
    #idx_mainvisual {
        padding-bottom: 15vh;
    }

    #idx_mainvisual .mv_title {
        font-size: 7.813vmin;
        margin-bottom: 8px;
    }

    #idx_mainvisual h2 {
        font-size: 3.646vmin;
    }

    /*----- idx_intro -----*/
    #idx_intro::before {
        width: 150vw;
        left: -100%;
    }

    #idx_intro .inner {
        padding-bottom: 31.25vw;
    }

    #idx_intro .idx_intro_wrap {
        flex-direction: column;
        gap: 10.417vw;
    }

    #idx_intro .idx_intro_headline {
        width: 100%;
        max-width: 100%;
    }

    #idx_intro .idx_intro_headline h3 {
        margin-bottom: 35px;
    }

    #idx_intro .idx_intro_headline h3 .main_ttl {
        font-size: 38px;
        padding: 15px 15px 7px;
        margin-bottom: 15px;
    }

    #idx_intro .idx_intro_photo {
        display: flex;
        justify-content: center;
        align-items: flex-end;
    }

    #idx_intro .idx_intro_photo .image01 {
        width: 58.464vw;
        height: 75.521vw;
    }

    #idx_intro .idx_intro_photo .image02 {
        width: 43.099vw;
        height: 55.99vw;
        margin: 0 0 -20vw -25vw;
    }

    /*----- idx_company -----*/
    #idx_company .gallery_list:not(:nth-child(2)) {
        height: calc((100vh - 80px) / 4);
    }

    #idx_company .gallery_list:not(:nth-child(2)) .item {
        width: 220px;
    }

    #idx_company .gallery_list:nth-child(2) {
        height: calc((100vh - 80px) / 2);
    }

    #idx_company .gallery_list .item_special {
        width: 100vw;
    }

    #idx_company .gallery_special {
        width: calc(100vw - 40px);
        height: 42.383vh;
    }

    #idx_company .idx_company_wrap .idx_company_title {
        font-size: 38px;
    }

    #idx_company .idx_company_wrap .idx_company_title .main_title {
        padding: 11px 25px 7px;
    }

    #idx_company .idx_company_wrap .idx_company_title .sub {
        font-size: 45px;
    }

    #idx_company .idx_company_wrap .idx_company_frame {
        flex-direction: column-reverse;
    }

    #idx_company .idx_company_wrap .idx_company_txt {
        max-width: 100%;
    }

    #idx_company .idx_company_wrap .idx_company_frame figure {
        text-align: center;
    }

    #idx_company .idx_company_wrap .idx_company_list {
        flex-direction: column;
        align-items: center;
    }

    #idx_company .idx_company_wrap .idx_company_list li {
        width: 100%;
        max-width: 464px;
        height: 180px;
        max-height: inherit;
    }

    #idx_company .idx_company_wrap .idx_company_list li a::before {
        font-size: 80px;
        top: -17px;
    }

    #idx_company .idx_company_wrap .idx_company_list li i {
        width: 40px;
        height: 40px;
        right: 10px;
    }

    #idx_company .idx_company_wrap .idx_company_list li i svg {
        width: 20px;
    }

    #idx_company .idx_company_wrap .idx_company_list li figure img {
        width: 100%;
        height: 100%;
        object-fit: contain;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(1) figure {
        width: 110px;
        height: 140px;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(2) figure {
        width: 88px;
        height: 141px;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(3) figure {
        width: 82px;
        height: 140px;
    }

    #idx_company .idx_company_wrap .idx_company_list li:nth-child(4) figure {
        width: 90px;
        height: 140px;
    }

    #idx_company .catcher_gallery {
        top: -12%;
        left: -100%;
    }

    /*----- idx_job -----*/
    #idx_job {
        padding-bottom: 18vw;
    }

    #idx_job .inner {
        flex-direction: column-reverse;
        gap: 45px;
    }

    #idx_job .idx_job_component {
        width: 100%;
        max-width: 100%;
    }

    #idx_job .h3title {
        margin-bottom: 25px;
    }

    #idx_job .h3title span.en {
        bottom: 0;
    }

    #idx_job .special_image {
        width: 46.528vw;
        max-width: 268px;
        height: 34.722vw;
        max-height: 200px;
        top: -5vw;
    }

    #idx_job .idx_job_gallery {
        width: 64.844vw;
    }

    #idx_job .idx_job_slider {
        height: 84.896vw;
    }

    /*----- idx_numbers -----*/
    #idx_numbers .idx_numbers_frame {
        flex-direction: column;
    }

    #idx_numbers .idx_numbers_layer {
        display: flex;
        flex-direction: column-reverse;
        align-items: center;
        padding: 55px 3% 0;
        margin-top: 65px;
    }

    #idx_numbers .idx_numbers_decor {
        position: relative;
        bottom: auto;
        left: auto;
        transform: translateX(0);
    }

    #idx_numbers .idx_numbers_layer ul {
        flex-direction: column;
        align-items: center;
        margin-bottom: 65px;
    }

    #idx_numbers .idx_numbers_layer ul li {
        width: 100%;
        max-width: 380px;
        min-height: inherit;
    }

    #idx_numbers .idx_numbers_layer ul li:nth-child(1),
    #idx_numbers .idx_numbers_layer ul li:nth-child(2) {
        margin-top: 0;
    }

    #idx_numbers .idx_numbers_layer ul li .layer_frame {
        width: 100%;
        max-width: 100%;
        padding: 25px 10px;
    }

    #idx_numbers .idx_numbers_decor .idx_numbers_balloon {
        font-size: 16px;
        width: 42.667vw;
        max-width: 192px;
        height: 40.667vw;
        max-height: 183px;
        padding-top: 5px;
        top: -76px;
        left: -6vw;
    }

    #idx_numbers .idx_numbers_decor figure {
        width: 69.063vw;
        height: 110.938vw;
    }

    /*----- idx_people -----*/
    #idx_people .idx_people_list {
        flex-direction: column;
        align-items: center;
        gap: 150px;
    }

    #idx_people .idx_people_list::before {
        height: 95.918vw;
    }

    #idx_people .idx_people_list .person_card {
        width: 83.556vw;
        max-width: 376px;
    }

    #idx_people .idx_people_list .person_card a {
        height: 112.222vw;
        max-height: 505px;
    }

    #idx_people .idx_people_list .person_card .person_info {
        padding: 0 20px 25px;
    }

    #idx_people .idx_people_list .person_card .icon {
        right: 20px;
        bottom: 25px;
    }

    #idx_people .idx_people_notes {
        font-size: 18px;
        text-align: justify;
    }

    #idx_people .idx_people_notes br {
        display: none;
    }

    /*----- idx_enviroment -----*/
    #idx_enviroment {
        padding: 12.37vw 0 65px;
    }

    #idx_enviroment .h3title span.jp {
        padding: 10px 0 0;
    }

    #idx_enviroment .h3title span.jp::before,
    #idx_enviroment .h3title span.jp::after {
        display: none;
    }

    #idx_enviroment .idx_enviroment_txt {
        text-align: justify;
    }

    #idx_enviroment .idx_enviroment_list .enviroment_card {
        flex-direction: column-reverse !important;
    }

    #idx_enviroment .enviroment_card .card_component {
        width: 100%;
        padding: 45px 3% 55px;
    }

    #idx_enviroment .idx_enviroment_list .enviroment_card figure {
        width: 100%;
        height: 76vw;
        min-height: inherit;
    }

    /*----- footer -----*/
    #box_guidelines .inner::before,
    #box_guidelines .inner::after {
        display: none;
    }

    #box_guidelines .guidelines_title {
        font-size: 20px;
    }

    #box_guidelines .guidelines_txt {
        text-align: justify;
    }

    #box_guidelines .catcher_gallery {
        bottom: 120%;
    }

    #footer .box_footer .f_bnr {
        flex-direction: column;
        align-items: center;
    }

    #footer .box_footer .f_bnr .btn_primary {
        width: 100%;
        max-width: 480px;
    }
}

@media screen and (max-width: 576px) {
    #header .overlay {
        padding-top: 80px;
    }

    #header .overlay .h_bnr {
        flex-direction: column;
    }

    #header .overlay .h_bnr .btn_primary {
        width: 100%;
    }

    /*----- idx_company -----*/
    #idx_company .catcher_gallery {
        top: -19%;
    }

    /*----- idx_numbers -----*/
    #idx_numbers .idx_numbers_decor .idx_numbers_balloon {
        left: -10vw;
    }

    /*----- footer -----*/
    #box_guidelines .inner::after {
        display: none;
    }

    #box_guidelines .catcher_gallery {
        bottom: 160%;
    }

    #footer .box_footer .f_connect {
        margin-bottom: 40px;
    }

    #footer .box_footer .f_slogan .word_special {
        font-size: 75px;
    }

    #footer .box_footer .f_slogan .word_slogan {
        font-size: 14px;
    }

    #footer address {
        text-align: left;
    }
}

@media screen and (max-width: 490px) {
    .h3title span.jp {
        font-size: 40px;
    }

    #idx_numbers .h3title::after {
        top: 20%;
        right: 0;
    }

    #box_guidelines .catcher_gallery {
        bottom: 175%;
    }
}

@media screen and (max-width: 390px) {
    #header #top a .company_name {
        font-size: 12px;
    }

    #header .overlay .h_connect .nav_link li::before {
        top: 12px;
    }

    #header .overlay .h_connect .nav_link li a {
        font-size: 17px;
    }

    #box_guidelines .catcher_gallery {
        bottom: 160%;
    }
}

@media screen and (max-width: 320px) {}
