/*
Theme Name: main
Theme URI: 
Description: 
Author: ailylab
Author URI: 
Version: 1.0.0
*/

img[src=""] {
    display: block;
    position: relative;
    width: 100%;
    padding-bottom: 70%;
    border: 1px solid #eee;
}
img[src=""]:after {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    font-size: 24px;
    white-space: nowrap;
    content: "※画像準備中※";
}

/***********************************
*           変数設定
***********************************/
:root {
	--main-color: #10872D;
	--sub-color: #075319;
	--point-color: #EA671F;
	--text-color: #333;
    --container-width: 1070px;      /*1100の左右に15pxのpadding*/
}

/****************************************
1.Setting
*****************************************/
html, body, div, span, a, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, address, em, img, dl, dt, dd, ol, ul, li, form, label, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, figcaption, figure, footer, header, menu, nav, section, time, video {
    margin: 0px;
    padding: 0px;
    border: none;
    outline: none;
    box-sizing: border-box;
}

body {
    color: #fff;
    background-color: #000;
    font-size: 17px;
    font-family: "Roboto Condensed","Noto Sans JP",  "游ゴシック", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
    font-weight: 500;       /*基本Medium*/
    overflow-x: hidden;
    width: 100vw;
}

h1, h2, h3, h4, h5, h6 {
    line-height: 1.5;
}

a {
    color: #15B13A;
}

a:hover {
    color: #1BDE48;
}

a[href="#none"] {
    color: #313131;
    text-decoration: none;
    pointer-events: none;
}

img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0px auto;
    -webkit-backface-visibility: hidden; 
    -ms-transform: translateZ(0); /* IE 9 */
    -webkit-transform: translateZ(0); /* Chrome, Safari, Opera */
    transform: translateZ(0);
}

/* Chromeで縮小したアイコン画像がぼやける現象への対策 */
img[src$=".png"],
img[src$=".gif"] {
    -webkit-backface-visibility: hidden;
}

p {
    line-height: 1.6;
}

p.paragraph:nth-of-type(n + 2) {
    margin: 1.5em 0px 0px;
}

figcaption {
    padding: 0.5em;
    text-align: center;
}

a:hover > figure > img {
    opacity: 0.8;
}

table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

table th,
table td {
    padding: 20px ;
    border: 1px solid rgba(255, 255, 255, 0.4);
}

table td {
    background-color: #222222;
}

table th {
    background-color: var(--sub-color);
}
@media screen and (max-width: 767.98px) {
    .tbl_wrapper {
        overflow-x: scroll;
    }
    .tbl_wrapper > table {
        width: 767px;
    }
}

address {
    font-style: normal;
}

.video_wrapper video {
    position: relative;
    z-index: 1;
    width: 100%;
}

ol.list,
ul.list {
    margin: 0px 0px 0px 1.5em;
}

p + ol.list,
p + ul.list {
    margin: 0.5em 0px 0px 1.5em;
}

ol.list + p,
ul.list + p {
    margin: 0.5em 0px 0px;
}

ol.list > li + li,
ul.list > li + li {
    margin: 1em 0px 0px;
}

ol.list > li > ul,
ul.list > li > ul {
    margin: 1em 0px 0px 1.5em;
}

ol.list > li > .box,
ul.list > li > .box {
    margin: 1em 0px 0px;
}

dl.list {
    border: 1px solid #dedede;
    border-top: none;
}

dl.list > dt,
dl.list > dd {
    padding: 1em;
    margin: 0px;
    border-top: 1px solid #dedede;
}

dl.list > dt {
    background-color: #ecf8fe;
    color: #231815;
    font-weight: bold;
}

.cf:after {
    display: block;
    clear: both;
    content: "";
}

.bw > span,
h1 > span,
h2 > span,
h3 > span,
h4 > span,
h5 > span,
h6 > span,
figcaption > span {
    display: inline-block;
}

@media screen and (max-width: 991px) {
    .pc {
        display: none !important;
    }
}
@media screen and (max-width: 767.98px) {
    .tb {
        display: none !important;
    }
}
@media screen and (min-width: 768px) {
    .mb {
        display: none !important;
    }
}

.center {
    text-align: center;
}

@media screen and (min-width: 768px) {
    .pc_center {
        text-align: center;
    }
}

.right {
    text-align: right;
}

.em {
    font-size: 16px;
    font-weight: bold;
}

.if_wrapper {
    position: relative;
    padding-bottom: 56.25%;
}
.if_wrapper iframe {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
}

.slidein {
    transform: translateY(50px);
    opacity: 0;
    visibility: hidden;
    transition: transform 0.5s, opacity 0.5s, visibility 0.5s;
}
.slidein.js_active {
    transform: translateY(0px);
    opacity: 1;
    visibility: visible;
}

.form_step {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
}

.form_step > li {
    display: block;
    position: relative;
    padding: 1em;
    width: 22%;
    border: 1px solid currentColor;
    font-size: 1.5vw;
    font-weight: bold;
    text-align: center;
    color: var(--sub-color);
}
.form_step > li:nth-of-type(n + 2) {
    margin: 0px 0px 0px 4%;
}
.form_step > li:nth-of-type(n + 2)::before {
    position: absolute;
    top: 50%;
    left: -1.5em;
    width: 0.5em;
    height: 0.5em;
    border-top: 2px solid var(--sub-color);
    border-left: 2px solid var(--sub-color);
    transform: translateY(-50%) rotate(135deg);
    content: "";
}

.form_step > li.form_step_now{
    color: #fff;
    background-color: var(--sub-color);
}

@media print, (min-width: 992px) {
    .form_step > li {
        font-size: 18px;
    }
}

.pagination {
    display: flex;
    justify-content: center;
    margin: 40px 0px 40px;
}

.pagination > a,
.pagination > span {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 2em;
    height: 2em;
    margin: 30px 0.5em 0px;
    border: 1px solid var(--main-color);
    font-weight: bold;
}

.pagination > a:link,
.pagination > a:visited,
.pagination > a:active,
.pagination > a:hover {
    color:  var(--main-color);
    text-decoration: none;
}
.pagination > .prev,
.pagination > .next {
    border: 1px solid transparent;
    background-color: transparent;
}
.pagination > .prev:before,
.pagination > .next:before {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.5em;
    height: 0.5em;
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    content: "";
}
.pagination > .prev:before {
    transform: translateX(-50%) translateY(-50%) rotate(225deg);
}
.pagination > .next:before {
    transform: translateX(-50%) translateY(-50%) rotate(45deg);
}

.pagination > .current {
    background-color:  var(--main-color);
    color: #fff;
}

.link_prev_next {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    margin: 40px 0px;
}

.link_prev,
.link_next {
    position: relative;
    padding: 0px 1em;
}

.link_prev:before,
.link_next:after {
    position: absolute;
    top: 50%;
    width: 0.5em;
    height: 0.5em;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    content: "";
}
.link_prev:before {
    left: 0px;
    transform: translateY(-50%) rotate(225deg);
}
.link_next:after {
    right: 0px;
    transform: translateY(-50%) rotate(45deg);
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    padding: 1em 0px;
    list-style: none;
    align-items: baseline;
}
.breadcrumb > li {
    position: relative;
    font-size: 14px;
}
.breadcrumb > li:nth-of-type(n + 2) {
    padding: 0px 0px 0px 2.5em;
}
.breadcrumb > li:nth-of-type(n + 2):before {
    position: absolute;
    top: 50%;
    left: 1em;
    width: 0.5em;
    height: 0.5em;
    transform: translateY(-50%) rotate(45deg);
    border-right: 2px solid #dedede;
    border-top: 2px solid #dedede;
    content: "";
}
.breadcrumb > li > a {
    color: var(--main-color);
    text-underline-offset: 3px;
}

.list_slash {
    list-style: none;
}

.list_slash > li {
    display: inline-block;
    position: relative;
}
.list_slash > li:not(:last-child)::after {
    margin: 0px 0.5em;
    content: "/";
}

/****************************************
2. Layout 
*****************************************/
.mt1em {
    margin-top: 1em;
}

.mt30minus {
    margin-top: -30px;
}

.mt30 {
    margin-top: 30px;
}

.mt60 {
    margin-top: 60px;
}

.mb80 {
    margin-bottom: 80px;
}

.section {
    padding: 30px 0px 30px 0px;
}

div[class="col"],
div[class^="col-"] {
    margin-top: 30px;
}

.row.no_mt {
    margin-top: -30px;
}

.container {
    width: 100%;
}
@media print, (min-width: 992px) {
    .container {
        margin-left: auto;
        margin-right: auto;
    }
}
@media (min-width: 576px) {
    .container {
        max-width: 100%;
    }
}
@media (min-width: 768px) {
    .container {
        max-width: 100%;
    }
}
@media (min-width: 992px) {
    .container {
        max-width: 100%;
    }
}
@media (min-width: 1100px) {
    .container {
        max-width: 100%;
    }
}
@media (min-width: 1100px) {
    .container {
        max-width: 1130px;
    }
}

.container_l {
    max-width: 1400px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
}
.container_s {
    padding: 0px 15px;
    width: 100%;
}
@media print, (min-width: 992px) {
    .container_s {
        margin-left: auto;
        margin-right: auto;
        width: 80%;
    }
}
@media (min-width: 768px) {
    .container_s {
        max-width: 768px;
    }
}

@media print, (min-width: 768px) {
    .col2 {
        display: flex;
        padding: 0px 0px 60px;
    }
    .col2_main {
        order: 2;
        width: 75%;
    }
    .col2_side {
        order: 1;
        margin: 0px 20px 0px 0px;
        width: calc(25% - 20px);
    }
}

@media screen and (max-width: 767.98px) {
    .col2_side {
        margin: 30px 0px 0px;
    }
}


/*----------------------------------
        共通
----------------------------------*/
.green{
    color: var(--main-color);
}
/*【見出し】左のアンダーライン*/
.heading-underline-left{
    font-size:clamp(26px, 3.2vw ,44px);
    font-weight: bold;
    line-height: 1.6;
    text-transform: uppercase;
    position: relative;
}
.heading-underline-left::after{
    content: "";
    position: absolute;
    width: 40px;
    height: 8px;
    background-color: var(--main-color);
    bottom: -10px;
    left: 0;
}

/*【見出し】センターライン*/
.heading-underline-center{
    font-size:clamp(26px, 3.2vw ,42px);
    font-weight: bold;
    line-height: 1.6;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    position: relative;
    text-align: center;
    margin-bottom: 40px;
}
.heading-underline-center::after{
    content: "";
    position: absolute;
    width: 60px;
    height: 6px;
    background-color: var(--main-color);
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
}

/*【見出し】コンテンツ幅いっぱいのアンダーライン、背景うすグレー*/
.heading-wide-line{
    font-size: 26px;
    font-size:clamp(22px, 22 / 375 * 100vw ,26px);
    font-weight: bold;
    text-align: center;
    margin-bottom: 0.8em;
    background: #222;
    width: 100%;
    padding: 10px 1em;
    border-bottom: solid 4px var(--main-color);       
}
@media screen and (max-width: 767px) {
    .heading-wide-line{
        font-size:clamp(20px, 20 / 430 * 100vw ,22px);
    }
}
/*【ボタン】右に > */
.common-button {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 320px;
    margin:0 auto;
    padding: 1.1em 1em;
    border: none;
    border-radius: 3px;
    background-color:var(--main-color);
    color: #fff;
    font-weight: 600;
    font-size: 17px;
    text-decoration: none;
    position: relative;
    transition: 0.3s;
}
.common-button::after {
    transform: rotate(45deg);
    width: 8px;
    height: 8px;
    border-top: 2px solid #fff;
    border-right: 2px solid #fff;
    content: '';
    position: absolute;
    right: 20px;
}
.common-button:hover {
    color: #fff;
    background-color: var(--sub-color);
}

/*【テキスト】センター寄せで大きめ*/
.text-center-big{
    font-size:clamp(24px, 24 / 767 * 100vw ,30px);
    font-weight: bold;
    text-align: center;
    line-height: 1.7;
}
@media screen and (max-width: 767px) {
    .text-center-big{
        font-size:clamp(18px, 18 / 430 * 100vw ,24px);
    }
}

/*【テキスト】上下にライン*/
.text-sandwich-line{
    font-size:clamp(24px, 24 / 900 * 100vw ,32px);
    font-weight: bold;
    text-align: center;
    line-height: 2;
    border-top: solid 2px #fff;
    border-bottom: solid 2px #fff;
    padding: 0.8em 1em;
    width: 100%; 
    text-align:justify;
    text-align-last:justify;
    margin: 30px auto;
}
.text-sandwich-line .dash{
    text-decoration: underline dashed 4px var(--main-color);
    text-underline-offset: 15px;
}

@media screen and (max-width: 767px) {
    .text-sandwich-line{
        text-align:unset;
        text-align-last:unset;
        text-align: center;
        letter-spacing: 0.3em;
        font-size:clamp(18px, 18 / 430 * 100vw ,24px);
        padding: 0.8em 0.5em;
    }
    .text-sandwich-line .dash{
        text-underline-offset: 10px;
    }
}
@media screen and (max-width: 500px) {
    .text-sandwich-line{
        letter-spacing: 0.1em;
        padding: 0.8em 0;
    }
}

/* 【テンプレートパーツ】共通CTAセクション */
.section-parts-cta{
    position: relative;
    .inner{
        width: 100%;
        height: 240px;
        max-width: 1100px;
        padding: 0 15px;
        margin: auto;
        display: flex;
        color: #fff;
        .title{
            font-size:clamp(24px, 2.6vw ,35px);  
            text-align: center;
            position: absolute;
            top: 43px;
            left: 50%;
            transform: translateX(-50%);
            width: 100%;
            text-align: center;
            padding: 0 1.5em;
        }
        .title span{
            display: inline-block;
        }
        .box-tel,
        .box-contact{
            width: 50%;
            padding: 110px 5px 50px ;
        }
        .box-tel a,
        .box-contact a{
            color: #fff;
        }
    }
    .parts-cta-footer-inner{
        height: 265px;
        position: absolute;
        margin: auto;
        bottom: -83px;
        left: 50%;
        transform: translateX(-50%);
        .title{
            font-size:clamp(24px, 2.7vw ,38px);  
            top: 50px;
        }
        .box-tel,
        .box-contact{
            padding: 120px 5px 50px ;
        }
    }
    @media screen and (max-width: 599px) {
        .inner{
            display: flex;
            flex-direction: column;
            height: auto;
            bottom: -180px;
            padding: 0 2.0%;
            .box-contact,
            .box-tel{
                width: 100%;
            }
            .box-tel {
                padding: 100px 5px 40px;
            }
            .box-contact{
                padding: 50px 5px;
            }
            .box-tel .link-tel::before{
                top: 4px;
            }
            .title{
                top: 45px;
            }
        }
    }
    @media screen and (max-width: 431px) {
        .inner{
            padding: 0 2.5%;
        }
        .inner .box-tel {
            padding: 85px 5px 30px;
        }
        .inner .box-contact{
            padding: 40px 5px 40px;
        }
        .inner .title{
            top: 40px;
            font-size: 20px;
            font-size:clamp(16px, 4.7vw ,21px);
        }
    }
    .box-tel{
        background-color: var(--sub-color);
        .link-tel{
            display: block;            
            font-family: "Roboto", sans-serif;
            font-size:clamp(42px, 42 / 767 * 100vw ,52px);
            font-weight: bold;
            text-decoration: none;
            text-align: center;
            margin:   auto;
            width: fit-content            ;
            position: relative;
            transition: 0.3s;
        }
        .link-tel::before  {
            display: inline-block;
            margin: 0px 0.5em 0px 0px;
            content: "";
            background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216.325%22%20height%3D%2224.019%22%20viewBox%3D%220%200%2016.325%2024.019%22%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9_126074%22%20data-name%3D%22%E3%83%91%E3%82%B9%20126074%22%20d%3D%22M91.248%2C32.471c4.45%2C8.483%2C9.448%2C9.355%2C10.9%2C8.593l.379-.2-3.4-6.489c-.125.064-.252.129-.38.2-1.172.615-2.342-1.161-3.842-4.02s-2.3-4.831-1.124-5.446c.13-.067.254-.134.378-.2l-3.4-6.489-.379.2C88.921%2C19.378%2C86.8%2C23.988%2C91.248%2C32.471Zm13.339%2C7.314c.562-.295.254-.94-.066-1.549l-2.287-4.358c-.246-.469-.652-.733-.981-.561-.206.108-.686.337-1.305.644l3.4%2C6.475ZM96.238%2C23.757c.328-.172.342-.658.1-1.126s-2.286-4.359-2.286-4.359c-.32-.609-.675-1.229-1.237-.934l-1.242.651%2C3.4%2C6.476C95.571%2C24.131%2C96.032%2C23.865%2C96.238%2C23.757Z%22%20transform%3D%22translate(-88.574%20-17.262)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E');
            background-repeat:no-repeat;
            background-size: contain;
            width: 30px;
            height: auto;
            aspect-ratio: 30/43;
            position: absolute;
            left: -35px;
            top: 10px;
            color: #fff;
        }      
        .link-tel:hover {
            opacity: 0.7;            
        }
        .open{
            text-align: center;
            margin-top: -5px;
            font-size: 19px;
            font-size:clamp(16px, 16 / 767 * 100vw ,19px);
            font-family: 'Arial',sans-serif;
        }
        @media screen and (max-width: 767px) {
            .link-tel{
                font-size:clamp(35px, 35 / 600 * 100vw ,42px);          
            }
            .link-tel::before  {
                width: 23px;
                left: -25px;
            }
        }
    }
    .box-contact{
        background-color: var(--main-color);
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        .link-contact{
            font-size: 17px;
            font-weight: 600;
            text-decoration: none;
            display: flex;
            justify-content: center;
            align-items: center;
            width: 320px;
            margin:0 auto;
            padding: 1.05em 2em;
            border: none;
            border-radius: 3px;
            background-color:#000;
            color: #fff;
            text-decoration: none;
            position: relative;
        }
        .link-contact::after {
            transform: rotate(45deg);
            width: 8px;
            height: 8px;
            border-top: 2px solid #fff;
            border-right: 2px solid #fff;
            content: '';
            position: absolute;
            right: 20px;
        }
        .link-contact::before {
            display: inline-block;
            margin: 0px 0 0px 0px;
            font-family: "Font Awesome 5 Free";
            font-size: 21px;
            font-weight: 900;
            content: "\f0e0";
            position: absolute;
            left: 38px;
            top: 50%;
            transform: translateY(-50%);
        }

        .link-contact:hover {
            background-color: var(--sub-color);
        }
        .link-dl{
            text-align: center;
            font-size: 13px;
            position: relative;
            text-decoration: underline;
            text-underline-offset: 3px;            
            transition: 0.3s;
        }
        .link-dl::before {
            display: inline-block;
            margin: 0px 0 0px 0px;
            font-family: "Font Awesome 5 Free";
            font-size: 17px;
            font-weight: 900;
            content: "\f518";
            position: absolute;
            left: -28px;
            top: 2px;
        }
        .link-dl:hover {
            opacity: 0.7;
        }
        @media screen and (max-width: 767px) {
            .link-contact{
                font-size: 16px;
                max-width: 280px;
                width: 96%;
            }
            .link-contact::before {
                font-size: 19px;
                left: 25px;
            }
        }
    } 
}

/*フッター上のctaには背景を追加*/
.section-parts-cta-footer{
    background-image: url('./images/common/bg-cta.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    width: 100vw;
    height: 325px;
}
.section-parts-cta-footer::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.2);
    z-index: 0;
}

/*電話のみのCTA（お問い合わせフォーム）*/
.section-parts-cta-tel{
    margin-bottom: 50px;
}
.section-parts-cta-tel .inner .box-tel{
    width: 100%;
    max-width: 720px;
    margin: auto;
}

/* 【テンプレートパーツ】採用情報 */
.section-parts-cta-recruit{
    width: 98%;
    max-width: 1030px;
    height: auto;
    aspect-ratio: 1030/372;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: #fff;
    position: relative;
    margin: auto;
    background-color: #4e4c4c;
    background-image: url('./images/common/banner-recruit.jpg?202504');
    background-size: cover;
    background-position: center;
    border: solid 15px  var(--main-color);
    .title{
        color: var(--main-color);
        background-color: #fff;
        font-size: 38px;
        font-size:clamp(26px,  26 / 700 * 100vw  ,38px);
        line-height: 1.4;
        padding: 0px 1em;
        text-align: center;
    }
    .title span{
        display: inline-block;
        padding-left: 0.8em;
    }
    .text{
        font-size: 18px;
        font-size:clamp(16px, 16 / 850 * 100vw ,18px);
        text-align: center;
        margin: 20px auto;
        padding: 0 1em;
    }
    .common-button{
        position: relative;
        z-index: 2;
    }
    .banner-outline,
    .banner-arrow{
        background-size: contain;
        background-repeat: no-repeat;
        position: absolute;
        z-index: 1;
    }
    .banner-outline{
        background-image: url('./images/common/banner-recruit-outline.png');
        left: 30px;
        bottom: -20px;
        width: 35%;
        height: auto;
        aspect-ratio: 362/108;
    }
    .banner-arrow{
        background-image: url('./images/common/banner-recruit-arrow.png');
        right: 30px;
        bottom: 20px;
        width: 13%;
        height: auto;
        aspect-ratio: 130/58;
    }
}

@media screen and (max-width: 991px) {
    .section-parts-cta-recruit{
        aspect-ratio: unset;
        padding: 55px 20px;
        .banner-outline{
            left: 10px;
            bottom: -10px;
        }
        .banner-arrow{
            right: 20px;
            bottom: 15px;
        }
    }
}
@media screen and (max-width: 437px) {
    .section-parts-cta-recruit{
        .title{
            line-height: 1.3;
            padding: 8px 0.5em;
        }
        .common-button{
            width: 100%;
        }
    }
}

/*テーブル共通*/
.common-table{
    border: solid 6px #353535;
    padding: 0;
}
.common-table tr th{
    width: 25%;
    min-width: 300px;
}
.common-table tr td{
    background-color: #202020;
}

/*----------------------------------
        トップページ
----------------------------------*/
.home a{
    text-decoration: none;
}
.home .header{
    background-color: transparent;
}
.home .header::before{
        background-color: transparent;
}
.home .header.scrolled-up::before {
    background: rgba(0, 0, 0, 0.9);
}


/*共通*/
.link-box img{
    width: 100%;
    height: auto;
}
.link-arrow{
    font-size:clamp(16px, 16 / 600 * 100vw ,20px);
    font-weight: bold;
    text-align: center;
    letter-spacing: 0.1em;
    color: #fff;
    background-color: #000;
    padding: 20px 1em;
    position: relative;
    transition: 0.3s;
}
.link-arrow::after{
    content: "";
    background: url( 'data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2221.676%22%20height%3D%2226.417%22%20viewBox%3D%220%200%2021.676%2026.417%22%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9_154489%22%20data-name%3D%22%E3%83%91%E3%82%B9%20154489%22%20d%3D%22M-18111-1436l10.838%2C12.87-10.838%2C13.547h10.838l10.838-13.547-10.838-12.87Z%22%20transform%3D%22translate(18111%201436)%22%20fill%3D%22%2310872d%22%2F%3E%3C%2Fsvg%3E' )  no-repeat center center / contain;
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    aspect-ratio: 21/26;
    width: 21px;
    height: auto;
    transition: 0.3s;
}
.link-arrow:hover {
    background-color: var(--text-color);
}
.link-arrow:hover ::after{
    right: 18px;
}

@media screen and (max-width: 550px) {
    .link-arrow::after{
        width: 16px;
    }
}

/*共通（製品実績）*/
.link-product-box{
    margin-bottom: 65px;
    .box-text{
        background-color: #222222;
        color: #fff;
        padding: 10px 1em 20px;
        transition: 0.3s;
    }
    .title.heading-underline-center{
        font-size:clamp(18px, 18 / 400 * 100vw ,22px);
        margin-bottom: 5px;
        &::after{
            width: 40px;
            height: 4px;
        }
    }
    .box-text:hover{
        background-color: var(--text-color);
    }
}
.link-product-box img{
    transition: 0.3s;
}
.link-product-box img:hover{
    opacity: 0.8;
}
.link-product-box  a{
    text-decoration: none;
}

/*共通：背景 + + + + + */
.bg-plus-mark{
    position: relative;
    background-color: #222222;
}
.bg-plus-mark::before{
    content: "";
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2221%22%20height%3D%2221%22%20viewBox%3D%220%200%2021%2021%22%3E%20%3Cdefs%3E%20%3CclipPath%20id%3D%22clip-path%22%3E%20%3Crect%20id%3D%22%E9%95%B7%E6%96%B9%E5%BD%A2_173094%22%20data-name%3D%22%E9%95%B7%E6%96%B9%E5%BD%A2%20173094%22%20width%3D%2221%22%20height%3D%2221%22%20transform%3D%22translate(219%202719)%22%20fill%3D%22%23fff%22%2F%3E%20%3C%2FclipPath%3E%20%3C%2Fdefs%3E%20%3Cg%20id%3D%22%E3%83%9E%E3%82%B9%E3%82%AF%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97_450%22%20data-name%3D%22%E3%83%9E%E3%82%B9%E3%82%AF%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%20450%22%20transform%3D%22translate(-219%20-2719)%22%20opacity%3D%220.1%22%20clip-path%3D%22url(%23clip-path)%22%3E%20%3Cg%20id%3D%22%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97_130501%22%20data-name%3D%22%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97%20130501%22%20transform%3D%22translate(197.834%201620.25)%22%3E%20%3Cline%20id%3D%22%E7%B7%9A_5670%22%20data-name%3D%22%E7%B7%9A%205670%22%20x2%3D%2210.75%22%20transform%3D%22translate(26.167%201109.125)%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221%22%2F%3E%20%3Cline%20id%3D%22%E7%B7%9A_5671%22%20data-name%3D%22%E7%B7%9A%205671%22%20y2%3D%2210.75%22%20transform%3D%22translate(31.542%201103.75)%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221%22%2F%3E%20%3C%2Fg%3E%20%3C%2Fg%3E%3C%2Fsvg%3E');
    background-repeat: repeat;
    width: 100%;
    height: 100%;
    background-size: 22px;
    display: block;
    margin: 10px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}

/*共通：右下に三角のデコレーション */
.sankaku-deco2{
    position: relative;
}
.sankaku-deco2::after{
    content: "";
    background: url( "./images/common/sankaku-deco2.png" )  no-repeat center center / contain;
    position: absolute;
    bottom: 0;
    right: calc((100vw - var(--container-width)) / 2 * -1) ;
    width: 26%;
    height: auto;
    aspect-ratio: 369/150;
    opacity: 0.6;
}
@media screen and (max-width: 1100px) {
    .sankaku-deco2::after{
        right: -20px;
    }    
}


/*共通：左上に三角のデコレーション */
.sankaku-deco3{
    position: relative;
}
.sankaku-deco3::before{
    content: "";
    background: url( "./images/common/sankaku-deco3.png" )  no-repeat center center / contain;
    position: absolute;
    top: 0;
    left: calc((100vw - var(--container-width)) / 2 * -1) ;
    width: 16%;
    height: auto;
    aspect-ratio: 218/82;
    opacity: 0.3;
}
@media screen and (max-width: 1100px) {
    .sankaku-deco3::before{
        left: -20px;
    }    
}


section.section-fv {
    padding: 0;
    margin-top: -100px;
    position: relative;
    .fv-slider img{
        width: 100%;
    }
    .fv-copy{
        display: table;
        color: #fff;
        font-size:clamp(22px,3.7vw ,52px);
        font-weight: bold;
        letter-spacing: 0.06em;
        text-align: center;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translateX(-50%) translateY(-50%);
        z-index: 1;
        padding: 0.6em 1.2em;
        background-color: rgba(0, 0, 0, 0.4);
        -webkit-text-shadow: 3px 3px 8px rgba(0, 0, 0, 0.8);
        text-shadow: 3px 3px 8px rgba(0, 0, 0, 0.8);
        white-space: nowrap;
    }
    .outline{
        position: absolute;
        top: 90px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 1;
        padding: 0 1em;
        width: 67vw;   
    }
}
section.section-fv::after{
    content: "";
    background: url( "./images/common/sankaku-deco.png" )  no-repeat center center / contain;
    position: absolute;
    bottom: 0;
    right: 0 ;
    width: 51%;
    height: auto;
    aspect-ratio: 720/244;
    opacity: 0.85;
}

section.section-fv .outline {
    animation-fill-mode: forwards;
    animation-duration: 0.5s;
    animation-iteration-count: 1;
    animation-timing-function: ease;
    animation-direction: normal;
    animation-name: anime_fv_outline;
    animation-delay: 0.25s;
    clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
}

@keyframes anime_fv_outline {
    0% {
        clip-path: polygon(0% 0%, 0% 0%, 0% 100%, 0% 100%);
    }
    100% {
        clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    }
}

section.section-fv::after {
    animation-fill-mode: forwards;
    animation-duration: 0.5s;
    animation-iteration-count: 1;
    animation-timing-function: ease;
    animation-direction: normal;
    animation-name: anime_fv_sankaku;
    animation-delay: 0.5s;
    clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
}

@keyframes anime_fv_sankaku {
    0% {
        clip-path: polygon(100% 0%, 100% 0%, 100% 100%, 100% 100%);
    }
    100% {
        clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
    }
}

section.section-fv .fv-copy {
    animation-fill-mode: forwards;
    animation-duration: 0.5s;
    animation-iteration-count: 1;
    animation-timing-function: ease;
    animation-direction: normal;
    animation-name: anime_fv_copy;
    animation-delay: 0.75s;
    opacity: 0;
    transform: translateX(-50%) translateY(-30%);
}

@keyframes anime_fv_copy {
    0% {
        opacity: 0;
        transform: translateX(-50%) translateY(-30%);
    }
    100% {
        opacity: 1;
        transform: translateX(-50%) translateY(-50%);
    }
}

@media screen and (min-width: 992px) {
    .fv-slider img{
        width: 100%;
        height: 100vh;
        object-fit: cover;
    }
}
@media screen and (max-width: 991px) {
    section.section-fv {
        .outline{
            top: 110px;
        }
    }
}
@media screen and (max-width: 767px) {
    section.section-fv {
        margin-top: 0;
        .outline{
            width: 95vw;
            top: 12vw;
        }
        .fv-slider{
            img{
                height: 70vw;
                object-fit: cover;
            }
        }
        .fv-copy{
            font-size:clamp(28px,5vw ,38px);
        }
    }
}
@media screen and (max-width: 450px) {
    section.section-fv {
        .outline{
            width: 98vw;
            top: 75px;
        }
        .fv-copy{
            font-size:clamp(20px, 20 / 340 * 100vw ,28px);
        }
        .fv-slider img{
            height: 400px;
        }
    }
}




.home .top-section-about{
    padding: 60px 0 200px;
}
@media screen and (min-width: 2000px) {
    .home .top-section-about{
        overflow: hidden;
    }
}
@media screen and (max-width: 575px) {
    .home .top-section-about{
        padding: 60px 0 140px;
    }
    .home .top-section-about::after{
        aspect-ratio: 1400/1000;
    }

}

.top-section-about{
    background-image: url('./images/top/bg-about.jpg');
    background-size: cover;
    background-position: center;
    position: relative;
    .container{
        position: relative;
        z-index: 1;
    }
    .text{
        max-width: 630px;
        margin-bottom: 50px;
        p{
            margin-bottom: 1em;
        }
    }
    
}
.top-section-about::after{
    content: "";
    clip-path: polygon(0 30%, 100% 0%, 100% 70%, 0% 100%);
    background-color: hsla(135, 79%, 30%, 0.45);
    position: absolute;
    width: 100vw;
    height: auto;
    aspect-ratio: 1400/600;
    bottom: 0;
    left: 0;
    z-index: 0;
}
@media screen and (min-width: 2000px) {
    .top-section-about::after {
        clip-path: polygon(0 50%, 100% 0%, 100% 50%, 0% 100%);
        aspect-ratio: 1400 / 500;
    }
}
@media screen and (max-width: 1100px) {
    .top-section-about{
        .text{
            max-width: 700px;
        }
        .heading-underline-left{
            margin-left: 15px;
        }
    }
}
@media screen and (max-width: 767px) {
    .top-section-about{
        .heading-underline-left{
            margin-left: 0;
        }
    }
}


.top-section-product{
    padding: 50px 0 0;
    background-color: #000;
    .inner-wide{
        padding-bottom: 115px;
        background-image: url('./images/top/bg-product.jpg');
        background-size: cover;
        background-position: center;
        position: relative;
        .box{
            margin-top: 0;
        }
    }
    .outline{
        background: url( "./images/common/outline-case.png" )  no-repeat center center / contain;
        position: absolute;
        top: 0px;
        left: -10px;
        width: auto;
        height: 100%;
        max-height: 550px;
        aspect-ratio: 127/637;
    }
}
@media screen and (max-width: 767px) {
    .top-section-product{
        .box{
        max-width: 500px;
        margin: auto;
        margin-bottom: 30px;
        }
    }
}

.top-section-product.sankaku-deco2::after{
    right: 0;
}

.top-section-solution{
    padding: 50px 0 0;
    .inner-wide{
        padding: 40px 0 90px;
    }
    .link-arrow{
        text-align: left;
        padding: 30px 44px 30px 30px;
        font-size:clamp(16px, 16 / 767 * 100vw ,20px);
    }
    .box-text{
        position: relative;
        z-index: 0;
    }
    .img-jirei{
        width: 100%;
        position: relative;
        z-index: 1;
        margin: 0;
        aspect-ratio: 475 / 317;
        object-fit: cover;
    }

    @media screen and (max-width: 991px) {
        .link-arrow{
            padding: 30px 35px 30px 15px;
        }
    }
    @media screen and (max-width: 767px) {
        .link-box .box{
            max-width: 500px;
            margin: auto;
            margin-bottom: 30px;
        }
    }
}

.top-section-solution.sankaku-deco3::before,
.top-section-company.sankaku-deco3::before{
    left: 0;
}


.top-section-company{
    padding: 50px 0 140px;

    .box{
        position: relative;
        padding-right: 5px;
        padding-left: 5px   ;
        margin-top: 0;
    }
    .box img{
        border-bottom: solid 8px var(--main-color);
        transition: 0.3s;
    }
    .box img:hover{
        opacity: 0.8;
    }
    
    .title{
        font-size:clamp(22px, 3.1vw ,42px); 
        font-family: "Roboto", sans-serif;
    }
    .link-arrow{
        position: absolute;
        inset: 0;
        margin: auto;
        width: 51%;
        min-width: 210px;
        height: auto;
        aspect-ratio: 360/115;
        background-color: rgba(0, 0, 0, 0.65);
        .green{
            display: block;
            text-transform: capitalize;
            font-size: 62%;
            line-height: 1;
            margin-top: 0;
        }
    }
    @media screen and (max-width: 575px) {
        .link-box{
            gap: 20px;
        }
    }
}
.top-section-news{
    padding: 140px 0 150px;
}

.heading-underline-left{
    font-size: 40px;
    font-size:clamp(27px, 3.2vw ,40px);
}
.news-list{
    list-style: none;
    margin-bottom: 40px;
}
.news-list a{
    font-weight: 500;
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 5px;
}
.news-list a:hover{
    opacity: 0.8;
}
.news-list  li{
    border-bottom: solid 1px #707070;
    padding: 20px 10px ;
}
.news-list time{
    display: inline-block;
    white-space: nowrap;
}
.news-list li:nth-of-type(even) {
    background-color: rgba(255, 255, 255, 0.10);
}

@media screen and (max-width: 1100px) {
    .heading-underline-left{
        margin-left: 15px;
    }
}
@media screen and (max-width: 767px) {
    .heading-underline-left{
        margin-left: 0;
    }
}
@media screen and (max-width: 575px) {
    time{
        margin-bottom: 5px;
    }
}

/*----------------------------------
        下層ページ
----------------------------------*/
.pc-none{
    display: none;
}
.page{
    background-color: #000;
    color: #fff;
 
}
.section-core-top{
    .box-img{
        padding: 0 0 60px;
    }
    .text > p{
        margin-bottom: 1em;
    }
    @media screen and (max-width: 1100px) {
        .box-cross-pattern {
            padding: 60px 30px;            
        }   
    }
    @media screen and (max-width: 767px) {
        .box-img{
            padding: 0 15px 60px;
        }
        .box-img .col-4{
            padding-left: 5px;
            padding-right: 5px;
        }
        .box-cross-pattern {
            padding: 60px 30px;
            .pc-none{
                display: block;
            }
            
        }
    }
    @media screen and (max-width: 500px) {
        .box-cross-pattern {
            padding: 60px 15px;
            .pc-none{
                display: block;
            }
            
        }
    }
}
.box-cross-pattern{
    padding: 60px 100px;
    width: 100%;
    margin-bottom: 50px;
    .text{
        padding: 0 2vw;
    }
}
.box-cross-pattern::after{
    content: "";
    clip-path: polygon(0 0, 50% 100%, 100% 0);
    background-color: #000;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 27px;
}

.heading-diamond{
    text-align: center;
    background-color: #222222;
    border-bottom: solid 6px var(--main-color);
    position: relative;
    margin-bottom: 40px;
    padding-left: 130px;
    .title{
        font-size:clamp(24px, 24 / 767 * 100vw ,38px);
        letter-spacing: 0.05em;
        padding: 0.5em;
        padding-right: 80px;
    }
    .diamond{
        top: 50%;
        left: 45px;
        transform: translateY(-50%);
        font-size: 13px;
        .num{
            font-size: 290%;
        }
    }
    .diamond::before{
        width: 104px;
        height: 104px;
        top: -30px;
    }
    @media screen and (max-width: 900px) {
        .diamond{
            left: 25px;
        }
        padding-left: 100px;
        .title{
            padding-right: 10px;
            text-align: left;
            font-size:clamp(20px, 20 / 450 * 100vw ,24px);
        }
    }
}
.diamond{
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1;
    font-size: 18px;
    font-weight: bold;
    text-transform: capitalize;
    .num{
        display: block;
        font-size: 250%;
        font-family: "Roboto", sans-serif;
    }
}
.diamond span{
    position: relative;
    z-index: 1;
    line-height: 1;
    font-weight: bold;
}
.diamond::before{
    content: "";
    background-color: #000;
    clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
    width: 125px;
    height: 125px;
    position: absolute;
    top: -34px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 0;
}
@media screen and (max-width: 991px) {
    .diamond{
        font-size: 16px;
        .num{
            font-size: 230%;
        }
    }
    .diamond::before{
        width: 110px;
        height: 110px;
    }
}
@media screen and (max-width: 575px) {
    .diamond{
        font-size: 18px;
        top: -36px;        
        .num{
            font-size: 250%;
        }
    }
    .diamond::before{
        width: 140px;
        height: 140px;
    }
}

.reason-box{
    margin-top: 100px;
    background-image: url('./images/core/bg-reason.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    margin: 0 calc(50% - 50vw);
    width: 100vw;
    padding: 100px 0 70px;
    .box{
        position: relative;
        height: auto;
        aspect-ratio: 350/225;
        padding-left: 8px;
        padding-right: 8px;
    }
    
    .title{
        color: #fff;
        background-color: var(--main-color);
        text-align: center;
        font-size:clamp(20px, 2.2vw ,30px);
        font-weight: bold;
        line-height: 1.3;
        height: 100%;
        display: grid;
        place-content: center;
        position: relative;
        padding: 10px 6px;        
    }
    .title::before{
        content: "";
        background-color:  var(--sub-color);
        width: 100%;
        height: 38px;
        position: absolute;
        left: 0;
        bottom: 0;
    }
    .title::after{
        content: "";
        width: 0;
        height: 0;
        border-left: 20px solid transparent;
        border-right: 20px solid transparent;
        border-top: 20px solid #fff;
        position: absolute;
        bottom: 8px;
        left: 50%;
        transform: translateX(-50%);
    }
    a{
        text-decoration: none;
    }
    @media screen and (max-width: 1024px) {
        .box{
            aspect-ratio: 350/250;
        }
        .title{
            font-size:clamp(15px, 2.3vw ,24px);     
        }
    }   
    @media screen and (max-width: 575px) {
        .title{
            font-size:clamp(20px, 5vw ,27px);
            .pc-none{
                display: block;
            }
        }
        .row{
            max-width: 400px;
            align-items: center;
            justify-content: center;
            margin: auto;
            gap: 80px;
        }
    }
}
.reason-detail{
    .wrap{
        display: flex;
        margin-bottom: 80px;
        .img-box{
            width: 48%;
            position: relative;
            z-index: 1;

        }
        .text-box{
            width: 59%;
            height: fit-content;
            background-color: #222222;
            margin-top: 46px;
            position: relative;
        }
        .text-box p{
            margin-bottom: 1em;
            position: relative;
            z-index: 1;
        }
        .text-box::after{
            content: "";
            clip-path: polygon(100% 0, 0% 100%, 100% 100%);
            background-color: #00000038;
            width: 100%;
            height: 72%;
            position: absolute;
            bottom: 0;
            left: 0;
        }
    }
    .wrap-even{
        .img-box{
            margin-right: -78px;
        }
        .text-box{
            padding: 42px 42px 42px 108px;
        }
    }
    .wrap-odd {
        flex-direction: row-reverse;
        .img-box{
            margin-left: -78px;
        }
        .text-box{
            padding: 42px 108px 42px 42px;
        }
    }
    @media screen and (max-width: 991px) {
        .wrap-even, .wrap-odd{
            flex-direction: column;
            .img-box{
                width: 90%;
                margin: 0;
            }
            .text-box{
                width: 100%;
                margin-top: -100px;
                padding: 150px 40px 40px 40px;
            }
        }
    }

    @media screen and (max-width: 767px) {
        .wrap-even, .wrap-odd{
            .img-box{
                margin: 0 auto ;
            }
        }
    }

    @media screen and (max-width: 600px) {
        .wrap-even, .wrap-odd{
            .text-box{
                padding: 120px 20px 30px 20px;
            }
        }
    }
}

.section-core-product{
    margin-top: 110px;
    padding: 53px 0 110px;
}
@media screen and (max-width: 767px) {
    .section-core-product{
        margin-top: 60px;
    }
}

.section-core-technic{
    padding: 53px 0 0;
    .inner-wide{
        margin-top: 100px;
        background-image: url('./images/core/bg-technic.jpg?20250527');
        background-size: cover;
        background-repeat: no-repeat;
        aspect-ratio: 1400/680;
        margin: 0 calc(50% - 50vw);
        width: 100vw;
        height: auto;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .box{
        max-width: 660px;
        padding: 40px;
        background-color: rgba(0, 0, 0, 0.5);      
        margin-top: -50px;
        .title{
            font-size: 28px;
            font-size:clamp(24px, 24 / 767 * 100vw ,28px);
            font-weight: bold;
            line-height: 1.5;
            margin-bottom: 30px;
        }  
    }
    &::after{
        width: 65%;
        opacity: 0.85;
    }
    @media screen and (max-width: 767px) {
        .inner-wide{
            height: 450px;
        }
        .box{
            margin: auto;
            padding: 40px 1em;
        }
    }
}

.section-core-packing{
    padding: 53px 0 0;
    .inner-wide{
        padding: 100px 0;
        background-image: url('./images/core/bg-packing.jpg');
        background-size: cover;
        background-repeat: no-repeat;
        margin: 0 calc(50% - 50vw);
        width: 100vw;
        height: auto;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .wrap{
        align-items: center;
        .text-box{
            padding-left:60px;
            padding-right: 40px;
        }
        p{
            margin-bottom: 1em;
        }
    }
    .sankaku-deco3{
        &::before{
            left: 0;
            width: 28%;
            opacity: 0.6;
        }
    }
    @media screen and (max-width: 767px) {
        .wrap{
            gap: 50px;
            flex-direction: column-reverse;
            .text-box{
                padding-left:15px;
                padding-right: 15px;
            }
        }
    }
}
@media screen and (max-width: 550px) {
    .section-core-reason,.section-core-technic,.section-core-packing{
        .heading-underline-center .pc-none{
            display: block;
        }
    }
}
.common-flow {
    padding: 53px 0 0;
    .inner-wide{
        margin: 0 calc(50% - 50vw);
        width: 100vw;
        padding: 50px  0 116px;
    }
    .wrap-flow{
        display: flex;
        gap: 75px;
        justify-content: center;
        list-style: none;
        position: relative;
        z-index: 1;
    }
    .wrap-flow li:last-child::after{
        display: none;
    }
    .wrap-flow li{
        width: 100px;
        position: relative;
        .step{
            background-color: var(--main-color);
            width: 100%;
            height: 70px;
            text-transform: uppercase;
            font-size: 12px;
            font-weight: bold;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            .num{
                font-size: 275%;
                font-weight: bold;
                line-height: 1;
                display: block;
                font-family: "Roboto", sans-serif;
            }
        }
        .text{
            writing-mode: vertical-rl;
            background-color: #202020;
            width: 100%;
            height: 295px;
            display: flex;
            justify-content: center;
            align-items: center;
            font-size: 28px;
            font-size:clamp(20px, 20 / 767 * 100vw ,28px);
            letter-spacing: 0.4em;
            line-height: 1;
        }
    }
    .wrap-flow li::after{
        content: "";
        position: absolute;
        top: 50%;
        right: -56px;
        transform: translateY(-50%);
        width: 0;
        height: 0;
        border-left: 30px solid #fff;
        border-top: 21px solid transparent;
        border-bottom: 21px solid transparent;
    }
    @media screen and (max-width: 1100px) {
        .wrap-flow{
            padding-left: 15px;
            padding-right: 15px;
        }
    }
    @media screen and (max-width: 767px) {
        .wrap-flow{
            gap: 45px;
        }
        .wrap-flow li::after{
            border-left: 18px solid #fff;
            border-top: 14px solid transparent;
            border-bottom: 14px solid transparent;
            right: -35px;
        }
    }
    @media screen and (max-width: 610px) {
        .wrap-flow{
            flex-direction: column;
            gap: 45px;
            width: 100%;
        }
        .wrap-flow li{
                width: 100%;
                display: flex;
                .step{
                    width: 20%;
                    max-width: 80px;
                }
                .text{
                    writing-mode: unset;
                    width: 80%;
                    height: auto;
                }
        }
        .wrap-flow li::after{
            border-left: 18px solid #fff;
            border-top: 14px solid transparent;
            border-bottom: 14px solid transparent;
            right: 42%;
            top: unset;
            bottom: -38px;
            transform: translateX(-50%) rotate(90deg);
        }
    }
}
.sankaku-deco3-60::before{
    opacity: 0.6;
}
.page-core .heading-underline-center{
    margin-bottom: 60px;   
}
.page-core a{
    text-decoration: none;
}

.page-technology{
    .heading-underline-center{
        font-size: 28px;
    }
    .heading-diamond {
        .title {
            font-size: 32px;
            font-size:clamp(24px, 24 / 767 * 100vw ,32px);
        }
    }
    @media screen and (max-width: 991px) {
        .heading-diamond .title{
            font-size:clamp(20px, 20 / 450 * 100vw ,24px);
        }
    }
}
.page-technology a{
    text-decoration: none;
}
.section-tech-feature{
    .reason-box {
        .box {
            height: 250px;
            margin-bottom: 90px;
        }
    }
    @media screen and (max-width: 575px) {
        .reason-box {
            .row {
                gap: 0;
            }
        }
       
    }
}
.section-tech-feature-detail{
    padding-bottom: 100px;

    .text-box{
        background-color: #222222;
        padding: 1em;
        height: 100%;
        
        .title{
            font-size:clamp(18px, 18 / 400 * 100vw ,22px);
            font-weight: bold;
            text-align: center;
            margin-bottom: 20px;
            position: relative;
        }
        .title::after{
            content: "";
            position: absolute;
            bottom: -10px;
            left: 50%;
            transform: translateX(-50%);
            width: 40px;
            height: 2px;
            background-color: var(--main-color);
        }
    }
    .text-box p{
        font-size: 15px;
    }

    .wrap-process{
        margin-bottom: 120px;
        .text-box{
            height: fit-content;
            min-height: 200px;
        }
    }
    .wrap-after-follow{
        align-items: center;
    }
    .wrap-after-follow p{
        margin-bottom: 1em;
    }
}
.worries-box{
    .diamond {
        top: 46px;
        left: 20px;
        transform: unset;
        font-size: 16px;      
    }
    .diamond span{
        line-height: 1.3;
        text-align: center;
        display: block;
        width: 85px;
    }
    .diamond::before {
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background-color: #222;
    }
    .inner{
        .box{
            position: relative;
            background-color: var(--main-color);
            padding: 1em 1em 1em 140px;
            margin-bottom: 20px;
            min-height: 110px;
            display: flex;
            align-items: center;
        }
        .title{
            font-size:clamp(20px, 20 / 1000 * 100vw ,24px);
            font-weight: bold;
        }
    }
    @media screen and (max-width: 500px) {
        .diamond{
            top: -15px;
            left: 50%;
            transform: translateX(-50%);
        }
        .inner{
            .box {
                padding: 60px 1em 1em;
                margin-top: 100px;
                margin-bottom: 0;
                height: 190px;
            }
        }
    }
}
.section-vave-worries{
    margin-top: 50px;
    .text{
        background-color: #222222;
        padding: 50px;
        max-width: 900px;
        width: 100%;
        margin: 50px auto;
    }
}
.section-vave-know-how{
    padding: 100px 0 50px;
    .wrap{
        margin-bottom: 50px;
        align-items: center;
        .text-box > p{
            margin-bottom: 1em;
        }
    }
}
.section-vave-know-how h3.heading-underline-center{
    font-size: 34px;
}
@media screen and (max-width: 767px) {
    .section-vave-know-how{
        .wrap{
            gap: 20px;
        }
    }
}
.section-vave-solution{
    padding: 100px 0 50px;
}
.section-vave-after-follow{
    padding: 50px 0 ;
    .wrap{
        margin-bottom: 50px;
        align-items: center;
        .text-box > p{
            margin-bottom: 1em;
        }
    }
}
@media screen and (max-width: 767px) {
    .section-vave-after-follow  {
        .wrap{
            gap: 20px;
        }
    }
}
@media screen and (max-width: 700px) {
    .section-vave-after-follow {
        .heading-underline-center .pc-none{
            display: block;
        }
    }
}
@media screen and (max-width: 425px) {
    .section-vave-after-follow {
        .heading-underline-center {
            font-size: max(20px,5.5vw);
        }
    }
}

/*課題解決一覧*/
.solution-list{
    list-style: none;
    .box{
        margin-bottom: 50px;
    }
    .img-box > a{
            aspect-ratio: 300 / 200;
            overflow: hidden;
            display: block;
    }
    .text-box{
        display: flex;
        flex-direction: column;
        gap: 20px;
        padding: 20px 15px;
    }
 
    .link-arrow {
        font-size: 16px;
        letter-spacing: 0.05em;
        background-color: #222;
        padding: 20px 1em;
        padding-left: 0;
        width: 300px;
        margin: auto;
        border: solid 1px #ffffff38;
        text-decoration: none;
    }
    .link-arrow:hover{
        color: #fff;
        background-color: #393939;
    }
}
/*募集職種一覧*/
.job-description-list{
    .job-details th {
        width: 25%;
        text-align: center;
        letter-spacing: 0.1em;
        padding: 20px 5px;
    }
}


.page-company{
    .heading-underline-center{
        padding-top: 30px;
    }
    .wrap-map{
        position: relative;
        z-index: 1;
    }
    .wrap-map iframe{
        width: 100%;
    }
    .text-box p{
        margin-bottom: 1em;
    }
    .wide-section{
        padding: min(10vw,100px) 0;
    }
    .common-table{
        overflow-x: auto;
    }
    .common-table  > table{
        min-width: 580px;
    }
}
.section-campany,.section-campany-message{
    padding-bottom: 80px ;
    .wrap{
        margin: 80px auto ;
    }
}
.section-campany .common-table > table {
    min-width: unset;
}
.section-campany .common-table tr th {
    padding: 20px 0.5em;
}

@media screen and (max-width: 767px) {
    .section-campany-message{
        padding-bottom: 50px ;
        .wrap{
            gap: 20px;
        }
    }
}
@media screen and (max-width: 500px) {
    .section-campany .common-table tr th {
        width: 33%;
    }
    .section-campany .common-table tr td {
        padding: 20px 0.8em;
    }
}

.section-company-history{
    .wide-section{
        background-color: #141414;
       
    }
    .common-table{
        position: relative;
        z-index: 1;
        width: 96%;
        margin: auto;
        overflow-x: auto;
    }
    .common-table  > table{
        min-width: 580px;
        min-width: unset;
    }
    @media screen and (max-width: 500px) {
        .common-table tr th {
            width: 33%;
            padding: 20px 0.5em;
        }
        .common-table tr td {
            padding: 20px 0.8em;
        }
    }
    
}

.wide-section{
    margin: 0 calc(50% - 50vw);
    width: 100vw;
}

.section-facility{
    padding-bottom: 80px;
    .box-img{
        margin-bottom: 50px;
    }
    .box-img figure img{
        width: 100%;
        height: auto;
    }
    .first-col figure {
        margin-top: -22px;
    }
    .common-table{
        overflow: auto;
        & table{
            min-width: 700px;
        }
        & table th,
        & table td {
            padding: 10px 10px ;
            font-size: 15px;
        }
        & table th:nth-child(1),
        & table td:nth-child(1){
            width: 20%;
        }

        & table th:nth-child(3),
        & table td:nth-child(3){
            width: 15%;
        }
        & table th:nth-child(4),
        & table td:nth-child(4){
            width: 20%;
        }
        & table th:nth-child(5),
        & table td:nth-child(5){
            width: 8%;
            min-width: 80px;
        }
        
    }
}

/*----------------------------------
    シングル：solutionとproduct
----------------------------------*/
.single-solution .section-archive,
.single-product .section-archive{
    margin-top: 100px;
    margin-bottom: 80px;
    .common-button{
        width: 100%;
        max-width: 380px;
    }

    .solution-item{
        margin: 80px auto;
        .text > p{
            margin-bottom: 1em;
        }
        .wrap-flex .box{
            margin-top: 0;
        }
        .wrap-flex.row-reverse{
            flex-direction: row-reverse;
        }
    }
    .link-solution-box{
        margin: auto;
        margin-bottom: 40px;
        width: 100%;
        overflow-x: hidden;
        .title{
            font-size: 17px;
            background-color: #222;
            padding: 10px;
        }
    }
    .link-solution-box img{
        aspect-ratio: 300/200;
        object-fit: cover;
    }
    .link-solution-box a{
        text-decoration: none;
        color: #fff;
    }
    .link-solution-box .box{
        margin-bottom: 30px;
    }
}
.single-product {
    .product-container {
        margin-bottom: 100px;
        width: 100%;
    }
    .sub-image-slider{
        margin-top: 10px;
    }
    .product-slider li{
        aspect-ratio: 300/260;
        overflow: hidden;
    }
    .product-slider img{
        width: 100%;
        height: auto;
        object-fit: cover;
    }
    .product-table{
        margin-bottom: 30px;
    }
    .product-table th{
        width: 30%;
        min-width: 110px;
    }
    .product-table td {
        background-color: #222222;
    }
    .product-point h3{
        font-size: 24px;
        margin-bottom: 10px;
        padding-bottom: 5px;
        border-bottom: solid 3px var(--main-color);
    }
    @media screen and (max-width: 767px) {
        .img-box{
            margin-bottom: 60px;
        }
    }
}
.single-solution {
    .solution-item{
        margin-bottom: 50px;
    }
    .wrap-flex .box{
        margin: 0;
    }
    .solution-text{
        margin-top: 20px;
    }
}
.section-flow{
    padding: 80px 0;
    background-color: #222;
    margin: 0 calc(50% - 50vw);
    width: 100vw;
}
.single-job-description{
    .business-content-box,
    .detail-box{
        margin-bottom: 80px;
    }
    .detail-box{
        .detail-table th {
            width: 25%;
            text-align: center;
            letter-spacing: 0.1em;
            padding: 20px 5px;
        }
        .detail-table th,.detail-table td{
            font-size:clamp(14px, 14 / 500 * 100vw ,16px);
        }
    }
    .flow-box{
        list-style: none;
        margin-top: 50px;
        margin-bottom: 70px;
        .box{
            position: relative;
        }
        .box:not(:last-child){
            margin-bottom: 100px;
        }
        .box:not(:last-child)::after{
            content: "";
            display: block;
            width: 0;
            height: 0;
            border-left: 20px solid transparent;
            border-right: 20px solid transparent;
            border-top: 20px solid #fff;
            position:             absolute;
            bottom: -60px;
            left: 50%;
            transform: translateX(-50%);
        }

        .step-box{
            color: #fff;
            background-color: var(--main-color );
            display: flex;
            .step{
                background-color: var(--sub-color);
                padding: 10px 20px;
                text-transform: uppercase;
                font-size:clamp(13px, 13 / 375 * 100vw ,15px);
                line-height: 1;
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
            }
            .num{
                font-size: 230%;
            }
        }
        .step-box h3{
            padding: 5px 20px;
            font-size:clamp(20px, 20 / 375 * 100vw ,26px);
            display: flex;
            align-items: center;
            letter-spacing: 0.05em;
        }
        .text{
            padding: 40px 20px;
            background-color: rgba(255, 255, 255, 0.2);
            font-size:clamp(16px, 16 / 375 * 100vw ,18px);
            text-align: center;
        }
        @media screen and (max-width: 767px) {
            .text{
                padding: 40px 20px;
                text-align: left;
            }
        }
    }
}

.solution-text p + p {
    margin-top: 1em;
}

/**********************
    採用情報ページ
***********************/
.page-recruit{
    .header{
        color: #222;
        background-color: #fff;
    }
    .header::before{
        background-color: transparent;
    }
    .header_title_logo{     
        .logo-name{
            color: #111111;
        }
    }
    .header_menu > .menu > li > a,
    .header_menu .sub-menu > li > a,
    .header_cta_tel ,
    .header_cta_open {
        color: #111111;
    }
    .header_cta_tel::before {
        background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216.325%22%20height%3D%2224.019%22%20viewBox%3D%220%200%2016.325%2024.019%22%3E%3Cpath%20d%3D%22M91.248%2C32.471c4.45%2C8.483%2C9.448%2C9.355%2C10.9%2C8.593l.379-.2-3.4-6.489c-.125.064-.252.129-.38.2-1.172.615-2.342-1.161-3.842-4.02s-2.3-4.831-1.124-5.446c.13-.067.254-.134.378-.2l-3.4-6.489-.379.2C88.921%2C19.378%2C86.8%2C23.988%2C91.248%2C32.471Zm13.339%2C7.314c.562-.295.254-.94-.066-1.549l-2.287-4.358c-.246-.469-.652-.733-.981-.561-.206.108-.686.337-1.305.644l3.4%2C6.475ZM96.238%2C23.757c.328-.172.342-.658.1-1.126s-2.286-4.359-2.286-4.359c-.32-.609-.675-1.229-1.237-.934l-1.242.651%2C3.4%2C6.476C95.571%2C24.131%2C96.032%2C23.865%2C96.238%2C23.757Z%22%20transform%3D%22translate(-88.574%20-17.262)%22%20fill%3D%22%23222%22%2F%3E%3C%2Fsvg%3E');
    }
    .header_menu .sub-menu {
        background-color: #ffffffdc;
    }
    /*メインビジュアル*/
    .section-recruit-fv {
        padding: 0;
        position: relative;
        .fv-recruit img{
            width: 100vw;
            height: auto;
            object-fit: cover;
        }
        .fv-recruit  {
            position: relative;
        }
        .fv-recruit::after {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: rgba(0, 97, 50, 0.25);
            pointer-events: none;
            z-index: 1;
        }

        .copy-box{
            position: absolute;
            top: 35%;
            left: 44%;
            z-index: 2;
        }
        .h1-title{
            font-size:clamp(16px,2vw ,26px);
            font-weight: bold;
            line-height: 1.4;
            text-align: center;
            width: 124px;
            color: #fff;
            background-color: var(--main-color);
            margin-bottom: 5px;
            padding: 3px;
        }
        .fv-copy{
            color: #fff;
            font-size:clamp(28px,3.5vw ,50px);
            font-weight: bold;
            letter-spacing: 0;            
            width: 100%;
            -webkit-text-shadow: 3px 3px 8px rgba(0, 0, 0, 0.8);
            text-shadow: 3px 3px 8px rgba(0, 0, 0, 0.8);
        }
        .outline{
            position: absolute;
            bottom: -2vw;
            left: 50%;
            transform: translateX(-50%);
            z-index: 1;
            padding: 0 1em;
            width: 67vw;   
            opacity: 0.5;
            z-index: 1;
        }
        &::after{
            content: "";
            background: url( "./images/recruit/fv-sankaku.png" )  no-repeat center center / contain;
            position: absolute;
            top: 0;
            left: 0 ;
            width: 28.5%;
            height: auto;
            aspect-ratio: 400/154;
            z-index: 2;
        }
        .fv-recruit-pc {
            display: block;
        }
        .fv-recruit-mb {
            display: none;
        }
        @media screen and (max-width: 991px) {
            margin-top: 110px;
            .fv-recruit-pc {
                display: none;
            }
            .fv-recruit-mb {
                display: block;
            }
        }
        @media screen and (max-width: 767px) {
            margin-top: 53px;
           .outline{
            width: 90%;
            bottom: -1.5vw;
           }
            .copy-box {
                top: 55%;
                left: unset;
                right: 20px;
            }
        }
    
        @media screen and (max-width: 450px) {
            .outline{
                width: 98vw;
                top: 75px;
            }
            .h1-title{
                font-size:clamp(14px,14 / 320 * 100vw  ,16px);
            }
            .fv-copy{
                font-size:clamp(20px, 20 / 320 * 100vw ,22px);
            }
        }
    }
    /*パンクズリスト*/
    .breadcrumb {
        position: absolute;
        top: 0;
        left: 1em;
        z-index: 3;
        color: #fff;        
    }
    .breadcrumb > li > a {
        color: #fff;    
    }
}

.section-recruit-fv .copy-box {
    animation-fill-mode: forwards;
    animation-duration: 0.5s;
    animation-iteration-count: 1;
    animation-timing-function: ease;
    animation-direction: normal;
    animation-name: anime_recruit_fv_copy;
    animation-delay: 0.5s;
    opacity: 0;
    transform: translateY(-30%);
}

@keyframes anime_recruit_fv_copy {
    0% {
        opacity: 0;
        transform: translateY(-30%);
    }
    100% {
        opacity: 1;
        transform: translateY(-50%);
    }
}

.page-recruit .header.scrolled-up::before {
    background: rgba(255, 255, 255, 0.9);
}

.page-recruit{
    background-color: #fff;
    color: #222222;
    .wrap-link-button{
        display: flex;
        justify-content: center;
        gap: 13px;
    }
    @media screen and (max-width: 1024px) {
        .wrap-link-button{
            flex-wrap: wrap;
        }
    }
    @media screen and (max-width: 500px) {
        .wrap-link-button{
            gap: 8px;
        }
    }

    .link-button{
        background-color: var( --main-color );
        color: #fff;
        border-radius:4px;
        width: 216px;
        height: 60px;
        display: flex;
        justify-content: center;
        align-items: center;
        text-decoration: none;
        position: relative;
        font-size:clamp(14px, 14 / 1300 * 100vw ,16px);
        padding-right: 10px;
    }
    .link-button::after {
        content: "";
        display: block;
        width: 0;
        height: 0;
        border-left: 6px solid transparent;
        border-right: 6px solid transparent;
        border-top: 8px solid #fff;
        position: absolute;
        top: 52%;
        right: 13px;
        transform: translateY(-50%);     
    }
    @media screen and (max-width: 500px) {
        
        .link-button::after {
            right: 5px;
        }
        .link-button{
            width: 48%;
            height: 55px;
            font-size: 13px;
        }
    }
    @media screen and (max-width: 375px) {
        .link-button .pc-none{
            display: block;
        }
        .link-button:last-child{
            width: 98%;
        }
    }
    .heading-gradation{
        color: #fff;
        background: transparent linear-gradient(90deg, #9DC326 0%, #017B40 100%) 0% 0% no-repeat padding-box;
        font-size:clamp(24px, 24 / 500 * 100vw ,34px); 
        font-weight: bold;
        padding: 4px 20px;
        line-height: 1.4;
        margin-bottom: 20px;
    }
    .heading-gradation.center{
        text-align: center;
        width: fit-content;
        margin: 0 auto 20px;
    }
    .heading-gradation.figcaption{
        font-size: 13px;
        text-align: center;
        width: 106px;
        position: absolute;
        bottom: 0;
        right: 0;
        margin-bottom: 0;
    }
    @media screen and (max-width: 767px) {
        .heading-gradation.figcaption{
            font-size:clamp(15px, 15 / 375 * 100vw ,16px);
        }
    }

    .figure{
        position: relative;
    }
    .figure img{
        margin: 0;
        width: 100%;
        object-fit: cover;
    }
    .box-text p{
        margin-bottom: 1em;
    }
    .sankaku-deco3::before{
        opacity: 1;
        left: 0;
        z-index: 3;
    }
    .heading-wide-line{
        color: #fff;
        font-size:clamp(32px, 32 / 767 * 100vw ,42px);
        padding: 14px 1em;
        border-bottom: solid 6px var(--main-color);        
    }
    @media screen and (max-width: 1100px) {
        .heading-wide-line{
            width: 98%;
            margin: auto;
        }
    }    
    @media screen and (max-width: 767px) {
        .heading-wide-line{
            font-size:clamp(26px, 26 / 500 * 100vw ,32px);
        }
    }
    .heading-wide-line::before {
        width: 14.5%;
    }
    .sandwich-line{
        font-size:clamp(24px, 24 / 900 * 100vw ,40px);
        font-weight: bold;
        text-align: center;
        line-height: 1.6;
        letter-spacing: 0.05em;
        border-top: solid 4px #068E4C;
        border-bottom: solid 4px #068E4C;
        padding: 0 1.6em;
        width: fit-content; 
        margin: 70px auto;
    }
    @media screen and (max-width: 767px) {
        .sandwich-line{
            margin: 50px auto;
        }
    }
    .heading-gradation.underline {
        font-size: 32px;
        font-size:clamp(26px, 26 / 500 * 100vw ,32px);
        border-bottom: solid 5px #068E4C;
        padding: 15px 20px;
        text-align: center;
        margin: 80px auto 50px;
    }
    @media screen and (max-width: 500px) {
        .heading-gradation.underline {
            padding: 12px 0.8em;
            margin: 60px auto 30px;
        }
    }
    
    .common-table2{
        & tr th{
            background-color: #F8F8F8;       
            border-right: solid 1px #707070; 
            width: 30%;
            font-weight: bold;
        }
        & tr td{
            background-color: #FFFFFF;        
            width: 70%;
        }
        & tr th,
        & tr td{
            border-bottom: solid 2px #CCCCCC;
            font-size:clamp(16px, 16 / 500 * 100vw ,18px);
        }
        & tr:first-child{
            border-top: solid 2px #CCCCCC;
        }
        .td-color{
            background-color: #F6F7EF;
        }
    }
}
.section-recruit-link{
    padding: min(4.2vw,60px) 1em min(5vw,70px);
}
@media screen and (max-width: 500px) {
    .section-recruit-link{
        padding: min(4.2vw,60px) 0.3em min(5vw,70px);
    }
}
.section-recruit-about-nakago{
    background-image: url('./images/recruit/about-bg1.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    padding-bottom: 90px;
    position: relative;
    .inner{
        max-width: 1280px;
        width: 96%;
        margin: 0 auto ;
        background-color: #F0F0F0;
        padding: 40px min(5vw,90px) 44px min(4.6vw,65px);
        
        position: relative;
        z-index: 2;
    }
    &::after{
        content: "";
        background-image: url( "./images/recruit/about-bg2.png" ) ;
        background-repeat: no-repeat;
        background-size: cover;
        background-position-x: left;
        position: absolute;
        bottom: 0;
        right: 0px;
        width: 45vw;
        height: 95%;
        max-width: 630px;
        margin-left: auto;
    }
    .outline{
        content: "";
        background: url( "./images/recruit/outline-industry.png" )  no-repeat center center / contain;
        position: absolute;
        bottom: -20px;
        left: 18px;
        width: 60%;
        height: auto;
        aspect-ratio: 733/108;
    }
    .heading-gradation{
        margin-top: 0;
        margin-bottom: 20px;
    }
    @media screen and (max-width: 1024px) {
        .outline{
            bottom: 0;
            left: 10px;
            width: 95%;
            max-width: 700px;
            height: auto;
        }
    }
}
.section-recruit-use{
    background-color: #BEBEBE;
    position: relative;
    &::after{
        content: "";
        background-image: url("./images/recruit/use-bg.png" );
        background-repeat: no-repeat;
        background-size: cover;
        background-position-x: left;
        position: absolute;
        bottom: 0;
        right: 0px;
        width: 65.0vw;
        height: 100%;
        max-width: 918px;
        margin-left: auto;
    }
    .inner{
        padding: 64px 0 84px;
        position: relative;
        z-index: 1;
        max-width: 1163px;
        width: 95%;
        margin: auto;
        .row{
            width: 100%;
            margin: auto;
            .figure {
                width: 100%;
            }
        }
    }
    .col-md-6,.col-md-3{
        padding-right: 5px;
        padding-left: 5px;
    }
    .box-img1{
        .heading-gradation.figcaption{
            font-size: 18px;
            width: 136px;
        }
    }
    .box-img2 {
        display: flex;
        flex-direction: column;
        gap: 10px;
        .heading-gradation.figcaption{
            font-size: 14px;
        }
    }
    .box-img3 {
        display: flex;
        align-items: center;
        .heading-gradation.figcaption{
            font-size: 14px;
        }
    }
    @media screen and (max-width: 767px) {
        .box-img1,.box-img2,.box-img3 {
            .heading-gradation.figcaption{
                font-size:clamp(15px, 15 / 375 * 100vw ,18px);
                width: 136px;
            }
        }
        .box-img2 {
            gap: 30px;
        }
    }
}
@media screen and (max-width: 1399px) {
    .section-recruit-about-nakago::after{
        width: 461px;
    }
    .section-recruit-use::after{
        width: 750px;
    }
}
@media screen and (max-width: 1024px) {
    .section-recruit-about-nakago::after{
        width: 461px;
   }
   .section-recruit-use::after{
        width: 720px;
   }
}

@media screen and (max-width: 768px) {
    .section-recruit-about-nakago::after{
        width: 461px;
   }
   .section-recruit-use::after{
        width: 706px;
   }
}
.section-recruit-job-work{
    padding: 60px 0 80px;
    position: relative;
    .common-button{
        max-width: 600px;
        font-size:clamp(16px, 16 / 500 * 100vw ,24px);
        letter-spacing: 0;
        width: 96%;
        border-radius: 6px;
        box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.3);

    }
   
    .common-button::after{
        width: 15px;
        height: 15px;
        border-top: 4px solid #fff;
        border-right: 4px solid #fff;
        right: 30px;        
    }
    .heading-underline-center{
        margin-bottom: 70px;
    }
    .heading-wide-line{
        margin-bottom: 48px;
    }
    .heading-gradation.figcaption{
        width: fit-content;
    }
    .inner{
        max-width: 1100px;
        margin: auto;
    }
    .wrap1{
        padding: 61px 0 73px;
        position: relative;
        width: 100%;
        margin: 48px auto 0;
        .img-box,.box-text{
            position: relative;
            z-index: 1;
        }
        .img-box{
            padding-left: 0;
        }
        .img-text{
            padding-right: 0;
        }

        .box-text p{
            color: #fff;
            font-size: 18px;
            font-size:clamp(16px, 16 / 500 * 100vw ,18px);
        }
        .outline{
            content: "";
            background: url( "./images/recruit/outline-molding.png" )  no-repeat center center / contain;
            position: absolute;
            top: 16px;
            left: 50%;
            transform: translateX(-50%);
            width: auto;
            height: 94%;
            aspect-ratio: 108/452;
        }
    }
    .wrap1::before{
        content: "";
        padding: 105px 0 63px;
        background: transparent linear-gradient(180deg, #9DC326 0%, #017B40 100%) 0% 0% no-repeat padding-box;
        width: 80%;
        height: 100%;
        position: absolute;
        top: 0;
        right: 0;
    }
    .wrap2{
        padding: 50px 40px;
        width: 100%;
        margin: auto;
        .box-img{
            margin: 0;
        }
    }
    @media screen and (max-width: 767px) {
        .img-box img{
            margin: 0;
        }
        .box-text{
            margin: 30px 0 0 auto;
            width: 86%;
        }
        .wrap1 .outline{
            left: unset;
            transform: unset;
            right: 10px;
        }
        .wrap1::before{
            width: 88%;
        }
        .wrap2{
            .box-img{
                margin-bottom: 30px;
            }
        }
    }
    @media screen and (max-width: 425px) {
    .common-button{
        flex-direction: column;
    }
    }
}

.section-recruit-job-work::after{
    content: "";
    background-image: url('./images/recruit/job-work-bg.jpg');
    background-size: cover;
    background-repeat: no-repeat;
    position: absolute;
    width: 100vw;
    height: 90%;
    max-height: 1016px;
    top: 0;
    left: 0;
    z-index: -1;
}

.section-packing{
    .wrap1{
        .outline{
            background-image: url('./images/recruit/outline-packing.png');
            aspect-ratio: 108/420;
        }
    }
}
.section-packing::after{
    background-image: url('./images/recruit/packing-bg.jpg');
    max-height: 846px;
}


/*１日のスケジュール*/
.schedule {
    position: relative;
    font-size: 14px;
    margin: 0 10px 50px;
}
.schedule::before {
    position: absolute;
    background-color: #CCCCCC;
    content: "";
}

.schedule ul {
    padding: 0px;
    margin: 0px;
    list-style: none;
}

.schedule li {
    position: relative;
}

.schedule_time {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    width: 72px;
    height: 30px;
    border-radius: 5px;
    background-color: #505050;
    color: #fff;
    text-align: center;
    font-size: 17px;
    font-family: "Noto Sans JP",  "游ゴシック", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif;
  
}
.schedule_time::before {
    position: absolute;
    width: 0.5em;
    height: 0.5em;
    z-index: -1;
    background-color: #505050;
    content: "";
}
.schedule_time::after {
    position: absolute;
    width: 1em;
    height: 1em;
    border: 4px solid #068E4C;
    border-radius: 50%;
    background-color: #fff;
    content: "";
}

.schedule_content_title {
    font-weight: bold;
    font-size: 16px;
}
.schedule_content_detail p {
    font-size: 14px;
}
@media screen and (max-width: 991px) {
    .schedule ul{
        max-width: 500px;
        margin: auto;
        position: relative;
    }
    .schedule ul::before {
        content: "";
        position: absolute;
        top: 0px;
        left: 95px;
        width: 6px;
        height: 100%;
        background-color: #CCCCCC;
    }
    .schedule li {
        display: flex;
        align-items: center;
        width: 100%;
    }
    .schedule li + li {
        margin-top: 2em;
    }
    .schedule_time::before {
        top: 50%;
        right: 0px;
        transform: translateX(50%) translateY(-50%) rotate(45deg);
    }
    .schedule_time::after {
        top: 50%;
        left: 90px;
        transform: translateY(-50%);
    }
    .schedule_content {
        margin: 0px 0px 0px 3em;
        width: calc(100% - 10em);
        flex-grow: 1;
    }
}
@media screen and (min-width: 992px) {
    .schedule::before {
        top: 3.5em;
        left: 0px;
        transform: translateY(-50%);
        width: 100%;
        height: 6px;
    }
    .schedule ul {
        display: flex;
        flex-wrap: wrap;
        margin: 0px -10px;
    }
    .schedule li {
        margin: 0px 10px;
        width: calc(12.5% - 20px);
    }
    .schedule_time {
        margin: 0px auto;
    }
    .schedule_time::before {
        left: 50%;
        bottom: 0px;
        transform: translateX(-50%) translateY(50%) rotate(45deg);
    }
    .schedule_time::after {
        top: 3em;
        left: 50%;
        transform: translateX(-50%) translateY(-50%);
    }
    .schedule_content {
        margin: 3em 0px 0px;
    }
    .schedule_content_title {
        text-align: center;
    }
    .schedule_content_detail {
        margin-top: 0.5em;
    }
}


.section-recruit-benefits,
.section-recruit-data,
.section-recruit-interview{
    padding: 48px 0 0;
    background-color: #F0F0F0;
    .heading-underline-center{
        margin-bottom: 55px;
        padding: 0 0.5em;
    }
}
.section-recruit-benefits{
    .heading-wide-line{
        border: none;
        background-color: #3B3B3B;
    }
    .section-detail{
        background-color: #fff;
        padding: 50px 1em 160px;
        .inner{
            max-width: 1100px;
            margin: auto;
        }
    }
    .section-detail::after{
        content: "";
        position: absolute;
        bottom: 0;
        right: 0;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0 0 clamp(51px,12vw,174px)  clamp(100px,24vw,340px) ;
        border-color: transparent transparent var(--main-color) transparent;
    }

    .icon-box{
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        background-color: #F6F7EF;
        height: 100%;
        aspect-ratio: 1/1;
        padding-top: 12%;
        gap: 12px;
    }
    .icon-box p{
        font-size:clamp(20px, 20 / 1500 * 100vw ,24px);
        font-weight: bold;
        text-align: center;
        line-height: 1.3;
    }
    .icon-box img{
        width: 59%;
        height: auto;
    }
    .col-md-3{
        padding-left: 13px;
        padding-right: 13px;
        margin-top: 26px;
    }
    @media screen and (max-width: 767px) {
        .icon-box p{
            font-size:clamp(16px, 16 / 375 * 100vw ,20px);
        }
    }
}


.section-recruit-data{
    .section-detail{
        background-color: #fff;
        padding: 60px 0 120px;
        .inner{
            max-width: 1200px;
            width: 95%;
            margin: auto;
            background: transparent linear-gradient(180deg, #9DC326 0%, #017B40 100%) 0% 0% no-repeat padding-box;
            padding: 60px 70px;
        }        
    }
    @media screen and (max-width: 767px) {
        .section-detail{
            .inner {
                padding: 30px 1em;
                .row{
                    max-width: 550px;
                    margin: auto;
                }
            }
        }
    }
    @media screen and (max-width: 500px) {
        .section-detail{
            .inner {
                .row .col-md-4,
                .row .col-6{
                    padding-left: 8px;
                    padding-right: 8px;
                    margin-top: 16px;
                }
            }
        }
    }
    .title{
        font-size:clamp(18px, 18 / 900* 100vw ,26px);
        font-weight: bold;
        color: #000000;
    }
    @media screen and (max-width: 767px) {
        .title{
            font-size:clamp(14px, 14 / 450 * 100vw ,22px);
        }
    }

    .number {
        font-size: clamp(20px, 20 / 767 * 100vw, 28px);
        font-family: "Roboto", sans-serif;
        font-weight: 900;
        line-height: 1;
        color: #111111;
    }    
    @media screen and (max-width: 767px) {
        .number {
            font-size: clamp(17px, 17 / 450 * 100vw, 20px);
        }
    }
    
    .js-count{
        font-size: 285%;
    }
    .colon{
        font-size: 280%;
    }
    .small{
        font-size:clamp(15px, 15 / 800 * 100vw ,18px);
        line-height: 1;
        margin-top: -5px;
        color: #333333;
    }
    .small2{
        font-size:clamp(15px, 15 / 800 * 100vw ,20px);
        line-height: 1;
        margin-top: -5px;
        color: #222222;
    }

    @media screen and (max-width: 767px) {
        .small,.small2{
            font-size:clamp(13px, 13 / 500 * 100vw ,15px);
        }
    }
    .icon-box{
        background-color: #fff;
        aspect-ratio: 340/348;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: center;
        gap: 0px;
        padding-top:min(3.1vw ,45px);
        .icon{
            width: auto;
            height: 120px;
        }
    }
    @media screen and (max-width: 900px) {
        .icon-box{
            padding-top: 2vw;
        }
    }
    @media screen and (max-width: 767px) {
        .icon-box{
            padding-top: 0;
            justify-content: center;
        }
    }
    @media screen and (max-width: 375px) {
        .icon-box{
            zoom: 0.85;
        }
    }
    .box-chart{
        max-width: 700px;
        margin: auto;
        .label{
            font-size:clamp(11px, 11 / 767 * 100vw ,13px);
            line-height: 1;
            color: #222222;
        }
        .number{
            font-size:clamp(13px, 13 / 767 * 100vw ,16px);
            color: #222222;
            margin-left: 5px;
        }
        .js-count{
            font-size: 156%;
        }
        @media screen and (max-width: 500px) {
            .js-count{
                font-size: 130%;
            }
        }
        .icon-box{
            position: relative;
            gap: 40px;
            padding-top: 30px;
            .wrap-icon-chart{
                position: relative;
            }
            .icon-chart{
                width: 56%;
            }
        }
        @media screen and (max-width: 900px) {
            .icon-box{
                padding-top: 2vw;
            }
        }
        @media screen and (max-width: 767px) {
            .icon-box{
                padding-top: 0;
                justify-content: center;
                gap: 15px;
                .icon-chart{
                    width: 72%;
                    min-width: 110px;
                }
            }
        }

        .box-label{
            display: flex;
            flex-direction: column;
            gap: 3px;
            align-items: center;
            position: absolute;
        }
    }
    .icon-box1{
        .box-label:nth-child(1){
            top: -20px;
            right: 47px;
        }
        .box-label:nth-child(2){
            top: 66%;
            right: 26px;        
        }
        .box-label:nth-child(3){
            top: 90%;
            left: 58px;
        }
        .box-label:nth-child(4){
            top: 44%;
            left: 16px;
        }
        .box-label:nth-child(5){
            top: -25px;
            left: 55px;
        }
        @media screen and (max-width: 767px) {
            .box-label:nth-child(1){
                top: 0;
                right: 20%;
            }
            .box-label:nth-child(2) {
                top: 57%;
                right: 20%;
            }
            .box-label:nth-child(3){
                top: 78%;
                left: 30%;
            }
            .box-label:nth-child(5){
                top: 0;
                left: 25%;
            }
        }
    }

    .icon-box2{
        .box-label:nth-child(1){
            top: 0px;
            right: 30px;
        }
        .box-label:nth-child(2){
            top: 72%;
            right: 30px;
        }
        .box-label:nth-child(3){
            top:88%;
            left: 40px;
        }
        .box-label:nth-child(4){
            top: 27%;
            left: 18px;
        }
        .box-label:nth-child(5){
            top: -30px;
            left: 86px;
        }
        @media screen and (max-width: 767px) {
            .box-label:nth-child(1){
                top: 10%;
                right: 20%;
            }
            .box-label:nth-child(2){
                top: 68%;
                right: 20%;
            }
            .box-label:nth-child(3){
                top: 70%;
                left: 23%;
            }
            .box-label:nth-child(5){
                top: 0;
                left: 30%;
            }
        }
    }
}
.section-recruit-interview{
    .heading-title{
        font-size:clamp(24px, 24 / 600 * 100vw ,34px);
        font-weight: bold;
        text-align: center;
        color: #80BF34;
        margin: 50px auto 30px;
        line-height: 1.3;
        max-width: 640px;
    }
    .heading-title2{
        max-width: 788px;
    }

    .heading-underline-center::after {
        bottom: -20px;
    }
    .text-interview{
        max-width: 640px;
        margin: auto;
        margin-bottom: 1em;
    }
    .heading-title,.text-interview{
        padding: 0 1em;

    }
    .section-detail{
        padding: 10px 0 145px;
        position: relative;
        .inner{
            max-width: 940px;
            width: 96%;
            margin: auto;
            padding-bottom: 80px;
            background-color: #fff;
            .wrap{
                display: flex;
                position: relative;
                padding-top: 70px;
                .box-img{
                    margin-left: calc((100vw - 940px) / 2 * -1);
                    aspect-ratio: 700/586;
                    width: 50vw;
                    height: auto;
                }
                .box-img img{
                    width: 100%;
                    height: auto;
                    object-fit: cover;
                }
                .box-text{
                    width: 58.5vw;
                    position: absolute;
                    bottom: 80px;
                    right: calc((100vw - 940px) / 2 * -1);
                }
            }
        }
        @media screen and (max-width: 940px) {
            .inner{
                .wrap{
                    .box-img{
                        margin-left: 0;
                        width: 70vw;
                    }
                    .box-text{
                        right: 0;
                        bottom: 20px;
                        width: 65vw;
                    }
                }
            }
        }
        @media screen and (max-width: 767px) {
            .inner{
                .wrap{
                    .box-text{
                        height: 150px;
                        padding: 28px 1em 20px 20px;
                    }
                }
            }
        }

        @media screen and (max-width: 767px) {
            padding: 10px 0 80px;
        }
        @media screen and (max-width: 500px) {
            .inner{
                .wrap{
                    .box-img{
                        width: 80vw;
                    }
                    .box-text{
                        height: 130px;
                    }
                }
            }
        }
    }
    .section-detail::after {
        content: "";
        position: absolute;
        bottom: 0;
        right: 0;
        width: 0;
        height: 0;
        border-style: solid;
        border-width: 0 0 clamp(67px, 20vw, 283px) clamp(120px, 36vw, 504px);
        border-color: transparent transparent #80BF34 transparent;
    }
    .box-text{
        background: transparent linear-gradient(180deg, #9DC326 0%, #017B40 100%) 0% 0% no-repeat padding-box;
        border: none;
        color: #fff;
        width: 820px;
        height: 190px;
        padding: 27px 1em 30px  40px;
        .year{
            font-size:clamp(16px, 16 / 500 * 100vw ,22px);
            font-family: "Noto Sans JP", sans-serif;
            font-weight: bold;
            margin-bottom: 5px;
        }
        .name{
            font-size:clamp(44px, 44 / 767 * 100vw ,58px);
            display: flex;
            align-items: center;
            gap: 35px;
            font-family: "Noto Sans JP", sans-serif;
            font-weight: bold;
            letter-spacing: 0.05em;
        }
        .department{
            font-size:clamp(14px, 14 / 500 * 100vw ,18px);
            line-height: 1;
            border: solid 1px #fff;
            padding: 8px 20px;
            min-width: 120px;
            display: block;
        }    
        @media screen and (max-width: 767px) {
            .name{
                font-size:clamp(30px, 30 / 500 * 100vw ,44px);
                gap: 20px;
                margin-bottom: 0;
            }
        }  
    }

}
/*会社見学受け付け中！*/
.section-recruit-tour{
    background-color: #1C1C1C;
    padding: 90px 0 96px;
    .img-tour{
        width: 100vw;
        height: auto;
        object-fit: cover;
    }
    .wrap-application{
        background-color: #fff;
        max-width: 1100px;
        width: 96%;
        height: 360px;
        margin: auto;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 10px min(7%,95px);
        margin-top: -170px;
        position: relative;
        z-index: 1;
    }
    .title{
        color: var(--main-color);
        font-size:clamp(24px, 24 / 767 * 100vw ,45px);
        font-weight: bold;
        letter-spacing: 0.05em;
        text-align: center;
        margin-bottom: 5px;
    }
    .label{
        color: #fff;
        background-color: #1C1C1C;
        font-size:clamp(18px, 18 / 767 * 100vw ,28px);
        font-weight: bold;
        letter-spacing: 0.06em;
        padding: 0 32px;
    }
    .text{
        color: #222222;
        font-size:clamp(15px, 15 / 767 * 100vw ,16px);
        font-weight: 400;
        letter-spacing: 0.05em;
        line-height: 2.1;
        margin: 20px auto 24px;
    }
}
@media screen and (max-width: 767px) {
    .section-recruit-tour{
        .wrap-application{
            height: auto;
            padding: clamp(20px,5%,40px) 5%;
            margin-top: -80px;
        }
        .text{
            line-height: 1.7;
        }
    }
}
@media screen and (max-width: 550px) {
    .section-recruit-tour{
        padding: 60px 0 60px;
        .wrap-application{
            margin-top: -50px;
        }
        .label{
            padding: 2px 1em;
            font-size: 16px;
        }
        .common-button{
            width: 100%;
            max-width: 320px;
        }        
    }
}

.about_nakago {
    padding: 10px;
    min-height: 100%;
    background-color: #fff;
}

.about_nakago h3 {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    padding: 0.5em 0px;
}

.about_nakago_num {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.5em;
    margin-right: 0.5em;
    background-color: var(--main-color);
    color: #fff;
    font-weight: bold;
}

.about_nakago figcaption {
    font-size: 0.9em;
    text-align: left;
}

/****************************************
3. header,nav
*****************************************/
@media screen and (max-width: 767.98px) {
    .header_cta,
    .header_menu {
        display: none;
    }
}
@media screen and (min-width: 768px) {
    .header {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        align-items: center;
        position: fixed;
        top: 0px;
        left: 50%;
        z-index: 10000;
        transform: translateX(-50%);
        width: 100%;
        background-color: #fff;
        transition: transform 0.5s;
    }
    .header::before {
        position: absolute;
        top: 0px;
        left: calc((50vw - 50%) * -1);
        right: calc((50vw - 50%) * -1);
        z-index: -1;
        bottom: 0px;
        width: 100vw;
        background-color: #000;
        content: "";
    }
    .header_title {
        margin: 0px 0px 0px 16px;
    }
    .header_cta {
        margin: 0 0 0 auto;
        display: flex;
        gap: 0;
    }
    .header_menu {
        width: 100vw;
        margin-top: 15px;
        margin-bottom: 16px;
    }
    .header.js_hide {
        transform: translateX(-50%) translateY(-100%);    
    }
    body {
        margin-top: 96px;
    }
}
@media screen and (max-width: 767px) {
    .header{
        position: fixed;
        z-index: 10000;
        background-color: #000;
        width: 100%;
        top: 0;
        transition: transform 0.5s;
    }   
    .header::before {
        position: absolute;
        top: 0px;
        left: calc((50vw - 50%) * -1);
        right: calc((50vw - 50%) * -1);
        z-index: -1;
        bottom: 0px;
        width: 100vw;
        content: "";
        background-color: #000;
    }
    .header.js_hide {
        transform:  translateY(-100%);    
    }
}


.header_cta_tel_wrap{
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    padding: 13px 10px 0  0;
    gap: 8px;
}
@media screen and (max-width: 991px) {
    .header_cta_tel_wrap{
    flex-direction: column;
    gap: 0;
    }
}
.header_cta_tel {
    color: #fff;
    font-family: 'Arial', sans-serif;
    font-size:clamp(22px, 22 / 990 * 100vw ,24px);
    font-weight: bold;
    text-decoration: none;
    text-indent: 0.5px;
    letter-spacing: 0.5px;
    position: relative;
}
.header_cta_tel:hover {
    color: var(--main-color);
    opacity: 0.8;
}
.header_cta_tel::before  {
    display: inline-block;
    margin: 0px 0.5em 0px 0px;
    content: "";
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216.325%22%20height%3D%2224.019%22%20viewBox%3D%220%200%2016.325%2024.019%22%3E%20%3Cpath%20id%3D%22%E3%83%91%E3%82%B9_126074%22%20data-name%3D%22%E3%83%91%E3%82%B9%20126074%22%20d%3D%22M91.248%2C32.471c4.45%2C8.483%2C9.448%2C9.355%2C10.9%2C8.593l.379-.2-3.4-6.489c-.125.064-.252.129-.38.2-1.172.615-2.342-1.161-3.842-4.02s-2.3-4.831-1.124-5.446c.13-.067.254-.134.378-.2l-3.4-6.489-.379.2C88.921%2C19.378%2C86.8%2C23.988%2C91.248%2C32.471Zm13.339%2C7.314c.562-.295.254-.94-.066-1.549l-2.287-4.358c-.246-.469-.652-.733-.981-.561-.206.108-.686.337-1.305.644l3.4%2C6.475ZM96.238%2C23.757c.328-.172.342-.658.1-1.126s-2.286-4.359-2.286-4.359c-.32-.609-.675-1.229-1.237-.934l-1.242.651%2C3.4%2C6.476C95.571%2C24.131%2C96.032%2C23.865%2C96.238%2C23.757Z%22%20transform%3D%22translate(-88.574%20-17.262)%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E');
    background-repeat:no-repeat;
    background-size: contain;
    width: 16px;
    height: 24px;
    position: absolute;
    left: -20px;
    top: 0;
    color: #fff;
}


.header_cta_open{
    color: #fff;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.1em;
    padding-top: 5px;
}
@media screen and (max-width: 991px) {
    .header_cta_open{
    padding-top: 0;
    padding-left: 16px;
    }
}
.header_cta_contact,.header_cta_dl{
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0.3em 2em 0.3em 3em;
    margin: 0;
    color: #fff;
    font-weight: bold;
    text-decoration: none;
    position: relative;
    width: 160px;
    height: 48px;
    line-height: 1.2;
}

.header_cta_contact {
    font-size: 14px;
    background-color: var(--point-color);
}
.header_cta_dl {
    font-size: 13px;
    background-color: var(--sub-color);
}

.header_cta_contact:hover,
.header_cta_dl:hover {
    color: #fff;
    opacity: 0.8;
}
.header_cta_contact::before,
.header_cta_dl::before  {
    display: inline-block;
    margin: 0px 0.5em 0px 0px;
    font-family: "Font Awesome 5 Free";
    font-size: 18px;
    font-weight: 900;
    content: "\f0e0";
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
}

.header_cta_dl::before {
    content: "\f518";
}

.header_title_logo img {
    max-width: 283px;
}
@media print, (min-width: 1040px) {
    .header_title_logo img {
        max-width: 283px;
    }
}

.header_title_logo{
    .logo{
        display: flex;
        flex-direction: row;
        align-items: center;
        justify-content: center;
        gap: 15px;
        margin-top: 8px;
    }
    & a{
        text-decoration: none;
    }
    .logo-name{
        font-size:clamp(22px, 22 / 950 * 100vw ,26px);
        font-weight: bold;
        line-height: 1.5;
        color: #fff;
        & span{
            font-size: 16px;
            font-size:clamp(13px, 13 / 950 * 100vw ,16px);
        }
    }
    .logo-sub{
        font-size: 11px;
        font-weight: bold;
        text-transform: uppercase;
    }
    @media screen and (max-width: 767px) {
        .logo{
            margin-top: 0;
            padding: 10px ;
        }
    }
}

.header_menu > .menu {
    position: relative;
    z-index: 1;
    display: flex;
    /*justify-content: space-between;*/
    justify-content: center;
    align-items: center;
    padding: 0px;
    margin: auto;
    max-width: 900px;
}

.header_menu > .menu > li {
    position: relative;
    list-style-type: none;
    font-size: 14px;
}

.header_menu > .menu > li:first-child::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 1.5em;
    background-color: rgba(255, 255, 255, 0.3);
    top: 0;
    left: 0;
}

.header_menu > .menu > li > a {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    text-align: center;
    text-decoration: none;
    line-height: 1;
    height: 1.5em;
    padding: 0 20px;
    border-right: solid 1px rgba(255, 255, 255, 0.3);
    white-space: nowrap;
}
.header_menu > .menu > .menu-item-has-children > a {
    padding-right: 30px;
    top: 5px;
    right: 17px;
}
@media screen and (max-width: 991px) {
    .header_menu > .menu > li {
        padding: 0 10px;
        font-size: 13px;
    }
}
@media screen and (max-width: 800px) {
    .header_menu > .menu > li {
        font-size: 12px;
    }
}

.header_menu > .menu > .current-menu-item::before,
.header_menu > .menu > li:hover::before {
    position: absolute;
    bottom: -5px;
    left: 50%;
    transform: translateX(-50%);
    width: 85%;
    height: 2px;
    background-color: var(--main-color);
    content: "";
}
.menu-item-has-children{
    position: relative;
    &::after{
        content: "";
        position: absolute;
        top: 5px;
        right: 15px;
        width: 8px;
        height: 8px;
        border-top: 2px solid var(--main-color);
        border-right: 2px solid var(--main-color);
        transform: rotate(135deg);
    }
}
.header_menu .sub-menu {
    display: block;
    position: fixed;
    top: 100px;
    left: 0;
    padding: 50px 2em;
    background-color: rgba(0, 0, 0, 0.9);
    list-style: none;
    white-space: nowrap;
    visibility: hidden;
    opacity: 0;
    transition: 0.5s;
    width: 100vw;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 60px;

}
.header_menu .sub-menu.js_active {
    visibility: visible;
    opacity: 1;
}

/*.header_menu .sub-menu > li + li {
    margin-top: 1.5em;
}*/

.header_menu .sub-menu > li > a {
    display: block;
    color: #fff;
    font-size: 15px;
    font-weight: bold;
    text-decoration: none;
}
.header_menu .sub-menu > li > a:hover {
    color:var(--main-color);
}

.page_title {
    position: relative;
    z-index: -1;
    height: 260px;
    background-image: url(./images/pagetitle/common.jpg);
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
}
.page-core .page_title {
    background-image: url(./images/pagetitle/core.jpg);
}
.page_title::before {
    content: "";
    background: url( "./images/pagetitle/sankaku.png" )  no-repeat center center / contain;
    position: absolute;
    top: 0px;
    left: 0px;
    width: 28%;
    max-width: 450px;
    height: auto;
    aspect-ratio: 400/154;

}

.page_title_base {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: 100%;
    padding: 0 1em;
}

.page_title_base > h1 {
    padding: 10px;
    width: 100%;
    color: #fff;
    font-size:clamp(24px, 3.2vw ,45px);
    font-weight: bold;
    text-align: center;
    text-shadow: 3px 3px 8px rgba(0, 0, 0, 0.8);
}

@media screen and (max-width: 767px) {
    .page_title {
        margin-top: 53px;
    }
}
/****************************************
4. sidebar
*****************************************/

/****************************************
5. contents
****************************************/
.menu-sitemap-container > .menu {
    margin: -1em 0px 0px 1.5em;
}

.menu-sitemap-container > .menu > li {
    margin: 1em 0px 0px;
    font-size: 17px;
}

.menu-sitemap-container > .menu .sub-menu {
    margin: 0px 0px 0px 2em;
}

.menu-sitemap-container > .menu .sub-menu > li {
    margin: 0.5em 0px 0px;
    font-size: 15px;
}

/****************************************
6. Footer 
****************************************/
@media print, (max-width: 767.98px) {
    .mnavi {
        display: block;
        position: fixed;
        bottom: 0px;
        left: 0px;
        z-index: 9999;
        width: 100%;
        height: 80px;
        background-color: var(--main-color);
        background-color: var(--sub-color);
    }
    body {
        margin-bottom: 80px;
    }
}
@media print, (min-width: 768px) {
    .mnavi {
        display: none;
    }
}

.mnavi > ul {
    display: flex;
    justify-content: space-around;
    align-items: center;
    height: 100%;
    list-style: none;
}

.mnavi > ul > li {
    width: 40px;
    height: 40px;
}

.mnavi > ul > li > a,
.mnavi > ul > li > button {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    color: #fff;
    font-size: 2.5vw;
}
.mnavi > ul > li > a:before,
.mnavi > ul > li > button:before {
    position: absolute;
    top: 0px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 32px;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
}
.mnavi_home > a:before {
    content: "\f015";
}
.mnavi_contact > a:before {
    content: "\f0e0";
}
.mnavi_tel > a:before {
    content: "\f095";
}
.mnavi_menu > button:before {
    content: "\f0c9";
}

.mnavi > ul > li > a {
    text-decoration: none;
}

.mnavi > ul > li > button {
    border: none;
    background: none;
    outline: none;
    appearance: none;
    cursor: pointer;
}

.mnavi > ul > li span {
    position: absolute;
    bottom: -1em;
    left: 50%;
    transform: translateX(-50%);
    line-height: 1;
    white-space: nowrap;
}

.mnavi_menu_area {
    display: none;
    position: fixed;
    left: 0px;
    bottom: 80px;
    width: 100vw;
    height: calc(100vh - 80px);
    z-index: 9999;
    background-color: rgba(0, 0, 0, 0.9);
    overflow-x: hidden;
    overflow-y: scroll;
}

.mnavi_menu_area > .menu {
    position: absolute;
    top:70px;
    left: 50%;
    transform: translateX(-50%) ;
    width: 90%;
}

.mnavi_menu_area > .menu > li {
    list-style-type: none;
    text-align: center;
    border-bottom: solid 1px rgba(255, 255, 255, 0.3);
}

.mnavi_menu_area > .menu > li > a {
    display: inline-block;
    padding: 1em 2em;
    color: #fff;
    font-size:16px;
    text-decoration: none;
    width: 100%;
}
/* 初期状態で sub-menu を非表示 */
#menu-gnavi-1 .sub-menu {
    display: none;
    list-style: none;
    margin-bottom: 1em;
}
.mnavi_menu_area .menu-item-has-children {
    &::after {
        top: 19px;
        right: 20px;
        width: 10px;
        height: 10px;
    }
}
.mnavi_menu_area .sub-menu > li > a {
    display: inline-block;
    padding: 0.2em 2em;
    color: #fff;
    font-size:14px;
    text-decoration: none;
    width: 100%;
}
#btn_scroll_top {
    display: none;
    position: fixed;
    bottom: 120px;
    right: 30px;
    z-index: 9999;
    width: 50px;
    height: 50px;
    background-color: var(--sub-color);
    text-decoration: none;
    outline: none;
}
#btn_scroll_top:after {
    position: absolute;
    top: 40%;
    left: 50%;
    width: 20px;
    height: 20px;
    transform: translateX(-50%) rotate(-45deg);
    border-right: 2px solid #fff;
    border-top: 2px solid #fff;
    content: "";
}
@media print, (min-width: 768px) {
    #btn_scroll_top {
        bottom: 30px;
        width: 42px;
        height: 42px;
    }
    #btn_scroll_top:after {
        width: 12px;
        height: 12px;
    }
}

.footer{
    background-color: #111111;
    color: #fff;
    padding: 170px 0 0;
    & a{
        color: #fff;
        font-size: 14px;
        text-decoration: none;    
    }
    .inner{
        width: 100%;
        margin: auto;
    }
    .address{
        font-size: 14px;
    }
    .tel{
        text-transform: uppercase;
    }
}

@media screen and (max-width: 580px) {
    .footer{
        padding: 240px 0 0;
    }
}
.footer_menu .menu{
    display: grid;
    grid-template-columns: repeat(4, auto);
    grid-template-rows: repeat(4, 1fr);
    grid-column-gap: 0px;
    grid-row-gap: 0px;
    list-style: none;

    .menu-item{
        padding: 10px 0;
    }
    .menu-item:nth-child(1) { grid-area: 1 / 1 / 2 / 2; }
    .menu-item:nth-child(2) { grid-area: 2 / 1 / 3 / 2; }
    .menu-item:nth-child(3) { grid-area: 3 / 1 / 4 / 2; }
    .menu-item:nth-child(4) { grid-area: 1 / 2 / 2 / 3; }
    .menu-item:nth-child(5) { grid-area: 2 / 2 / 3 / 3; }
    .menu-item:nth-child(6) { grid-area: 3 / 2 / 4 / 3; }
    .menu-item:nth-child(7) { grid-area: 1 / 3 / 2 / 4; }
    .menu-item:nth-child(8) { grid-area: 2 / 3 / 3 / 4; }
    .menu-item:nth-child(9) { grid-area: 3 / 3 / 4 / 4; }
    .menu-item:nth-child(10) { grid-area: 1 / 4 / 2 / 5; }
    .menu-item:nth-child(11) { grid-area: 2 / 4 / 3 / 5; }
    .menu-item:nth-child(12) { grid-area: 3 / 4 / 4 / 5; }
    .menu-item:nth-child(13) { grid-area: 4 / 4 / 5 / 5; }
    a{
        transition: 0.3s;
        &:hover{
            text-decoration: underline;
            text-underline-offset: 5px;
        }
    }
}
.footer_title_logo{
    margin-bottom: 23px;
    .logo-name{
        font-size: 20px;
        font-weight: bold;
        line-height: 1.5;
        & span{
            font-size: 14px;
        }
    }
    .logo-sub{
        font-size: 11px;
        font-weight: bold;
        text-transform: uppercase;
    }
}
.copy-right{
    background-color: #000;
    text-align: center;
    padding: 1.2em;
    margin-top: 100px;
    font-size: 12px;
}
@media screen and (max-width: 991px) {
    .footer_menu{
        margin-top: 30px;
        padding-top: 20px;
        border-top: solid 1px rgba(255, 255, 255, 0.2);
    }
}

@media screen and (max-width: 650px) {
    .footer_menu {
        padding-left: 0;
        padding-right: 0;
    }
    .footer_menu .menu {
        display: grid;
        grid-template-columns: repeat(2, auto);
        grid-template-rows: repeat(7, 1fr);
        grid-column-gap: 0px;
        grid-row-gap: 0px;
                
        .menu-item:nth-child(1) { grid-area: 1 / 1 / 2 / 2; }
        .menu-item:nth-child(2) { grid-area: 2 / 1 / 3 / 2; }
        .menu-item:nth-child(3) { grid-area: 3 / 1 / 4 / 2; }
        .menu-item:nth-child(4) { grid-area: 4 / 1 / 5 / 2; }
        .menu-item:nth-child(5) { grid-area: 5 / 1 / 6 / 2; }
        .menu-item:nth-child(6) { grid-area: 6 / 1 / 7 / 2; }
        .menu-item:nth-child(7) { grid-area: 1 / 2 / 2 / 3; }
        .menu-item:nth-child(8) { grid-area: 2 / 2 / 3 / 3; }
        .menu-item:nth-child(9) { grid-area: 3 / 2 / 4 / 3; }
        .menu-item:nth-child(10) { grid-area: 4 / 2 / 5 / 3; }
        .menu-item:nth-child(11) { grid-area: 5 / 2 / 6 / 3; }
        .menu-item:nth-child(12) { grid-area: 6 / 2 / 7 / 3; }
        .menu-item:nth-child(13) { grid-area: 7 / 2 / 8 / 3; }
    }

    .copy-right{
        margin-top: 50px;
    }
}

@media screen and (max-width: 345px) {
    .footer_menu .menu {
        display: block;                
        .menu-item {
            padding: 8px 0;
        }
    }
}

/****************************************
7. single
****************************************/
.single-post p + p {
    margin: 1em 0px 0px;
}
.single-post .container{
    padding-bottom: 50px;
}

@media screen and (max-width: 767.98px) {
    .single-post img {
        margin: 1em auto 0px;
    }
}
@media print, (min-width: 768px) {
    .single-post img {
        margin: 1em 0px 0px;
    }
    
    .single-post .alignleft {
        display: inline-block;
    }
    
    .single-post .alignleft + .alignleft {
        margin: 1em 0px 0px 1em;
    }
    
    .single-post .aligncenter {
        margin: 1em auto 0px;
    }
    
    .single-post .alignright {
        margin: 1em 0px 0px 100%;
        transform: translateX(-100%);
    }
}

/****************************************
8. WP
****************************************/

/****************************************
9. Print
****************************************/

/****************************************
10. Plugin
****************************************/
.no_must {
    display: block;
    background-color: #fc0;
    padding: 4px 5px;
    font-size: 13px;
    color: #fff;
    float: left;
    margin: 0px 5px;
    border-radius: 4px;
    box-shadow: 0px 0px 5px #ccc;
}

.bx-wrapper {
    background-color: transparent;
    margin: 0px auto 0px;
    border: none;
    box-shadow: none;
}
.bx-wrapper img {
    display: block;
    margin: 0px auto;
}

.bx-wrapper .bx-pager.bx-default-pager a {
    background: #c9e2ff;
}

.bx-wrapper .bx-pager.bx-default-pager a:hover,
.bx-wrapper .bx-pager.bx-default-pager a.active,
.bx-wrapper .bx-pager.bx-default-pager a:focus {
    background: #012065;
}

/****************************************
10. Tweak
****************************************/

/****************************************
11. メールフォームプロ用スタイル
****************************************/
form#mailformpro .mailform {
    margin: 0px;
}

form#mailformpro dl {
    box-sizing: border-box;
}

form#mailformpro dl dt {
    display: flex;
    align-items: flex-start;
    box-sizing: border-box;
    border: none;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.5;
}

form#mailformpro dl dd {
    box-sizing: border-box;
    border: none;
}

form#mailformpro dl dt,
form#mailformpro dl dd {
    border-top: 1px solid #d3dad9;
}

.mfp_colored {
    background: none;
}

.mfp_element_text,
.mfp_element_number,
.mfp_element_select-one,
.mfp_element_email,
.mfp_element_tel,
.mfp_element_textarea {
    padding: 1em;
    margin: 0px;
    width: 100% !important;
    box-sizing: border-box;
    border: 1px solid var(--main-color);
    background-color: #fff;
    box-shadow: none;
    outline: none;
}

.mfp_element_submit,
.mfp_element_reset,
.mfp_element_button {
    padding: 0.5em 3em;
    box-sizing: border-box;
    background: none;
    background-color: var(--main-color);
    box-shadow: none;
    color: #fff;
    font-size: 18px;
    text-shadow: 0px 2px 0px #00564d;
}

.mfp_element_submit:hover,
.mfp_element_reset:hover,
.mfp_element_button:hover {
    background: none;
    background-color: #267d73;
    box-shadow: none;
}

div.mfp_err {
    padding: 0.5em 0px 0.5em 1em;
    background: none;
}

form#mailformpro label.mfp_checked {
    color: #000;
}

.mfp_element_file {
    color: #000;
}

.problem {
    border: 1px solid #ffd5dc;
    background-color: #ffd5dc;
}

.must,
.no_must {
    display: block;
    padding: 0px 1em;
    border-radius: 4px;
    background: none;
    box-shadow: none;
    text-shadow: none;
    color: #fff;
    font-size: 10px;
    line-height: 1.5;
}

.must {
    border: 1px solid #c60505;
    background-color: #c60505;
}

.no_must {
    border: 1px solid #fc0;
    background-color: #fc0;
}

@media screen and (max-width: 767.98px) {
    form#mailformpro dl dt,
    form#mailformpro dl dd {
        padding: 1em;
        width: 100%;
    }
    .must,
    .no_must {
        margin: 2px 2em 0px 0px;
    }
}

@media print, (min-width: 768px) {
    form#mailformpro dl {
        display: flex;
        flex-wrap: wrap;
    }
    form#mailformpro dl dt {
        float: none;
        padding: 2em 0px;
        width: 280px;
    }
    form#mailformpro dl dd {
        padding: 2em 2em 2em 0px;
        width: calc(100% - 280px);
    }
    .mfp_element_text,
    .mfp_element_number,
    .mfp_element_select-one,
    .mfp_element_email,
    .mfp_element_tel,
    .mfp_element_textarea {
        max-width: 500px;
    }
    .must,
    .no_must {
        margin: 2px 2em 0px;
    }
}

.subtitle {
    font-size: 1.5em;
    text-align: center;
}

.list_sitemap {
    padding: 60px 0px;
    margin: 0px 0px 60px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

.list_sitemap .menu li {
    position: relative;
    padding: 0px 0px 0px 2em;
    width: 50%;
}
.list_sitemap .menu li::after {
    position: absolute;
    top: 50%;
    left: 0px;
    width: 0.5em;
    height: 0.5em;
    transform: translateY(-50%) rotate(45deg);
    border-right: 2px solid currentColor;
    border-top: 2px solid currentColor;
    content: "";
}

.list_sitemap .menu {
    display: flex;
    flex-wrap: wrap;
    margin: -20px -10px 0px;
    list-style: none;
}

.list_sitemap .menu li {
    margin: 20px 10px 0px;
    width: calc(100% - 20px);
    min-height: 100%;
}

@media screen and (min-width: 768px) {
    .list_sitemap .menu li {
        width: calc(50% - 20px);
    }
}

@media screen and (min-width: 992px) {
    .list_sitemap .menu li {
        width: calc(33.3% - 20px);
    }
}
