:root{
    --base_pc:1440;
    --base_sp:375;
    --event_font_base:"IBM Plex Sans JP", sans-serif;
    --event_font_en:"Jost", sans-serif;
    --event_font_mincho:"Shippori Mincho B1", serif;
    --event_color_text:#32373E;
    --event_color_text_light:#6B6F75;
    --event_color_text_dark:#20242a;
    --event_color_red:#C50018;
    --event_color_white:#ffffff;
    --event_color_black:#000000;
    --event_color_bg:#F0F1F4;
    --event_color_line:#CCCFD1;
}

.first_area{
    padding: 0 16px;

    .first_wrap{
        max-width: 1120px;
        margin: 0 auto;
    }
}

.event_list_area{
    margin-top: 96px;

    .event_list_wrap{
        max-width: 1120px;
        margin: 0 auto;
    }
    .event_list_container{
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
    .event_list_card{
        display: grid;
        grid-template-columns: 131px minmax(0, 1fr);
        gap: 32px;
        align-items: start;
        min-height: 250px;
        padding: 32px;
        color: var(--event_color_text);
        background-color: var(--event_color_white);
        border: 1px solid var(--event_color_line);
        border-radius: 4px;
        transition: 0.3s;

        &:hover{
            border-color: var(--event_color_red);

            .event_list_img,
            .event_list_detail{
                opacity: 0.7;
            }
            .event_list_img{
                img{
                    transform: none;
                }
            }
        }
    }
    .event_list_img{
        aspect-ratio: 131 / 186;
        overflow: hidden;
        transition: 0.3s;

        img{
            width: 100%;
            height: 100%;
            object-fit: contain;
            transition: 0.3s;
        }
    }
    .event_list_detail{
        transition: 0.3s;

        h2{
            margin: 0 0 23px;
            font-family: var(--event_font_base);
            font-weight: 600;
            font-size: 18px;
            line-height: 28px;
            letter-spacing: 0;
            color: var(--event_color_text);
        }
        dl,
        div,
        dt,
        dd{
            margin: 0;
        }
        .event_list_info{
            font-family: var(--event_font_base);

            div{
                display: grid;
                grid-template-columns: 100px minmax(0, 1fr);
                gap: 18px;
                border-bottom: 1px solid var(--event_color_line);

                & + div{
                    margin-top: 12px;
                }
            }
            dt,
            dd{
                padding-bottom: 5px;
                font-size: 14px;
                line-height: 20px;
                padding-right: 10px;
            }
            dt{
                position: relative;
                font-weight: 600;

                &::after{
                    content: "";
                    position: absolute;
                    left: 0;
                    bottom: -1px;
                    width: 100%;
                    height: 2px;
                    background: var(--event_color_red);
                }
            }
            dd{
                font-weight: 500;
            }
        }
    }
}

.event_pagination{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    margin-top: 48px;

    a{
        color: var(--event_color_text_dark);
    }
    .event_pagination_arrow{
        width: 60px;
        height: 48px;
        background: url('../images/news/pagination-prev.png') center / contain no-repeat;

        &:hover{
            opacity: 0.7;
        }
    }
    .event_pagination_next{
        transform: rotate(180deg);
    }
    .event_pagination_number,
    .event_pagination_dots{
        font-family: var(--event_font_base);
        font-weight: 600;
        font-size: 16px;
        line-height: 16px;
        color: var(--event_color_text_dark);
    }
    .event_pagination_number{
        min-width: 12px;
        text-align: center;

        &.active{
            color: var(--event_color_red);
            text-decoration: underline;
            text-underline-offset: 3px;
        }
    }
}

.event_detail_area{
    margin-top: 96px;

    .event_detail_wrap{
        max-width: 800px;
        margin: 0 auto;
    }
    .event_detail_article{
        font-family: var(--event_font_base);
        color: var(--event_color_text);
    }
    .event_detail_title{
        margin: 0 0 50px;
        font-weight: 600;
        font-size: 28px;
        line-height: 42px;
        letter-spacing: 0;
        text-align: center;
        font-family: var(--event_font_base);
    }
    .event_detail_main_img{
        width: 100%;
        max-width: 560px;
        margin: 0 auto 64px;

        img{
            display: block;
            width: 100%;
        }
    }
    .event_detail_info{
        margin: 0 auto;
        max-width: 720px;
    }
    .event_detail_info_row{
        display: grid;
        grid-template-columns: 120px minmax(0, 1fr);
        gap: 20px;
        border-bottom: 1px solid var(--event_color_line);
        margin-top: 32px;

        &:first-child{
            margin-top: 0;
        }

        dt,
        dd{
            margin: 0;
            padding: 0 0 8px;
            font-size: 16px;
            font-weight: 600;
            line-height: 24px;
        }
        dt{
            position: relative;

            &::after{
                content: "";
                position: absolute;
                left: 0;
                bottom: -1px;
                width: 100%;
                height: 2px;
                background: var(--event_color_red);
            }
        }
        dd{
            font-weight: 500;
        }
    }
    .event_detail_file_link{
        display: inline-flex;
        align-items: center;
        gap: 8px;
        color: #0356CB;
        font-size: 16px;
        font-weight: 600;
        line-height: 24px;
        text-decoration: none;

        img{
            width: 16px;
            height: 16px;
            flex: none;
        }
        span{
            display: inline-flex;
            align-items: center;
            gap: 0;
            text-decoration: underline;
            text-underline-offset: 3px;

            &::after{
                content: "";
                display: block;
                width: 22px;
                height: 16px;
                background: url("../images/event/arrow.webp") center / contain no-repeat;
                flex: none;
            }
        }
        &:hover{
            opacity: 0.7;
        }
    }
}

.event_detail_nav{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 96px;
    position: relative;
    margin-top: 64px;

    &:before{
        content: '';
        width: 1px;
        height: 40px;
        background-color: var(--event_color_line);
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }
    a{
        display: flex;
        align-items: center;
        gap: 16px;
        font-family: var(--event_font_base);
        font-weight: 600;
        font-size: 16px;
        line-height: 24px;
        color: var(--event_color_text_dark);

        &:hover{
            opacity: 0.7;
        }
        &:before,
        &:after{
            content: '';
            display: block;
            width: 50px;
            height: 40px;
            background: url('../images/news/pagination-prev.png') center / contain no-repeat;
            flex: none;
        }
    }
    .event_detail_nav_prev{
        &:after{
            content: none;
        }
    }
    .event_detail_nav_next{
        &:before{
            content: none;
        }
        &:after{
            transform: rotate(180deg);
        }
    }
}



@media (max-width: 1339px) and (min-width: 769px) {
    .first_area{
        padding:0 calc(16 / var(--base_pc) * 100vw);

        .first_wrap{
            max-width:calc(1120 / var(--base_pc) * 100vw);
        }
    }

    .event_list_area{
        margin-top:calc(96 / var(--base_pc) * 100vw);

        .event_list_wrap{
            max-width:calc(1120 / var(--base_pc) * 100vw);
        }
        .event_list_container{
            gap:calc(20 / var(--base_pc) * 100vw);
        }
        .event_list_card{
            grid-template-columns:calc(131 / var(--base_pc) * 100vw) minmax(0, 1fr);
            gap:calc(32 / var(--base_pc) * 100vw);
            min-height:calc(250 / var(--base_pc) * 100vw);
            padding:calc(32 / var(--base_pc) * 100vw);
            border-width:calc(1 / var(--base_pc) * 100vw);
            border-radius:calc(4 / var(--base_pc) * 100vw);
        }
        .event_list_detail{
            h2{
                margin:0 0 calc(23 / var(--base_pc) * 100vw);
                font-size:calc(18 / var(--base_pc) * 100vw);
                line-height:calc(28 / var(--base_pc) * 100vw);
            }
            .event_list_info{
                div{
                    grid-template-columns:calc(100 / var(--base_pc) * 100vw) minmax(0, 1fr);
                    gap:calc(18 / var(--base_pc) * 100vw);
                    border-bottom-width:calc(1 / var(--base_pc) * 100vw);

                    & + div{
                        margin-top:calc(12 / var(--base_pc) * 100vw);
                    }
                }
                dt,
                dd{
                    padding-bottom:calc(5 / var(--base_pc) * 100vw);
                    padding-right:calc(10 / var(--base_pc) * 100vw);
                    font-size:calc(14 / var(--base_pc) * 100vw);
                    line-height:calc(20 / var(--base_pc) * 100vw);
                }
                dt{
                    &::after{
                        bottom:calc(-1 / var(--base_pc) * 100vw);
                        height:calc(2 / var(--base_pc) * 100vw);
                    }
                }
            }
        }
    }

    .event_pagination{
        gap:calc(24 / var(--base_pc) * 100vw);
        margin-top:calc(48 / var(--base_pc) * 100vw);

        .event_pagination_arrow{
            width:calc(60 / var(--base_pc) * 100vw);
            height:calc(48 / var(--base_pc) * 100vw);
        }
        .event_pagination_number,
        .event_pagination_dots{
            font-size:calc(16 / var(--base_pc) * 100vw);
            line-height:calc(16 / var(--base_pc) * 100vw);
        }
        .event_pagination_number{
            min-width:calc(12 / var(--base_pc) * 100vw);

            &.active{
                text-underline-offset:calc(3 / var(--base_pc) * 100vw);
            }
        }
    }

    .event_detail_area{
        margin-top: calc(96 / var(--base_pc) * 100vw);

        .event_detail_wrap{
            max-width: calc(800 / var(--base_pc) * 100vw);
        }
        .event_detail_title{
            margin: 0 0 calc(50 / var(--base_pc) * 100vw);
            font-size: calc(28 / var(--base_pc) * 100vw);
            line-height: calc(42 / var(--base_pc) * 100vw);
        }
        .event_detail_main_img{
            max-width: calc(560 / var(--base_pc) * 100vw);
            margin: 0 auto calc(64 / var(--base_pc) * 100vw);
        }
        .event_detail_info{
            max-width: calc(720 / var(--base_pc) * 100vw);
        }
        .event_detail_info_row{
            grid-template-columns: calc(120 / var(--base_pc) * 100vw) minmax(0, 1fr);
            gap: calc(20 / var(--base_pc) * 100vw);
            border-bottom-width: calc(1 / var(--base_pc) * 100vw);
            margin-top: calc(32 / var(--base_pc) * 100vw);

            dt,
            dd{
                padding: 0 0 calc(8 / var(--base_pc) * 100vw);
                font-size: calc(16 / var(--base_pc) * 100vw);
                line-height: calc(24 / var(--base_pc) * 100vw);
            }
            dt{
                &::after{
                    bottom: calc(-1 / var(--base_pc) * 100vw);
                    height: calc(2 / var(--base_pc) * 100vw);
                }
            }
        }
        .event_detail_file_link{
            gap: calc(8 / var(--base_pc) * 100vw);
            font-size: calc(16 / var(--base_pc) * 100vw);
            line-height: calc(24 / var(--base_pc) * 100vw);

            img{
                width: calc(16 / var(--base_pc) * 100vw);
                height: calc(16 / var(--base_pc) * 100vw);
            }
            span{
                gap: 0;
                text-underline-offset: calc(3 / var(--base_pc) * 100vw);

                &::after{
                    width: calc(22 / var(--base_pc) * 100vw);
                    height: calc(16 / var(--base_pc) * 100vw);
                }
            }
        }
    }

    .event_detail_nav{
        gap: calc(96 / var(--base_pc) * 100vw);
        margin-top: calc(56 / var(--base_pc) * 100vw);

        &:before{
            width: calc(1 / var(--base_pc) * 100vw);
            height: calc(40 / var(--base_pc) * 100vw);
        }
        a{
            gap: calc(16 / var(--base_pc) * 100vw);
            font-size: calc(16 / var(--base_pc) * 100vw);
            line-height: calc(24 / var(--base_pc) * 100vw);

            &:before,
            &:after{
                width: calc(50 / var(--base_pc) * 100vw);
                height: calc(40 / var(--base_pc) * 100vw);
            }
        }
    }
}



@media (max-width: 768px) {
    .event_list_area{
        margin-top: calc(48 / var(--base_sp) * 100vw);
        padding: 0 calc(16 / var(--base_sp) * 100vw);

        .event_list_container{
            grid-template-columns: 1fr;
            gap: calc(20 / var(--base_sp) * 100vw);
        }
        .event_list_card{
            grid-template-columns: 1fr;
            gap: calc(32 / var(--base_sp) * 100vw);
            min-height: 0;
            padding: calc(32 / var(--base_sp) * 100vw) calc(16 / var(--base_sp) * 100vw) calc(24 / var(--base_sp) * 100vw);
        }
        .event_list_img{
            aspect-ratio: 153 / 219;
            max-width: calc(153 / var(--base_sp) * 100vw);
            margin: 0 auto;
        }
        .event_list_detail{
            h2{
                margin-bottom: calc(15 / var(--base_sp) * 100vw);
                font-size: calc(18 / var(--base_sp) * 100vw);
                line-height: calc(28 / var(--base_sp) * 100vw);
            }
            .event_list_info{
                div{
                    grid-template-columns: calc(100 / var(--base_sp) * 100vw) minmax(0, 1fr);
                    gap: calc(18 / var(--base_sp) * 100vw);

                    & + div{
                        margin-top: calc(12 / var(--base_sp) * 100vw);
                    }
                }
                dt,
                dd{
                    padding-bottom: calc(5 / var(--base_sp) * 100vw);
                    padding-right: 0;
                    font-size: calc(14 / var(--base_sp) * 100vw);
                    line-height: calc(20 / var(--base_sp) * 100vw);
                }
                dt{
                    &::after{
                        height: calc(2 / var(--base_sp) * 100vw);
                    }
                }
            }
        }
    }

    .event_pagination{
        gap: calc(20 / var(--base_sp) * 100vw);
        margin-top: calc(32 / var(--base_sp) * 100vw);

        .event_pagination_arrow{
            width: calc(50 / var(--base_sp) * 100vw);
            height: calc(40 / var(--base_sp) * 100vw);
        }
        .event_pagination_number,
        .event_pagination_dots{
            font-size: calc(16 / var(--base_sp) * 100vw);
            line-height: calc(16 / var(--base_sp) * 100vw);
        }
    }

    .event_detail_area{
        margin-top: calc(64 / var(--base_sp) * 100vw);
        padding: 0 calc(16 / var(--base_sp) * 100vw);

        .event_detail_wrap{
            max-width: none;
        }
        .event_detail_title{
            margin: 0 0 calc(38 / var(--base_sp) * 100vw);
            font-size: calc(20 / var(--base_sp) * 100vw);
            line-height: calc(32 / var(--base_sp) * 100vw);
        }
        .event_detail_main_img{
            max-width: unset;
            margin: 0 auto calc(48 / var(--base_sp) * 100vw);
        }
        .event_detail_info_row{
            grid-template-columns: calc(100 / var(--base_sp) * 100vw) minmax(0, 1fr);
            gap: calc(18 / var(--base_sp) * 100vw);
            border-bottom-width: calc(1 / var(--base_sp) * 100vw);
            margin-top: calc(24 / var(--base_sp) * 100vw);

            dt,
            dd{
                padding: 0 0 calc(5 / var(--base_sp) * 100vw);
                font-size: calc(14 / var(--base_sp) * 100vw);
                line-height: calc(20 / var(--base_sp) * 100vw);
            }
            dt{
                &::after{
                    bottom: calc(-1 / var(--base_sp) * 100vw);
                    height: calc(2 / var(--base_sp) * 100vw);
                }
            }
        }
        .event_detail_file_link{
            gap: calc(4 / var(--base_sp) * 100vw);
            font-size: calc(14 / var(--base_sp) * 100vw);
            line-height: calc(20 / var(--base_sp) * 100vw);

            img{
                width: calc(16 / var(--base_sp) * 100vw);
                height: calc(16 / var(--base_sp) * 100vw);
            }
            span{
                gap: calc(0 / var(--base_sp) * 100vw);
                text-underline-offset: calc(2 / var(--base_sp) * 100vw);

                &::after{
                    width: calc(20 / var(--base_sp) * 100vw);
                    height: calc(14 / var(--base_sp) * 100vw);
                }
            }
        }
    }

    .event_detail_nav{
        gap: calc(64 / var(--base_sp) * 100vw);
        margin-top: calc(48 / var(--base_sp) * 100vw);

        &:before{
            width: calc(1 / var(--base_sp) * 100vw);
            height: calc(40 / var(--base_sp) * 100vw);
        }
        a{
            gap: calc(12 / var(--base_sp) * 100vw);
            font-size: calc(16 / var(--base_sp) * 100vw);
            line-height: calc(16 / var(--base_sp) * 100vw);

            &:before,
            &:after{
                width: calc(50 / var(--base_sp) * 100vw);
                height: calc(40 / var(--base_sp) * 100vw);
            }
        }
    }
}


/* ------------------------------------------------------------------------
   task120 -- ours, not the drop's (design ledger B25).

   終了 badge: past events stay listed (task 120 D2) and the drop draws them
   identically to upcoming ones, so nothing tells a visitor which is which.
   Empty state: the footer links here from every page, and a zero-entry section
   would otherwise ship a bare heading -- the dead end ledger B5 forbids.

   Both reuse the drop's own tokens: no new colour, no new font stack. The card
   dimming lands on the <img> (filter) rather than on .event_list_img, which the
   drop's :hover rule already owns -- two rules on one property would fight.
   ------------------------------------------------------------------------ */

.event_list_area{
    .event_list_img{
        position: relative;
    }
    .event_list_badge{
        position: absolute;
        top: 0;
        left: 0;
        padding: 4px 10px;
        font-family: var(--event_font_base);
        font-size: 12px;
        font-weight: 600;
        line-height: 1;
        color: var(--event_color_white);
        background-color: var(--event_color_text_light);
        border-radius: 2px;
    }
    .event_list_card.is_ended{
        .event_list_img img{
            filter: grayscale(1);
            opacity: 0.7;
        }
        .event_list_detail h2{
            color: var(--event_color_text_light);
        }
    }
    .event_list_empty{
        padding: 64px 0;
        font-family: var(--event_font_base);
        font-size: 16px;
        line-height: 1.75;
        color: var(--event_color_text_light);
        text-align: center;
    }
}

.event_detail_area{
    .event_detail_badge{
        display: inline-block;
        margin-bottom: 16px;
        padding: 6px 14px;
        font-family: var(--event_font_base);
        font-size: 13px;
        font-weight: 600;
        line-height: 1;
        color: var(--event_color_white);
        background-color: var(--event_color_text_light);
        border-radius: 2px;
    }
    /* Gutenberg body inside the 詳細 row: strip the outer margins so the row
       height matches the single-paragraph rows around it. */
    .event_detail_content{
        > *:first-child{
            margin-top: 0;
        }
        > *:last-child{
            margin-bottom: 0;
        }
    }
}

@media (max-width: 768px) {
    .event_list_area{
        .event_list_badge{
            padding: calc(4 / var(--base_sp) * 100vw) calc(10 / var(--base_sp) * 100vw);
            font-size: calc(11 / var(--base_sp) * 100vw);
        }
        .event_list_empty{
            padding: calc(48 / var(--base_sp) * 100vw) 0;
            font-size: calc(14 / var(--base_sp) * 100vw);
        }
    }
    .event_detail_area{
        .event_detail_badge{
            margin-bottom: calc(16 / var(--base_sp) * 100vw);
            padding: calc(6 / var(--base_sp) * 100vw) calc(14 / var(--base_sp) * 100vw);
            font-size: calc(12 / var(--base_sp) * 100vw);
        }
    }
}
