/* 
Theme Name: Nishihara-Koji
*/
@charset "utf-8";

a {
    text-decoration: none;
}

body {
    background-color: #f9f9f9;
}

/* 背景 */
#back_pipe {
    background: url("./images/pipe_back.png");
    background-repeat: repeat;
    background-size: 100% auto;
}

#back_pipe.hide {
    background: none;
}

/* 共通部分 */
/* ヘッダ＾ここから */
header {
    width: 100%;
    position: fixed;
    z-index: 2;
}

#header_icon a h1 {
    color: #000000;
    width: 224px;
    display: flex;
    align-items: center;
}

#header_icon_nishihara_eng a h1 {
    color: #000000;
    width: 224px;
    display: flex;
    align-items: center;
}


#humburg_menu {
    display: none;
}

#header_icon a h1 img {
    object-fit: contain;
}

#header_icon_nishihara_eng a h1 img {
    object-fit: contain;
}

div#header_icon a h1 img {
    height: 32px;
}

div#header_icon_nishihara_eng a h1 img {
    height: 23px;
    margin-left: 10px;
}

#header_top {
    background-position: center;
    background-size: cover;
    width: 100%;
    padding-top: 35px;
}


#header_navbar {
    position: fixed;
    box-shadow: 0 0 20px 2px rgba(0, 0, 0, 0.1);
    width: 90%;
    background: #ffffff;
    height: 64px;
    display: flex;
    align-items: center;
    border-radius: 14px;
    left: 50%;
    translate: -50% 0;
    top: 30px;
    justify-content: space-between;
    /* 2025/9/25 藤本 西原衛生のリンク追加 */
    padding: 0 50px 0 45px;
    /*padding: 0 80px 0 45px;*/
    z-index: 2;
}

#hum_check {
    display: none;
}

div#header_icon {
    width: calc(25% - 45px);
}

div#header_icon_nshihara_eng {
    width: calc(25% - 45px);
}


nav ul {
    display: flex;
    list-style: none;
    align-items: center;
}

nav ul li {
    /* 2025/9/25 藤本 */
    margin-left: 30px;
    /*margin-left: 40px;*/
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 7px 0;
    transition: .3s ease;
    border-bottom: 2px solid rgba(0, 57, 117, 0);
}

nav ul li.bottom:hover {
    border-bottom: 2px solid rgba(0, 57, 117, 1);

}

nav ul li a {
    text-decoration: none;
    color: #000000;
    font-family: "Noto Sans JP", serif;
    /* 2025/9/25 藤本 */
    /* font-size: 20px;*/
    font-size: 17px;
    font-weight: 400;
    line-height: 1;
    display: inline-block;
}

.drop_parent {
    position: relative;
}

.drop_menu {
    position: absolute;
    top: 29px;
    left: 0;
    background: #ffffff;
    padding: 0 40px;
    border-radius: 0 0 15px 15px;
    height: 0;
    overflow: hidden;
    z-index: -1;
    transition: padding-top .3s linear, padding-bottom .3s linear;

}

.drop_menu ul {
    flex-direction: column;
    width: 195px;
}


.drop_menu li {
    margin: 0;
    width: 100%;

}

.drop_menu li a {
    font-family: "Noto Sans JP", serif;
    font-weight: 400;
    font-size: 16px;
    display: flex;
    justify-content: space-between;
    width: 100%;

}

.drop_menu li img {
    height: 16px;
    width: 16px;
}

.drop_menu li:not(:last-child) {
    margin-bottom: 40px;
}

.drop_parent:hover .drop_menu,
.drop_menu:hover {
    padding: 30px 40px;
    height: auto;

}

/* ヘッダーメイン */
#header_main {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    aspect-ratio: 16 / 9;
}

#header_main h3,
#header_main p,
#recruit_circle h3,
#recruit_circle p {
    text-align: center;
}

#header_main h3 {
    font-size: 64px;
    font-weight: 700;
    font-family: "Noto Sans JP", serif;
    margin-top: 480px;
}

#header_main p {
    font-family: "Noto Sans JP", serif;
    font-size: 40px;
    font-weight: 700;
}

/* ハンバーガーメニュー */
#hum_menu {
    display: none;
}

/* パンくずリスト */
#pan_list_container {
    position: relative;
    width: 90%;
    margin: 0 auto;
}

#pan_list_container #pan_list {
    right: 0;
    top: 135px;
    position: absolute;
}


#pan_list p {
    font-weight: 300;
    font-size: 18px;
    font-family: "Noto Sans JP", serif;
}

#pan_list a {
    text-decoration: none;
    color: #000000;
}

/* ボタンスペース */
#main_buttons {
    width: 100%;
    padding-top: 100px;
    padding-bottom: 192px;
}

.contact_button {
    margin: 0 auto 100px auto;
    display: block;
    width: 560px;
    height: 100px;
    color: #ffffff;
    font-weight: 800;
    font-size: 36px;
    line-height: 1.5;
    font-family: "Noto Sans JP", serif;
    background-color: #003975;
    border-radius: 48px;
    text-decoration: none;
    text-align: center;
    align-content: center;
}

#top_button {
    margin: 0 auto;
    display: block;
    text-decoration: none;
    text-align: center;
    align-content: center;
    width: 120px;
    height: 120px;
    background: linear-gradient(135deg, #003975, #1B89FF);
    font-family: "Noto Sans JP", serif;

    border-radius: 50%;
    color: #ffffff;
    font-weight: 800;
    font-size: 28px;
    line-height: 1.5;
}

/* フッター */
footer {
    width: 100%;
    background-color: #CFE5F9;
    position: relative;
    padding-top: 50px;
}

footer::before {
    position: absolute;
    content: "";
    width: 100%;
    height: 92px;
    bottom: 100%;
    left: 0;
    display: block;
    background: url("./images/footer_top.png") repeat-x;
    background-size: contain;
    background-position: bottom;
}

#footer_container {
    width: 90%;
    max-width: 1300px;
    margin: 0 auto 50px auto;
    display: flex;
}

footer h6 a {
    font-family: "Noto Sans JP", serif;
    font-weight: 600;
    font-size: 18px;
    color: #000000;
}

footer p a {
    font-family: "Noto Sans JP", serif;
    font-weight: 300;
    font-size: 18px;
    color: #000000;
}

div.left_line {
    border-left: 4px solid #003975;
    padding-left: 16px;

}

#footer_left {
    width: 25%;
}

#footer_left img {
    width: 100%;
    margin-bottom: 32px;
}

#footer_left p {
    font-family: "Noto Sans JP", serif;
    font-weight: 300;
    font-size: 18px;
    letter-spacing: 1.6px;
    margin-bottom: 56px;
}

#footer_left ul {
    display: flex;
    list-style: none;
}

#footer_left ul li {
    margin-right: 20px;

}

#footer_left ul li a {
    font-family: "Noto Sans JP", serif;
    font-weight: 300;
    font-size: 14px;
    text-decoration: underline;
    text-decoration-style: solid;
    color: #000000;
}

#footer_right {
    margin-left: 56px;
    width: calc(75% - 56px);
}

#footer_right_top,
#footer_right_bottom {
    padding: 0 16px;
}

#footer_right_bottom div.has_child h6 {
    margin-bottom: 15px;
}

#footer_right_bottom div.has_child p {
    margin-bottom: 11px;
}

#footer_right_top {
    padding-bottom: 25px;
    border-bottom: 1px solid #003975;
}

#footer_right_bottom {
    padding-top: 25px;
    display: flex;
    justify-content: space-between;
}

#footer_right_bottom div.left_line {
    margin-bottom: 35px;
}

#copy_right {
    height: 40px;
    background: #003975;
    display: flex;
    align-items: center;
    justify-content: center;

}

#copy_right p {
    color: #FFFFFF;
    font-family: "Noto Sans JP", serif;
    font-weight: 800;
    font-size: 12px;

}

/* セクション項目名テンプレート */

div.section_title:not(.mission) {

    width: 100%;
    margin: 0 auto;
}

div.section_title.title_container {
    width: 90%;
}

div.section_title h4 {
    font-weight: 400;
    font-size: 22px;
    font-family: "Noto Sans JP", serif;
    margin-left: 10px;
}

.section_title h2 {
    font-weight: 800;
    font-size: 40px;
    font-family: "Noto Sans JP", serif;
    margin-left: 10px;
}

.title_line {
    height: 4px;
    background: #003975;
    width: 40px;
}

.section_title:not(.not_flex) {
    display: flex;
    justify-content: space-between;
}

div.title_sub h3 {
    text-align: end;
    font-weight: 700;
    font-size: 24px;
    font-family: "Noto Sans JP", serif;
    margin-bottom: 10px;
}

div.title_sub p {
    text-align: end;
    font-weight: 700;
    font-size: 16px;
    font-family: "Noto Sans JP", serif;
}



/* 項目名 白塗り*/
div.section_title.white div h4,
div.section_title.white div h2 {
    color: #ffffff;
}

div.section_title.white div div.title_line:not(.not_white) {
    background-color: #FFFFFF;
}

/* 詳しく見るボタン */
.button_box {
    display: flex;
    justify-content: center;
    align-items: center;
}

.button_box a {
    display: inline-block;
    background: #047CFD;
    width: 300px;
    height: 80px;
    text-align: center;
    border-radius: 86px;
    text-decoration: none;
}

.button_box a p {
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 32px;
    color: #FFFFFF;
    font-family: "Noto Sans JP", serif;
}

/* 会社概要 */

dl.company_info {
    width: 90%;
    margin: 0 auto 56px auto;
    display: flex;
    flex-wrap: wrap;
    border-bottom: 2px #003975 solid;

}

dl.company_info dt,
dl.company_info dd {
    min-height: 65px;
    color: #000000;
    font-weight: 500;
    font-size: 20px;
    line-height: 1.5;
    font-family: "Noto Sans JP", serif;
    padding-top: 15px;
    padding-bottom: 15px;
    padding-left: 64px;
    border-top: 2px #003975 solid;
}

dl.company_info dt {
    width: 30%;
}

dl.company_info dd {
    width: 70%;
}

iframe.company_info {
    width: 90%;
    display: block;
    margin: 0 auto 30px auto;
}

div#top_access {
    width: 90%;

    margin: 0 auto;
    padding-left: 30px;
    border-left: 4px #003975 solid;

}

div#top_access p {
    color: #000000;
    font-weight: 500;
    font-size: 20px;
    line-height: 1.5;
    font-family: "Noto Sans JP", serif;

}

/* 2025/9/18 藤本 画像ありの施工実績非表示 start **************************

/* 施工実績 */

dl.works_main {
    width: 90%;
    margin: 0 auto 0px auto;
    display: flex;
    flex-wrap: wrap;
    border-bottom: 2px #003975 solid;
}

dl.works_main dd {
    min-height: 65px;
    color: #000000;
    font-weight: 500;
    font-size: 20px;
    line-height: 1.5;
    font-family: "Noto Sans JP", serif;
    padding-top: 15px;
    padding-bottom: 15px;
    padding-left: 64px;
}

dl.works_main dt {
    min-height: 65px;
    color: #000000;
    font-weight: 500;
    font-size: 20px;
    line-height: 1.5;
    font-family: "Noto Sans JP", serif;
    padding-top: 15px;
    padding-bottom: 10px;
}

dt.works_year {
    margin-right: -430px;
}

dt.works_category {
    margin-right: -390px;
}

dl.works_main dt {
    width: 55%;
}

@media screen and (max-width: 1024px) {

    dl.works_main dt {
        min-height: 65px;
        color: #000000;
        font-weight: 500;
        font-size: 20px;
        line-height: 1.5;
        font-family: "Noto Sans JP", serif;
        padding-top: 15px;
        padding-bottom: 10px;
    }

    dt.works_year {
        margin-right: -160px;

    }

    dt.works_category {
        margin-right: -100px;
    }

    dt.works_title {
        margin-right: -200px;
    }

    dl.works_main dt {
        width: 100%;
    }

}

/* 2025/9/18 藤本 end ***************************************************

/* リクルートボタン */

#recruit_main {
    margin: 15px auto 0 auto;
    margin-top: 15px;
    width: 90%;
    height: 400px;
    background: linear-gradient(180deg, #003975, #1B89FF);
    border-radius: 80px;
}

#recruit_main a {
    display: block;
    height: 100%;
    width: 100%;
    border-radius: 80px;
    align-content: center;
    text-decoration: none;

}

#recruit_main a h3 {
    text-align: center;
    color: #ffffff;
    font-weight: 800;
    font-size: 64px;
    font-family: "Noto Sans JP", serif;
}

#recruit_main a p {
    text-align: center;
    color: #ffffff;
    font-weight: 800;
    font-size: 32px;
    font-family: "Noto Sans JP", serif;
}

.inactive {
    display: none !important;
}

@media screen and (max-width: 1366px) {

    /* ヘッダー */
    header {
        position: static;
    }

    #header_navbar {
        top: 0;
        left: 0;
        width: 100%;
        padding: 0 5% 0 5%;
        border-radius: 0;
        translate: 0 0;
        box-shadow: none;

    }

    #header_icon a h1,
    div#header_icon {
        width: auto;
    }

    #header_icon_nishihara_eng a h1,
    div#header_icon_nishihara_eng {
        width: auto;
    }

    div#header_icon a h1 img {
        /* 2025/9/25 藤本*/
        height: 14px;
        /*height: 24px;*/
    }

    div#header_icon_nishihara_eng a h1 img {
        height: 12px;
        margin-right: 5px;
    }

    header nav ul {
        display: none;
    }

    #humburg_menu {
        height: 40px;
        display: block;
    }

    #main_top_news {
        margin-top: 64px;

    }

    #header_main {
        height: auto;
        margin-top: 64px;
        background-size: cover;
        aspect-ratio: 16/9;
    }

    /* ハンバーガーメニュー */
    #hum_menu {
        position: fixed;
        top: 0;
        left: 100%;
        height: 100%;
        width: 0;
        background: black;
        z-index: 10;
        display: block;
        overflow: hidden;
        transition: .3s ease;
        background: rgba(0, 0, 0, 0);
    }

    #hum_menu #hum_menu_container {
        width: 100%;
        padding: 30px 5% 50px 5%;
        background: #ffffff;
    }

    #hum_menu #hum_menu_container #hum_menu_container_top {
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    #hum_icon {
        height: 28px;
    }

    #hum_menu {
        width: 100%;
    }

    #hum_check:checked+#hum_menu {
        left: 0;
    }


    #hum_menu_container_bottom {
        margin-top: 50px;
    }

    #hum_menu_container_bottom nav ul {
        display: block;
    }

    #hum_menu_container_bottom nav ul li.nav_el {
        margin-left: 0;
        margin-top: 20px;
        justify-content: left;
        font-weight: 900;
        padding: 0;
        background: #ffffff;
    }

    #hum_menu_container_bottom nav ul li.children {
        margin-left: 0;
        margin-top: 15px;
        justify-content: left;
        font-weight: 900;
        padding: 0;
    }

    #hum_menu_container_bottom nav ul li a {
        font-size: 32px;
    }

    #hum_menu_container_bottom .contact_button {
        margin-top: 30px;
        margin-bottom: 30px;
        width: 300px;
        font-size: 20px;

    }

    #hum_menu_container_bottom .privacy {
        text-decoration: none;
        color: #000000;
        font-family: "Noto Sans JP", serif;
        font-size: 16px;
        font-weight: 400;
        line-height: 1;
        display: block;
        width: 160px;
        margin: 0 auto;
        border-bottom: 1px solid #000000;
    }

    .icon-toggle {
        display: inline-block;
        position: relative;
        width: 24px;
        height: 24px;
        cursor: pointer;
    }

    .bar {
        position: absolute;
        left: 0;
        top: 50%;
        width: 100%;
        height: 2px;
        background-color: #003975;
        transform-origin: center;
        transition: 1s ease;
    }

    /* 横線はそのまま中央に */
    .bar.horizontal {
        transform: translateY(-50%);
    }

    /* 縦線は90°回転して中央に */
    .bar.vertical {
        transform: rotate(90deg);
    }

    .drop_menu_sp {
        padding-left: 24px;
        transition: 1s ease;
        overflow: hidden;

    }

    .ham_plus {
        height: 24px;
    }

    #hum_menu_container_bottom nav ul li.parent {
        display: flex;
        justify-content: space-between;
    }

    #hum_menu_container_bottom nav ul input[type="checkbox"] {
        display: none;
    }

    #hum_menu_container_bottom nav ul input[type="checkbox"]#competition_checkbox:not(:checked)~.drop_menu_sp.competition,
    #hum_menu_container_bottom nav ul input[type="checkbox"]#company_checkbox:not(:checked)~.drop_menu_sp.company,
    #hum_menu_container_bottom nav ul input[type="checkbox"]#recruit_checkbox:not(:checked)~.drop_menu_sp.recruit {
        max-height: 0;
    }

    #hum_menu_container_bottom nav ul input[type="checkbox"]#competition_checkbox:checked~.drop_menu_sp.competition {
        max-height: 200px;
    }

    #hum_menu_container_bottom nav ul input[type="checkbox"]#recruit_checkbox:checked~.drop_menu_sp.recruit {
        max-height: 100px;
    }

    #hum_menu_container_bottom nav ul input[type="checkbox"]#company_checkbox:checked~.drop_menu_sp.company {
        max-height: 50px;
    }

    #hum_menu_container_bottom nav ul input[type="checkbox"]#competition_checkbox:checked~li.parent.competition label.icon-toggle .vertical,
    #hum_menu_container_bottom nav ul input[type="checkbox"]#company_checkbox:checked~li.parent.company label.icon-toggle .vertical,
    #hum_menu_container_bottom nav ul input[type="checkbox"]#recruit_checkbox:checked~li.parent.recruit label.icon-toggle .vertical {
        /* 縦線を縮めて消す */

        transform: rotate(180deg);
    }

    #hum_menu_container_bottom nav ul input[type="checkbox"]#competition_checkbox:checked~li.parent.competition label.icon-toggle .horizontal,
    #hum_menu_container_bottom nav ul input[type="checkbox"]#company_checkbox:checked~li.parent.company label.icon-toggle .horizontal,
    #hum_menu_container_bottom nav ul input[type="checkbox"]#recruit_checkbox:checked~li.parent.recruit label.icon-toggle .horizontal {
        opacity: 0;
    }
}

/* タブレット */
@media screen and (max-width: 1024px) {



    /* タイトル */
    div.section_title.title_container {
        width: 90%;
        margin-bottom: 25px;
    }

    .section_title div {
        margin-bottom: 5px;
    }

    /* リクルートボタン */
    #recruit_main {
        width: 90%;
        height: auto;
        padding: 30px 0 30px 0;
        border-radius: 40px;
    }

    #recruit_main a h3 {
        font-size: 24px;
    }

    #recruit_main a p {
        font-size: 15px;

    }

    /* 会社情報 */
    section#top_company {
        padding: 30px 0 30px 0;
    }

    section#top_company div.section_title {
        margin-bottom: 25px;
    }


    #company_main {
        width: 90%;
    }

    dl.company_info dt {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    dl.company_info dt,
    dl.company_info dd {
        padding-left: 0;
    }

    div#top_access {
        padding-left: 10px;
    }

    /* お問い合わせボタン */

    #main_buttons {
        padding-top: 60px;
        padding-bottom: 60px;
    }

    /* フッター */
    #footer_right {
        display: none;
    }

    #footer_left {
        width: 90%;
    }

    #footer_left img {
        max-width: 100%;
        width: 360px;
    }
}


/* スマホ */
@media screen and (max-width: 750px) {
    #hum_menu_container_bottom {
        margin-top: 30px;
        max-height: calc(100vh - 170px);
        /* 必要に応じて調整。上のheaderなどの高さ分を引く */
        overflow-y: auto;
    }

    #hum_menu_container_bottom nav ul li {
        margin-top: 10px;
    }

    #hum_menu_container_bottom nav ul li a {
        font-size: 24px;
    }

    .section_title:not(.not_flex) {
        flex-direction: column;
        text-align: start;
    }

    .contact_button {
        width: 90%;
        margin-bottom: 60px;
        font-size: 24px;
    }

    div.title_sub h3,
    div.title_sub p {
        text-align: start;
    }

    /*メイン画像  */
    div.section_title h4 {
        font-size: 16px;
    }

    .section_title h2 {
        font-size: 32px;
    }


    /* パンくずリスト */
    #pan_list_container #pan_list {
        display: none;
    }

    #pan_list p {
        font-size: 14px;
    }

    #main_contact_top_container .section_title h2,
    #main_contact_top_container .title_line {
        display: none;
    }


}