.co-title {
    display: block;
    width: 100%;
    font-size: min(1.4em, 4.5vw);
}

.co-title.l2h {
    min-height: 5lvh;
}

@media screen and (max-width:767px) {
    .co-title.l2h {
        min-height: unset;
    }
}

.mtop-1 {
    margin-top: 1em !important;
}

.mtop-2 {
    margin-top: 2em !important;
}

.mbtm-1 {
    margin-bottom: 1em !important;
}

.mbtm-2 {
    margin-bottom: 2em !important;
}

.flex {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

.text-left {
    text-align: left !important;
}

.sml {
    display: inline-block;
    font-size: .8em;
}

.box-lead {
    font-size: min(.9em, 3.5vw);
}


.flex.columns-2>.box,
.case-list.columns-2>figure {
    width: 48%;
}

.flex.columns-3>.box,
.case-list.columns-3>figure {
    width: 30%;
}

.flex.columns-4>.box,
.case-list.columns-4>figure {
    width: 23%;
}

.flex.columns-5>.box,
.case-list.columns-5>figure {
    width: 30%;
}

.box-wide {
    width: 100%;
}

.box-wide.frame-box {
    margin: 40px auto 60px;
    padding: min(1.5em, 3vw) min(3em, 3vw);
    position: relative;
    border: solid 1px #f8b74a;
}

.box-wide.frame-box .frame-title {
    font-size: min(1.1em, 3.5vw);
    margin-bottom: 1em;
    text-align: center;
}

@media screen and (max-width:767px) {
    .box-wide.structure-wrp .box {
        width: 100%;
    }
}

.box-wide .structure-35 {
    width: 35%;
}

.box-wide .structure-60 {
    width: 60%;
}

.box-wide .structure-title {
    font-size: min(1em, 3.5vw);
    margin-bottom: 1em;
    text-align: center;
}

.box-wide .box-lead {
    font-size: min(.8em, 3vw);
    margin-top: 1em;
}

.box .co-lead {
    font-size: .95em;
    font-weight: 500;
}

.mechanism-step-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1em 0;
    margin-top: 1.2em;
}

.mechanism1-step {
    display: flex;
    width: 100%;
    position: relative;
}

.mechanism1-step::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -1.2rem;
    transform: translateX(-50%);
    width: 20px;
    height: 12px;
    background: var(--brown);
    clip-path: polygon(50% 100%, 0 0, 100% 0);
}

.mechanism1-step:last-child::after {
    display: none;
}

.mechanism1-step:not(:last-child) {
    margin-bottom: 1em;
}

.mechanism1-img-box {
    width: 30%;
}

.mechanism1-txt-box {
    width: calc(70% - 1em);
    font-size: .85em;
    line-height: 1.6;
    margin-left: 1em;
}

.roof-step-list-wrp {
    background-color: #fff;
    padding: min(1.5em, 3vw) min(1.5em, 3vw) .5em;

}

.roof-step-list .mechanism-box {
    position: relative;
    width: 20%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    flex-wrap: wrap;
    padding: 0 .8em;
    position: relative;
}

@media screen and (max-width:767px) {
    .roof-step-list .mechanism-box {
        width: 50%;
        border-bottom: 1px solid #ccc;
        margin-bottom: 1.5em;
        padding-bottom: 1.5em;
    }
}

.roof-step-list .mechanism-box::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2.5em;
    bottom: 0em;
    width: 1px;
    background: #ccc;
}

@media screen and (max-width:767px) {
    .roof-step-list .mechanism-box::before {
        bottom: 1em;
    }
}

.roof-step-list .mechanism-box:first-child::before {
    display: none;
}

@media screen and (max-width:767px) {
    .roof-step-list .mechanism-box:nth-child(odd):before {
        display: none;
    }
}

.roof-step-list .mechanism-box::after {
    content: "";
    position: absolute;
    top: 0.5em;
    right: -.35em;
    width: 0;
    height: 0;
    border-top: .55em solid transparent;
    border-bottom: .55em solid transparent;
    border-left: .7em solid #e49b36;
    z-index: 5;
}

.roof-step-list .mechanism-box:last-child::after {
    display: none;
}


#main .roof-step-list .roof-step-title {
    display: block;
    width: 100%;
    margin: 0 0 .5em;
    padding: 0.3em;
    font-size: min(.9em, 3.5vw);
    font-weight: 500;
    text-align: center;
    background-color: #f3f3f3;
    color: #222;
}

#main .roof-step-list .mechanism-box .box-lead {
    font-size: .8em;
    align-self: flex-start;
    margin: 0 auto;
}

#main .roof-step-list .mechanism-box .box-lead .fig-title {
    display: inline-block;
    border: 1px solid #ccc;
    padding: .5em;
    font-size: .9em;
    line-height: 1.4;
}

@media screen and (max-width:767px) {
    #main .roof-step-list .mechanism-box .box-lead {
        font-size: 3.2vw;
    }
}


.roof-step-list .mechanism-box .image-wrap {
    margin: auto auto 0;
    padding: 1em 1em 0;
    width: 85%;
}

.roofing-wrap {
    background-color: #fff;
    padding: 1em;
}

@media screen and (max-width:767px) {

    .roofing-wrap .structure-60 {
        width: 100%;
    }

    #main .roofing-wrap .structure-35 {
        width: 75%;
        margin: 1em auto 0;
    }

    #main .roofing-mechanism-wrp .structure-60,
    #main .roofing-mechanism-wrp .structure-35 {
        width: 100%;
    }
}