section:not(#firstview){
    margin: 100px 5% 0 5%;
}
section h2{
    font-weight: 600;
    letter-spacing: 0.2em;
    width: fit-content;
    padding-right: 5em;
    position: relative;
    margin-bottom: 30px;
}
section h2::before{
    content: "";
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    background: rgb(50, 50, 50);
    width: 5em;
    height: 1px;
}
section h2 span{
    display: block;
}
/*--------------------------------------------
min-width 810
--------------------------------------------*/
@media (min-width: 810px) {
    h2 span{
        display: inline-block;
    }
    .section-cover{
        display: flex;
        gap: 50px;
        margin: 100px 5%;
    }
    .section-cover > *{
        width: calc(50% - 25px);
    }
}
/*--------------------------------------------
min-width 1080
--------------------------------------------*/
@media (min-width: 1080px) {
    section:not(#firstview){
        padding: 100px 0;
    }
    .section-cover{
        margin: 0 calc((100% - 1080px) / 2) !important;
    }
}
/*--------------------------------------------

firstview

--------------------------------------------*/
#firstview{
    background-image: url(../images/company/first_view.webp);
    background-color:rgba(255,255,255,0.8);
    background-blend-mode:lighten;
    background-size: 70%;
    background-position: left bottom;
    background-repeat: no-repeat;
    height: 100vh;
    height: 100lvh;
    position: relative;
}
#firstview div{
    width: fit-content;
    margin: 0 auto;
    text-align: center;
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
}
#firstview div h1{
    font-size: 1rem;
    width: fit-content;
    margin: 5% auto;
    font-weight: 400;
    letter-spacing: 1em;
    text-indent: 1em;
}
#firstview div p{
    letter-spacing: 0.2em;
}
#firstview dl{
    width: 75%;
    margin: 5% 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0 5% 5% 0;
    position: absolute;
    bottom: 0;
    right: 0;
}
#firstview dl img{
    width: 30%;
    display: block;
    margin: 0 auto;
}
#firstview dt{
    text-align: center;
    font-weight: 500;
    margin: 5% auto;
}
#firstview dd{
    font-size: 0.7rem;
}
#firstview dd.caption{
    line-height: 1.6em;
    width: 90%;
    margin: 0 auto;
    text-indent: 1em;
}
#firstview dd.post ,#firstview dd.name{
    text-align: right;
}
#firstview dd.post{
    margin-top: 5%;
}
/*--------------------------------------------
min-width 600
--------------------------------------------*/
@media (min-width: 600px) {
    #firstview{
        background-size: 300px;
    }
}
/*--------------------------------------------
min-width 810
--------------------------------------------*/
@media (min-width: 810px) {
    #firstview{
        background-image: url(../images/company/first_view_pc.webp);
        background-size: 50%;
    }
    #firstview dl img{
        width: 70px;
    }
    #firstview dt{
        font-size: 1.2rem;
        letter-spacing: 0.2em;
        text-indent: 0.2em;
    }
    #firstview dd{
        font-size: 0.9rem;
    }
    #firstview dd.caption{
        width: 100%;
    }
}
/*--------------------------------------------
min-width 1080
--------------------------------------------*/
@media (min-width: 1080px) {
    #firstview{
        background-image: url(../images/company/first_view_pc.webp);
        background-size: 500px;
        margin: 0 calc((100% - 1080px) / 2) 100px calc((100% - 1080px) / 2) !important;
    }
}

/*--------------------------------------------

history

--------------------------------------------*/
#history .content{
    display: flex;
    flex-direction: column;
    gap: 30px;
}
#history .content .detail{
    display: flex;
    gap: 50px;
}
#history .content .detail .caption{
    display: flex;
    flex-direction: column;
    gap: 10px;
    position: relative;
}
#history .content .detail .caption::after{
    content: "";
    position: absolute;
    top: 15px;
    left: -26.5px;
    width: 2px;
    height: calc(100% + 17px);
    background: rgb(50, 50, 50);
}
#history .content .detail:last-of-type .caption::before{
    content: "";
    height: 20px;
    width: 2px;
    position: absolute;
    bottom: 0;
    left: -26.5px;
    transform: rotate(-45deg);
    background: rgb(50, 50, 50);
    transform-origin: bottom center;
}
#history .content .detail:last-of-type .caption::after{
    height: calc(100% - 15px);
}
#history .content .detail .caption .mark::before{
    content: "";
    position: absolute;
    top: 2px;
    left: -32.5px;
    width: 15px;
    aspect-ratio: 1 / 1;
    background: rgb(50, 50, 50);
    border-radius: 50%;
}
#history .content .detail .img{
    display: flex;
    gap: 10px;
    justify-content: space-around;
}
#history .content .detail .img .staff{
    width: calc(35% - 5px);
}
#history .content .detail .img .staff-2{
    width: calc(40% - 5px);
}
#history .content .detail .img .history{
    width: calc(65% - 5px);
    aspect-ratio: 16 / 9;
    object-fit: contain;
}
#history .content .detail .img .history-2{
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center 85%;
}
/*--------------------------------------------
min-width 810
--------------------------------------------*/
@media (min-width: 810px) {
    #history .content{
        flex-direction: row;
        flex-wrap: wrap;
        align-items: stretch;
    }
    #history .content .detail{
        width: calc(45% - 25px);
        flex-direction: column;
    }
    #history .content .detail:nth-child(3) {
        margin: 0 0 0 auto;
    }
    #history .content .detail .caption{
        justify-content: space-between;
        height: 100%;
    }
    #history .content .detail .caption::after{
        height: 2px;
        left: 0px;
        top: -26.5px;
    }
    #history .content .detail:last-of-type .caption::after{
        height: 2px;
    }
    #history .content .detail:nth-of-type(odd) .caption:after{
        width: calc(100% + 30px);
    }
    #history .content .detail:nth-of-type(even) .caption:after{
        width: 100%;
    }
    #history .content .detail:nth-of-type(even) .caption::before{
        content: "";
        height: 2px;
        width: 20px;
        position: absolute;
        bottom: auto;
        top: -26.5px;
        left: auto;
        right: 0;
        transform: rotate(45deg);
        background: rgb(50, 50, 50);
        transform-origin: bottom right;
    }
    #history .content .detail .caption .mark::before{
        left: 0;
        top: -32.5px;
    }
}
/*--------------------------------------------
min-width 1080
--------------------------------------------*/
@media (min-width: 1080px) {
    #history{
        margin: 0 calc((100% - 1080px) / 2) !important;
    }
}
/*--------------------------------------------
min-width 1200
--------------------------------------------*/
@media (min-width: 1200px) {
    #history{
        margin: 0 calc((100% - 1200px) / 2) !important;
    }
    #history h2{
        margin: 0 calc((100% - 1080px) / 2) 30px calc((100% - 1080px) / 2);
    }
    #history .content .detail{
        width: calc(40% - 25px);
    }
}

/*--------------------------------------------

info

--------------------------------------------*/
#info dl{
    border: solid 1px rgb(50, 50, 50);
    width: 100%;
}
#info dl div{
    display: flex;
    align-items: center;
    background: rgb(50, 50, 50);
}
#info dl dt{
    color: rgb(255, 255, 255);
    width: calc(4em + 40px);
    padding: 10px 20px;
    white-space: nowrap;
    display: flex;
    justify-content: space-between;
    border-bottom: solid 1px rgb(255, 255, 255);
    height: 100%;
}
#info dl div:last-of-type dt{
    border-bottom: none;
}
#info dl dd{
    padding: 10px;
    border-bottom: solid 1px rgb(50, 50, 50);
    width: calc(100% - 4em - 40px);
    background: rgb(255, 255, 255);
}
#info dl div:last-of-type dd{
    border-bottom: none;
}
/*--------------------------------------------
min-width 810
--------------------------------------------*/
@media (min-width: 810px) {
    #info{
        margin: 0 !important;
    }
}

/*--------------------------------------------

media

--------------------------------------------*/
#media dl{
    display: flex;
    flex-direction: column;
    gap: 50px;
}
#media dl div{
    display: flex;
    flex-direction: column;
    gap: 20px;
}
#media img{
    width: 100%;
    aspect-ratio: 16 / 9;
}
#media .cover img{
    object-fit: cover;
}
#media .contain img{
    object-fit: contain;
}
/*--------------------------------------------
min-width 810
--------------------------------------------*/
@media (min-width: 810px) {
    #media{
        margin: 0 !important;
    }
}