/*==============================================================
about-us
==============================================================*/

/*－－－－－－－－－－共通－－－－－－－－－－*/
.greeting {
    .about-common-ttl {
        position: absolute;
        top: -7%;
        left: 6.1%;

        @media (min-width: 769px) and (max-width: 1200px) {
            position: unset;
        }

        @media (max-width: 768px) {
            position: unset;
        }
    }
}

.info {
    .about-common-ttl {
        position: absolute;
        top: -3%;
        left: 18%;

        @media (min-width: 1201px) and (max-width: 1735px) {
            top: -1.8%;
            left: 6.5%;
        }

        @media (min-width: 769px) and (max-width: 1200px) {
            position: unset;
        }

        @media (max-width: 768px) {
            position: unset;
        }
    }
}

.history {
    .about-common-ttl {
        position: absolute;
        top: -1.2%;
        right: 6%;

        @media (min-width: 1201px) and (max-width: 1735px) {
            top: -1.3%;
            right: 12.5%;
        }

        @media (min-width: 769px) and (max-width: 1200px) {
            position: unset;
        }

        @media (max-width: 768px) {
            position: unset;
        }
    }
}

.awards {
    .about-common-ttl {
        position: absolute;
        top: -1.2%;
        left: 6.5%;

        @media (min-width: 1201px) and (max-width: 1735px) {
            top: -1.8%;
            left: 6.5%;
        }

        @media (min-width: 769px) and (max-width: 1200px) {
            position: unset;
        }

        @media (max-width: 768px) {
            position: unset;
        }
    }
}

.about-common-ttl {
    margin-bottom: 40px;

    @media (max-width: 768px) {
        margin-bottom: 24px;
    }
}

.common-main-ttl {
    font-size: clamp(2rem, 1.3333rem + 1.3889vw, 3rem);
    font-weight: 800;
    line-height: 1.2;
}

.common-sub-ttl {
    font-size: clamp(1rem, 0.6667rem + 0.6944vw, 1.5rem);
    font-weight: 600;
}

.about-bg {
    padding: 80px 60px;

    @media (max-width: 1200px) {
        padding: 0px 0;
    }

    @media (max-width: 768px) {
        padding: 0px 0;
    }
}

.about-bg-cont {
    background-color: #EBF0F4;

    @media (max-width: 1200px) {
        padding: 0px 32px;
    }

    @media (max-width: 768px) {
        padding: 0 16px;
    }
}

/*－－－－－－－－－－－－－－－－－－－－－－*/


/*－－－－－－－－－－代表挨拶－－－－－－－－－－*/
.greeting {
    padding: 120px 0 80px;

    @media (max-width: 1200px) {
        padding: 40px 0;
    }
}

.greeting-cont {
    max-width: 1600px;
    margin: 0 0 0 auto;
}

.greeting-box {
    background-color: #fff;
    padding: 80px;
    position: relative;

    @media (max-width: 1200px) {
        padding: 40px;
    }

    @media (max-width: 768px) {
        padding: 24px 16px;
    }
}

.greeting-item {
    max-width: 1400px;
    margin: 0 auto;
    gap: 40px;

    @media (max-width: 768px) {
        flex-direction: column;
        gap: 0px;
    }
}

.greeting-item .des {
    padding: 0;
}

.greeting-left {
    width: 60%;

    @media (max-width: 768px) {
        order: 2;
        width: 100%;
    }
}

.greeting-right {
    flex: 1;

    @media (max-width: 768px) {
        order: 1;
    }
}

.des {
    line-height: 1.6;

    @media (max-width: 768px) {
        margin-top: 16px;
        padding: 0 16px;
    }
}

.president {
    margin-top: 40px;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 12px;
}

.president-role {
    font-family: "Yuji Syuku", serif;
}

.president-name {
    font-size: clamp(1.25rem, 0.75rem + 1.0417vw, 2rem);
    font-family: "Yuji Syuku", serif;
}

.gradient-box {
    position: absolute;
    top: 85%;
    left: -4%;
    width: 150px;
    height: 150px;
    background: linear-gradient(135deg, #072F4A, #07A8D9);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);

    @media (max-width: 768px) {
        top: 91%;
        left: -2%;
        width: 80px;
        height: 80px;
    }

    @media (max-width: 390px) {
        display: none;
    }
}

/*－－－－－－－－－－組織図－－－－－－－－－－*/
.organization {
    padding: 80px 0;

    @media (max-width: 768px) {
        padding: 24px 0;
    }
}

.organization-box {
    max-width: 1200px;
    margin: 0 auto;
}

.organization-item {
    gap: 64px;

    @media (min-width: 769px) and (max-width: 1200px) {
        gap: 32px;
    }

    @media (max-width: 768px) {
        padding: 0px;
        gap: 16px;
        margin-left: 0px;
        flex-direction: column;
    }
}

.organization-left {
    flex: 1;
}

.organization-right {
    width: 30%;

    @media (min-width: 769px) and (max-width: 1200px) {
        width: 40%;
    }

    @media (max-width: 768px) {
        width: 100%;
    }
}

/*－－－－－－－－－－会社情報－－－－－－－－－－*/
.info {
    padding: 80px 0 0px;

    @media (max-width: 1200px) {
        padding: 40px 0 0;
    }

    @media (max-width: 768px) {
        padding: 40px 0 40px 0;
    }
}

.info-cont {
    max-width: 1600px;
    margin: 0 auto 0 0;
    position: relative;
}

.info-box {
    position: relative;
    background-color: #fff;
    padding: 80px 6.7% 80px 0px;
    z-index: 1;

    @media (min-width: 769px) and (max-width: 1735px) {
        display: flex;
        justify-content: center;
        padding: 120px 40px 80px;
    }

    @media (min-width: 769px) and (max-width: 1200px) {
        flex-direction: column;
        padding: 40px;
    }


    @media (max-width: 768px) {
        padding: 24px 16px;
    }
}

.gradient-box-02 {
    position: absolute;
    top: -4%;
    left: 78%;
    width: 400px;
    height: 400px;
    background: linear-gradient(135deg, #072F4A, #07A8D9);
    z-index: 0;
    pointer-events: none;

    @media (min-width: 1201px) and (max-width: 1735px) {
        left: 85%;
        width: 280px;
        height: 280px;
    }

    @media (min-width: 769px) and (max-width: 1200px) {
        top: -2.5%;
        left: 81%;
        width: 240px;
        height: 240px;
    }

    @media (min-width: 391px) and (max-width: 768px) {
        top: -1.8%;
        left: 85%;
        width: 120px;
        height: 120px;
    }

    @media (max-width:390px) {
        display: none;
    }
}

.info-item {
    width: 100%;
    max-width: 1200px;
    margin: 40px 0 0 auto;

    @media (min-width: 769px) and (max-width: 1735px) {
        margin: 0;
    }
}

.info-table {
    width: 100%;
    border-collapse: collapse;
}

.info-row {
    display: flex;
    border-top: 1px solid #ccc;
    padding: 40px;

    @media (max-width:768px) {
        flex-direction: column;
        gap: 4px;
        padding: 12px 0;
    }
}

.info-row:last-child {
    border-bottom: 1px solid #ccc;
}

.info-col {
    font-size: 16px;

    @media (max-width:768px) {
        padding: 0;
        width: 100%;
        font-size: 15px;
        flex: unset;
    }
}

.info-col.title {
    font-weight: bold;
    width: 30%;

    @media (max-width:768px) {
        width: 100%;
    }
}

/*－－－－－－－－－－事業所案内－－－－－－－－－－*/

.office {
    padding: 80px 0 0;

    @media (max-width: 768px) {
        padding: 40px 0;
    }
}

.office-cont {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
}

.office-box {
    z-index: 1;

    @media (max-width: 768px) {
        padding: 0px 16px;
    }
}

.office-item {
    max-width: 1200px;
    margin: 40px 0 0 auto;

    @media (max-width: 768px) {
        margin: 20px 0 0 0;
    }
}

.office-name p {
    position: relative;
    padding-left: 12px;
    margin-bottom: 20px;
    padding: 16px;
    border-bottom: 1px solid #61616196;
    font-size: 24px;
    color: #072F4A;
    font-weight: 600;
}

.office-name p::before {
    content: "";
    position: absolute;
    left: 0;
    top: 28%;
    bottom: 0;
    width: 3px;
    height: 50%;
    background-color: #072F4A;
}

.office-locate-box {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
    gap: 40px;

    @media screen and (min-width: 769px) and (max-width: 1330px) {
        grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    }

    @media screen and (min-width: 769px) and (max-width: 850px) {
        grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    }

    @media (max-width: 768px) {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
        gap: 24px;
    }

    @media (max-width: 390px) {
        grid-template-columns: none;
        display: flex;
        flex-direction: column;
        gap: 16px;
    }
}

.office-locate {
    flex: 1 1 calc((100% - 40px) / 3);
    box-sizing: border-box;
    min-width: 250px;
    background-color: #fff;
    padding: 32px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);

    @media (max-width: 768px) {
        padding: 16px 40px;
        width: 100%;
        max-width: 300px;
        margin: 0 auto;
    }


    @media (max-width:390px) {
        padding: 16px 40px;
        width: 100%;
        max-width: 240px;
        margin: 0 auto;
    }
}

.office-locate-ttl {
    text-align: center;
    position: relative;
    padding-bottom: 40px;
    font-weight: 600;

    @media (max-width: 768px) {
        padding-bottom: 16px;
    }
}

.office-locate-ttl p {
    font-size: 18px;
}

.office-locate-ttl::after {
    content: "";
    position: absolute;
    bottom: 50%;
    left: 50%;
    transform: translateX(-50%);
    width: 20%;
    height: 3px;
    background-color: #072F4A;

    @media (max-width: 768px) {
        bottom: 25%;
    }
}

.office-icon-cont {
    align-items: center;
    gap: 4px;
    margin-top: 4px;
}

.office-icon {
    width: 100%;
    max-width: 14px;
    display: flex;
    align-items: center;
}

.office-icon-txt a {
    font-weight: 600;
    line-height: 1;
    color: #072F4A;
    text-decoration: none;
    transition: all 0.3s ease;
}

.office-icon-txt a:hover {
    color: #007bff;
    text-decoration: none;
}


/*－－－－－－－－－－事業内容－－－－－－－－－－*/
.business {
    padding: 80px 0;

    @media (min-width: 769px) and (max-width: 1735px) {
        padding: 80px 0 0;
    }

    @media (max-width: 768px) {
        padding: 40px 0;
    }
}

.business-cont {
    max-width: 1440px;
    margin: 0 auto;
    background-color: #fff;
}

.business-box {
    max-width: 1200px;
    margin: 0 auto;
    padding: 80px 0px;
    z-index: 1;
    position: relative;

    @media (min-width: 1201px) and (max-width: 1735px) {}

    @media (min-width: 769px) and (max-width: 1200px) {}

    @media (max-width: 768px) {
        padding: 24px 16px;
    }
}

.business-item-list {
    gap: 32px;

    @media (max-width: 1080px) {
        flex-direction: column;
    }
}

.business-item-img {
    flex: 1;

    @media (max-width: 1080px) {
        max-width: 400px;
        margin: 0 auto;
    }

    @media (max-width: 768px) {
        max-width: 80%;
        margin: 0 auto;
    }
}

.business-item-txt {
    width: 62%;
    gap: 24px;

    @media (max-width: 1080px) {
        width: 80%;
        margin: 0 auto;
    }

    @media (max-width: 768px) {
        flex-direction: column;
        width: 100%;
        gap: 24px;
    }
}

.business-item-txt-left {
    flex: 1;
    flex-direction: column;

    @media (max-width: 768px) {
        gap: 24px;
    }
}

.business-item-txt-right {
    width: 55%;
    flex-direction: column;

    @media (max-width: 1080px) {
        width: 52%;
    }

    @media (max-width: 768px) {
        width: 100%;
        gap: 24px;
    }
}

.business-item-txt-left-item {
    flex-direction: column;
    gap: 4px;
    min-height: 170px;
    position: relative;

    @media (max-width: 768px) {
        min-height: unset;
    }
}

.business-item-txt-left-item::before {
    content: "";
    position: absolute;
    top: -5%;
    left: -5%;
    width: 100%;
    max-width: 200px;
    height: 60%;
    background-color: #269fb211;
    z-index: -1;
    pointer-events: none;

    @media (max-width: 768px) {
        top: 0%;
        left: 38%;
    }
}

.business-item-txt-right-item {
    flex-direction: column;
    gap: 4px;
    min-height: 170px;
    position: relative;

    @media (max-width: 768px) {
        min-height: unset;
    }
}

.business-item-txt-right-item::before {
    content: "";
    position: absolute;
    top: -5%;
    left: -5%;
    width: 100%;
    max-width: 200px;
    height: 60%;
    background-color: #269fb211;
    z-index: -1;
    pointer-events: none;

    @media (max-width: 768px) {
        top: 0%;
        left: 38%;
    }
}

.business-item-main-txt {
    font-size: 18px;
    font-weight: 600;
    border-bottom: 1px solid #333;
    padding: 4px;
    max-width: 79%;

    @media (max-width: 768px) {
        max-width: 100%;
    }
}

.business-item-sub {
    padding-left: 12px;

    li {
        position: relative;
        padding-left: 16px;
        font-size: 14px;
        list-style: none;
    }

    li::before {
        content: "";
        position: absolute;
        left: 5px;
        top: 10px;
        transform: translateY(-50%);
        width: 4px;
        height: 4px;
        background-color: #363636;
        border-radius: 50%;
    }
}

.business-item-sub-ttl {
    font-weight: 500;
    position: relative;
    padding-left: 24px;
}

.business-item-sub-ttl::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 16px;
    height: 16px;
    transform: translateY(-50%);
    background-color: #fff;
    border-radius: 2px;
}


.r-blue::before {
    background-color: #269FB2;
}

.green::before {
    background-color: #26B291;
}

.yellow::before {
    background-color: #B29626;
}

.purple::before {
    background-color: #6226B2;
}

.b-blue::before {
    background-color: #2647B2;
}

.p-red::before {
    background-color: #B22651;
}

.brown::before {
    background-color: #B27126;
}

.r-blue-b::before {
    background-color: #269FB2;
}

.green-b::before {
    background-color: #26b29117;
}

.yellow-b::before {
    background-color: #b2962617;
}

.purple-b::before {
    background-color: #6326b215;
}

.b-blue-b::before {
    background-color: #2647b217;
}

.p-red-b::before {
    background-color: #b2265010;
}

.brown-b::before {
    background-color: #b2712613;
}

/*－－－－－－－－－－沿革－－－－－－－－－－*/
.history {
    padding: 80px 0;

    @media (min-width: 769px) and (max-width: 1735px) {
        padding: 80px 0 0;

    }

    @media (max-width: 768px) {
        padding: 40px 0;
    }
}

.history-cont {
    max-width: 1600px;
    margin: 0 auto 0 0;
    position: relative;
}

.history-box {
    padding: 80px 6.7% 80px 0px;
    z-index: 1;
    background-color: #fff;
    position: relative;
    flex-direction: column;

    @media (min-width: 769px) and (max-width: 1735px) {
        display: flex;
        align-items: flex-end;
        padding: 120px 40px 80px;
    }

    @media (min-width: 769px) and (max-width: 1200px) {
        padding: 40px;
    }

    @media (max-width: 768px) {
        padding: 24px 16px;
    }
}

.history-item {
    width: 100%;
    max-width: 1200px;
    margin: 40px 0 0 auto;

    @media (min-width: 769px) and (max-width: 1735px) {
        margin: 0;
    }

    @media (max-width: 420px) {
        margin: 0;
    }
}

.history-table {
    width: 100%;
    max-width: 1200px;
    border-collapse: collapse;
}

.history-row {
    display: flex;
    border-top: 1px solid #ccc;
    padding: 40px;

    @media (max-width: 768px) {
        display: block;
        padding: 16px 4px;
    }

}

.history-row:last-child {
    border-bottom: 1px solid #ccc;
}

.history-year {
    width: 30%;
    font-weight: bold;
    padding-right: 20px;
    box-sizing: border-box;
}

.history-detail {
    width: 70%;
    line-height: 1.6;
}

/* スマホ対応（1カラムに） */
@media screen and (max-width: 768px) {

    .history-year {
        width: 100%;
        padding-right: 0;
        margin-bottom: 8px;
    }

    .history-detail {
        width: 100%;
    }
}

/*－－－－－－－－－－受賞一覧－－－－－－－－－－*/
.awards {
    padding: 80px 0;

    @media (min-width: 769px) and (max-width: 1735px) {
        padding: 80px 0 0;
    }

    @media (max-width: 768px) {
        padding: 40px 0;
    }
}

.awards-cont {
    max-width: 1600px;
    margin: 0 0 0 auto;
}

.awards-box {
    padding: 80px 0px 80px 6.7%;
    z-index: 1;
    background-color: #fff;
    position: relative;

    @media (min-width: 1201px) and (max-width: 1735px) {
        display: flex;
        justify-content: center;
        padding: 120px 40px 80px;
    }

    @media (min-width: 769px) and (max-width: 1200px) {
        padding: 40px;
    }

    @media (max-width: 768px) {
        padding: 24px 16px;
    }
}

.awards-item {
    width: 100%;
    max-width: 1200px;
    margin: 40px auto 0 0;

    @media (min-width: 769px) and (max-width: 1735px) {
        margin: 0;
    }
}

.awards-table {
    width: 100%;
    max-width: 1200px;
    border-collapse: collapse;
}

.awards-row {
    display: flex;
    border-top: 1px solid #ccc;
    padding: 40px;

    @media (max-width: 768px) {
        display: block;
        padding: 16px 4px;
    }

}

.awards-row:last-child {
    border-bottom: 1px solid #ccc;
}

.awards-year {
    width: 30%;
    font-weight: bold;
    padding-right: 20px;
    box-sizing: border-box;
}

.awards-detail {
    width: 70%;
    line-height: 1.6;
}

/* スマホ対応（1カラムに） */
@media screen and (max-width: 768px) {

    .awards-year {
        width: 100%;
        padding-right: 0;
        margin-bottom: 8px;
    }

    .awards-detail {
        width: 100%;
    }
}

/*－－－－－－－－－－サステナビリティ－－－－－－－－－－*/
.sdgs {
    padding: 40px 16px;
    display: flex;
    flex-direction: column;
    background-color: #ebebeb;

    @media (max-width:768px) {
        padding: 24px 16px;
    }
}

.sdgs-cont {
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px;

    @media (max-width:768px) {
        padding: 8px;
    }
}

.sdgs-box {
    gap: 32px;
    padding: 24px;
    justify-content: center;

    @media (max-width:768px) {
        flex-direction: column;
        padding: 0px;
        gap: 16px;
    }
}

.sdgs-img-box {
    display: flex;
    align-items: center;
    gap: 32px;

    @media (max-width:768px) {
        justify-content: center;
    }
}

.sdgs-img-02 {
    padding-left: 32px;
    border-left: 2px solid #858585;
}

.sdgs-txt-box {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 67%;

    @media (max-width:768px) {
        width: 100%;
    }
}

.sdgs-main-txt {
    font-size: 24px;
    font-weight: 600;
    border-bottom: 1px solid #ccc;
    width: 100%;
    padding: 0 4px 4px;
    margin: 0 0 4px;

    @media (max-width:768px) {
        font-size: 16px;
    }
}

.sdgs-sub-txt {
    font-size: 16px;
    font-weight: 600;

    @media (max-width:768px) {
        width: 101%;
        font-size: 14px;
    }
}

.sdgs-cont {
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px;
    transition: transform 0.3s ease;

    @media (max-width:768px) {
        padding: 0px;
    }
}

.sdgs-cont:hover {
    transform: scale(1.01);
}

.sdgs a {
    display: inline-block;
}


#greeting,
#info,
#organization,
#office,
#history,
#awards {
    scroll-margin-top: 120px;
}