@charset "UTF-8";

 body {
        margin: 0;
        padding: 0;
        overflow-x: hidden;
        font-family: 'Poppins','Noto Sans JP',sans-serif;
    }
/* ===================================================
	改行設定（PC）
==================================================== */
    .pc-br {
        display: block;
    }
    .sp-br {
        display: none;
    }
/* ===================================================
	ヘッダー設定（PC）
==================================================== */
    .sp-header {
        display: none;
    }
    .pc-header {
        display: flex;
        flex-direction: row;
        align-items: center;
        width: 100%;
        height: 136px;
        background-color: #fff;
        position: fixed;
        margin: 0;
        padding: 0;
        z-index: 3;
    }
    #logo {
        width: 80px;
        margin: 0 25px 0 64px;
        padding: 0;
    }
    #logo img { 
        width: 80px;
        margin: 0;
        padding: 0;
    }
    .pc-header h1 {
        font-size: 20px;
        font-weight: 500;
        color: #111111;
        width: 30%;
        margin: 0;
        padding: 0;
    }
    #pc-header-nav {
        width: 60%;
        margin: 0 64px 0 0;
        padding: 0;
    }
    #pc-header-nav ul {
        display: flex;
        flex-direction: row;
        justify-content: flex-end;
        margin: 0;
        padding: 0;
    }
    #pc-header-nav ul li {
        margin: 0 35px 0 0;
        padding: 0;
        list-style-type: none;
        font-size: 18px;
        font-weight: 500;
    }
    #pc-header-nav ul li a {
        text-decoration: none;
    }
    #pc-header-nav ul li a:hover {
        color: #EC6501;
    }
    #pc-header-nav a:link,a:visited {
        color: #111111;
    }
/* ===================================================
	TOPページ設定（PC）
==================================================== */
    .layout {
        display: flex;
        justify-content: center;
    }
    .fv_sp {
        display: none;
    }
    .fv {
        width: 100%;
        margin: 136px 0 0 0;
        padding: 0;
        position: relative;
    }
    .fv img {
        width: 100%;
    }
    .fv p {
        position: absolute;
        top: 35%;
        left: 50%;
        -ms-transform: translate(-50%,-50%);
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        font-size: 112px;
        font-weight: bold;
        color: #111111;
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        max-width: 1280px;    
        text-align: left;
        line-height: 1.3;
    }
    .og {
        color: #EC6501;
    }
    .fv-en {
        position: absolute;
        top: 60%;
        left: 50.5%;
        -ms-transform: translate(-50%,-50%);
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        max-width: 1280px;    
        text-align: left;
    }
    .fv-en p {    
        font-size: 20px;
        font-weight: 500;
        color: #111111;
        letter-spacing: 0.1em;
    }
    .about-section {
        position: relative;
        width: 100%;
        min-height: 500px;
        overflow: hidden;
        margin: 200px 0 0 0;
    }
    .about {
        display: flex;
        flex-direction: row;
        width: 100%;
        max-width: 1280px;
        min-height: 500px;
        align-items: center;
        margin: 0 auto 0;
        padding: 0;
        box-sizing: border-box;
        position: relative;
        z-index: 2;
    }
    .text-box {
        display: flex;
        flex-direction: column;
        z-index: 2;
        margin: 0;
        padding: 0;
    }
    .img-box {
        position: absolute;
        top: 0;
        right: -100px;
        width: 65vw; /* 画面幅に対しての比率で広げる */
        height: 100%;
        z-index: 1;
        pointer-events: none;
    }
    .about__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
    .title {
        font-size: 96px;
        font-weight: 600;
        color: #EC6500;
        margin: 0 0 20px 0;
    }
    .title-en {
        font-size: 20px;
        font-weight: 400;
        color: #CECECE;
        margin: 0 0 10px 0;
        padding: 0;
        letter-spacing: 0.06em;
    }
    .text p {
        font-size: 22px;
        font-weight: 300;
        color: #111111;
        margin: 0;
        padding: 0;
        letter-spacing: 0.04em;
    }
    .view-btn {
        display: inline-block;
        margin-top: 56px;
    }
    .view-btn a {
        color: #EC6500;
        text-decoration: none;
    }
    .view-cta {
        display: block;
        width: 312px;
        height: 80px;
        line-height: 80px;
        border-radius: 80px;
        background: #fff;
        text-align: center;
        font-size: 24px;
        font-weight: 600;
        color: #EC6500;
        border: 2px solid #EC6500;
        transition: all 0.3s ease;
        position: relative;
    }
    .view-arrow-right {
        display: inline-block;
        vertical-align: middle;
        color: #EC6500;
        width: 37px;
        height: 2px;
        background: currentColor;
        margin-left: 25px;
        position: relative;
    }
    .view-arrow-right::before {
        content: '';
        width: 15px;
        border: 2px solid currentColor;
        border-left: 0;
        border-bottom: 0;
        transform: rotate(40deg);
        transform-origin: top right;
        position: absolute;
        right: -0.05em;
        top: 0;
        box-sizing: border-box;
    }
    .view-btn:hover .view-cta {
        background: #EC6500;
        color: #fff;
    }
    .view-btn:hover .view-arrow-right {
        color: #fff;
    }
    .view-btn:hover .view-arrow-right::before {
        border-color: #fff;
    }
    .recruit-section {
        position: relative;
        width: 100%;
        min-height: 500px;
        overflow: hidden;
        margin: 100px 0 100px 0;
    }
    .recruit {
        display: flex;
        flex-direction: row;
        justify-content: right;
        width: 100%;
        max-width: 1280px;
        min-height: 500px;
        align-items: center;
        margin: 0 auto 0;
        padding: 0;
        box-sizing: border-box;
        position: relative;
        z-index: 2;
    }
    .recruit-img-box {
        position: absolute;
        top: 0;
        left: -100px;
        width: 65vw; /* 画面幅に対しての比率で広げる */
        height: 100%;
        z-index: 1;
        pointer-events: none;
    }
    .recruit__image {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
/* ===================================================
	ページ設定：会社概要（PC）
==================================================== */
    .page-fv_sp {
        display: none;
    }
    .page-fv {
        width: 100%;
        margin: 136px 0 0 0;
        padding: 0;
        position: relative;
    }
    .page-fv img {
        width: 100%;
    }
    .page-fv p {
        position: absolute;
        top: 35%;
        left: 50%;
        -ms-transform: translate(-50%,-50%);
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        font-size: 96px;
        font-weight: 600;
        color: #fff;
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        max-width: 1280px;    
        text-align: left;
        line-height: 1.0;
    }
    .fv-name {
        font-size: 16px;
    }
    .container {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .container h2 {
        font-size: 80px;
        font-weight: 600;
        color: #EC6500;
        margin: 0 auto;
        padding: 0;
        line-height: 1.0;
    }
    .name {
        font-size: 16px;
        color: #EC6500;
        margin: 0;
        padding: 0;
    }
    .overview-en {
        font-size: 20px;
        font-weight: 300;
        color: #CECECE;
        margin: 25px 0 0 0;
        padding: 0;       
    }
    .ttl_underline {
        text-align: center;
        position: relative;
        margin-bottom: 50px;
    }
    .ttl_underline:before {
        content: "";
        position: absolute;
        bottom: -10px;
        display: inline-block;
        width: 75px;
        height: 4px;
        left: 50%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
        background-color: #EC6500;
    }
    .wrap {
        width: 100%;
        max-width: 1280px;
        margin: 0 auto;
        padding: 0;
    }
    .wrap h3 {
        font-size: 32px;
        font-weight: 400;
        margin: 30px 0 15px 0;
        padding: 0;
    }
    .business-list {
        max-width: 1280px;
        margin: 0 auto;
    }
    .business-item {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 40px 100px;
        border-bottom: 1px solid #CECECE;
        gap: 30px;
    }
    .business-item:last-child {
        border-bottom: none;
    }
    .number {
        font-size: 46px;
        font-weight: 500;
        color: #EC6500;
        flex: 0 0 80px;
        text-align: right;
        margin: 0 0 55px 0;
    }
    .text-block-1,.text-block-2,.text-block-3 {
        flex: 1;
        text-align: left;
    }
    .text-block-1 {
        margin: 0 0 -5px 0;
    }
    .text-block-2 {
        margin: 0 0 20px 0;
    }
    .text-block-3 {
        margin: 0 0 -10px 0;
    }
    .text-block-1 h3,.text-block-2 h3,.text-block-3 h3 {
        font-size: 32px;
        font-weight: 400;
        color: #111111;
        margin: 0 0 10px;
        letter-spacing: 0.04em;
    }
    .text-block-1 p,.text-block-2 p,.text-block-3 p {
        font-size: 18px;
        font-weight: 300;
        color: #111111;
        margin: 0;
        letter-spacing: 0.04em;
    }
    .image-block {
        flex: 0 0 380px; /* 画像の幅 */
    }
    .image-block img {
        max-width: 100%;
    }
    .sdgs {
        width: 100%;
        height: 433px;
        margin: 0;
        padding: 0;
        background-color: #fff;
        border-radius: 8px;
    }
    .sdgs_inner {
        display: flex;
        flex-direction: row;
        align-items: center;
        margin: 0;
        padding: 50px;
    }
    .sdgs_inner img {
        width: 100%;
    }
    .sdgs_inner p {
        font-size: 16px;
        font-weight: 300;
        color: #111111;
        letter-spacing: 0.04em;
        margin: 0;
        padding: 0;
    }
    .sdgs_left {
        width: 300px;
        margin: 0 auto;
        padding: 0;
    }
    .sdgs_right {
        width: 800px;
        margin: 0 auto;
        padding: 0;
    }
    .activity {
        display: flex;
        flex-direction: row;
        align-items: center;
        margin: 0;
        padding: 0;        
    }
    .activity_box {
        width: 100%;
        height: 75px;
        margin: 0;
        padding: 0;
        background-color: #fff;
        border-radius: 8px;
    }
    .activity_box p {
        font-size: 16px;
        font-weight: 300;
        color: #111111;
        letter-spacing: 0.04em;
        margin: 25px 0 0 0;
        padding: 0;
        text-align: center;

    }
    .offer {
        display: flex;
        flex-direction: row;
        align-items: center;
        margin: 0;
        padding: 0;        
    }
    .offer_box {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 310px;
        height: 162px;
        margin: 0 10px 0 0;
        padding: 0;
        background-color: #fff;
        border-radius: 8px;
    }
    .offer_box_last {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;    
        width: 310px;
        height: 162px;
        margin: 0 0 0 10px;
        padding: 0;
        background-color: #fff;
        border-radius: 8px;
    }
    .offer_box img {
        width: 235px;
    }
    .offer_box p {
        font-size: 14px;
        font-weight: 300;
        color: #111111;
        letter-spacing: 0.04em;
        margin: 0;
        padding: 0;
        text-align: center;
    }
    .F8F8F8 {
        background-color: #F8F8F8;
        margin: 0;
        padding: 50px;
    }
    .company-info {
        display: flex;
        justify-content: space-between;
        margin: 0;
        padding: 0;
    }
    .info-block {
        width: 50%;
        margin: 0;
        padding: 25px;
    }
    .info-row {
        display: flex;
        flex-direction:row;
        margin: 0 0 50px 0;
        border-bottom: 1px solid #CECECE;
    }
    .info-row dt {
        width: 30%;
        font-size: 18px;
        font-weight: 400;
        color: #111111;
    }
    .info-row dd {
        width: 70%;
        font-size: 18px;
        font-weight: 300;
        color: #111111;
        margin: 0;
        padding: 0 0 50px 0;
    }
    .timeline {
        width: 80%;
        max-width: 800px;
        margin: 0 auto;
        position: relative;
    }
    .timeline::before {
        content: "";
        position: absolute;
        left: 35%;
        top: 35px;
        bottom: 35px;
        width: 1px;
        background: #EC6500;
        margin-left: -1px;
        z-index: 1;
    }
    .timeline-item {
        display: flex;
        align-items: center;
        position: relative;
        height: 78px;
        border-radius: 50px;
        margin-bottom: 30px;
        padding: 0;
        background-color: #fff;
    }
    .timeline-item:last-child {
        margin-bottom: 0;
    }
    .date {
        flex: 0 0 20%;
        font-size: 26px;
        font-weight: 300;
        color: #EC6500;
        text-align: left;
        padding: 80px;
        letter-spacing: 0.06em;
    }
    .content {
        flex: 0 0 80%;
        font-size: 18px;
        font-weight: 300;
        color: #111111;
        padding: 20px 30px;
        text-align: left;
        letter-spacing: 0.04em;
    }
    .dot {
        position: absolute;
        left: 35%;
        width: 10px;
        height: 10px;
        background: #EC6500;
        border-radius: 50%;
        margin-left: -5px;
    }
/* ===================================================
	ページ設定：採用情報（PC）
==================================================== */
    .job-fv_sp {
        display: none;
    }
    .job-fv {
        width: 100%;
        margin: 136px 0 0 0;
        padding: 0;
        position: relative;
    }
    .job-fv img {
        width: 100%;
        margin: 0 0 0 100px;
        padding: 0;
    }
    .job-fv p {
        position: absolute;
        top: 35%;
        left: 17%;
        -ms-transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
        font-size: 96px;
        font-weight: 600;
        color: #111111;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left;
        line-height: 1.0;
    }
    .fv-job {
        font-size: 16px;
        font-weight: 500;
    }
    .fv-job-text-1,
    .fv-job-text-2 {
        position: absolute;
        left: 17%;
        -ms-transform: translateY(-50%);
        -webkit-transform: translateY(-50%);
        transform: translateY(-50%);
        margin: 0 !important;
        font-size: 50px;
        font-weight: 600;
        color: #fff;
        text-align: left;
        line-height: 1.0;
    }

    .fv-job-text-1 { top: 60%; }
    .fv-job-text-2 { top: 75%; }
    @media screen and (max-width: 1280px) {
    .job-fv p { font-size: 80px; top: 20%; left: 22%; }    
    .fv-job-text-1 { font-size: 40px; top: 45%; left: 22%; }
    .fv-job-text-2 { font-size: 40px; top: 60%; left: 22%; }
    }

    .fv-job-text-1 span,
    .fv-job-text-2 span {
        background-color: #EC6500;
        display: inline-block;
        padding: 10px 20px;
    } 
    .job-F8F8F8 {
        background-color: #F8F8F8;
        margin: -350px 0 0 0;
        padding: 450px 0 50px 0;
    }
     .job-description {
        max-width: 1100px;
        margin: 0 auto;
        background: #fff;
        border-radius: 8px;
        padding: 40px 40px;
    }
    .job-row {
        display: flex;
        border-bottom: 1px solid #CECECE;
        padding: 30px 0;
    }
    .job-row:last-child {
        border-bottom: none;
    }

    .job-label {
        flex: 0 0 250px;
        font-size: 18px;
        font-weight: 400;
        color: #111111;
    }
    .job-content {
        flex: 1;
        font-size: 18px;
        font-weight: 300;
        color: #111111;
    }
    .job-content ul {
        margin: 0;
        padding: 0;
    }
    .job-content ul li {
        list-style-type: none;
        margin: 0;
        padding: 0;
    }
    .job-contact-btn {
        display: inline-block;
        margin: 75px 0 25px 0;
        padding: 0;
    }
    .job-contact-btn a {
        text-decoration: none;
        color: #EC6500;
    }
    .job-contact-cta {
        display: block;
        position: relative;
        width: 368px;
        height: 80px;
        margin: 0 auto;
        line-height: 80px;
        border-radius: 80px;
        background: #fff;
        text-align: center;
        font-size: 24px;
        font-weight: 300;
        color: #EC6500;
        border: 2px solid #EC6500; /* ← これを追加 */
        transition: all 0.3s eas
    }
    .job-arrow-right {
        display: inline-block;
        vertical-align: middle;
        color: #EC6500;
        line-height: 1;
        position: relative;
        width: 37px;
        height: 2px;
        background: currentColor;
        margin: 0 0 0 25px;
    }
    .job-arrow-right::before {
        content: '';
        width: 15px;
        border: 2px solid currentColor;
        border-left: 0;
        border-bottom: 0;
        transform: rotate(40deg);
        transform-origin: top right;
        position: absolute;
        right: -0.05em;
        box-sizing: border-box;
    }
    .job-contact-btn:hover .job-contact-cta {
        background: #EC6500;
        border-color: #fff; /* ← 色だけ変える */
        color: #fff;
    }
    .job-contact-btn:hover .job-arrow-right {
        color: #fff;
    }
    .job-contact-btn:hover .job-arrow-right::before {
        border-color: #fff;
    }
/* ===================================================
	ページ設定：プライバシーポリシー（PC）
==================================================== */
    .policy-list {
        width: 1280px;
        max-width: 800px;
        margin: 0 auto;
    }
    .policy-list h3 {
        font-size: 20px;
        font-weight: 300;
        color: #111111;
        margin: 0 0 10px;
        letter-spacing: 0.04em;
    }
    .policy-list p {
        font-size: 16px;
        font-weight: 300;
        color: #111111;
        margin: 0 0 50px;
        letter-spacing: 0.04em;
    }
    .policy-list p:last-child {
        margin: 0 0 150px;
    }
/* ===================================================
	フッター設定（PC）
==================================================== */
    footer {
        display: block;
        width: 100%;
        bottom: 0;
        margin: 0;
        padding: 0;
    }
    .footer-inner {
        width: 100%;
        max-width: 1280px;
        margin: 0 auto;
        padding: 0;
    }
    .footer-contact {
        background: #EC6500;
        margin: 0;
        padding: 50px 0 50px 0;
    }
    .contact-title {
        font-size: 96px;
        font-weight: 400;
        color: #fff;
    }
    .contact-title-en {
        font-size: 20px;
        font-weight: 400;
        color: #fff;
        vertical-align: middle;
        margin: 0 0 0 50px;
        padding: 0;
    }
    .contact {
        display: flex;
        flex-direction: row;
        position: relative;
    }
    .contact-box,.copyright-box {
        width: 50%;
    }
    .contact-box:first-child::after {
        content: '';
        position: absolute;
        top: 10%;
        left: 42%;
        transform: translateX(-50%) rotate(25deg); /* 角度調整 */
        width: 1px;
        height: 100%;
        background: #fff;
        z-index: 1;
    }
    .contact-btn {
        display: inline-block;
        margin: 0;
        padding: 0;
    }
    .contact-btn a {
        text-decoration: none;
        color: #EC6500;
    }
    .contact-cta {
        display: block;
        position: relative;
        width: 368px;
        height: 80px;
        margin: 0 auto;
        line-height: 80px;
        border-radius: 80px;
        background: #fff;
        text-align: center;
        font-size: 24px;
        font-weight: 400;
        color: #EC6500;
        border: 2px solid transparent; /* ← これを追加 */
        transition: all 0.3s eas
    }
    .arrow-right {
        display: inline-block;
        vertical-align: middle;
        color: #EC6500;
        line-height: 1;
        position: relative;
        width: 37px;
        height: 2px;
        background: currentColor;
        margin: 0 0 0 25px;
    }
    .arrow-right::before {
        content: '';
        width: 15px;
        border: 2px solid currentColor;
        border-left: 0;
        border-bottom: 0;
        transform: rotate(40deg);
        transform-origin: top right;
        position: absolute;
        right: -0.05em;
        box-sizing: border-box;
    }
    .contact-btn:hover .contact-cta {
        background: #EC6500;
        border-color: #fff; /* ← 色だけ変える */
        color: #fff;
    }
    .contact-btn:hover .arrow-right {
        color: #fff;
    }
    .contact-btn:hover .arrow-right::before {
        border-color: #fff;
    }    
    .contact-box p {
        font-size: 22px;
        font-weight: 300;
        color: #fff;
    }
    .contact-box-tel {
        font-size: 48px;
        font-weight: 400;
    }
    .contact-box-day {
        font-size: 14px;
        font-weight: 100;
        font-family: 'Noto Sans JP',sans-serif;
        margin: 0 0 0 65px;
        vertical-align: super;
    }
    .footer-company {
        margin: 0;
        padding: 50px 0 50px 0;
    }
    .company-box-1 {
        width: 10%;
    }
    .company-box-2 {
        width: 40%;
    }
    .company-box-1 img {
        width: 100px;
        height: auto;
    }
    .company-box-2 p {
        font-size: 24px;
        font-weight: 400;
        color: #111111;
        margin: 0 0 0 50px;
        padding: 0;
        line-height: 1;
    }
    .company-min {
        font-size: 18px;
        font-weight: 300;
        font-family: 'Noto Sans JP',sans-serif;
    }
    .company-box-3 {
        width: 50%;
    }
    .company-box-3 p {
        font-size: 24px;
        font-weight: 300;
        color: #111111;
        margin: 45px 0 0 0;
        padding: 0;
    }
    .slogan {
        display: none;
    }
    .footer-copyright {
        background: #111111;
        margin: 0;
        padding: 25px 0 25px 0;
    }
    .footer-copyright p {
        font-size: 12px;
        font-weight: 300;
        color: #fff;
        margin: 5px 0 0 0;
        padding: 0;
        text-align: end;
    }
    .footer-copyright ul {
        display: block;
        margin: 0;
        padding: 0;
    }
    .footer-copyright ul li {
        display: contents;
        color: #fff;
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .footer-copyright ul li a {
        font-size: 18px;
        font-weight: 300;
        color: #fff;
        text-decoration: none;
        margin: 0;
        padding: 0 20px;
    }
    .footer-copyright ul li a:hover {
        color: #EC6501;
    }
    .sp-navi {
        display: none;
    }
    .footer-close {
        height: 75px;
        margin: 0;
        padding: 0;
    }
    .footer-close p {
        display: none;
    }
    .sp_about {
        display: none;
    }

/* ===================================================
	改行設定（PC）
==================================================== */
    @media screen and (max-width: 768px) {
    .pc-br {
        display: none;
    }
    .sp-br {
        display: block;
    }
/* ===================================================
	ヘッダー設定（SP）
==================================================== */
    .pc-header {
        display: none;
    }
    .sp-header {
        display: flex;
        flex-direction: row;
        align-items: center;
        width: 100%;
        height: 70px;
        background-color: #fff;
        position: fixed;
        margin: 0;
        padding: 0;
        z-index: 999;
    }
    .sp-header h1,.menu-header h1 {
        font-size: 14px;
        font-weight: 400;
        color: #111111;
        margin: 0;
        padding: 0;
    }
    #logo {
        width: 50px;
        margin: 0 25px 0 25px;
        padding: 0;
    }
    #logo img { 
        width: 50px;
        margin: 0;
        padding: 0;
    }
    /* ハンバーガーメニューのスタイル */
    .hamburger {
        position: fixed;
        top: 10px;
        right: 20px;
        width: 30px;
        cursor: pointer;
        z-index: 10; /* メニューより前に表示 */
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
    .hamburger-label {
        font-size: 10px;
        color: #111111;
        text-align: center;
        margin-top: 35px;
        font-weight: 300;
        letter-spacing: 1px;
    }
    .hamburger span {
        display: block;
        height: 1px;
        width: 100%;
        background-color: #111111; /* ボタンの色 */
        margin: 4px 0;
        transition: 0.4s;
        position: absolute;
    }
    
    /* メニューのスタイル */
    .menu {
        position: fixed;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        background: linear-gradient(to bottom, #F8F8F8 65%, rgba(17, 17, 17, 0.9) 35%);
        opacity: 0; /* 初期状態は透明 */
        pointer-events: none; /* クリック不可 */
        transition: opacity 0.5s ease; /* フェードインのアニメーション */
        padding: 0;
        box-sizing: border-box;
        z-index: 5;
    }
    .menu-header {
        display: flex;
        flex-direction: row;
        align-items: center;
        width: 100%;
        height: 70px;
        position: fixed;
        margin: 0;
        padding: 0;
    }
    .menu ul {
        margin: 0;
        padding: 100px 0 0 0;
    }
    .menu ul li {
        font-size: 18px;
        font-weight: 300;
        vertical-align: middle;
        text-decoration: none;
        list-style: none;
        margin: 0 auto;
        padding: 25px 0 25px 0;
        border-bottom: 1px solid #CECECE;
        width: 80%;
    }
    .menu ul li a {
        text-decoration: none;
        color: #EC6500;
    }
    .menu-en {
        font-size: 8px;
        font-weight: 300;
        color: #CECECE;
        vertical-align: middle;
        margin: 10px;
        padding: 0;
    }
    .menu ul li:last-child {
        border-bottom: none;
    }

    /* メニューが開いたとき */
    .menu.open {
        opacity: 1; /* 不透明にする */
        pointer-events: auto; /* クリック可能にする */
    }

    /* バツ印に変わるハンバーガーボタン */
    /* 初期状態：上下にずらして配置 */
    .hamburger span:nth-child(1) {
        transform: translateY(-8px);
    }

    .hamburger span:nth-child(2) {
        transform: translateY(0);
    }

    .hamburger span:nth-child(3) {
        transform: translateY(8px);
    }

    /* メニューが開いたときのアニメーション */
    .hamburger.active span:nth-child(1) {
        transform: rotate(30deg);
    }

    .hamburger.active span:nth-child(2) {
        opacity: 0;
    }

    .hamburger.active span:nth-child(3) {
        transform: rotate(-30deg);
    }
    .contact-box:first-child::after {
        display: none;
    }
/* ===================================================
	TOPページ設定（SP）
==================================================== */
    .fv {
        display: none;
    }
    .fv_sp {
        display: block;
        width: 100%;
        margin: 80px 0 0 0;
        padding: 0;
        position: relative;
    }
    .fv_sp img {
        width: 100%;
    }
    .fv_sp p {
        position: absolute;
        top: 35%;
        left: 55%;
        -ms-transform: translate(-50%,-50%);
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        font-size: 40px;
        font-weight: bold;
        color: #111111;
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        max-width: inherit;   
        text-align: left;
        line-height: 1.3;
    }
    .og {
        color: #EC6501;
    }
    .fv_sp-en {
        position: absolute;
        top: 45%;
        left: 51%;
        -ms-transform: translate(-50%,-50%);
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        max-width: inherit;    
        text-align: left;
    }
    .fv_sp-en p {    
        font-size: 14px;
        font-weight: bold;
        color: #111111;
        letter-spacing: 0.1em;
    }
    .about-section,.recruit-section {
        display: none;
    }
    .sp_about {
        display: flex;
        flex-direction: column;
        margin: 50px 0 0 0;
        padding: 0;
    }
    .sp_about img {
        width: 100%;    
    }
    .text-box {
        display: flex;
        flex-direction: column;
        z-index: inherit;
        width: 100%;
        max-width: 85%;
        margin: 0 auto;
        padding: 0;
    }
    .title {
        font-size: 40px;
        font-weight: 600;
        color: #EC6500;
        margin: 0 0 0 0;
    }
    .title-en {
        font-size: 12px;
        font-weight: 400;
        color: #CECECE;
        margin: 0 0 0 0;
        padding: 0;
        letter-spacing: 0.06em;
    }
    .text p {
        font-size: 16px;
        font-weight: 300;
        color: #111111;
        margin: 0;
        padding: 0;
        letter-spacing: 0.04em;
    }
    .view-btn {
        display: inline-block;
        margin-top: 56px;
    }
    .view-btn a {
        color: #EC6500;
        text-decoration: none;
    }
    .view-cta {
        display: block;
        width: 248px;
        height: 56px;
        line-height: 56px;
        border-radius: 80px;
        background: #fff;
        text-align: center;
        font-size: 16px;
        font-weight: 600;
        color: #EC6500;
        border: 2px solid #EC6500;
        transition: all 0.3s ease;
        position: relative;
    }
    .view-arrow-right {
        display: inline-block;
        vertical-align: middle;
        color: #EC6500;
        width: 22px;
        height: 2px;
        background: currentColor;
        margin-left: 25px;
        position: relative;
    }
    .view-arrow-right::before {
        content: '';
        width: 10px;
        border: 2px solid currentColor;
        border-left: 0;
        border-bottom: 0;
        transform: rotate(40deg);
        transform-origin: top right;
        position: absolute;
        right: -0.05em;
        top: 0;
        box-sizing: border-box;
    }
    .view-btn:hover .view-cta {
        background: #EC6500;
        color: #fff;
    }
    .view-btn:hover .view-arrow-right {
        color: #fff;
    }
    .view-btn:hover .view-arrow-right::before {
        border-color: #fff;
    }
/* ===================================================
	ページ設定：会社概要（SP）
==================================================== */
    .page-fv {
        display: none;
    }    
    .page-fv_sp {
        display: block;
        width: 100%;
        margin: 80px 0 0 0;
        padding: 0;
        position: relative;
    }
    .page-fv_sp img {
        width: 100%;
    }
    .page-fv_sp p {
        position: absolute;
        top: 40%;
        left: 55%;
        -ms-transform: translate(-50%,-50%);
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        font-size: 40px;
        font-weight: bold;
        color: #fff;
        margin: 0 !important;
        padding: 0 !important;
        width: 100%;
        max-width: inherit;    
        text-align: left;
        line-height: 1.0;
    }
    .fv-name {
        font-size: 16px;
    }
    .container h2 {
        font-size: 40px;
        color: #EC6500;
        margin: 0 auto;
        padding: 25px 0 0 0;
        line-height: 1.0;
    }
    .name {
        font-size: 12px;
        color: #EC6500;
        margin: 0;
        padding: 0;
    }
    .overview-en {
        font-size: 16px;
        font-weight: 300;
        color: #CECECE;
        margin: 10px 0 0 0;
        padding: 0;       
    }
    .ttl_underline {
        text-align: center;
        position: relative;
        margin-bottom: 50px;
    }
    .ttl_underline:before {
        content: "";
        position: absolute;
        bottom: -10px;
        display: inline-block;
        width: 75px;
        height: 2px;
        left: 50%;
        -webkit-transform: translateX(-50%);
        transform: translateX(-50%);
        background-color: #EC6500;
    }
    .wrap {
        width: 100%;
        max-width: 85%;
        margin: 0 auto;
        padding: 0;
    }
    .wrap h3 {
        font-size: 20px;
        font-weight: 400;
        margin: 30px 0 15px 0;
        padding: 0;
    }
    .business-list {
        max-width: 85%;
        margin-bottom: 50px;
    }
    .business-item {
        max-width: 100%;
        flex-direction: column;
        align-items: flex-start;
        padding: 15px 0 15px 0;
        gap: 0;
    }
    .number {
        font-size: 40px;
        text-align: left;
        margin: 0;
    }
    .text-block-1,.text-block-2,.text-block-3 {
        margin: 0;
    }
    .text-block-1 h3,.text-block-2 h3,.text-block-3 h3 {
        font-size: 20px;            
    }
    .text-block-1 p,.text-block-2 p,.text-block-3 p {
        font-size: 14px;
    }
    .image-block {
        flex: 1;
        margin-top: 15px; /* テキストの下に余白 */
    }
    .sdgs {
        width: 100%;
        height: auto;
        margin: 0;
        padding: 0;
    }
    .sdgs_inner {
        flex-direction: column;
        padding: 25px;
    }
    .sdgs_left,.sdgs_right {
        width: 100%;
    }
    .sdgs_inner p {
        font-size: 14px;            
    }
    .activity_box {
        height: 115px;
    }
    .activity_box p {
        font-size: 14px;
        font-weight: 300;
        color: #111111;
        letter-spacing: 0.04em;
        margin: 0;
        padding: 25px;
        text-align: left;
    }    
    .offer {
        display: block;
        align-items: center;
        margin: 0;
        padding: 0;
    }
    .offer_box,.offer_box_last {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        width: 100%;
        height: 200px;
        margin: 0 0 25px 0;
        padding: 0;
        background-color: #fff;
    }
    .F8F8F8 {
        padding: 25px 0 75px 0;
    }
    .F8F8F8-last {
        margin: 0 0 -50px 0;
        padding: 25px 0 75px 0;
    }    
    .company-info {
        display: flex;
        justify-content: space-between;
        flex-direction: column;
        margin: 0 0 50px 0;
        padding: 0;
    }
    .info-block {
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .info-row {
        display: flex;
        flex-direction:row;
        margin: 0 0 25px 0;
        border-bottom: 1px solid #CECECE;
    }
    .info-row dt {
        width: 30%;
        font-size: 14px;
        font-weight: 400;
        color: #111111;
    }
    .info-row dd {
        width: 70%;
        font-size: 14px;
        font-weight: 300;
        color: #111111;
        margin: 0;
        padding: 0 0 25px 0;
    }
    .timeline {
        width: 100%;
        max-width: 85%;
    }
    .date {
        font-size: 16px;
        padding: 30px;
    }
    .content {
        font-size: 14px;
        padding: 20px 0;
    }
    .timeline::before,.dot {
        left: 30%;
    }
/* ===================================================
	ページ設定：採用情報（SP）
==================================================== */
    .job-fv {
        display: none;
    }
    .job-fv_sp {
        display: block;
        width: 100%;
        margin: 80px 0 0 0;
        padding: 0;
        position: relative;
    }
    .job-fv_sp img {
        width: 100%;
        margin: 0;
        padding: 0;
    }
    .job-fv_sp p {
        position: absolute;
        top: 35%;
        left: 50%;
        -ms-transform: translate(-50%,-50%);
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
        font-size: 46px;
        font-weight: bold;
        color: #fff;
        margin: 0 !important;
        padding: 0 !important;
        text-align: left;
        line-height: 1.0;
        width: 100%;
        max-width: 85%;
    }
    .fv-job {
        font-size: 16px;
        font-weight: 500;
    }
    .fv-job-text-1,
    .fv-job-text-2 {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin: 0 !important;
        font-size: 25px;
        font-weight: bold;
        color: #fff;
        text-align: left;
        line-height: 1.0;
        width: 100%;
        max-width: 85%;
    }

    .fv-job-text-1 { top: 55%; }
    .fv-job-text-2 { top: 70%; }

    .fv-job-text-1 span,
    .fv-job-text-2 span {
        background-color: #EC6500;
        display: inline-block;
        padding: 10px 20px;
    } 
    .job-F8F8F8 {
        background-color: #F8F8F8;
        margin: -15px 0 -50px 0;
        padding: 50px 0 50px 0;
    }        
    .job-description {
        max-width: 85%;
        margin: 0 auto;
        background: #fff;
        border-radius: 8px;
        padding: 10px 10px;
    }
    .job-row {
        display: flex;
        border-bottom: 1px solid #CECECE;
        padding: 15px 15px;
    }
    .job-row:last-child {
        border-bottom: none;
    }

    .job-label {
        flex: 0 0 35%;
        font-size: 14px;
        font-weight: 400;
        color: #111111;
    }
    .job-content {
        flex: 1;
        font-size: 14px;
        font-weight: 300;
        color: #111111;
    }
    .job-content ul {
        margin: 0;
        padding: 0;
    }
    .job-content ul li {
        list-style-type: none;
        margin: 0;
        padding: 0;
    }
    .job-contact-btn {
        display: inline-block;
        margin: 50px 0 25px 0;
        padding: 0;
    }    
    .job-contact-cta {
        width: 248px;
        height: 56px;
        line-height: 56px;
        font-size: 16px;
        font-weight: 500;
    }
    .job-arrow-right {
        width: 22px;
        height: 2px;
    }
    .job-arrow-right::before {
        width: 10px;
        border: 1px solid currentColor;
    }
/* ===================================================
	ページ設定：プライバシーポリシー（SP）
==================================================== */
    .policy-list {
        width: 100%;
        max-width: 85%;
        margin: 0 auto;
    }
    .policy-list h3 {
        font-size: 20px;
        margin: 0 0 10px;
    }
    .policy-list p {
        font-size: 14px;
        margin: 0 0 25px;
    }
    .policy-list p:last-child {
        margin: 0 0 75px;
    }
/* ===================================================
	フッター設定（SP）
==================================================== */
    .footer-inner {
        width: 100%;
        max-width: 85%;
        margin: 0 auto;
        padding: 0;
    }
    .footer-contact {
        margin: 50px 0 0 0;
        padding: 25px 0 25px 0;
    }
    .contact-sp {
        display: flex;
        flex-direction: column;
        position: relative;
    }
    .contact-box-sp {
        width: 100%;
    }
    .contact-title {
        font-size: 40px;
        font-weight: bold;
    }
    .contact-title-en {
        font-size: 10px;
        vertical-align: middle;
        margin: 0 0 0 25px;
        padding: 0;
    }
    .contact-box p {
        font-size: 16px;
    }
    .contact-cta {
        width: 248px;
        height: 56px;
        line-height: 56px;
        font-size: 16px;
        font-weight: 500;
    }
    .arrow-right {
        width: 22px;
        height: 2px;
    }
    .arrow-right::before {
        width: 10px;
        border: 1px solid currentColor;
    }
    .contact-box-tel {
        font-size: 40px;
    }
    .contact-box-day {
        font-size: 12px;
        margin: 0;
        vertical-align: super;
    }
    .company-box-3 {
        display: none;
    }
    .slogan {
        display: block;
        font-size: 14px;
        font-weight: 300;
        color: #111111;
        margin: 0 0 25px 0;
        padding: 0;
    }
    .footer-company {
        margin: 0;
        padding: 50px 0 50px 0;
    }
    .company-box-1 {
        width: 20%;
        text-align: center;
    }
    .company-box-2 {
        width: 80%;
    }
    .company-box-1 img {
        width: 100%;
        height: auto;
    }
    .company-box-2 p {
        font-size: 18px;
        font-weight: 300;
        color: #111111;
        margin: 0 0 0 25px;
        padding: 0;
        line-height: 1.5;
    }
    .company-min {
        font-size: 16px;
        font-weight: 200;
    }
    .copyright-box {
        display: none;        
    }
    .sp-navi {
        display: block;
        margin: 0;
        padding: 0;            
    }
    .footer-copyright ul {
        display: block;
        margin: 0;
        padding: 0;
    }
    .footer-copyright ul li {
        display: inline;
        color: #fff;
        list-style: none;
        margin: 0;
        padding: 0 10px;
        line-height: 2.0;
    }
    .footer-copyright ul li a {
        font-size: 16px;
        font-weight: 300;
        color: #fff;
        text-decoration: none;
        margin: 0;
        padding: 0;
    }
    .footer-copyright ul li a:hover {
        color: #EC6501;
    }
    .footer-close {
        height: 35px;
    }    
    .footer-close p {
        display: block;
        font-size: 10px;
        font-weight: 300;
        color: #111111;
        margin: 15px 0 15px 0;
        padding: 0;
        text-align: center;
    }
    }