@charset "utf-8";

/*
Theme Name: J-TAG
Description: J-TAGテーマ
Author: J-TAG
Version: 1.0
*/

/* reset */
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, main, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video, button {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
    box-sizing: border-box;}

::-webkit-input-placeholder {
    font-size: 100%;
    font: inherit;
    color: inherit;
    vertical-align: baseline;
    box-sizing: border-box;}

input, textarea, select,
::-webkit-input-placeholder,
:-ms-input-placeholder,
::-ms-input-placeholder,
::placeholder {
    font-size: 100%;
    font: inherit;
    color: inherit;
    vertical-align: baseline;
    box-sizing: border-box;}

html, body, footer, header, main,
div, iframe, table, form, img,
menu, nav, article, section, dl, ol, ul {
    vertical-align: top;}

article, aside, details, figcaption, figure, footer, header, main, hgroup, menu, nav, section {display: block;}
ol, ul {list-style: none;}
blockquote, q {quotes: none;}
blockquote::before, blockquote::after, q::before, q::after {content: ''; content: none;}
table {border-collapse: collapse; border-spacing: 0;}
button {color: inherit; background-color: transparent;}


/*------------
     body
------------*/

html {
    font-size: 62.5%;
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

@font-face {
    font-display: swap;
    font-family: 'Rubik';
    font-style: normal;
    font-weight: 400;
    src: url('./assets/font/Rubik-400-subset.woff2') format('woff2'),
         url('./assets/font/Rubik-400-subset.ttf') format('truetype');
}

@font-face {
    font-display: swap;
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 400;
    src: url('./assets/font/NotoSansJP-400-subset.woff2') format('woff2'),
         url('./assets/font/NotoSansJP-400-subset.ttf') format('truetype');
}

@font-face {
    font-display: swap;
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 600;
    src: url('./assets/font/NotoSansJP-600-subset.woff2') format('woff2'),
         url('./assets/font/NotoSansJP-600-subset.ttf') format('truetype');
}

@font-face {
    font-display: swap;
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 900;
    src: url('./assets/font/NotoSansJP-900-subset.woff2') format('woff2'),
         url('./assets/font/NotoSansJP-900-subset.ttf') format('truetype');
}

:root {
    --font-rubik: 'Rubik', sans-serif;
    --font-weight-normal: 400;
    --font-weight-bold: 600;
    --font-weight-heavy: 900;
    --font-color: #3C3C3C;
    --font-color-light: #939393;
    --font-color-white: #FAFAFA;
    --border-color: #8B8B8B;
    --border-color-light: #DDDDDD;
    --shadow-color: #E7E8E9;
    --bg-black: #282A2E;
    --bg-black-light: #4E5259;
    --bg-gray: #FAFAFA;
    --bg-beige: #F4F2EC;
    --bg-white: #FFFFFF;
    --program: #EF351D;
    --news: #8D17E5;
    --seminar: #00D1BF;
    --training: #0071D1;
    --support: #16B708;
}

body {
    width: 100%;
    min-width: 300px;
    padding-top: 60px;
    overflow-x: hidden;
    background-color: var(--bg-gray);
    color: var(--font-color);
    font-size: 1.4rem;
    font-family: 'Noto Sans JP', sans-serif;
    font-weight: var(--font-weight-normal);
    line-height: 1;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

    #overlay {
        display: none;
        width: 100%;
        height: 100%;
        position: fixed;
        top: 0;
        left: 0;
        z-index: 40;
    }

@media screen and (min-width:500px) {
    body {
        font-size: 1.6rem;
    }
}

@media screen and (min-width:1000px) {
    body {
        padding-top: 80px;
    }
}

.block-editor-block-types-list__list-item:has(.stretchy-paragraph) {
    display: none !important;
}

img {
    width: auto;
    max-width: 100%;
    height: auto;
}

a {
    text-decoration: none;
    color:inherit;
}

a[href=""]:not(.post-body .wp-block-button__link) {
    background-color: #FF84C7 !important;
}

span {
    display: inline-block;
}

hr {
    display: block;
    margin: 0 auto;
    padding: 0;
    height: 1px;
    width: 100%;
    border: none;
    background-color: var(--border-color);
}

button {
    cursor: pointer;
}

.note {
    font-size: 0.8em;
    line-height: 1.5;
}

.hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    -webkit-clip-path: inset(0px 0px 99.9% 99.9%);
    clip-path: inset(0px 0px 99.9% 99.9%);
    border: 0;
}

.ta-left {text-align: left !important;}
.ta-center {text-align: center !important;}
.ta-right {text-align: right !important;}
.ta-justify {text-align: justify !important;}

/*------------
    header
------------*/

header a {
    display: inline-block;
}
    header a.program,
    header a.news,
    header a.seminar,
    header a.training,
    header a.support {
        transition: color .3s;
    }

    @media(hover: hover) {
        header a.program:hover {color: var(--program);}
        header a.news:hover {color: var(--news);}
        header a.seminar:hover {color: var(--seminar);}
        header a.training:hover {color: var(--training);}
        header a.support:hover {color: var(--support);}
    }

header img {
    width: 100%;
}

    .mobile-logo {
        width: 100px;
        position: fixed;
        top: 12px;
        left: 12px;
        z-index: 50;
}

    .mobile-logo img {
        transition: opacity .5s;
    }

    @media(hover: hover) {
        .mobile-logo img:hover {
            opacity: 0.7;
        }
    }

    @media screen and (min-width:750px) {
        .mobile-logo {
            display: none;
        }
    }

    #hamburger {
        display: block;
        width: 60px;
        height: 40px;
        position: fixed;
        top: 10px;
        right: 12px;
        z-index: 50;
        border: 0;
        outline: 0;
        border-radius: 8px;
        background-color: var(--bg-black);
        cursor: pointer;
        transition: opacity .5s, background-color .5s;
    }

    @media(hover: hover) {
        #hamburger:hover {
            background-color: var(--bg-black-light);
        }
    }

        #hamburger span,
        #hamburger span::before,
        #hamburger span::after {
            display: block;
            width: 28px;
            height: 2px;
            border-radius: 2px;
            position: absolute;
            background-color: var(--font-color-white);
        }

        #hamburger span {
            margin: 0 auto;
            top: 19px;
            right: 16px;
            color: transparent;
            font-size: 0;
            transition: background-color .2s;
        }

            #hamburger span::before,
            #hamburger span::after {
                content: '';
                left: 0;
                transform-origin: center;
            }

                #hamburger span::before {
                    top: -7px;
                    transition: transform .4s, top .4s;
                }

                #hamburger span::after {
                    top: 7px;
                    transition: transform .4s, top .4s;
                }

                .drawer-open #hamburger span {
                    background-color: transparent;
                }

                .drawer-open #hamburger span::before {
                    top: 0;
                    transform: rotate(27deg);
                }

                .drawer-open #hamburger span::after {
                    top: 0;
                    transform: rotate(-27deg);
                }

    @media screen and (min-width:750px) {
        #hamburger {
            display: none;
        }
    }

    #mobile-drawer {
        padding: 75px 19px 25px;
        width: 16rem;
        border-bottom-left-radius: 40px;
        position: fixed;
        top: -10rem;
        right: -16.1rem;
        z-index: 49;
        border-bottom: 1px solid var(--shadow-color);
        border-left: 1px solid var(--shadow-color);
        background-color: var(--bg-white);
        text-align: right;
        pointer-events: none;
        transition: right .2s, top .2s;
    }

        .drawer-open #mobile-drawer {
            top: 0;
            right: 0;
            pointer-events: auto;
            transition: right .5s, top .5s;
        }

        #mobile-drawer a {
            display: inline-block;
        }

        .mobile-nav-upper {
            font-family: var(--font-rubik);
            font-size: 2rem;
        }

            .mobile-nav-upper {
                font-family: var(--font-rubik);
                font-size: 2rem;
            }

            .mobile-nav-upper li + li {
                margin-top: 10px;
            }

            .mobile-nav-upper a {
                padding: 5px 0;
            }

        .mobile-nav-lower {
            margin-top: 25px;
            padding-top: 25px;
            border-top: 1px solid var(--border-color-light);
            font-size: 1.2rem;
        }

            .mobile-nav-lower a {
                padding: 6px 0;
                transition: opacity .5s;
            }

            @media(hover: hover) {
                .mobile-nav-lower a:hover {
                    opacity: 0.6;
                }
            }

            .mobile-nav-lower .x {
                margin-top: 5px;
            }

            .mobile-nav-lower .x img {
                width: 22px;
            }

    @media screen and (min-width:750px) {
        #mobile-drawer,
        .drawer-open #mobile-drawer {
            display: none !important;
        }
    }

    .pc-header {
        display: none;
    }

    @media screen and (min-width:750px) {
        .pc-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px 20px;
            height: 60px;
            width: 100%;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 49;
            background-color: rgb(250 250 250/90%);
        }

        .pc-header-left {
            display: flex;
            justify-content: flex-start;
            align-items: center;
        }

            .pc-logo {
                width: 125px;
                box-sizing: content-box;
            }

            .pc-text {
                display: none;
            }

        .pc-header-right {
            margin-left: 30px;
        }

        .pc-nav {
            display: flex;
            justify-content: flex-end;
            align-items: center;
            font-family: var(--font-rubik);
            font-size: 1.6rem;
        }

        .pc-nav li + li {
            margin-left: 25px;
        }
    }

    @media screen and (min-width:1000px) {
        .pc-header {
            padding: 10px 30px;
            height: 80px;
        }

            .pc-logo {
                padding-right: 15px;
                margin-right: 15px;
                border-right: 1px solid var(--border-color);
            }

            .pc-text {
                display: block;
                font-size: 15px;
                font-weight: var(--font-weight-bold);
            }

        .pc-nav li + li {
            margin-left: 30px;
        }
    }

    @media screen and (min-width:1250px) {
        .pc-nav {
            font-size: 2rem;
        }
    }


/*------------
    footer
------------*/

footer {
    padding: 30px 25px 20px;
    position: relative;
    z-index: 2;
    background-color: var(--bg-black);
    color: var(--font-color-white);
}

    footer .inner {
        margin: 0 auto;
        max-width: 1400px;
    }

    footer a {
        display: block;
        transition: opacity .5s;
    }

    footer img {
        width: 100%;
    }

    @media(hover: hover) {
        footer a:hover {
            opacity: 0.7;
        }
    }
    
    .footer-upper {
        display: block;
    }
    
        .footer-logo {
            margin: 0 auto;
            width: 220px;
        }

        .footer-organizers {
            margin: 0 auto;
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
            font-size: 1.3rem;
            line-height: 1.4;
        }

        .footer-organizers li {
            margin-top: 25px;
            display: flex;
            justify-content: flex-start;
            align-items: center;
        }

            .footer-organizers .img {
                flex: 0 0 132px;
            }

            .footer-organizers hr {
                flex: 0 0 1px;
                align-self: stretch;
                margin: 0 12px;
                height: auto;
                background-color: #CCC;

            }

            .footer-organizers .small {
                font-size: 1rem;
            }
    
    .footer-lower {
        display: block;
    }

        .footer-links {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-top: 20px;
            font-size: 1.3rem;
            text-align: center;
        }

            .footer-links li + li {
                margin-top: 15px;
            }

            .footer-links .x {
                width: 20px;
            }

        footer .copyright {
            margin-top: 20px;
            color: #CCC;
            font-size: 1rem;
            line-height: 1.4;
            text-align: center;
        }

    @media screen and (min-width:500px) {
        footer {
            padding: 30px 50px 20px;
        }

            .footer-links {
                flex-direction: row;
                justify-content: center;
            }

                .footer-links li + li {
                    margin-top: 0;
                    margin-left: 20px;
                }
    }

    @media screen and (min-width:1000px) {
    
        .footer-upper {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 50px;
        }
        
            .footer-logo {
                margin: 0 40px 0 0;
                width: 250px;
            }

            .footer-organizers {
                display: flex;
                justify-content: flex-end;
                align-items: flex-start;
                margin: 0;
            }

            .footer-organizers li {
                margin-top: 0;
                margin-left: 25px;
            }

            .footer-organizers .arclight {
                flex-shrink: 0;
            }

        .footer-lower {
            display: flex;
            flex-direction: row-reverse;
            justify-content: space-between;
            align-items: flex-end;
        }

            .footer-links {
                justify-content: flex-end;
                margin-top: 0;
            }

            footer .copyright {
                margin-top: 0;
                margin-right: 30px;
                text-align: left;
            }
    }


/*------------
     main
------------*/

main {
    margin: 0 auto;
    padding: 10px 15px 30px;
    max-width: 1022px;
}

    main > .button-black {
        margin-top: 40px;
    }

    @media screen and (min-width:500px) {
        main {
            padding-left: 30px;
            padding-right: 30px;
        }
    }

    @media screen and (min-width:750px) {
        main {
            padding: 50px 50px 60px;
        }

            main > .button-black {
                margin-top: 80px;
            }
    }

/* common item */
html.js .slideInUp {
    transform: translateY(150px);
    transition: transform .4s, opacity .3s;
}

html.js .slideInUpList .box {
    opacity: 0;
    transform: translateY(20px);
    transition: transform .6s, opacity .2s;
}

    html.js .slideInUp.show,
    html.js .slideInUpList .box.show {
        opacity: 1;
        transform: none !important;
    }

.skip-animation {
    transition: none !important;
}

    @media screen and (min-width:750px) {
        html.js .slideInUp {
            transform: translateY(200px);
            transition: transform .6s, opacity .4s, left .4s;
        }

        html.js .slideInUpList .box {
            transform: translateY(30px);
        }
    }

.button-black {
    display: block;
    margin: 0 auto;
    padding: 9px 35px 8px;
    width: -webkit-fit-content;
    width: -moz-fit-content;
    width: fit-content;
    min-width: 140px;
    position: relative;
    border-radius: 8px;
    background-color: var(--bg-black);
    color: var(--font-color-white);
    font-family: var(--font-rubik);
    font-size: 2rem;
    text-align: center;
    transition: background-color .3s;
}

    @media(hover: hover) {
        .button-black:hover {background-color: var(--bg-black-light);}
        .program .button-black:hover {background-color: var(--program);}
        .news .button-black:hover {background-color: var(--news);}
        .seminar .button-black:hover {background-color: var(--seminar);}
        .training .button-black:hover {background-color: var(--training);}
        .support .button-black:hover {background-color: var(--support);}
    }

    .button-black.forward::after {
        content: '';
        display: inline-block;
        width: 8px;
        height: 8px;
        position: absolute;
        top: calc(50% - 5px);
        right: 15px;
        border-top: 2px solid;
        border-right: 2px solid;
        transform: rotate(45deg);
    }

    .button-black.back::before {
        content: '';
        display: inline-block;
        width: 8px;
        height: 8px;
        position: absolute;
        top: calc(50% - 5px);
        left: 15px;
        border-bottom: 2px solid;
        border-left: 2px solid;
        transform: rotate(45deg);
    }

    @media screen and (min-width:500px) {
        .button-black {
            padding: 12px 35px;
            min-width: 220px;
            font-size: 2.4rem;
        }
    }

.post_list-item {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    background-color: var(--bg-white);
    border: 1px solid var(--border-color);
}

    .post_list-item a {
        display: block;
        position: relative;
    }

    .post_list-item .post-thumb {
        position: relative;
        overflow: hidden;
    }

        .post_list-item .post-thumb img {
            width: 100%;
            height: auto;
            transition: transform .6s;
        }

        @media(hover: hover) {
            .post_list-item a:hover .post-thumb img {
                transform: scale(1.1);
            }
        }

    .post_list-item .post-meta {
        padding: 10px 15px;
    }

        .post_list-item .post-date {
            display: block;
            margin-bottom: 3px;
            color: var(--font-color-light);
            font-size: 1.2rem;
        }

        .news .post_list-item .post-date {color: var(--news);}
        .seminar .post_list-item .post-date {color: var(--seminar);}

        .post_list-item .post-title {
            font-size: 1.3rem;
            line-height: 1.6;
        }

    @media screen and (min-width:500px) {
        .post_list-item .post-meta {
            padding: 15px 20px;
        }

            .post_list-item .post-date {
                margin-bottom: 6px;
                font-size: 1.4rem;
            }

            .post_list-item .post-title {
                font-size: 1.5rem;
                line-height: 1.8;
            }
    }

    @media screen and (min-width:1000px) {
        .post_list-item .post-title {
            font-size: 1.6rem;
        }
    }

.breadcrumb {
    margin-bottom: 20px;
    color: var(--font-color-light);
    font-size: 1rem;
    line-height: 1.6;
}

    .breadcrumb li {
        display: inline-block;
    }

        .breadcrumb li::after {
            content: '/';
            display: inline-block;
            margin: 0 .5em;
        }

        .breadcrumb li:last-child {
            display: inline;
        }

        .breadcrumb li:last-child::after {
            content: none;
        }

        .breadcrumb li a {
            transition: opacity .5s;
        }

        @media(hover: hover) {
            .breadcrumb li a:hover {
                opacity: 0.7;
            }
        }

    @media screen and (min-width:750px) {
        .breadcrumb {
            margin-bottom: 30px;
        }
    }

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    font-family: var(--font-rubik);
    font-size: 1.8rem;
    line-height: 1;
    text-align: center;
}

    .pagination li + li {
        margin-left: 4px;
    }

    .pagination a,
    .pagination span {
        display: block;
        padding: 6px 0;
        width: calc(1.8rem + 14px);
        height: calc(1.8rem + 14px);
        border: 1px solid var(--bg-black);
        background-color: var(--bg-black);
        color: var(--font-color-white);
        transition: border-color .3s, background-color .3s;
    }

    @media(hover: hover) {
        .pagination a:hover {
            border-color: var(--bg-black-light);
            background-color: var(--bg-black-light);
        }
        .news .pagination a:hover {
            border-color: var(--news);
            background-color: var(--news);
        }
        .seminar .pagination a:hover {
            border-color: var(--seminar);
            background-color: var(--seminar);
        }
    }

    .pagination span {
        color: var(--border-color-light);
        background-color: var(--bg-white);
        border-color: var(--border-color-light);
    }

    .pagination .prev,
    .pagination .next {
        color: transparent;
        font-size: 0;
        position: relative;
    }

        .pagination .prev::before,
        .pagination .next::before {
            content: '';
            position: absolute;
            display: inline-block;
            width: 8px;
            height: 8px;
            border: 2px solid var(--font-color-white);
            top: calc(50% - 5px);
            pointer-events: none;
        }

        .pagination .prev:has(span)::before,
        .pagination .next:has(span)::before {
            border-color: var(--border-color-light);
        }

        .pagination .prev::before {
            border-bottom-width: 0;
            border-right-width: 0;
            transform: rotate(-45deg);
            left: calc(50% - 3px);
        }

        .pagination .next::before {
            border-bottom-width: 0;
            border-left-width: 0;
            transform: rotate(45deg);
            right: calc(50% - 3px);
        }

        .pagination .prev a,
        .pagination .prev span {
            border-top-left-radius: 8px;
            border-bottom-left-radius: 8px;
        }

        .pagination .next a,
        .pagination .next span {
            border-top-right-radius: 8px;
            border-bottom-right-radius: 8px;
        }

    @media screen and (min-width:500px) {
        .pagination {
            font-size: 2rem;
        }

        .pagination a,
        .pagination span {
            padding: 7px 0;
            width: calc(2rem + 16px);
            height: calc(2rem + 16px);
        }
    }

.message {
    color:var(--font-color-light);
    line-height: 1.5;
}

/* archive */
.archive-title {
    font-size: 2.4rem;
    letter-spacing: 0.02em;
    font-weight: var(--font-weight-bold);
    line-height: 1.4;
    text-align: center;
}

.archive-title:has(picture) {
    padding: 0 20px;
    line-height: 1;
}

.archive-title picture {
    display: block;
    margin: 0 auto;
    max-width: 525px;
}

.archive-title img {
    width: 100%;
}

.archive .message,
.error .message {
    margin-top: 40px;
    text-align: center;
}

    @media screen and (min-width:500px) {
        .archive-title {
            font-size: 3rem;
        }

        .archive-title:has(picture) {
            padding: 0 30px;
        }

        .archive .message,
        .error .message {
            margin-top: 60px;
        }
    }

.archive .pagination {
    margin-top: 20px;
}

    @media screen and (min-width:500px) {
        .archive .pagination {
            margin-top: 30px;
        }
    }

    @media screen and (min-width:750px) {
        .archive .pagination {
            margin-top: 40px;
        }
    }

.archive .post_list {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    margin-top: 20px;
}

    .archive .post_list-item {
        margin: 14px 14px 0 0;
        width: calc(50% - 7px);
    }

    .archive .post_list-item:nth-child(-n+2) {
        margin-top: 0;
    }

    .archive .post_list-item:nth-child(2n) {
        margin-right: 0;
    }

    @media screen and (min-width:500px) {
        .archive .post_list {
            margin-top: 30px;
        }

        .archive .post_list-item {
            margin: 28px 28px 0 0;
            width: calc(50% - 14px);
        }
    }

    @media screen and (min-width:750px) {
        .archive .post_list {
            margin-top: 40px;
        }

        .archive .post_list-item,
        .archive .post_list-item:nth-child(2n) {
            margin: 33px 33px 0 0;
            width: calc(33.33333% - 22px);
        }

        .archive .post_list-item:nth-child(-n+3) {
            margin-top: 0;
        }

        .archive .post_list-item:nth-child(3n) {
            margin-right: 0;
        }
    }

    @media screen and (min-width:1000px) {
        .archive .post_list-item,
        .archive .post_list-item:nth-child(2n) {
            margin: 39px 39px 0 0;
            width: calc(33.33333% - 26px);
        }

        .archive .post_list-item:nth-child(-n+3) {
            margin-top: 0;
        }

        .archive .post_list-item:nth-child(3n) {
            margin-right: 0;
        }
    }

.archive + .button-black {
    margin-top: 40px;
}

    @media screen and (min-width:750px) {
        .archive + .button-black {
            margin-top: 80px;
        }
    }


/* singular */

.article {
    padding: 30px 20px;
    background-color: var(--bg-white);
    border: 1px solid var(--shadow-color);
    border-radius: 40px;
    box-shadow: 4px 4px 0 var(--shadow-color);
    position: relative;
}

    @media screen and (min-width:500px) {
        .article {
            padding: 35px 30px;
        }
    }

    @media screen and (min-width:750px) {
        .article {
            padding: 40px 50px;
        }
    }

    @media screen and (min-width:1000px) {
        .article {
            padding: 50px 70px;
        }
    }

.article .post-header {
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}

    .article .post-date {
        display: block;
        margin-bottom: 5px;
        font-size: 1.2rem;
    }

        .news .article .post-date {color: var(--news);}
        .seminar .article .post-date {color: var(--seminar);}

    .article .post-title {
        font-size: 2rem;
        font-weight: var(--font-weight-bold);
        line-height: 1.5;
        word-break: break-word;
    }

    @media screen and (min-width:500px) {
        .article .post-date {
            font-size: 1.4rem;
        }

        .article .post-title {
            font-size: 3rem;
        }
    }

    @media screen and (min-width:750px) {
        .article .post-header {
            padding-bottom: 30px;
        }

            .article .post-date {
                margin-bottom: 10px;
            }


    }

.article .post-body {
    padding-top: 20px;
}

    .post-body h2,
    .post-body h3 {
        margin-bottom: 0.6em;
        font-weight: var(--font-weight-bold);}

        .post-body h2 {
            margin-top: 1.5em;
            padding-left: 15px;
            border-left: 4px solid var(--program); 
            font-size: 1.3em;
            line-height: 1.5;}

        .news .post-body h2 {border-color: var(--news);}
        .seminar .post-body h2 {border-color: var(--seminar);}

        .post-body h3 {
            margin-top: 1.2em;
            color: var(--program);
            font-size: 1.1em;
            letter-spacing: .05em;
            line-height: 1.5;}

        .news .post-body h3 {color: var(--news);}
        .seminar .post-body h3 {color: var(--seminar);}

        .post-body h2:first-child,
        .post-body h3:first-child {
            margin-top: 0;}

    .post-body p {
        margin-bottom: 1em;
        line-height: 1.8;
        text-align: justify;}

    .post-body p:empty{
        display: none;}

    .post-body img,
    .post-body div,
    .post-body figure {
        margin: 1.5em 0;}

        .post-body img:first-child,
        .post-body div:first-child,
        .post-body figure:first-child {
            margin-top: 0;}

        .post-body figure img,
        .post-body figure div {
            margin: 0;}

        .post-body figure figcaption {
            margin-top: 5px;
            color: var(--font-color-light);
            font-size: .8em;
            line-height: 1.4;}

    .post-body ul,
    .post-body ol {
        margin-bottom: 1.5em;}

        .post-body li ul,
        .post-body li ol {
            margin-top: .5em;
            font-size: .95em;}

            .post-body li {
                margin-bottom: .5em;}

                .post-body li ul li,
                .post-body li ol li {
                    margin-bottom: .3em;}

    .post-body p:last-child,
    .post-body img:last-child,
    .post-body div:last-child,
    .post-body figure:last-child,
    .post-body ul:last-child,
    .post-body ol:last-child,
    .post-body li:last-child {
        margin-bottom: 0;}

    .post-body ul {
        padding-left: 1.5em;
        list-style-type: disc;}

    .post-body ol {
        padding-left: 2em;
        list-style-type: decimal-leading-zero;}

        .post-body li::marker {color: var(--program);}
        .news .post-body li::marker {color: var(--news);}
        .seminar .post-body li::marker {color: var(--seminar);}

        .post-body li {
            line-height: 1.5;}
            
        .post-body iframe {
            max-width: 100%;}

        .post-body strong {
            font-weight: var(--font-weight-bold);}

        .post-body em {
            font-style: oblique;}

        .post-body p a {
            color: var(--program);
            text-decoration: underline;
            transition: -webkit-text-decoration .4s;
            transition: text-decoration .4s;
            transition: text-decoration .4s, -webkit-text-decoration .4s;}

        .news .post-body p a {color: var(--news);}
        .seminar .post-body p a {color: var(--seminar);}

        @media(hover: hover) {
            .post-body p a:hover {
                -webkit-text-decoration-color: transparent;
                        text-decoration-color: transparent;
            }
        }

        .post-body .wp-block-button__link {
            display: inline-block;
            padding: 7px 30px 8px 15px;
            width: -webkit-fit-content;
            width: -moz-fit-content;
            width: fit-content;
            min-width: 100px;
            position: relative;
            border-radius: 6px;
            background-color: var(--bg-black);
            color: var(--font-color-white);
            font-weight: var(--font-weight-bold);
            line-height: 1.3;
            text-align: center;
            transition: background-color .3s;
            cursor: pointer;}

        .post-body .wp-block-button__link:before {
            content: '';
            position: absolute;
            display: inline-block;
            width: 6px;
            height: 6px;
            border-top: 2px solid;
            border-right: 2px solid;
            top: calc(50% - 3px);
            right: 13px;
            transform: rotate(45deg);}

        @media(hover: hover) {
            .post-body .wp-block-button__link:hover {
                background-color: var(--bg-black-light);
            }
        }

        .post-body .has-text-align-left {text-align: left !important;}
        .post-body .has-text-align-center {text-align: center !important;}
        .post-body .has-text-align-right {text-align: right !important;}

        .post-body .is-not-stacked-on-mobile {
            display: flex;
            gap: 1.5em;
        }

            .post-body .is-not-stacked-on-mobile > .wp-block-column {
                margin: 0;
                flex-basis: 0;
                flex-grow: 1;
            }

    @media screen and (min-width:750px) {
        .article .post-body {
            padding-top: 30px;
        }

        .post-body .is-layout-flex {
            display: flex;
            gap: 1.5em;
        }

        .post-body .is-layout-flex .wp-block-column {
            margin: 0;
            flex-basis: 0;
            flex-grow: 1;
        }
    }