@charset "utf-8";

@media (min-width: 769px) {
    .sub {
        padding-block: 140rem 200rem;
    }
}
@media (max-width: 768px) {
    .sub {
        padding-block: 60rem 140rem;
    }
}
/* section_ttl */
.section_ttl {
    color: var(--color-red);
    filter: drop-shadow(0px 2px 0px var(--color-red)) drop-shadow(2px 0px 0px var(--color-red))
        drop-shadow(-2px 0px 0px var(--color-red)) drop-shadow(0px -2px 0px var(--color-red));
}
.section_ttl_en {
    letter-spacing: 0.05em;
    position: relative;
    z-index: 1;
}
.section_ttl_jp {
    letter-spacing: -0.03em;
    display: inline-block;
    background-color: var(--color-white);
    position: relative;
}
@media (min-width: 769px) {
    .section_ttl_en {
        font-size: 56rem;
        line-height: 1.5;
    }
    .section_ttl_en_pc {
        display: inline-block;
        background-color: var(--color-white);
        padding-inline: 24rem;
        position: relative;
        white-space: nowrap;
    }
    .section_ttl_en .section_ttl_en_pc:nth-of-type(n + 2) {
        margin-top: -24rem;
        padding-top: 0;
    }
    .section_ttl_jp {
        font-size: 28rem;
        line-height: 1.77;
        padding: 0 24rem 7rem;
        margin-top: -24rem;
    }
}
@media (max-width: 768px) {
    .section_ttl_en {
        font-size: 42rem;
        line-height: 1;
    }
    .section_ttl_en_sp {
        display: inline-block;
        background-color: var(--color-white);
        padding: 6rem 19rem 7rem 15rem;
        position: relative;
        white-space: nowrap;
    }
    .section_ttl_en .section_ttl_en_pc:nth-of-type(1) .section_ttl_en_sp:nth-of-type(n + 2),
    .section_ttl_en .section_ttl_en_pc:nth-of-type(n + 2) .section_ttl_en_sp {
        padding-top: 0;
        margin-top: -7rem;
    }
    .section_ttl_jp {
        font-size: 18rem;
        line-height: 1.8;
        padding: 5rem 19rem 5rem 15rem;
        margin-top: -11rem;
    }
}

/* section_ttl animation */
.section_ttl_jp {
    overflow: hidden;
}
.section_ttl_jp::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    background-color: var(--color-red);
}
.section_ttl_jp::after {
    transition: width 0.5s;
    will-change: width;
}
.animation_loaded .section_ttl_jp::after {
    width: 0%;
}
@media (min-width: 769px) {
    .section_ttl_en_pc {
        overflow: hidden;
    }
    .section_ttl_en_pc::after {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        background-color: var(--color-red);
    }
    .section_ttl_en_pc::after {
        transition: width 0.5s;
        will-change: width;
    }
    .animation_loaded .section_ttl_en_pc::after {
        width: 0%;
    }
}
@media (max-width: 768px) {
    .section_ttl_en_sp {
        overflow: hidden;
    }
    .section_ttl_en_sp::after {
        content: '';
        display: block;
        position: absolute;
        top: 0;
        right: 0;
        width: 100%;
        height: 100%;
        background-color: var(--color-red);
    }
    .section_ttl_en_sp::after {
        transition: width 0.5s;
        will-change: width;
    }
    .animation_loaded .section_ttl_en_sp::after {
        width: 0%;
    }
}
/* アニメーションはwidthで（clip-path、translateだと行間に線が出る） */

/* btn_back */
.btn_back_wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20rem;
}
.btn_back {
    background-color: var(--color-white);
    color: var(--color-red);
    text-align: center;
    display: block;
    border: 2rem solid var(--color-red);
    font-size: 18rem;
}
@media (min-width: 769px) {
    .btn_back {
        width: 364rem;
        padding: 18rem;
    }
}
@media (max-width: 768px) {
    .btn_back {
        width: 100%;
        padding: 18rem 10rem;
    }
}

/* link_circle */
.links_list {
    display: flex;
    flex-wrap: wrap;
}
.link_circle_list li {
    display: flex;
    flex-direction: column;
    gap: 30rem;
}
.link_circle_list_1 {
    --link-circle-color: var(--color-blue);
}
.link_circle_list_2 {
    --link-circle-color: var(--color-purple);
}
.link_circle_list_3 {
    --link-circle-color: var(--color-pink);
}
.link_circle_list_4 {
    --link-circle-color: var(--color-green);
}
.link_circle_list_1 .link_circle::before {
    background: var(--gradation-3);
}
.link_circle_list_2 .link_circle::before {
    background: var(--gradation-7);
}
.link_circle_list_3 .link_circle::before {
    background: var(--gradation-1);
}
.link_circle_list_4 .link_circle::before {
    background: var(--gradation-5);
}
.link_circle {
    width: 100%;
    height: 0;
    padding-top: 100%;
    position: relative;
    display: block;
}
.link_circle::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}
.link_circle_img_wrap {
    width: calc(222 / 365 * 100%);
    height: calc(222 / 365 * 100%);
    position: absolute;
    inset: 0;
    margin: auto;
    z-index: 1;
    border-radius: 50%;
    overflow: hidden;
}
.link_circle_img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.link_circle_label_area {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
    color: var(--link-circle-color);
}
.link_circle_tag {
    display: inline-block;
    background-color: var(--color-white);
}
.link_circle_label {
    display: inline-block;
    background-color: var(--color-white);
}
.link_circle_txt {
    line-height: 1.8;
}
.index_link_btn {
    width: 100%;
    line-height: 1.36;
    color: var(--link-circle-color);
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.index_link_btn_arrow_path {
    stroke: var(--link-circle-color);
}
.links_list .icon_blank_path {
    stroke: var(--link-circle-color);
}
.index_link_btn_blank {
    display: flex;
    align-items: center;
}
@media (min-width: 769px) {
    .link_circle_list {
        --link-circle-list-gap: 32rem;
        gap: 80rem var(--link-circle-list-gap);
        flex-wrap: wrap;
    }
    .link_circle_list li {
        --circle-width: 365rem;
        width: var(--circle-width);
        justify-content: space-between;
    }
    .link_circle_label_area {
        filter: drop-shadow(0px 2px 0px var(--link-circle-color)) drop-shadow(2px 0px 0px var(--link-circle-color))
            drop-shadow(-2px 0px 0px var(--link-circle-color)) drop-shadow(0px -2px 0px var(--link-circle-color));
    }
    .link_circle_tag {
        font-size: 16rem;
        line-height: 1.32em;
        padding: 10rem 14rem;
    }
    .link_circle_label {
        font-size: 26rem;
        line-height: 1.77;
        padding: 3rem 22rem 3rem 10rem;
        white-space: nowrap;
    }
    .link_circle_label + br + .link_circle_label {
        margin-top: -3rem;
    }
    .link_circle_txt {
        font-size: 16px;
        margin-top: 21px;
        min-height: 87px;
    }
    .index_link_btn {
        padding: 8rem 20rem;
        min-height: 56rem;
        font-size: 14rem;
        gap: 20rem;
        border-left: 2rem solid var(--link-circle-color);
        border-bottom: 2rem solid var(--link-circle-color);
    }
    .index_link_btn_arrow {
        min-width: 68rem;
        margin-top: -3rem;
    }
    .links_list .icon_blank {
        width: 20rem;
        margin-left: 4rem;
    }
}
@media (max-width: 768px) {
    .link_circle_list {
        gap: 80rem;
        flex-direction: column;
    }
    .other_links_list {
        gap: 40rem;
    }
    .link_circle_list li {
        width: 100%;
    }
    .link_circle_label_area {
        filter: drop-shadow(0px 2rem 0px var(--link-circle-color)) drop-shadow(2rem 0px 0px var(--link-circle-color))
            drop-shadow(-2rem 0px 0px var(--link-circle-color)) drop-shadow(0px -2rem 0px var(--link-circle-color));
    }
    .link_circle_tag {
        font-size: 14rem;
        line-height: 1.32em;
        padding: 10rem 12rem;
    }
    .link_circle_label {
        font-size: 22rem;
        line-height: 1.8;
        padding: 3rem 10rem;
    }
    .link_circle_label + br + .link_circle_label {
        margin-top: -3rem;
    }
    .link_circle_txt {
        font-size: 16rem;
        margin-top: 21rem;
    }
    .index_link_btn {
        padding: 9rem 18rem;
        min-height: 56rem;
        font-size: 14rem;
        gap: 20rem;
        border-left: 2rem solid var(--link-circle-color);
        border-bottom: 2rem solid var(--link-circle-color);
    }
    .index_link_btn_arrow {
        min-width: 40rem;
    }
    .links_list .icon_blank {
        width: 18rem;
        margin-left: 8rem;
    }
}
/* link_circle animation */
@media (min-width: 769px) {
    @media (hover: hover) {
        .links_list a .link_circle::before {
            transition: var(--roll-transition);
        }
        .links_list a:hover .link_circle::before {
            rotate: 180deg;
        }
        .link_circle_img {
            transition: scale 0.3s;
        }
        .links_list a:hover .link_circle_img {
            scale: 1.1;
        }
    }
}

/* special */
.special_circle_list li {
    --link-circle-color: var(--color-red);
}
.link_circle_agri::before {
    background: var(--gradation-1);
}
.link_circle_copper::before {
    background: var(--gradation-3);
}
.link_circle_energy::before {
    background: var(--gradation-5);
}
.link_circle_clean_beauty::before {
    background: var(--gradation-7);
}
.link_circle_africa::before {
    background: var(--gradation-2);
}
.link_circle_infra_fund::before {
    background: var(--gradation-4);
}
.link_circle_philippines::before {
    background: var(--gradation-6);
}
.link_circle_car::before {
    background: var(--gradation-8);
}
