@charset "UTF-8";
/* CSS Document */
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@100..900&display=swap');
:root {
    --sp_w  : calc(337/375 * 100%);
    --max_w : 1200px;
    --scale : scale(1.1);
    --duration : 0.3s;
    --line_01 : 1px solid var(--gray_05);
    --line_02 : 1px solid var(--gray_06);
    --gray_01       : #FAFAFA;
    --gray_02       : #F5F5F5;
    --gray_03       : #F2F2F2;
    --gray_04       : #B2B2B2;
    --gray_05       : #E5E5E5;
    --gray_06       : #CCCCCC;
    --red_01        : #A11D3D;
    --red_02        : #D8173B;
    --red_03        : #F56A70;
    --pink_01       : #FFDDE3;
    --pink_02       : #FFEEF1;
    --brown_01      : #C78802;
    --beige_01      : #F5EEE3;
    --aquamarine_01 : #D6FBED;
    --yellow_01     : #FFF6CA;
}
/* animation ********************/
@keyframes bound {
    0%   { transform: scale(0); }
    100% { transform: scale(1); }
}
@keyframes underline {
    0%   { width: 0%; }
    100% { width: 100%; }
}
/* common ***********************/
body:has(#sustainability) footer #footer-list {
    margin-top: 0;
}
#sustainability {
    font-family: "Noto Sans JP", sans-serif;
    font-size: 16px;
    text-align: left;
    /* content ************/
    #content {
        margin-top: 30px;
        padding-bottom: 90px;
    }
    @media only screen and (min-width:680px) {
        #content {
            margin-top: 100px;
            padding-bottom: 145px;
        }
    }
    /**********************/
    /****/
    .lh_16 {
        line-height: 1.6;
    }
    * {
        font-size: unset;
        vertical-align: unset;
        line-height: 1.8;
        text-align: justify;
    }
    @media only screen and (min-width:680px) {
        * {
            line-height: 2;
        }
    }
    .indent {
        position: relative;
        overflow: hidden;
        /****/
        > .text {
            display: block;
            text-indent: 150%;
            white-space: nowrap;
            overflow: hidden;
            position: absolute;
            top: 0px;
            left: 0px;
        }
    }
    img {
        margin: 0;
        padding: 0;
        border-style: none;
        width: 100%;
        height: auto;
        vertical-align: bottom;
        display: inline;
    }
    .weight_sb {
        font-weight: 600;
    }
    .weight_m {
        font-weight: 500;
    }
    .w_base {
        width: var(--sp_w);
        max-width: var(--max_w);
        margin: 0 auto 0 auto;
    }
    /* a ******************/
    a {
        color: #000000;
        /****/
        img:hover {
            animation: none;
        }
        &:has(.underline)::after {
            content: "";
            display: inline-block;
            aspect-ratio: 1/1;
            width: 16px;
            margin: 0 0 -0.1em 0.5em;
            background: url(../images/sustainability/common/maru_g_32.svg) center center/contain no-repeat;
        }
        &[target="_blank"]::after {
            content: "";
            display: inline-block;
            aspect-ratio: 1/1;
            width: 16px;
            margin: 0 0 -0.1em 0.5em;
            background: url(../images/sustainability/common/out_icn.svg) center center/contain no-repeat;
        }
        &[href$=".pdf"]::after {
            content: "";
            display: inline-block;
            aspect-ratio: 18/30;
            width: 16px;
            margin: 0 0 -0.5em 0.5em;
            background: url(../images/sustainability/common/icon_pdf.svg) center center/contain no-repeat;
        }
        /* underline **********/
        .underline {
            text-decoration: underline;
            text-decoration-color: var(--red_02);
            text-decoration-thickness: 2px;
            text-underline-offset: 0.3em;
            transition: var(--duration) all;
            /****/
            &.none {
                text-decoration: none;
            }
        }
        &:hover .underline {
            text-decoration-color: var(--gray_06);
        }
        /**********************/
        /* button1 ************/
        &.button1 {
            padding: 0.3em 32px 0.3em 32px;
            display: inline-flex;
            flex-flow: wrap;
            justify-content: center;
            align-items: center;
            border-radius: 46px;
            min-height: 46px;
            min-width: 220px;
            color: #FFFFFF;
            font-weight: 500;
            background-color: #D50A30;
            transition: var(--duration) all;
            /****/
            * {
                line-height: 1.6;
            }
            &::after {
                display: none;
            }
            span {
                &::after {
                    content: "";
                    display: inline-block;
                    aspect-ratio: 1/1;
                    width: 15px;
                    height: auto;
                    position: static;
                    margin: 0 0 -0.05em 10px;
                    background: url(../images/sustainability/common/yaji_wh_19.svg) center center/contain no-repeat;
                    transition: var(--duration) all;
                }
            }
            &:hover {
                background-color: #ff0d3a;
                /****/
                span::after {
                    transform: translateX(10px);
                    width: 15px;
                    height: auto;
                }
            }
            &.big {
                border-radius: 90px;
                min-height: 90px;
                font-weight: 600;
            }
            @media only screen and (min-width:680px) {
                &.big {
                    min-width: 450px;
                }
            }
        }
        /**********************/
        /* button2 ************/
        &.button2 {
            display: flex;
            flex-flow: nowrap;
            column-gap: 15px;
            justify-content: space-between;
            align-items: center;
            padding: 15px;
            border: var(--line_01);
            background-color: var(--gray_02);
            min-height: 80px;
            width: 100%;
            transition: var(--duration) all;
            /****/
            * {
                line-height: 1.6;
            }
            *:nth-child(1) {
                width: calc(100% - 28px - 15px);
                /****/
                &::after {
                    display: none;
                }
            }
            &::after {
                margin: 0;
                aspect-ratio: 1/1;
                width: 28px;
                background: url(../images/sustainability/common/maru_g_32.svg) center center/contain no-repeat;
                transition: var(--duration) all;
            }
            &:hover {
                background-color: var(--gray_01);
                /****/
                &::after {
                    transform: translateX(7px);
                }
            }
            .thumbnail {
                display: flex;
                flex-flow: nowrap;
                align-items: center;
                justify-content: space-between;
                transition: var(--duration) all;
                /****/
                img {
                    width: 100%;
                    max-width: none;
                }
                * {
                    width: calc(100% - 15px - 84px);
                }
                .img {
                    width: 84px;
                    overflow: hidden;
                    position: relative;
                    /****/
                    img {
                        transition: var(--duration) all;
                    }
                    .name {
                        position: absolute;
                        display: flex;
                        flex-flow: wrap;
                        align-items: center;
                        height: 100%;
                        top: 0;
                        left: 0;
                    }
                }
            }
            &.type2 {
                display: block;
                padding: 0;
                border: none;
                background-color: rgb(255, 255, 255, 0);
                min-height: auto;
                /****/
                &::after {
                    display: none;
                }
                .thumbnail {
                    width: 100%;
                    flex-flow: column;
                    /****/
                    * {
                        width: 100%;
                    }
                    .text {
                        margin: 0 auto 0 auto;
                        padding: 10px calc(22px + 20px) 10px 0;
                        position: relative;
                        /****/
                        &::after {
                            content: "";
                            display: block;
                            aspect-ratio: 1/1;
                            width: 22px;
                            background: url(../images/sustainability/common/maru_g_32.svg) center center/contain    no-repeat;
                            position: absolute;
                            top: calc(50% - 22px/2);
                            right: 0;
                            transition: var(--duration) all;
                        }
                    }
                }
                &:hover {
                    /****/
                    .thumbnail {
                        /****/
                        > .img {
                            /****/
                            img {
                                transform: var(--scale);
                            }
                            .name img {
                                transform: scale(1);
                            }
                        }
                        .text::after {
                            transform: translateX(7px);
                        }
                    }
                }
            }
        }
        @media only screen and (min-width:680px) {
            &.button2 {
                padding: 30px;
                column-gap: 30px;
                min-height: 120px;
                /****/
                &::after {
                    animation: none;
                    width: 32px;
                }
                .thumbnail {
                    /****/
                    * {
                        width: calc(100% - 50px - 263px);
                    }
                    .img {
                        width: 263px;
                    }
                }
                &.type2 .thumbnail {
                    /****/
                    * {
                        font-size: 18px;
                    }
                    .img {
                        width: 100%;
                    }
                    .text {
                        width: calc(100% - 10px - 10px);
                        padding: 15px calc(30px + 15px) 15px 0;
                        /****/
                        &.center {
                            text-align: center;
                            padding-left: calc(30px + 15px);
                        }
                        &::after {
                            width: 30px;
                            top: calc(50% - 30px/2);
                        }
                    }
                }
            }
        }
        /**********************/
    }
    /**********************/
    /* #bread-crumb *******/
    #bread-crumb {
        display: none;
        /****/
        * {
            font-size: 13px;
            margin-top: 5px;
        }
    }
    @media only screen and (min-width:680px) {
        #bread-crumb {
            display: block;
            max-width: var(--max_w);
            margin-top: 20px;
        }
    }
    /**********************/
    /* title **************/
    .title2 {
        font-size: 24px;
        font-weight: 500;
    }
    @media only screen and (min-width:680px) {
        .title2 {
            font-size: 32px;
        }
    }
    /**********************/
    /* link_grid **********/
    .link_grid {
        display: flex;
        flex-flow: column;
        row-gap: 15px;
    }
    @media only screen and (min-width:680px) {
        .link_grid {
            flex-flow: wrap;
            column-gap: calc(((1200 - 370*3)/2)/1200 * 100%);
            row-gap: 40px;
            /****/
            > a {
                width: calc(370/1200 * 100%);
            }
        }
    }
    /**********************/
    .box_01 {
        border: var(--line_01);
        background-color: #FFFFFF;
    }
    .box_02 {
        border: var(--line_02);
        background-color: #FFFFFF;
    }
    .box_03 {
        border: var(--line_01);
        background-color: var(--gray_02);
    }
    strong {
        font-weight: normal;
        color: var(--red_02);
    }
    /********************/
    /* page_title *******/
    #page_title {
        display: flex;
        flex-flow: wrap;
        align-items: center;
        min-height: 80px;
        padding: 0.5em 0 0.5em 0;
        border-bottom: var(--line_02);
        /****/
        .title h1 {
            font-size: 20px;
        }
    }
    @media only screen and (min-width:680px) {
        #page_title {
            min-height: 297px;
            /***/
            .title h1 {
                font-size: 36px;
                /****/
                &.big {
                    font-size: 46px;
                }
            }
        }
    }
    &:has(#header_cover) #page_title {
        border: none;
    }
    /********************/
    /* header_cover *****/
    #header_cover {
        position: relative;
        /****/
        .front {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
        }
        .copy {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            display: flex;
            flex-flow: wrap;
            justify-content: center;
            align-items: center;
            /****/
            >* {
                width: calc(337/375 * 100%);
            }
        }
    }
    @media only screen and (min-width:680px) {
        #header_cover {
            /****/
            .copy {
                justify-content: flex-start;
                align-items: flex-end;
                /****/
                >* {
                    width: calc(922/1350 * 100%);
                }
            }
        }
    }
    /********************/
    /* size18 ***********/
    .size18 {
        font-size: 18px;
    }
    /********************/
    /* p.copy *************/
    @media only screen and (min-width:680px) {
        p.copy {
            font-size: 18px;
            width: calc(768/1200 * 100%);
            margin: 0 auto 0 auto;
        }
    }
    /**********************/
    /* signature **********/
    .signature .name {
        display: flex;
        flex-flow: column;
        row-gap: 0px;
        /****/
        .lh_16 {
            font-size: 24px;
        }
    }
    @media only screen and (min-width:680px) {
        .signature .name {
            /****/
            .lh_16 {
                font-size: 32px;
            }
        }
    }
    /**********************/
    /* main_img ***********/
    .main_img {
        margin: 0 calc(50% - 50vw) 0 calc(50% - 50vw);
    }
    @media only screen and (min-width:680px) {
        .main_img {
            margin: 0;
            /****/
            &.full {
                margin: 0 calc(50% - 50vw) 0 calc(50% - 50vw);
            }
        }
    }
    /**********************/
    /* flex_link_grid *****/
    .flex_link_grid {
        margin-top: 60px;
        display: flex;
        flex-flow: column;
        row-gap: calc(30px + 1px + 30px);
        /****/
        >.block {
            display: flex;
            flex-flow: column;
            row-gap: 40px;
            position: relative;
            /****/
            &:nth-of-type(n+2)::before {
                content: "";
                display: block;
                width: 100%;
                border-bottom: var(--line_02);
                position: absolute;
                top: calc(-30px - 1px);
                left: 0;
            }
            >h2 {
                font-size: 24px;
            }
        }
    }
    @media only screen and (min-width:680px) {
        .flex_link_grid {
            margin-top: 100px;
            row-gap: calc(35px + 1px + 35px);
            /****/
            >.block {
                row-gap: 30px;
                /****/
                &:nth-of-type(n+2)::before {
                    top: calc(-35px - 1px);
                }
            }
        }
    }
    /**********************/
    /* dl.base ************/
    dl.base {
        display: flex;
        flex-flow: column;
        row-gap: 60px;
        /****/
        >.block {
            display: flex;
            flex-flow: column;
            row-gap: 20px;
            /****/
            >dt {
                font-size: 24px;
                line-height: 1.6;
                /****/
                * {
                    line-height: 1.6;
                }
            }
        }
        &.number {
            counter-reset: number 0;
            /****/
            >.block>dt {
                display: flex;
                flex-flow: nowrap;
                &::before {
                    white-space: nowrap;
                    counter-increment: number 1;
                    content: counter(number)".";
                }
            }
            &.type2>.block>dt {
                column-gap: 0.5em;
                /****/
                &::before {
                    counter-increment: number 1;
                    content: counter(number);
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        dl.base {
            row-gap: 70px;
            /****/
            >.block {
                row-gap: 40px;
                /****/
                >dt {
                    font-size: 32px;
                }
            }
        }
    }
    /**********************/
    /* dl.simple **********/
    dl.simple {
        display: flex;
        flex-flow: wrap;
        justify-content: center;
        row-gap: 30px;
        /****/
        >dt {
            font-size: 24px;
        }
        >dd {
            width: 100%;
            display: flex;
            flex-flow: wrap;
            justify-content: center;
        }
    }
    @media only screen and (min-width:680px) {
        dl.simple {
            row-gap: 40px;
        }
    }
    /**********************/
    /* dl.line ************/
    dl.line {
        display: flex;
        flex-flow: column;
        row-gap: 60px;
        /****/
        >.block {
            display: flex;
            flex-flow: column;
            row-gap: 20px;
            /****/
            >dt {
                font-size: 20px;
                font-weight: 500;
                display: flex;
                flex-flow: nowrap;
                align-items: flex-start;
                justify-content: space-between;
                /****/
                * {
                    line-height: 1.6;
                }
                &::before {
                    content: "";
                    display: block;
                    width: 22px;
                    height: 4px;
                    background-color: #D50A30;
                    margin-top: 0.8em;
                }
                >div {
                    width: calc(100% - 22px - 18px);
                }
                .small {
                    font-size: 16px;
                    margin-left: 1em;
                }
            }
        }
        &:has(.number) {
            counter-reset: number 0;
            /****/
            >.block>dt>.number {
                display: flex;
                flex-flow: nowrap;
                /****/
                &::before {
                    counter-increment: number 1;
                    content: counter(number)".";
                }
                &.type2::before {
                    counter-increment: number 1;
                    content: "（"counter(number)"）";
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        dl.line {
            row-gap: 60px;
            /****/
            >.block {
                row-gap: 30px;
                /****/
                >dt {
                    /****/
                    &::before {
                        margin-top: 0.9em;
                    }
                    * {
                        font-size: 24px;
                    }
                }
            }
        }
    }
    /**********************/
    /* dl.separator *******/
    dl.separator {
        display: flex;
        flex-flow: column;
        /****/
        &.number {
            counter-reset: number 0;
            /****/
            >.block>dt::before {
                counter-increment: number 1;
                content: "（" counter(number)"）";
            }
            &.type2>.block>dt::before {
                content: counter(number)".";
            }
            &.type3>.block>dt {
                column-gap: 0.5em;
                &::before {
                    content: counter(number);
                }
            }
        }
        &.style2 {
            row-gap: 30px;
            >.block {
                padding: 0;
                border: none;
                row-gap: 0;
                /****/
                >dt {
                    font-size: 16px;
                    font-weight: 400;
                }
            }
        }
        >.block {
            display: flex;
            flex-flow: column;
            row-gap: 15px;
            border-top: var(--line_02);
            padding: 25px 0 25px 0;
            /****/
            &:nth-last-of-type(1) {
                padding-bottom: 0;
            }
            >dt {
                font-size: 18px;
                font-weight: 500;
                display: flex;
                flex-flow: nowrap;
            }
        }
    }
    @media only screen and (min-width:680px) {
        dl.separator {
            /****/
            &.style2 {
                >.block {
                    flex-flow: column;
                    > * {
                        padding: 0;
                        border: none;
                        width: 100%;
                    }
                    &:nth-of-type(1)>dt {
                        border: none;
                    }
                }
            }
            >.block {
                border: none;
                padding: 0;
                flex-flow: nowrap;
                align-items: stretch;
                justify-content: space-between;
                /****/
                >* {
                    padding: 35px 0 35px 0;
                }
                &:nth-of-type(1)>dt {
                    border-top: var(--line_02);
                }
                >dt {
                    width: calc(400/1200 * 100%);
                    border-bottom: var(--line_02);
                }
                >dd {
                    width: calc(760/1200 * 100%);
                }
            }
        }
    }
    /**********************/
    /* dl.table ***********/
    dl.table {
        display: table;
        /****/
        >.block {
            display: table-row;
            /****/
            >* {
                display: table-cell;
            }
            >dt {
                white-space: nowrap;
                text-align-last:justify;
            }
            >dd {
                display: flex;
                flex-flow: nowrap;
                &::before {
                    content: "：";
                    margin: 0 0.3em 0 0.3em;
                }
            }
        }
        &.type2>.block {
            /****/
            >* {
                display: block;
            }
            >dt {
                text-align-last: left;
                /****/
                &::before {
                    content: "・";
                    display: inline-flex;
                    justify-content: center;
                    width: 1em;
                }
            }
            >dd {
                padding-left: 1em;
                /****/
                &::before {
                    display: none;
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        dl.table {
            /****/
            &.type2>.block {
                /****/
                >* {
                    display: table-cell;
                }
                >dt {
                    text-align-last: justify;
                    /****/
                    &::before {
                        display: none;
                    }
                }
                >dd {
                    padding-left: 0;
                    /****/
                    &::before {
                        display: inline-block;
                    }
                }
            }
        }
    }
    /**********************/
    /* ul.list ************/
    ul.list {
        display: flex;
        flex-flow: column;
        row-gap: 0.65em;
        /****/
        * {
            line-height: 1.6;
        }
        >li {
            display: flex;
            flex-flow: nowrap;
            align-items: flex-start;
        }
        &.base {
            padding-left: 1.2em;
            /****/
            >li {
                display: list-item;
                list-style: disc;
            }
        }
        &.atte {
            >li {
                flex-flow: nowrap;
                /****/
                &::before {
                    content: "（注）";
                    white-space: nowrap;
                }
            }
        }
        &.number {
            padding-left: 1.5em;
            /****/
            >li {
                display: list-item;
                list-style: decimal;
            }
            &.type2 {
                padding-left: 0;
                counter-reset: number 0;
                /****/
                >li {
                    list-style: none;
                    display: flex;
                    flex-flow: nowrap;
                    /****/
                    &::before {
                        counter-increment: number 1;
                        content: counter(number)"）";
                    }
                }
            }
            &.type3 {
                padding-left: 0;
                counter-reset: number 0;
                /****/
                >li {
                    list-style: none;
                    display: flex;
                    flex-flow: nowrap;
                    column-gap: 0.5em;
                    /****/
                    &::before {
                        counter-increment: number 1;
                        content: counter(number);
                    }
                }
            }
            &.type4 {
                padding-left: 0;
                counter-reset: number 0;
                /****/
                >li {
                    list-style: none;
                    display: flex;
                    flex-flow: nowrap;
                    column-gap: 0.5em;
                    position: relative;
                    /****/
                    &::before {
                        counter-increment: number 1;
                        content: counter(number);
                        width: 1.2em;
                        display: flex;
                        justify-content: center;
                    }
                    >.body {
                        width: calc(100% - 0.5em - 1.2em);
                    }
                    &::after {
                        content: "";
                        display: block;
                        aspect-ratio: 1/1;
                        width: 1.2em;
                        border: 1px solid #000000;
                        border-radius: 100%;
                        position: absolute;
                        top: 0.25em;
                        left: 0;
                    }
                }
            }
        }
        &.circle {
            /****/
            >li {
                justify-content: space-between;
                /****/
                &::before {
                    content: "";
                    display: block;
                    aspect-ratio: 1/1;
                    width: 1em;
                    margin-top: 0.4em;
                    border: 1px solid #000000;
                    border-radius: 100%;
                }
                >.body {
                    width: calc(100% - 1.3em);
                }
            }
        }
        &.news {
            a {
                display: flex;
                flex-flow: column;
                /****/
                &::after {
                    display: none;
                }
            }
            @media only screen and (min-width:680px) {
                a {
                    flex-flow: nowrap;
                    column-gap: 90px;
                    /****/
                    >.date {
                        white-space: nowrap;
                    }
                }
            }
        }
    }
    @media only screen and (min-width:680px) {}
    /**********************/
    /* anchor *************/
    ul.anchor {
        display: flex;
        flex-flow: wrap;
        justify-content: space-between;
        align-items: stretch;
        /****/
        >li {
            width: 100%;
            border-bottom: var(--line_02);
            /****/
            a {
                display: flex;
                align-items: center;
                height: 100%;
                min-height: 80px;
                padding: 0.2em calc(28px + 10px) 0.2em 0;
                position: relative;
                /****/
                span {
                    font-size: 18px;
                }
                &::after {
                    content: "";
                    display: block;
                    aspect-ratio: 1/1;
                    width: 28px;
                    position: absolute;
                    top: calc(50% - 28px/2);
                    right: 0;
                    background: url(../images/sustainability/common/maru_g_dn_32.svg) center center/contain no-repeat;
                    transition: var(--duration) all;
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        ul.anchor {
            /****/
            >li {
                width: calc(550/1200 * 100%);
                /****/
                a {
                    padding-right: calc(32px + 10px);
                    min-height: 104px;
                    /****/
                    span {
                        font-size: 20px;
                    }
                    &::after {
                        width: 32px;
                        top: calc(50% - 32px/2)
                    }
                    &:hover::after {
                        transform: translateY(10px);
                    }
                }
            }
        }
    }
    /**********************/
    /* link_block *********/
    ul.link_block {
        display: flex;
        flex-flow: column;
        border: var(--line_01);
        border-top: none;
        /****/
        >li {
            border-top: var(--line_01);
            /****/
            a {
                display: flex;
                flex-flow: nowrap;
                justify-content: space-between;
                align-items: stretch;
                padding: 0;
                position: relative;
                /****/
                >span {
                    font-size: 14px;
                    width: 100%;
                    min-height: 60px;
                    display: flex;
                    flex-flow: wrap;
                    align-items: center;
                    padding: 0.5em calc((100% - (300/337 * 100%))/2) 0.5em calc((100% - (300/337 * 100%))/2);
                    /****/
                    &.icon,
                    &[href$=".pdf"],
                    &[target="_blank"] {
                        width: calc(100% - 32px);
                    }
                    &::after {
                        display: none;
                    }
                }
                &::after {
                    aspect-ratio: auto;
                    margin: 0;
                    width: 32px;
                    background-size: 14px auto;
                    border-left: var(--line_01);
                    animation: none;
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        ul.link_block {
            >li a {
                >span {
                    padding: 0.5em 14px 0.5em 14px;
                    background-color: var(--gray_02);
                    transition: var(--duration);
                    /****/
                    &.icon,
                    &[href$=".pdf"],
                    &[target="_blank"] {
                        width: calc(100% - 120px);
                    }
                    &:hover {
                        background-color: var(--gray_01);
                    }
                }
                &::after {
                    width: 120px;
                    background-size: 18px auto;
                }
            }
        }
    }
    /**********************/
    /* table **************/
    .table {
        /****/
        &:nth-of-type(n+2) {
            margin-top: 30px;
            /****/
            &:has(caption) {
                margin-top: 60px;
            }
        }
        table {
            display: table;
            width: 100%;
            /****/
            >caption {
                margin-bottom: 30px;
                font-size: 18px;
                /****/
                .block {
                    line-height: 1.6;
                }
            }
            tr * {
                font-size: 13px;
                line-height: 1.6;
            }
            tr>* {
                padding: 7px 10px 7px 10px;
                padding: 10px;
                border: var(--line_01);
                border-collapse: collapse;
                text-align: left;
            }
            tr>*.top {
                vertical-align: top;
            }
            tr>*.middle {
                vertical-align: middle;
            }
            tr>*.bottom {
                vertical-align: bottom;
            }
            tr>*.center {
                text-align: center;
            }
            tr>*.right {
                text-align: right;
            }
            tr>*.nowrap {
                white-space: nowrap;
            }
            tr>*.blue {
                background-color: #D5FCED;
                /****/
                &.judge::before {
                    content: "〇：";
                }
            }
            tr>*.yellow {
                background-color: #FFF7C8;
                /****/
                &.judge::before {
                    content: "△：";
                }
            }
            tr>*.red {
                background-color: #F36268;
                color: #FFFFFF;
                /****/
                &.judge::before {
                    content: "✕：";
                }
            }
            tr>th {
                background-color: var(--gray_02);
            }
            thead>tr>* {
                vertical-align: middle;
            }
        }
        &:has(.scroll) {
            position: relative;
        }
        >.scroll {
            padding-bottom: 10px;
            overflow-x: scroll;
            text-align: right;
            scrollbar-width: thin;
            /****/
            >.icon {
                margin-bottom: 10px;
                text-align: right;
                position: sticky;
                left: 0;
                /****/
                >img {
                    width: 135px;
                }
            }
            >table {
                min-width: 800px;
                /****/
                >caption {
                    position: absolute;
                    top: 0;
                    left: 0;
                    margin: 0;
                    display: flex;
                    align-items: center;
                    width: calc(100% - 135px - 20px);
                    height: 38px;
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        .table {
            /****/
            &:nth-of-type(n+2) {
                margin-top: 40px;
                /****/
            }
            table {
                /****/
                >caption {
                    margin-bottom: 30px;
                    /****/
                    .block {
                        font-size: 24px;
                    }
                }
                tr>* {
                    padding: 20px 14px 20px 14px;
                    font-size: 14px;
                }
            }
            >.scroll {
                /****/
                >.icon {
                    margin-bottom: 20px;
                    /****/
                    >img {
                        width: 176px;
                    }
                }
                >table>caption {
                    width: calc(100% - 176px - 20px);
                    height: 50px;
                }
            }
        }
    }
    @media only screen and (min-width:800px) {
        .table {
            /****/
            >.scroll {
                padding-bottom: 0;
                overflow-x: visible;
                /****/
                >.icon {
                    display: none;
                }
                >table {
                    width: 100%;
                    min-width: auto;
                    /****/
                    >caption {
                        display: table-caption;
                        position: static;
                        width: auto;
                        height: auto;
                        margin-bottom: 30px;
                    }
                }
            }
        }
    }
    /**********************/
    /* accordion **********/
    .accordion {
        display: flex;
        flex-flow: column;
        row-gap: 10px;
        /****/
        details {
            border: var(--line_01);
            /****/
            &[open] {
                .open {
                    transform: rotate(180deg);
                    box-shadow: -1px -1px 1px rgb(0, 0, 0, 0.1);
                }
            }
            >summary {
                display: flex;
                flex-flow: wrap;
                justify-content: center;
                align-items: center;
                padding: 0.2em 0 0.2em 0;
                min-height: 70px;
                background-color: var(--gray_02);
                position: relative;
                /****/
                >span {
                    width: calc(300/337 * 100%);
                    padding-right: calc(20px + 10px);
                    /****/
                    &.open {
                        padding: 0;
                        aspect-ratio: 1/1;
                        border-radius: 100%;
                        box-shadow: 1px 1px 1px rgb(0, 0, 0, 0.1);
                        width: 20px;
                        position: absolute;
                        top: calc(50% - 20px/2);
                        right: calc((100% - (300/337 * 100%))/2);
                        background: url(../images/sustainability/common/maru_wh_dn_32.svg) center center/contain no-repeat;
                    }
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        .accordion {
            details {
                &[open] > summary:hover {
                    .open {
                        box-shadow: -1px -1px 1px rgb(0, 0, 0, 0.1);
                        transform: rotate(180deg) translateY(7px);
                    }
                }
                >summary {
                    cursor: pointer;
                    transition: var(--duration) all;
                    /****/
                    &:hover {
                        background-color: var(--gray_01);
                        /****/
                        >span.open {
                            transform: translateY(7px);
                        }
                    }
                    >span {
                        width: calc(1120/1200 * 100%);
                        font-size: 18px;
                        /****/
                        &.open {
                            width: 32px;
                            top: calc(50% - 32px/2);
                            right: calc((100% - (1120/1200 * 100%))/2);
                            transition: var(--duration) all;
                        }
                    }
                }
                /****/
                .answer {
                    padding: 30px 0 30px 0;
                    display: flex;
                    flex-flow: wrap;
                    justify-content: center;
                    border-top: var(--line_01);
                    /****/
                    >.body {
                        width: calc(1100/1200 * 100%);
                        /****/
                    }
                }
            }
        }
    }
    /**********************/
    /* declaration_block **/
    .declaration_block {
        display: flex;
        flex-flow: wrap;
        row-gap: 50px;
        /****/
        >*:first-child {
            width: 100%;
        }
        .signature .name .date {
            margin-bottom: 10px;
        }
    }
    @media only screen and (min-width:680px) {
        .declaration_block {
            justify-content: flex-end;
            row-gap: 60px;
        }
    }
    /**********************/
    /* declaration ********/
    ul.declaration {
        counter-reset: number 0;
        display: flex;
        flex-flow: column;
        row-gap: 60px;
        /****/
        &.type2 {
            >li {
                row-gap: 30px;
            }
        }
        >li {
            display: flex;
            flex-flow: wrap;
            justify-content: center;
            row-gap: 18px;
            /****/
            &::before {
                counter-increment: number 1;
                content: counter(number);
                display: block;
                font-size: 24px;
                text-align: center;
                width: 50px;
                line-height: 1;
                padding-bottom: 18px;
                border-bottom: 2px solid #000000;
            }
            .detail {
                width: 100%;
                font-size: 18px;
            }
        }
    }
    @media only screen and (min-width:680px) {
        ul.declaration {
            /****/
            &.type2 {
                >li {
                    justify-content: space-between;
                    align-items: flex-start;
                    /****/
                    >.detail {
                        width: calc(1070/1200 * 100%);
                        width: calc(100% - 50px - 80px);
                    }
                }
            }
        }
    }
    /**********************/
    /* button_list ********/
    ul.button_list {
        display: flex;
        flex-flow: wrap;
        row-gap: 10px;
        /****/
        >li {
            width: 100%;
        }
    }
    @media only screen and (min-width:680px) {
        ul.button_list {
            row-gap: 25px;
            column-gap: calc(100% - (580/1200 * 100%)*2);
            /****/
            >li {
                width: calc(580/1200 * 100%);
            }
        }
    }
    /**********************/
}
/********************************/
/* top **************************/
#sustainability.top {
    font-size: 16px;
    .title {
        margin-top: 20px;
        display: flex;
        flex-flow: column;
        row-gap: 20px;
        /****/
        h1 {
            font-size: 28px;
        }
    }
    @media only screen and (min-width:680px) {
        .title {
            flex-flow: wrap;
            align-items: center;
            justify-content: space-between;
            margin-top: 75px;
            margin-bottom: calc(40px + 30px);
            /****/
            h1 {
                font-size: 46px;
                width: 50%;
                line-height: 1.4;
            }
            p {
                font-size: 18px;
                width: 43%;
            }
        }
    }
    #next_stage {
        margin-top: 40px;
        padding-top: 40px;
        border-top: var(--line_01);
        /* gray ***************/
        .gray {
            margin: 30px auto 0 auto;
            padding: 30px 0 30px 0;
            max-width: var(--max_w);
            background-color: var(--gray_03);
            display: flex;
            flex-flow: wrap;
            align-items: center;
            justify-content: center;
            row-gap: 20px;
            /****/
            > * {
                width: var(--sp_w);
            }
            dl > .block {
                display: flex;
                flex-flow: column;
                row-gap: 10px;
                /****/
                > dt {
                    font-size: 24px;
                }
                > dd {
                    /****/
                    .button {
                        margin-top: 15px;
                    }
                }
            }
        }
        @media only screen and (min-width:680px) {
            .gray {
                margin-top: 60px;
                column-gap: calc(88/1200 * 100%);
                /****/
                .img {
                    width: calc(500/1200 * 100%);
                }
                dl {
                    width: calc(512/1200 * 100%);
                    /****/
                    > .block {
                        row-gap: 30px;
                        /****/
                        > dt {
                            font-size: 32px;
                        }
                        > dd .button {
                            margin-top: 60px;
                            text-align: right;
                        }
                    }
                }
            }
        }
        /**********************/
        /* link_grid **********/
        .link_grid {
            margin-top: 30px;
            .thumbnail .text {
                text-align: center;
                padding-left: calc(22px + 20px);
            }
        }
        @media only screen and (min-width:680px) {
            .link_grid {
                margin-top: 60px;
                display: flex;
                flex-flow: wrap;
                justify-content: space-between;
                /****/
                a {
                    width: calc(545/1200 * 100%);
                }
            }
        }
        /**********************/
        /* activities *********/
        .activities {
            margin-top: 30px;
            /* header *************/
            .header {
                display: flex;
                flex-flow: column;
                row-gap: 20px;
                position: relative;
                margin: 0 auto 0 auto;
                max-width: var(--max_w);
                /****/
                .body {
                    display: flex;
                    flex-flow: column;
                    row-gap: 10px;
                    /****/
                    .text {
                        display: flex;
                        flex-flow: wrap;
                        row-gap: 15px;
                        /****/
                        p {
                            width: 100%;
                        }
                    }
                }
            }
            @media only screen and (min-width:680px) {
                .header {
                    position: relative;
                    /****/
                    .body {
                        row-gap: 15px;
                        position: absolute;
                        top: 28px;
                        left: calc((100% - (1100/1200 * 100%))/2);
                        width: calc(1100/1200 * 100%);
                        height: calc(100% - 28px - 30px);
                        color: #FFFFFF;
                        /****/
                        .text {
                            /****/
                            p {
                                font-size: 18px;
                            }
                            a.button1 {
                                position: absolute;
                                bottom: 0;
                                left: 0;
                            }
                        }
                    }
                }
            }
            /**********************/
            /* link ***************/
            .link {
                display: flex;
                flex-flow: column;
                margin-top: 35px;
                background-color: var(--gray_03);
                /****/
                .flex {
                    display: flex;
                    flex-flow: wrap;
                    justify-content: center;
                    margin: 0 auto 0 auto;
                    padding: 0;
                    max-width: var(--max_w);
                    /****/
                    > .grid {
                        width: 100%;
                        background-color: #FFFFFF;
                        /****/
                        .thumbnail .text {
                            padding-top: 20px;
                            padding-bottom: 20px;
                            /****/
                            &::after {
                                width: 32px;
                                top: calc(50% - 32px/2);
                            }
                        }
                    }
                }
                a.button2.type2 .thumbnail > .text {
                    width: calc(335/375 * 100%);
                    padding-right: calc(30px + 20px);
                    font-size: 24px;
                }
                ul.link_list {
                    border-top: var(--line_02);
                    /****/
                    > li {
                        border-bottom: var(--line_02);
                        /****/
                        a {
                            display: flex;
                            justify-content: center;
                            align-items: center;
                            min-height: 60px;
                            padding: 0.2em 0 0.2em 0;
                            /****/
                            &::after {
                                display: none;
                            }
                            >span {
                                width: var(--sp_w);
                                position: relative;
                                padding-left: calc(20px + 15px);
                                font-size: 14px;
                                /****/
                                &::before {
                                    content: "";
                                    display: block;
                                    aspect-ratio: 1/1;
                                    width: 20px;
                                    position: absolute;
                                    top: 0.1em;
                                    left: 0;
                                    background: url(../images/sustainability/common/maru_line_20.svg) center center/contain no-repeat;
                                    transition: var(--duration) all;
                                }
                            }
                            &:hover span::before {
                                transform: translateX(10px);
                            }
                        }
                    }
                }
            }
            @media only screen and (min-width:680px) {
                .link {
                    margin: 60px calc(50% - 50vw) 0 calc(50% - 50vw);
                    padding: 60px 0 60px 0;
                    /****/
                    .flex {
                        column-gap: calc(((1200 - 370*3)/2)/1200 * 100%);
                        width: var(--sp_w);
                    }
                    .flex > .grid {
                        width: calc(370/1200 * 100%);
                        padding-bottom: 30px;
                        /***/
                        .thumbnail .text {
                            padding-top: 15px;
                            padding-bottom: 15px;
                            /****/
                            &::after {
                                width: 30px;
                                top: calc(50% - 30px/2);
                            }
                        }
                    }
                    a.button2.type2 .thumbnail > .text {
                        font-size: 18px;
                    }
                    ul.link_list {
                        border-top: none;
                        margin-top: 38px;
                        /****/
                        > li {
                            border-bottom: none;
                            /****/
                            a {
                                min-height: 44px;
                            }
                        }
                    }
                }
            }
            /**********************/
            /* evaluation *********/
            .evaluation {
                margin-top: 30px;
                padding: 30px 0 90px 0;
                background-color: var(--gray_02);
                /****/
                h3 {
                    font-size: 24px;
                }
                .thumbnail {
                    > .img {
                        border: var(--line_02);
                    }
                    .text {
                        text-align: center;
                        padding-left: calc(22px + 20px);
                    }
                }
            }
            @media only screen and (min-width:680px) {
                .evaluation {
                    margin: 15px calc(50% - 50vw) 0 calc(50% - 50vw);
                    padding: 45px 0 145px 0;
                    /****/
                    h3 {
                        font-size: 28px;
                    }
                }
            }
            /**********************/
        }
        @media only screen and (min-width:680px) {
            .activities {
                margin-top: 60px;
            }
        }
        /**********************/
    }
    @media only screen and (min-width:680px) {
        #next_stage {
            margin-top: 70px;
            padding-top: 0;
            border-top: none;
            /****/
            h2.w_base {
                max-width: 1044px;
            }
        }
    }
}
/********************************/
/* message **********************/
#sustainability.message {
    #page_title {
        border: none;
    }
    #content {
        margin-top: 0;
    }
    .me_body {
        margin: 30px auto 0 auto;
        max-width: 980px;
        display: flex;
        flex-flow: wrap;
        row-gap: 40px;
        /****/
        .greetings {
            width: 100%;
        }
    }
    @media only screen and (min-width:680px) {
        #page_title {
            border-bottom: var(--line_02);
        }
        #content {
            margin-top: 60px;
        }
        .me_body {
            margin-top: 80px;
            justify-content: flex-end;
            row-gap: 45px;
        }
    }
}
/********************************/
/* contribution *****************/
#sustainability.contribution {
    .sdgs {
        display: flex;
        flex-flow: column;
        row-gap: 30px;
        margin-bottom: 80px;
        /****/
        p.body {
            font-size: 24px;
        }
    }
    .copy {
        margin-top: 60px;
    }
    dl.activity {
        display: flex;
        flex-flow: column;
        row-gap: 20px;
        margin-top: 60px;
        /****/
        > .block {
            background-color: var(--gray_02);
            margin: 0 calc(50% - 50vw) 0 calc(50% - 50vw);
            padding: 30px 0 30px 0;
            display: flex;
            flex-flow: wrap;
            justify-content: center;
            row-gap: 30px;
            /****/
            > * {
                width: calc(335/375 * 100%);
            }
            > dt {
                font-size: 20px;
                line-height: 1.6;
            }
            > dd {
                display: flex;
                flex-flow: column;
                row-gap: 30px;
                /****/
                .grid .icon {
                    margin-top: 30px;
                }
                dl.example > .block {
                    display: flex;
                    flex-wrap: wrap;
                    row-gap: 30px;
                    /****/
                    > dt {
                        display: flex;
                        flex-flow: wrap;
                        justify-content: center;
                        align-items: center;
                        width: 168px;
                        height: 37px;
                        line-height: 1;
                        border: var(--line_02);
                        background-color: #FFFFFF;
                    }
                    > dd {
                        width: 100%;
                    }
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        .sdgs {
            flex-flow: wrap;
            align-items: center;
            justify-content: space-between;
            margin-bottom: 30px;
            /****/
            p.body {
                font-size: 32px;
                width: calc(760/1200 * 100%);
            }
            .img {
                width: calc(297/1200 * 100%);
            }
        }
        .copy {
            margin-top: 100px;
        }
        dl.activity {
            margin-top: 100px;
            row-gap: 40px;
            /****/
            > .block {
                margin: 0 auto 0 auto;
                padding: 50px 0 60px 0;
                row-gap: 40px;
                /****/
                > * {
                    width: calc(1100/1200 * 100%);
                }
                > dt {
                    font-size: 28px;
                }
                > dd {
                    flex-flow: wrap;
                    justify-content: space-between;
                    /****/
                    > * {
                        width: calc(520/1100 * 100%);
                    }
                    .grid .icon {
                        margin-top: 30px;
                        width: calc(390/520 * 100%);
                    }
                    dl.example > .block {
                        /****/
                        > dt {
                            width: calc(0.5em + 168px + 0.5em);
                        }
                    }
                }
            }
        }
    }
}
/********************************/
/* en_declaration ***************/
#sustainability.en_declaration {
    .declaration_block {
        margin-top: 60px;
    }
    @media only screen and (min-width:680px) {
        .declaration_block {
            margin-top: 100px;
        }
    }
}
/********************************/
/* carbon ***********************/
#sustainability.carbon {
    a.en_declaration {
        display: flex;
        width: calc(300/337 * 100%);
        max-width: 450px;
        margin: 30px auto 0 auto;
    }
    @media only screen and (min-width:680px) {
        a.en_declaration {
            margin-top: 80px;
        }
    }
    dl.attempt {
        margin-top: 80px;
        /****/
        > .block {
            display: flex;
            flex-flow: column;
            row-gap: 20px;
            /****/
            > dt {
                font-size: 20px;
                text-align: center;
            }
        }
    }
    @media only screen and (min-width:680px) {
        dl.attempt {
            margin-top: 130px;
            /****/
            > .block {
                row-gap: 50px;
                /****/
                > dt {
                    font-size: 24px;
                }
            }
        }
    }
    .article_list {
        margin-top: 30px;
        display: flex;
        flex-flow: column;
        row-gap: 10px;
        /****/
        article {
            margin: 0;
            padding: 50px 0 0 0;
            /****/
            .article_cover {
                display: flex;
                flex-flow: column;
                row-gap: 35px;
                /****/
                .img {
                    margin: 0 calc(50% - 50vw) 0 calc(50% - 50vw);
                }
                .title {
                    .block {
                        display: flex;
                        flex-flow: column;
                        row-gap: 30px;
                        /****/
                        h2 {
                            font-size: 28px;
                            line-height: 1.3;
                        }
                        p {
                            font-size: 18px;
                        }
                    }
                }
            }
            .text {
                margin-top: 60px;
            }
        }
    }
    @media only screen and (min-width:680px) {
        .article_list {
            margin-top: 70px;
            row-gap: 20px;
            /****/
            article {
                padding-top: 70px;
                /****/
                .article_cover {
                    flex-flow: wrap;
                    justify-content: flex-end;
                    margin: 0 calc(50% - 50vw) 0 calc(50% - 50vw);
                    position: relative;
                    /****/
                    .img {
                        margin: 0;
                        width: 50%;
                    }
                    .title {
                        position: absolute;
                        top: 0;
                        left: 0;
                        width: 100%;
                        height: 100%;
                        display: flex;
                        flex-flow: wrap;
                        justify-content: center;
                        align-items: center;
                        /****/
                        .block {
                            width: calc(337/375 * 100%);
                            max-width: 1200px;
                            row-gap: 40px;
                            /****/
                            > * {
                                width: calc(50% - 20px);
                            }
                            h2 {
                                font-size: 46px;
                            }
                            p {
                                font-size: 20px;
                            }
                        }
                    }
                }
                .text {
                    margin-top: 80px;
                }
            }
        }
    }
    #content .article_list article {
        dl.detail {
            margin-top: 60px;
            display: flex;
            flex-flow: column;
            row-gap: 60px;
            /****/
            > .block {
                display: flex;
                flex-flow: column;
                row-gap: 20px;
                /****/
                > dt {
                    font-size: 24px;
                }
                > dd {
                    .box {
                        margin: 30px auto 0 auto;
                        padding: 30px 0 30px 0;
                        background-color: var(--gray_02);
                        display: flex;
                        flex-flow: wrap;
                        justify-content: center;
                        max-width: 680px;
                        /****/
                        > * {
                            width: calc(300/337 * 100%);
                        }
                    }
                    figure {
                        margin: 30px auto 0 auto;
                        display: flex;
                        flex-flow: column;
                        row-gap: 30px;
                        /****/
                        figcaption {
                            text-align: center;
                        }
                    }
                }
            }
        }
        @media only screen and (min-width:680px) {
            dl.detail {
                margin-top: 100px;
                row-gap: 80px;
                /****/
                > .block {
                    row-gap: 30px;
                    /****/
                    > dt {
                        font-size: 32px;
                    }
                    > dd {
                        dl.line {
                            flex-flow: wrap;
                            justify-content: space-between;
                            /****/
                            > .block {
                                width: calc((1200/2 - 60/2)/1200 * 100%);
                            }
                        }
                        .box {
                            margin-top: 80px;
                            /****/
                            >* {
                                text-align: center;
                            }
                        }
                        figure {
                            width: calc(840/1200 * 100%);
                            margin-top: 60px;
                            row-gap: 40px;
                        }
                    }
                }
            }
        }
    }
}
/********************************/
/* conservation *****************/
#sustainability.conservation {
    .accordion {
        margin-top: 30px;
        /****/
        details {
            .answer > .body {
                .link_block {
                    border: none;
                }
                @media only screen and (min-width:680px) {
                    .link_block {
                        border: var(--line_01);
                        border-top: none;
                    }
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        .accordion {
            margin-top: 60px;
        }
    }
}
/********************************/
/* human_capital ****************/
#sustainability.human_capital {
    dl.strategy {
        margin-top: 60px;
        /****/
        > .block {
            display: flex;
            flex-flow: column;
            row-gap: 30px;
            /****/
            > dt {
                font-size: 24px;
                text-align: center;
            }
            > dd {
                > p {
                    text-align: center;
                }
                > ul {
                    display: flex;
                    flex-flow: wrap;
                    align-items: stretch;
                    row-gap: 10px;
                    margin-top: 30px;
                    counter-reset: number 0;
                    /****/
                    > li {
                        width: 100%;
                        /****/
                        a {
                            display: flex;
                            justify-content: center;
                            height: 100%;
                            padding: 25px 0 calc(18px + 28px + 18px) 0;
                            background: var(--gray_02);
                            position: relative;
                            /****/
                            &::after {
                                content: "";
                                display: block;
                                aspect-ratio: 1/1;
                                width: 28px;
                                background: url(../images/sustainability/common/maru_red_dn_32.svg) center center/contain no-repeat;
                                position: absolute;
                                left: calc(50% - 28px/2);
                                bottom: 18px;
                            }
                            dl {
                                width: 90%;
                                /****/
                                > .block {
                                    display: flex;
                                    flex-flow: column;
                                    row-gap: 15px;
                                    text-align: center;
                                    /****/
                                    * {
                                        text-align: center;
                                    }
                                    > dt {
                                        font-size: 20px;
                                        color: var(--red_02);
                                        /****/
                                        &::before {
                                            counter-increment: number 1;
                                            content: counter(number)".";
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        dl.strategy {
            margin-top: 120px;
            /****/
            > .block {
                row-gap: 40px;
                /****/
                > dt {
                    font-size: 32px;
                }
                > dd {
                    /****/
                    > ul {
                        margin-top: 50px;
                        justify-content: space-between;
                        /****/
                        > li {
                            width: calc(370/1200 * 100%);
                            /****/
                            a {
                                padding: 25px 0 calc(18px + 32px + 18px) 0;
                                /****/
                                &::after {
                                    width: 32px;
                                    left: calc(50% - 32px/2);
                                    bottom: 18px;
                                    transition: var(--duration) all;
                                }
                                &:hover::after {
                                    transform: translateY(10px);
                                }
                                dl > .block {
                                    /****/
                                    > dt {
                                        font-size: 24px;
                                    }
                                    > dd * {
                                        font-size: 18px;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    dl.base {
        margin-top: 50px;
        row-gap: 0;
        /****/
        > .block {
            row-gap: 30px;
            padding: 50px 0 50px 0;
            border-top: var(--line_02);
            /****/
            &:last-child {
                padding-bottom: 0;
            }
            > dd {
                /****/
                .img {
                    width: 100%;
                    max-width: 640px;
                    margin: 60px auto 0 auto;
                    /****/
                    &.w960 {
                        max-width: 960px;
                    }
                }
                dl.gray_box {
                    display: flex;
                    flex-flow: wrap;
                    justify-content: center;
                    width: 100%;
                    max-width: 980px;
                    margin: 20px auto 0 auto;
                    padding: 30px 0 30px 0;
                    background-color: var(--gray_02);
                    /****/
                    > .block {
                        display: flex;
                        flex-flow: column;
                        row-gap: 30px;
                        width: calc(300/337 * 100%);
                        /****/
                        > dt {
                            font-size: 20px;
                            text-align: center;
                            /****/
                            &::before {
                                content: "［";
                            }
                            &::after {
                                content: "］";
                            }
                        }
                    }
                }
            }
        }
        @media only screen and (min-width:680px) {
            > .block {
                row-gap: 60px;
                padding: 60px 0 60px 0;
                /****/
                > dd {
                    /****/
                    dl.gray_box {
                        padding-top: 20px;
                        /****/
                        > .block {
                            row-gap: 20px;
                        }
                    }
                }
            }
        }
    }
    dl.line {
        margin-top: 60px;
        /****/
        > .block {
            /****/
            > dd {
                .img:first-child {
                    margin-top: 0;
                }
                dl.separator {
                    margin-top: 60px;
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        dl.line {
            margin-top: 70px;
            row-gap: 70px;
        }
    }
}
/********************************/
/* health ***********************/
#sustainability.health {
    .declaration_block {
        margin-top: 80px;
    }
    dl.base {
        margin-top: 50px;
        padding-top: 50px;
        border-top: var(--line_02);
        /****/
        > .block > dd {
            .img {
                margin: 40px auto 0 auto;
                max-width: 960px;
            }
        }
    }
    dl.line {
        margin-top: 60px;
    }
    @media only screen and (min-width:680px) {
        .declaration_block {
            margin-top: 140px;
        }
        dl.base {
            margin-top: 60px;
            padding-top: 60px;
            /****/
            > .block > dd {
                .img {
                    margin-top: 60px;
                }
            }
        }
    }
}
/********************************/
/* partnership ******************/
#sustainability.partnership {
    dl.base {
        margin-top: 80px;
    }
    dl.individual {
        margin-top: 1em;
    }
    dl.separator {
        margin-top: 30px;
    }
    @media only screen and (min-width:680px) {
        dl.base {
            margin-top: 140px;
        }
        dl.separator {
            margin-top: 40px;
        }
    }
}
/********************************/
/* quality **********************/
#sustainability.quality {
    .declaration_block {
        margin-top: 60px;
    }
    @media only screen and (min-width:680px) {
        .declaration_block {
            margin-top: 100px;
        }
    }
}
/********************************/
/* asset_management *************/
#sustainability.asset_management {
    ul.list * {
        font-size: 18px;
    }
}
/********************************/
/* corporate_governance *********/
#sustainability.corporate_governance {
    dl.base > .block {
        > dt {
            font-size: 20px;
        }
        > dd {
            .img {
                margin: 0 auto 0 auto;
                max-width: 950px;
            }
        }
    }
    .table {
        margin-top: 20px;
    }
    @media only screen and (min-width:680px) {
        dl.base > .block {
            > dt {
                font-size: 24px;
            }
        }
        .table {
            margin-top: 80px;
        }
    }
}
/********************************/
/* compliance *******************/
#sustainability.compliance {
    p.copy {
        font-size: 18px;
        width: 100%;
        max-width: none;
    }
    dl.base {
        margin-top: 80px;
    }
    @media only screen and (min-width:680px) {
        dl.base {
            margin-top: 140px;
        }
    }
}
/********************************/
/* risk *************************/
#sustainability.risk {
    dl.base {
        margin-top: 80px;
    }
    dl.line {
        margin-top: 40px;
    }
    @media only screen and (min-width:680px) {
        dl.base {
            margin-top: 110px;
        }
        dl.line {
            margin-top: 60px;
        }
    }
}
/********************************/
/* security_policy **************/
#sustainability.security_policy {
    .declaration_block {
        margin-top: 60px;
    }
    @media only screen and (min-width:680px) {
        .declaration_block {
            margin-top: 100px;
        }
    }
}
/********************************/
/* privacy_policy ***************/
#sustainability.privacy_policy {
    ul.list.origin {
        margin-top: 80px;
        row-gap: 30px;
        /****/
        > li {
            column-gap: 2em;
        }
    }
    dl.base {
        margin-top: 80px;
        /****/
        >.block>dd {
            /****/
            ul.list {
                margin-top: 30px;
            }
            dl.base {
                margin-top: 30px;
                /****/
                >.block>dt {
                    font-size: 20px;
                    /****/
                    &::before {
                        content: "【";
                    }
                    &::after {
                        content: "】";
                    }
                }
            }
            ul.list.atte {
                margin-top: 30px;
            }
            dl.line:nth-child(n+2) {
                margin-top: 30px;
            }
            dl.table {
                margin-top: 1em;
            }
        }
    }
    @media only screen and (min-width:680px) {
        ul.list.origin {
            margin-top: 140px;
            row-gap: 40px;
        }
        dl.base {
            margin-top: 100px;
            /****/
            >.block>dd {
                /****/
                ul.list {
                    margin-top: 40px;
                }
                dl.base {
                    margin-top: 60px;
                    /****/
                    >.block {
                        row-gap: 30px;
                        /****/
                        >dt {
                            font-size: 24px;
                        }
                    }
                }
            }
        }
    }
}
/********************************/
/* website_usage ****************/
#sustainability.website_usage {
    ul.list {
        margin-top: 40px;
        row-gap: 20px;
    }
    @media only screen and (min-width:680px) {
        ul.list {
            margin-top: 60px;
        }
    }
}
/********************************/
/* cec **************************/
#sustainability.cec {
    .declaration_block {
        margin: 80px auto 0 auto;
        max-width: 750px;
    }
    dl.line {
        margin-top: 60px;
    }
    @media only screen and (min-width:680px) {
        .declaration_block {
            margin-top: 140px;
        }
        dl.line {
            margin-top: 80px;
        }
    }
}
/********************************/
/* evaluation *******************/
#sustainability.evaluation {
    .article_list {
        display: flex;
        flex-flow: column;
        row-gap: 80px;
        /****/
        article {
            margin: 0;
            padding: 0;
            /****/
            h2 {
                font-size: 24px;
            }
            .flex {
                margin: 30px 0 0 0 ;
                flex-flow: column;
                row-gap: 30px;
                /****/
                .body {
                    /****/
                    dl.line {
                        margin-top: 30px;
                    }
                }
            }
        }
    }
    @media only screen and (min-width:680px) {
        .article_list {
            row-gap: 100px;
            /****/
            article {
                /****/
                h2 {
                    font-size: 32px;
                }
                .flex {
                    margin-top: 40px;
                    flex-flow: wrap;
                    /****/
                    .body {
                        width: calc(752/1200 * 100%);
                        /****/
                        dl.line {
                            margin-top: 40px;
                        }
                    }
                    .img {
                        width: calc(384/1200 * 100%);
                    }
                }
            }
        }
    }
}
/********************************/