@charset 'UTF-8';

/* ==========================================================================
   下層共通
========================================================================== */

/* ==========================================================================
   レイアウト
========================================================================== */

.subPage .mainContent
{
    margin-top: 60px;
    padding-bottom: 400px;
}

.subPage .pageHeader
{
    max-width: 920px;
    margin: 0 auto 40px;
}

.subPage .componentBox
{
    max-width: 920px;
    margin: 0 auto;
}

/* ==========================================================================
   タイトル周り
========================================================================== */

.subPage .pankuzu
{
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1;

    display: flex;

    margin-bottom: 100px;
}

.subPage .pankuzu a
{
    font-weight: 400;

    text-decoration: underline;

    color: #acacac;
}

.subPage .pankuzu li:not(:last-child)
{
    display: inline-flex;

    align-items: center;
}

.subPage .pankuzu li:not(:last-child)::after
{
    width: 5px;
    height: 10px;
    margin: 0 14px;

    content: '';

    background: url('../img/arrow_black.svg') no-repeat center center / contain;
}

.subPage .pageHeader
{
    margin-bottom: 40px;
}

.subPage .pageHeader .pageTitle
{
    font-size: 4.6rem;
    font-weight: 500;
    line-height: 1.36;

    letter-spacing: .04em;
}

/* ==========================================================================
   componentBox
========================================================================== */

.componentBox
{
    font-size: 1.6rem;
    line-height: 2;

    word-break: break-all;
}

.componentBox > *:not(:first-child)
{
    margin-top: 40px;
}

/* ==========================================================================
   段落
========================================================================== */

.componentBox .paragraph p
{
    letter-spacing: .04em;
}

.componentBox .paragraph > p + p
{
    margin-top: 15px;
}

.componentBox .paragraph .fontBold
{
    font-weight: 500;
}

.componentBox .paragraphTop
{
    margin-bottom: 80px;
}

/* ==========================================================================
   リンク
========================================================================== */

.componentBox a
{
    text-decoration: underline;

    color: #0017c1;
}

.componentBox a[target='_blank']:not(.pdf)::after
{
    display: inline-block;

    width: 1.125em;
    height: 1.125em;
    margin: 0 .43em;

    content: '';
    vertical-align: middle;

    background: url('../img/external_link.svg') no-repeat center center / contain;
}

/* ==========================================================================
   テーブル風DL
========================================================================== */

.componentBox .dlTable
{
    display: grid;
    overflow: hidden;

    background-image: linear-gradient(to right, var(--color) 2px, transparent 2px);
    background-repeat: repeat-x;
    background-position: left bottom;
    background-size: 4px 2px;

    grid-template-columns: 174px 1fr;
}

.componentBox .dlTable dt
{
    font-weight: 500;

    position: relative;

    text-align: center;
}

.componentBox .dlTable dt::before
{
    position: absolute;
    top: 0;
    left: 0;

    width: 100vw;
    height: 2px;

    content: '';

    background-image: linear-gradient(to right, var(--color) 2px, transparent 2px);
    background-repeat: repeat-x;
    background-position: left bottom;
    background-size: 4px 2px;
}

.componentBox .dlTable dt,
.componentBox .dlTable dd
{
    padding: 22px 0;
}

.componentBox .dlTable .officerList li
{
    display: flex;

    gap: 0 2em;
}

.componentBox .dlTable .officerList li > span:first-child
{
    display: inline-flex;

    width: 4em;

    justify-content: space-between;
}

/* ==========================================================================
   見出し
========================================================================== */

.componentBox .heading2BorderLeft
{
    font-size: 3.2rem;
    font-weight: 700;
    line-height: 1.5;

    margin: 80px 0 0;
    padding-left: 36px;

    letter-spacing: .04em;

    border-left: 2px solid var(--color);
}

.componentBox .heading2BorderLeft + *
{
    margin-top: 20px;
}

.componentBox .heading3
{
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1.625;

    letter-spacing: .04em;
}

.componentBox .heading3 + *
{
    margin-top: 10px;
}

/* ==========================================================================
   dotList
========================================================================== */

.dotList
{
    padding-left: 40px;
}

.dotList li
{
    display: flex;
}

.dotList li::before
{
    width: 7px;
    height: 2em;
    margin-right: 12px;

    content: '';

    background: url('../img/dot.svg') no-repeat center center / contain;

    flex-shrink: 0;
}

.dotList li + li
{
    margin-top: .35em;
}

/* ==========================================================================
   キャプション
========================================================================== */

.isCaption .caption
{
    font-size: 1.4rem;
    font-weight: 400;
}

.isCaption .caption:nth-of-type(1)
{
    margin-top: 10px;
}

.isCaption:has(.dotsList) .caption
{
    padding-left: 40px;
}

/* ==========================================================================
   tableStyle
========================================================================== */

.tableWall figcaption
{
    margin-top: 14px;
}

.isCaption:has(table) .caption
{
    font-size: 1.6rem;

    margin-top: 14px;
}

.tableStyle
{
    line-height: 1.5;

    width: 100%;

    border-collapse: collapse;

    border: 1px solid #c3c3c3;
    background: #fff;
}

.tableStyle caption
{
    font-size: 2rem;
    font-weight: 600;

    margin-bottom: 14px;

    text-align: left;
}

.tableStyle th
{
    font-weight: 500;

    padding: 20px 15px;

    border: 1px solid #c3c3c3;
    background: #dce1e2;
}

.tableStyle td
{
    font-size: 1.4rem;

    padding: 20px 18px;

    border: 1px solid #c3c3c3;
}

/* ==========================================================================
   画像
========================================================================== */

.imgBox figcaption
{
    font-size: 1.4rem;

    margin-top: 6px;
}

/* ==========================================================================
   ページ別対応
========================================================================== */

/* ==========================================================================
   関連研究室
========================================================================== */

.labsPage .heading2BorderLeft.letterSpacing
{
    letter-spacing: .5em;
}

.labsPage .labsList
{
    text-align: left;
}

.labsPage .labsList a
{
    margin-left: 1em;
}

/* ==========================================================================
   英語
========================================================================== */

/* ==========================================================================
   タイトル周り
========================================================================== */

.subPageEN .pankuzu
{
    font-size: 1.4rem;
}

/* ==========================================================================
   componentBox
========================================================================== */

.subPageEN .componentBox
{
    font-size: 1.8rem;
    line-height: 1.77;

    word-break: normal;
}

/* ==========================================================================
   テーブル風DL
========================================================================== */

.subPageEN .componentBox .dlTable
{
    grid-template-columns: 258px 1fr;
}

.subPageEN .componentBox .dlTable dt
{
    font-weight: 700;

    padding-left: 35px;

    text-align: left;
}

/* ==========================================================================
   見出し
========================================================================== */

.subPageEN .componentBox .heading2BorderLeft
{
    font-size: 3.4rem;
}

/* ==========================================================================
   キャプション
========================================================================== */

.subPageEN .isCaption .caption
{
    font-size: 1.6rem;
}

/* ==========================================================================
   dotList
========================================================================== */

.subPageEN .dotList li::before
{
    height: 1.7em;
}

/* ==========================================================================
   ページ別対応
========================================================================== */

/* ==========================================================================
   協  賛
========================================================================== */

.subPageEN.sponsorsPage .pageHeader .pageTitle
{
    letter-spacing: 0;
}

@media only screen and (max-width: 767px)
{
    /* ==========================================================================
   下層共通
========================================================================== */

    /* ==========================================================================
   レイアウト
========================================================================== */
    .subPage .mainContent
    {
        margin-top: 4.34783vw;
        padding-bottom: 48.30918vw;
    }
    .subPage .pageHeader
    {
        max-width: 93.23671vw;
        margin: 0 auto 16.66667vw;
    }
    .subPage .componentBox
    {
        max-width: 88.16425vw;
        margin: 0 auto;
    }
    /* ==========================================================================
   タイトル周り
========================================================================== */
    .subPage .pankuzu
    {
        line-height: 1.3;

        margin-bottom: 16.66667vw;

        flex-flow: row wrap;
    }
    .subPage .pankuzu li:not(:last-child)::after
    {
        width: 1.20773vw;
        height: 2.41546vw;
        margin: 0 3.38164vw;
    }
    .subPage .pageHeader
    {
        margin-bottom: 6.52174vw;
    }
    .subPage .pageHeader .pageTitle
    {
        font-size: 3rem;
        line-height: 1.46;

        width: 88.16425vw;
        margin: 0 auto;
    }
    /* ==========================================================================
   componentBox
========================================================================== */
    .componentBox
    {
        font-size: 1.4rem;
        line-height: 1.75;
    }
    .componentBox > *:not(:first-child)
    {
        margin-top: 7.24638vw;
    }
    /* ==========================================================================
   段落
========================================================================== */
    .componentBox .paragraph > p + p
    {
        margin-top: 4.83092vw;
    }
    .componentBox .paragraph .fontBold
    {
        font-weight: 700;
    }
    .componentBox .paragraphTop
    {
        margin-bottom: 12.07729vw;
    }
    /* ==========================================================================
   テーブル風DL
========================================================================== */
    .componentBox .dlTable
    {
        display: grid;
        overflow: hidden;

        background-image: linear-gradient(to right, var(--color) .48309vw, transparent .48309vw);
        background-size: .96618vw .48309vw;

        grid-template-columns: 15.94203vw 1fr;
    }
    .componentBox .dlTable dt
    {
        text-align: left;
    }
    .componentBox .dlTable dt::before
    {
        height: .48309vw;

        background-image: linear-gradient(to right, var(--color) .48309vw, transparent .48309vw);
        background-size: .96618vw .48309vw;
    }
    .componentBox .dlTable dt,
    .componentBox .dlTable dd
    {
        padding: 6.15942vw 0;
    }
    .componentBox .dlTable .officerList li
    {
        display: flex;

        gap: 0 2em;
    }
    .componentBox .dlTable .officerList li > span:first-child
    {
        display: inline-flex;

        width: 4em;

        justify-content: space-between;
    }
    /* ==========================================================================
   見出し
========================================================================== */
    .componentBox .heading2BorderLeft
    {
        font-size: 2.4rem;
        line-height: 1.3;

        margin: 20.04831vw 0 0;
        padding-left: 4.10628vw;
    }
    .componentBox .heading2BorderLeft + *
    {
        margin-top: 6.76329vw;
    }
    .componentBox .heading3
    {
        font-size: 1.8rem;
        line-height: 1.33;
    }
    .componentBox .heading3 + *
    {
        margin-top: 2.41546vw;
    }
    /* ==========================================================================
   dotList
========================================================================== */
    .dotList
    {
        padding-left: 4.10628vw;
    }
    .dotList li
    {
        display: flex;
    }
    .dotList li::before
    {
        width: 1.69082vw;
        height: 1.75em;
        margin-right: 2.89855vw;
    }
    /* ==========================================================================
   キャプション
========================================================================== */
    .isCaption .caption
    {
        font-size: 1.4rem;
        font-weight: 400;
    }
    .isCaption .caption:nth-of-type(1)
    {
        margin-top: 2.41546vw;
    }
    .isCaption:has(.dotsList) .caption
    {
        padding-left: 4.10628vw;
    }
    /* ==========================================================================
   tableStyle
========================================================================== */
    .tableWall
    {
        overflow-x: auto;

        padding-bottom: 2.41546vw;
    }

    .tableWall::-webkit-scrollbar
    {
        height: 3.86473vw;

        border-top: .24155vw solid #d6d6d6;
        border-bottom: .24155vw solid #d6d6d6;
    }
    .tableWall::-webkit-scrollbar-thumb
    {
        border: .96618vw solid transparent;
        border-radius: 4.83092vw;
        background-color: #848484;
        background-clip: padding-box;
    }
    .tableWall figcaption
    {
        margin-top: 3.38164vw;
    }
    .tableWall table
    {
        position: relative;
    }
    .tableWall table::after
    {
        position: absolute;
        z-index: 2;
        top: 50%;
        left: 23.91304vw;

        width: 38.88889vw;
        height: 24.15459vw;

        content: '';

        background: url('../img/scrollmark.png') no-repeat center center / contain;

        translate: 0 -50%;
    }
    .removeScrollMark table::after
    {
        animation: menuFadeOut .2s 1 0s ease-out forwards;
    }
    .tableWall.isCaption table
    {
        margin-bottom: 3.38164vw;
    }
    .tableStyle
    {
        min-width: 670px;
    }
    .tableStyle caption
    {
        font-size: 1.6rem;

        margin-bottom: 2.41546vw;
    }
    .tableStyle th
    {
        padding: 4.58937vw 4.10628vw;
    }
    .tableStyle td
    {
        font-size: 1.3rem;

        padding: 4.58937vw 3.62319vw;
    }
    /* ==========================================================================
   画像
========================================================================== */
    .imgBox figcaption
    {
        font-size: 1.2rem;

        margin-top: 2.05314vw;
    }
    /* ==========================================================================
   ページ別対応
========================================================================== */

    /* ==========================================================================
   関連研究室
========================================================================== */
    .labsPage .labsList
    {
        text-align: left;
    }
    .labsPage .labsList a
    {
        margin-left: 0;
    }

    /* ==========================================================================
   英語
========================================================================== */
    /* ==========================================================================
   タイトル周り
========================================================================== */
    .subPageEN .pankuzu
    {
        font-size: 1.2rem;
    }

    /* ==========================================================================
   componentBox
========================================================================== */
    .subPageEN .componentBox
    {
        font-size: 1.4rem;
        line-height: 1.75;

        word-break: normal;
    }
    /* ==========================================================================
   テーブル風DL
========================================================================== */
    .subPageEN .componentBox .dlTable
    {
        display: block;
    }
    .subPageEN .componentBox .dlTable dt
    {
        padding: 5.91787vw 0 1.69082vw 0;
    }
    .subPageEN .componentBox .dlTable dd
    {
        padding: 0 0 5.91787vw 0;
    }

    /* ==========================================================================
   見出し
========================================================================== */
    .subPageEN .componentBox .heading2BorderLeft
    {
        font-size: 2.4rem;
    }

    /* ==========================================================================
   キャプション
========================================================================== */
    .subPageEN .isCaption .caption
    {
        font-size: 1.4rem;
    }
    /* ==========================================================================
   dotList
========================================================================== */
    .subPageEN .dotList li::before
    {
        height: 1.7em;
    }
    /*end*/
}
