@charset "utf-8";
@import url("https://use.fontawesome.com/releases/v5.15.4/css/all.css");
/*-------------------------------------------------------------
///////////////////////////////////////////////////////////////
base module & style
///////////////////////////////////////////////////////////////
--------------------------------------------------------------*/

:root {
    --primary-color: #009BFF;
    --secondary-color: #E50012;
    --tertiary-color: #39B24A;
}


/* 表示切り替え */
.sp_on {
    display: block; /* SPのみ表示 */

    @media (width >= 1200px) {
        & {
            display: none;
        }
    }
}

.tab_on {
    display: none;

    @media (width >= 768px) {
        & {
            display: block; /* タブレットのみ表示 */
        }
    }

    @media (width >= 1200px) {
        & {
            display: none;
        }
    }
}

.pc_on {
    display: none;

    @media (width >= 768px) {
        & {
            display: none;
        }
    }

    @media (width >= 1200px) {
        & {
            display: block; /* PCのみ表示 */
        }
    }
}

/* ページトップへもどる */
.page_top {
    width: 40px;
    height: 40px;
    right: 10px;
    bottom: 70px;
    position: fixed;
    background-image: linear-gradient(var(--tertiary-color), var(--tertiary-color));
    background-position: left top;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;

    @media (width >= 768px) {
        & {
            bottom: 30px;
        }
    }

    &::before {
        content: "";
        display: block;
        width: 5px;
        height: 5px;
        border-top: 1px solid #FFFFFF;
        border-right: 1px solid #FFFFFF;
        transform: rotate(-45deg);
    }
}


.wrapper {
    width: 100%;
}

/* @group メインエリア
------------------------------------------------------*/
.main {
    width: 100%;
    background-color: #FFFFFF;

    @media (width >= 1200px) {
        position: relative;

        &::before {
            content: "";
            position: absolute;
            width: 100%;
            height: 1270px;
            top: 0;
            left: 0;
            background-image: url(../images/bg.jpg);
            background-size: cover;
            background-position: center bottom;
            background-repeat: no-repeat;
            z-index: 0;
        }
    }
}


.main_container {
    width: 100%;

    @media (width >= 1200px) {
        width: 1100px;
        margin-inline: auto;
        display: flex;
        flex-direction: row-reverse;
        align-items: flex-start;

        /* position:fixed の nav 用スペーサー（row-reverse で左側に配置） */
        &::after {
            content: "";
            display: block;
            width: 250px;
            flex-shrink: 0;
            height: 0;
            overflow: hidden;
            visibility: hidden;
            pointer-events: none;
        }
    }
}

.contents {
    width: 100%;

    @media (width >= 1200px) {
        position: relative;
        width: 850px;
        min-height: 1270px;

        &::before {
            content: "";
            position: absolute;
            width: 10px;
            height: 1270px;
            top: 0;
            left: 0;
            background-image: url(../images/shadow.png);
            background-position: left top;
            background-repeat: no-repeat;
            background-size: 100% 100%;
            z-index: 3;
        }
    }

}

.society_overview_container {
    position: relative;
    width: 100%;
    min-height: 530px;

    &::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background-image: url(../images/society_overview_small.jpg);
        background-position: center top;
        background-repeat: no-repeat;
        background-size: cover;
        z-index: 2;
    }

    @media (width >= 414px) {
        min-height: 563px;
    }

    @media (width >= 430px) {
        min-height: 584px;
    }

    @media (width >= 768px) {
        min-height: 926px;

        &::before {
            background-image: url(../images/society_overview_large.jpg);
        }
    }

    @media (width >= 820px) {
        min-height: 989px;
    }

    @media (width >= 1024px) {
        min-height: 1235px;
    }

    @media (width >= 1200px) {
        min-height: 1025px;
    }
}

.society_overview_container.child {
    position: relative;
    width: 100%;
    min-height: 250px;

    &::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        background-image: url(../images/society_title_small.jpg);
        background-position: center top;
        background-repeat: no-repeat;
        background-size: cover;
        z-index: 1;
    }

    @media (width >= 414px) {
        min-height: 265px;
    }

    @media (width >= 430px) {
        min-height: 276px;
    }

    @media (width >= 768px) {
        min-height: 434px;

        &::before {
            background-image: url(../images/society_title_large.jpg);
        }
    }

    @media (width >= 820px) {
        min-height: 463px;
    }

    @media (width >= 1024px) {
        min-height: 578px;
    }

    @media (width >= 1200px) {
        min-height: 384px;
    }
}

/* トップ概要テキスト非表示 */
.society_overview_container > * {
    position: absolute;
    left: -9999em;
}

/* What’s New */
.news {
    width: 100%;
    margin-inline: auto;
    padding-bottom: 40px;
    background-color: #FFFFFF;

    @media (width >= 1200px) {
        & {
            padding-top: 20px;
            padding-bottom: 40px;
        }
    }

    & > h2 {
        display: flex;
        justify-content: center;
        align-items: flex-end;
        margin-top: 40px;
        margin-bottom: 35px;

        @media (width >= 1200px) {
            & {
                margin-top: 0px;
                margin-bottom: 50px;
            }
        }

        & > span {
          position: relative;
          font-size: 18px;
          font-weight: bold;
          color: var(--primary-color);
          text-align: center;

          &::before {
            position: absolute;
            content: "";
            bottom: -12px;
            left: 50%;
            transform: translateX(-50%);
            width: 120px;
            height: 5px;
            background-image: linear-gradient(to right, var(--primary-color) 0%, var(--primary-color) 50%, var(--secondary-color) 50%, var(--secondary-color) 100%);
            background-position: left top;
            background-repeat: no-repeat;
            background-size: 100% 100%;
          }
        }
    }

    & > .news-list {
        width: 90%;
        margin-inline: auto;
        position: relative;
        display: flex;
        flex-direction: column;
        gap: 12px;
        height: 140px;
        overflow-y: auto;
        line-height: 1.4;

        @media (width >= 768px) {
            width: 80%;
        }

        @media (width >= 1200px) {
            width: 80%;
        }

        & > li {
            display: flex;
            align-items: baseline;

            & > .date {
            width: 90px;
            font-size: 13px;
            font-weight: bold;
            color: var(--primary-color);
            }

            & > .excerpt {
            width: calc(100% - 95px);
            font-size: 12px;
            color: #4D4D4D;
            }
        }
    }
  }

.nav_wrap {
    width: 100%;

    @media (width >= 1200px) {
        /*
         * sticky + max-height:100vh だとサイドバー高≒画面高のとき
         * 親の下端制約で page-title 到達前に上へ押し上げられるため fixed にする。
         * 低い画面では overflow でメニュー自体をスクロール可能にする。
         */
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 0;
        left: max(0px, calc(50% - 550px));
        width: 250px;
        height: auto;
        max-height: 100vh;
        max-height: 100dvh;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
        /* フッター(z-index:4)より下。終端では JS で max-height を縮めて重なりを避ける */
        z-index: 2;
    }
}

.logo {
    display: none;

    @media (width >= 1200px) {
        & {
            display: grid;
            place-items: center;
            flex-shrink: 0;
            background-color: #FFFFFF;
            width: 250px;
            height: 140px;
            min-height: 140px;
        }
    }
}


.secretariat_wrap {
    width: 100%;

    @media (width >= 1200px) {
        & {
            flex-shrink: 0;
            width: 250px;
            background-image: linear-gradient(to bottom, #FFFFFF 75%, transparent 100%);
            display: flex;
            flex-direction: column;
            padding-top: 25px;
            padding-bottom: 25px;
        }
    }

    & > .secretariat {
        width: 100%;

        & > h3 {
            width: 100%;
            height: 30px;
            background-color: var(--primary-color);
            margin-inline: auto;
            margin-bottom: 15px;
            display: flex;
            align-items: center;
            font-size: 14px;
            font-weight: bold;
            line-height: 1;
            color: #FFFFFF;

            & > span {
                margin-top: 1px;
                margin-left: 15px;
            }
        }

        & > dl {
            width: 90%;
            margin-inline: auto;
            padding-bottom: 30px;
            line-height: 1.4;
            color: var(--primary-color);

            @media (width >= 768px) {
                padding-bottom: 25px;
            }

            @media (width >= 1200px) {
                width: 220px;
                margin-inline: auto;
            }

            & > dt {
                margin-bottom: 10px;
                font-size: 13px;
                font-weight: bold;
            }

            & > dd {
                font-size: 12px;
                line-height: 1.3;
            }

            & > dd > a {
                color: #0000FF;
                text-decoration: none;
            }
        }
    }
}

/* @group フッターエリア
------------------------------------------------------*/

.footer {
    position: relative;
    width: 100%;
    background-color: var(--primary-color);
    z-index: 4;

    & > .footer_container {
        width: 100%;

        @media (width >= 1200px) {
            & {
                width: 1100px;
                margin-left: auto;
                margin-right: auto;
            }
        }

        & > .footer-copyright {
            height: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
            padding-left: 10px;
            padding-right: 10px;
            font-size: 13px;
            color: #FFFFFF;
            line-height: 1.4;
            text-align: center;

            @media (width >= 768px) {
                & {
                    height: 30px;
                }
            }

            & > sup {
                font-size: 0.8em;
                position: relative;
                top: -0.2em;
            }
        }
    }
}

/* @group ページ共通
------------------------------------------------------*/

.page-contents {
    position: relative;
    margin-top: -80px;
    z-index: 1;

    @media (width >= 768px) {
        & {
            margin-top: -90px;
        }
    }

    @media (width >= 1200px) {
        & {
            margin-top: -100px;
        }
    }
}


.page-title {
    min-height: 70px;
    display: flex;
    align-items: center;
    padding: 15px 10px;
    margin-top: 10px;
    box-shadow: inset 0 10px 10px -10px rgba(0, 0, 0, 0.7);

    @media (width >= 768px) {
        min-height: 80px;
        padding: 25px 15px;
    }

    @media (width >= 1200px) {
        min-height: 90px;

        &.is-fixed {
            position: fixed;
            top: 0;
            z-index: 4;
            margin-top: 0;
            background-color: #a4e4ff;
            background-image: linear-gradient(to bottom, #666666 0%, transparent 100%);
            background-position: left top;
            background-repeat: no-repeat;
            background-size: 100% 5px;
            transition:
                top 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                box-shadow 0.3s ease;
            will-change: top;
        }

        &.is-fixed.is-fixing {
            box-shadow: inset 0 8px 12px -10px rgba(0, 0, 0, 0.45);
        }

        &.is-fixed.is-unfixing {
            background-color: rgba(255, 255, 255, 0);
            transition:
                top 0.35s cubic-bezier(0.4, 0, 0.2, 1),
                background-color 0.45s cubic-bezier(0.33, 1, 0.68, 1),
                box-shadow 0.35s ease;
            box-shadow: inset 0 10px 10px -10px rgba(0, 0, 0, 0.7);
        }

        &.is-fixed.is-unfixing.is-unfixing-sync {
            background-color: #a4e4ff;
            background-image: linear-gradient(to bottom, #666666 0%, transparent 100%);
            background-position: left top;
            background-repeat: no-repeat;
            background-size: 100% 5px;
            transition: box-shadow 0.35s ease;
        }
    }
}

.page-title-placeholder {
    display: none;

    @media (width >= 1200px) {
        display: block;
        background-color: #FFFFFF;

        &.is-unfixing {
            background-color: rgba(255, 255, 255, 0);
            transition: background-color 0.45s cubic-bezier(0.33, 1, 0.68, 1);
        }

        &.is-unfixing.is-unfixing-sync {
            background-color: #FFFFFF;
            transition: none;
        }
    }
}


.page-title > span {
    padding-left: 20px;
	font-size: clamp(1.375rem, 1.125rem + 0.8vi, 1.625rem);
	font-weight: bold;
    font-feature-settings: "palt";
    line-height: 1.2;
    text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2);
}

@media (width >= 768px) {
    .page-title > span {
        padding-left: 30px;
    }
}

.page-body {
    /* min-height: 800px; */
    padding: 30px 10px 30px 10px;
    background-color: #FFFFFF;

    @media (width >= 1200px) {
        & {
            padding: 40px 30px 40px 30px;
            min-height: 760px;
        }

        &.is-body-scroll {
            min-height: 0;
            overflow-y: auto;
            overscroll-behavior: contain;
            -webkit-overflow-scrolling: touch;

            /* 内部スクロール中は iframe（地図等）がホイールを奪わないようにする */
            iframe {
                pointer-events: none;
            }
        }

        &.is-body-scroll-finished {
            padding-bottom: 120px;
        }

        &.is-fixed-below-title {
            position: fixed;
            z-index: 3;
            min-height: 0;
            overflow-y: auto;
            overscroll-behavior: contain;
            overflow-anchor: none;
            -webkit-overflow-scrolling: touch;
        }
    }
}

.page-body-placeholder {
    display: none;

    @media (width >= 1200px) {
        display: block;
    }
}

/* 既存の垂直マージンを削除 */
.page-body>* {
    margin-top: 0;
    margin-bottom: 0;
}

/* 連続する要素だけに上方向のマージンを適用 */
.page-body>*+* {
    margin-block-start: 20px;
}

.page-body > section > * + * {
    margin-top: 15px;
}

.page-body > section > section > * + * {
    margin-top: 12px;
}

.heading_h3 {
    padding: .3em .5em;
    border-left: 5px solid var(--primary-color);
}

.heading_h3 span {
    display: inline-block;
    position: relative;
    padding: 0 .2em .2em;
    font-size: clamp(1.25rem, 1rem + 0.8vi, 1.5rem);
    font-weight: bold;
    color: #333333;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
    line-height: 1.4;
}

.heading_h4 {
    border-bottom: 1px solid #CCCCCC;
}

.heading_h4 span {
    display: inline-block;
    position: relative;
    padding: 0 .4em .2em 0;
    font-size: clamp(1rem, 0.875rem + 0.4vi, 1.125rem);
    font-weight: bold;
    color: #333333;
}

.heading_h4 span::before {
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: 3px;
    background-color: var(--primary-color);
    content: '';
}

.heading_h4 span i {
    font-size: 0.9em;
    margin-right: 0.3em;
    color: var(--color_primary);
    opacity: 0.7;
}

.under_construction {
    text-align: center;
    font-size: 1.1em;
    padding-top: 50px;
}


/* アイコン
--------------------------*/

.exlink::after {
    content: "\f360";
    font-family: "Font Awesome 5 Free";
    font-size: 0.85em;
    font-weight: 900;
    margin-left: .5em;
}


.download:before {
    content: '\f019';
    /* ダウンロードのアイコン（fa-download） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: .5em;
    margin-right: .5em;
}

.pdf:after {
    content: '\f1c1';
    /* PDFファイルの後（fa-file-pdf） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.word:after {
    content: '\f1c2';
    /* WORDファイルの後（fa-file-word） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.ppt:after {
    content: '\f1c4';
    /* PPTファイルの後（fa-file-powerpoint） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.excel:after {
    content: '\f1c3';
    /* Excelファイルの後（fa-file-excel） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.mail:after {
    content: '\f003';
    /* メール（fa-envelope） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-left: 0.5em;
}

.cipher a:before {
    content: '\f023';
    /* 暗号通信の前（fa-lock） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: .5em;
}

.check::before {
    content: '\f046';
    /* チェック（fa-check-square） */
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    margin-right: .3em;
}

.pin-location-icon:before {
    content: '\f3c5';
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 0.8em;
    margin-right: .3em;
    position: relative;
    top: -0.1em;
    color: var(--primary-color);
}

/*罫線*/

hr {
    border: none;
    border-top: 1px solid #ccc;
}

hr.hr-full {
    margin: 0 .75em 1.5em;
    box-shadow: 1px 1px 1px rgba(0, 71, 157, 0.2);
}

/* ハイライト */
.text-highlight {
    background: linear-gradient(transparent 10%, #7bdffbcb 40%);;
}

.inline {
    display: inline;
}

/*文字詰め*/

.feature {
    font-feature-settings: "palt";
}

/*囲み*/

.enclosure01 {
    border: 1px;
    border-style: solid;
    padding: 0.75em 1em;
}

.enclosure02 {
    display: inline-block;
    border: 1px;
    border-style: solid;
    padding: .5em 1em;
}

.enclosure-style01 {
    border-color: #DDDDDD;
    background: #FFFFFF;
}

.enclosure-style02 {
    border: 3px solid rgba(245, 200, 200, 0.4);
    background: rgba(245, 200, 200, 0.1);
}
.enclosure-style03 {
	border: 3px solid #ff0000;
	background: #FFFFFF;
	border-radius: 10px;
	-webkit-border-radius: 10px;
	-moz-border-radius: 10px;

}


/*リストスタイル*/
.list-style01 {
    margin-left: 2em;
    margin-right: 2em;
    font-size: clamp(0.875rem, 0.818rem + 0.242vw, 1rem);
}

.list-style01 li {
    margin-bottom: .3em;
}

.list-style {
    list-style-position: outside;
    padding-left: 1.8em;
}

.list-style > * + * {
    margin-top: 0.25em;
}

.list-disc {
    list-style-type: disc;
}

.list-num {
    list-style-type: decimal;
}

.list-num2 {
    list-style-type: decimal-leading-zero;
}

/* 方法1: text-indent と padding-left の組み合わせ */
.asterisk {
    padding-left: 1.2em;
    text-indent: -0.9em;
}

/* 方法2: table レイアウトを使用 */
.kome_ja > * {
    display: table;
    width: 100%;
}

.kome_ja > *:before {
    display: table-cell;
    content: "※";
    width: 1em;
}
/* 英語　* */
.kome_en > * {
	display:table;
	width: 100%;

	&:before {
		display: table-cell;
		content: "*";
		width: 1em;
	}
}

/*表組み*/
.tbl-sp {
    overflow-x: auto;
}

.tbl-sp table {
    min-width: 690px;
}
.tbl-width100 {
    width: 100%;
}

.tbl-width50 {
    width: 50%;
}

.tbl-style01 thead th {
    background-color: #DDD;
    border: 1px #CCCCCC;
    border-style: solid;
    padding: .5em;
}

.tbl-style01 tbody th,
.tbl-style01 tbody td {
    border: 1px #CCCCCC;
    border-style: solid;
}

.tbl-style01 tbody th {
    background-color: #EEEEEE;
    padding: .5em;
}
.tbl-style01 tbody td {
    background-color: #FFFFFF;
    padding: .5em;
}

.tbl-style02 tbody th,
.tbl-style02 tbody td {
    border: 1px #FFFFFF;
    border-style: solid;
}

.tbl-style02 tbody th {
    background-color: #FFFFFF;
    padding: .5em;
}

.tbl-style02 tbody td {
    background-color: #FFFFFF;
    padding: .5em;
}

.th-c-m th {
    text-align: center;
    vertical-align: middle;
}

.th-l-m th {
    text-align: left;
    vertical-align: middle;
}

.th-l-t th {
    text-align: left;
    vertical-align: top;
}

.td-c-m td {
    text-align: center;
    vertical-align: middle;
}

.td-l-m td {
    text-align: left;
    vertical-align: middle;
}

.td-l-t td {
    text-align: left;
    vertical-align: top;
}

.btn-container {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 15px;
	padding-top: 20px;
	padding-bottom: 20px;
}

/* ボタン */
.btn {
	display: inline-block;
	width: 100%;
	max-width: 300px;
	padding: 15px 20px;
	text-align: center;
	text-decoration: none;
	font-size: 16px;
	font-weight: bold;
	border-radius: 5px;
	transition: all 0.3s;
	box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.15);
}

.btn-primary {
	background-color: var(--primary-color);
	color: #ffffff;
}

.btn-primary:hover {
	background-color: var(--tertiary-color);
	color: #ffffff;
	text-decoration: none;
	box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3), 0 3px 6px rgba(0, 0, 0, 0.2);
	transform: translateY(-2px);
}

.btn-secondary {
	background-color: var(--secondary-color);
	color: #ffffff;
}

.btn-secondary:hover {
	background-color: var(--tertiary-color);
	color: #ffffff;
	text-decoration: none;
	box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3), 0 3px 6px rgba(0, 0, 0, 0.2);
	transform: translateY(-2px);
}

.btn-tertiary {
	background-color: var(--tertiary-color);
	color: #ffffff;
}

.btn-tertiary:hover {
	background-color: var(--primary-color);
	color: #ffffff;
	text-decoration: none;
	box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3), 0 3px 6px rgba(0, 0, 0, 0.2);
	transform: translateY(-2px);
}

@media (width >= 768px) {
	.btn-container {
		flex-direction: row;
		justify-content: center;
		gap: 20px;
	}

	.btn {
		width: auto;
		min-width: 200px;
		padding: 15px 30px;
	}
}

@media (width >= 1200px) {
	.btn {
		min-width: 350px;
	}
}

.button_container {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 20px;
	margin-top: 30px;
	margin-bottom: 30px;
}
.grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
}
@media screen and (max-width: 780px) {
    .grid {
        display: flex;
        flex-direction: column;
        margin: 10px auto;
    }
}
.grid img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}
@media screen and (max-width: 780px){
    .ul_spolist {
        display: contents;
    }

    .grid > ul:nth-child(1)  > li:nth-child(1) { order: 1; }  /* 1 */
    .grid > ul:nth-child(2)  > li:nth-child(1) { order: 2; }  /* 2 */
    .grid > ul:nth-child(1)  > li:nth-child(2) { order: 3; }  /* 3 */
    .grid > ul:nth-child(2)  > li:nth-child(2) { order: 4; }  /* 4 */
    .grid > ul:nth-child(4)  > li:nth-child(1) { order: 5; }  /* 5 */
    .grid > ul:nth-child(3)  > li:nth-child(1) { order: 6; }  /* 6 */
    .grid > ul:nth-child(3)  > li:nth-child(2) { order: 7; }  /* 7 */
    .grid > ul:nth-child(4)  > li:nth-child(2) { order: 8; }  /* 8 */
    .grid > ul:nth-child(5)  > li:nth-child(1) { order: 9; }  /* 9 */
    .grid > ul:nth-child(6)  > li:nth-child(1) { order: 10; } /* 10 */
    .grid > ul:nth-child(5)  > li:nth-child(2) { order: 11; } /* 11 */
    .grid > ul:nth-child(6)  > li:nth-child(2) { order: 12; } /* 12 */
    .grid > ul:nth-child(7)  > li:nth-child(1) { order: 13; } /* 13 */
    .grid > ul:nth-child(8)  > li:nth-child(1) { order: 14; } /* 14 */
    .grid > ul:nth-child(7)  > li:nth-child(2) { order: 15; } /* 15 */
    .grid > ul:nth-child(8)  > li:nth-child(2) { order: 16; } /* 16 */
    .grid > ul:nth-child(9)  > li:nth-child(1) { order: 17; } /* 17 */
    .grid > ul:nth-child(10) > li:nth-child(1) { order: 18; }/* 18 */

    .ul_spolist li{
        margin-bottom:30px;
    }
}

.ul_spolist img {
    max-width: 320px;
    margin: 0px auto;
}
.ul_spolist .spo_name {
    font-size: 14px;
    padding: 5px 0px 0px 36px;
}
@media screen and (max-width: 780px){
    .ul_spolist .spo_name {
        text-align: center;
        font-size: 14px;
        padding: 5px 0px 0px 36px;
    }
}
.page-body.organizers {
    background: #F8F7F5;
}

/* Organizer */
.page-body>section.flex section {
	margin-block-start: 0;
}
section.flex section{
	width: 230px;
	margin-right: 10px;
}
.committee-member {
    align-items: flex-end;
    gap: 20px;
}
.committee-member img {
    width: 130px;
    height: auto;
}

.committee-member table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}
@media (min-width: 768px) {
    .committee-member table {
        width: 100%;
    }
}
.committee-member th,
.committee-member td {
	display: block;
	vertical-align: middle;
	text-align: left;
}
.committee-member td {
	max-width: 220px;
}
.committee-member th {
    font-weight: bold;
}
@media (min-width: 768px) {
    .committee-member th {
        width: 170px;
    }
    .committee-member .name-list th {
        width: 180px;
    }
}

/*.committee-member .name-list th::before {
	content: "\f007";
	font-family: "Font Awesome 5 Free";
	margin-right: 0.5em;
	font-size: 0.7em;
	font-weight: 900;
	color: var(--key-color);
	position: relative;
	top: -2px;
}*/
.committee-member .name-list th.none::before {
	display: none;
}
@media (min-width: 768px) {
    .committee-member .name-list th::before {
        margin-left: 0.5em;
    }
}

@media screen and (max-width:767px) {
    .committee-member .name-list td {
        padding-left: 20px;
    }
}

@media (min-width: 768px) {
    .committee-member .name-list th,
    .committee-member .name-list td {
        padding-top: 0.25em;
        padding-bottom: 0.25em;
    }
}
@media (max-width: 768px) {
	section.flex {
		display: block;
	}
	section.flex section {
		width: 100%!important;
	}
	.committee-member th,
	.committee-member td {
		width: 100%!important;
		max-width: 100%!important;
	}
	.committee-member td {
		margin-bottom: 20px;
	}
	.sp_on{
		display: none;
	}
}
.inner_box {
    width: 100%;
    overflow: hidden;
    display: block;
}
.floatl{
	float:left;
}
/* Organizer */
.committee-member.flex.h80 .name-list td {
	height: 80px;
}
.committee-member.flex.h70 .name-list td {
	height: 70px;
}
.committee-member.flex.h60 .name-list td {
	height: 60px;
}
.committee-member.flex.h50 .name-list td {
	height: 50px;
}
.committee-member.flex.h40 .name-list td {
	height: 40px;
}
.committee-member.flex.h30 .name-list td {
	height: 30px;
}

@media screen and (max-width: 780px) {
	.committee-member.flex {
		display: block!important;
	}
	.committee-member.flex .name-list td {
		height: auto!important;
	}
}
/* Sponsors */
.spo_img {
	display: flex;
    justify-content: center;
}
.spo_img img{
	margin: 20px auto;
}
/* .spo_img li{
	list-style: none;
} */
.spo_img.diamond li,
.spo_img.platinum li{
	width: 350px;
    list-style: none;
}
.spo_img.diamond img{
	max-width: 340px;
}
/* グリッドで列を固定 */
.spo_group {
    display: grid;
    grid-template-columns: 390px 350px;
    justify-content: center;
    column-gap: 60px;
    row-gap: 40px;
}

/* ul, li を構造から消して中身だけグリッドアイテム化 */
.spo_group .spo_img.platinum,
.spo_group .spo_img.platinum li {
    display: contents;
}

/* a がグリッドセルとして振る舞う */
.spo_group .spo_img.platinum li a {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 画像サイズ */
.spo_img.platinum img {
    max-width: 340px;
}
.spo_img.platinum img.blue {
    max-width: 390px;
}
.spo_img.gold{
    align-items: center;
}
.spo_img.gold li{
    width: 280px;
    list-style: none;
}
.spo_img.silver{
    align-items: center;
    gap: 30px;
}
.spo_img.silver li{
    width: 160px;
    list-style: none;
}

.spo_img.gold img{
	max-width: 230px;
}
.spo_img.silver img {
    max-width: 140px;
}
.spo_img.bronze li{
	width: 160px;
    list-style: none;
}
.spo_img.other{
	display: block;
	list-style-type: disc;
	margin: 10px 0 0 20px;
}
.spo_img.other li{
	font-size: 20px;
	font-weight: bold;
	margin-bottom: 5px;
}
.spo_img.other li a{
    color: inherit;
    text-decoration: none;
}
.spo_img.bronze img {
	max-width: 140px;
}
.spo_img.tenji a{
	pointer-events: none;
}
/* .spo_img img:hover{
	filter:alpha(opacity=85);
	-moz-opacity:0.85;
	-khtml-opacity: 0.85;
	opacity:0.85;
	cursor:pointer;
} */

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

    .spo_img {
        display: block;
    }

    .spo_img li {
        margin: 10px auto;
    }

    .spo_group {
        display: block;
    }

    .spo_group .spo_img.platinum,
    .spo_group .spo_img.platinum li {
        display: block;
    }

}
.disabled{
    pointer-events: none;
}
li a.disabled {
  color: #727272!important;
  pointer-events: none;
  cursor: default;
}
li a.blue.disabled {
  color: #FFFFFF !important;
}
/* Organizer */
img.or_img{
	width: 130px;
	height: auto;
}
/* Call for Poster */
.dl-poster dt{
    font-weight: 600;
    margin-top: 1em;
}