/**
 * additional.css
 *
 * @package fest-spectrum
 */

@charset "UTF-8";

.wp-block-columns .wp-block-column > * {
    margin-top: 5px;
    margin-bottom: 5px;
}

.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) img {
    outline: none !important;
}

.kadomaru img {
    border-radius: 10px;
}

.main-text p {
    padding-bottom: 20px;
}

.image-slider {
    position:absolute;
    top:0px;
    z-index: -1;
}

.image-slider::after {
    position:absolute;
    bottom:0px;
    z-index: 2;
    content: '';
    display: inline-block;
    width: 100%;
    height: 85px;
    background-image: url(https://fest.spectrumtokyo.com/2026/wp-content/uploads/sites/2/2025/11/grad_beige_top.png);
    background-size: contain;
    vertical-align: middle;
}

.main-page-logo {
    position: relative;
    right: 0;
    top: 200px;
    left: 0;
    margin: auto;
    z-index: 1;
}

.header-stats {
    margin-bottom: 0px;
    text-align: center;
}

.header-stats-spacer {
    width: 1px;
    border-right: 3px solid #3E2C3D;
}

.header-stats-unit {
    position: relative;
    top: 10px;
}

.header-stats-number {
    line-height: 2rem;
}

.details_table tr {
    border-top: 1px solid #DDD8D6;
    border-bottom: 1px solid #DDD8D6;
}

.top_button a {
    margin: auto;
    display: block;
    width: 300px;
    text-decoration: none;
    font-weight: 800;
    color: #fff;
    padding: 20px;
    text-align: center;
    border-radius: 100px;
    background-color: #F24E1E;
}

.top_button a:visited {
    background-color: #F24E1E;
}

.top_button a:hover {
    position: relative;
    top: 1px;
    background-color: #fd9575;
    transition: 0.2s ease-in-out;
}

.top_button a:focus {
    background-color: #F24E1E !important;
    text-decoration: none !important;
}

.speakers_body {
    max-width: 896px;
}

.speakers_unit a:focus,
.speakers_unit a:active {
    background: none !important;
    border: none !important;
    outline: none !important;
}

.speakers_unit a:focus img {
    outline-offset: none !important;
}

.speakers_unit_pair {
    max-width: 432px;
}

.speakers_unit_pair .wp-block-columns .wp-block-column:not(:last-child) {
    margin-bottom: 0px !important;
}

.speakers_unit {
    margin: 0px 20px;
    max-width: 200px;
    height: 240px;
}

.speakers_unit img {
    max-width: 180px;
}

.speakers_unit a {
    scale: 1;
    transform: rotate(0deg);
    transition: 0.2s ease-in-out;
}

.speakers_unit a:hover {
    scale: 1.2;
    transform: rotate(3deg);
    transition: 0.2s ease-in-out;
}

.speakers_unit p,
.speakers_unit figure {
    max-width: 200px;
    margin: 0px !important;
}

.speakers_name {
    position: relative;
    top: -40px;
    left: -5px;
    transform: rotate(-4deg);
    line-height: 1;
    text-shadow:
        2px 2px 0 #F2EFEB,
        -2px 2px 0 #F2EFEB,
        -2px -2px 0 #F2EFEB,
        2px -2px 0 #F2EFEB;
    white-space: nowrap;
    font-size: 1.6rem;
    padding: 0px !important;
}

.speakers_metainfo {
    position: relative;
    top: -40px;
    transform: rotate(-4deg);
    padding: 0px !important;
    font-size: 0.8rem !important;
}

.speakers_sessiontitle {
    visibility: hidden;
    position: relative;
    top: -320px;
    left: 20px;
    padding: 10px !important;
    font-size: 0.7rem !important;
    font-weight: 800;
    width:240px;
    background:#fff;
    z-index: 2;
    border-radius: 10px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.speakers_sessiontitle::before {
    content: "";
    position: absolute;
    bottom: -9px;
    left: 20px;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid #fff;
    filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.1));
}

.speakers_unit:hover .speakers_sessiontitle {
    opacity: 1;
    visibility: visible;
}

.sub-page-logo {
    position: absolute;
    top: 20px;
    right: 0;
    bottom: -20px;
    left: 0;
    margin: auto;
}

.sub-page-logo img {
    width: 240px;
}

.sub-page-logo a:focus,
.sub-page-logo a:active {
    background: none !important;
    border: none !important;
    outline: none !important;
}


.jobboard-unit {
    background:#fff;
    border-radius: 10px;
    padding: 15px;
    width: 200px;
}

.jobboard-type {
    display: inline-block;
    border-radius: 0.4em;
    border: 2px solid #d16949;
    color: #F24E1E;
    font-weight:600;
    font-size:0.6rem;
    padding: 3px 5px;
    line-height: 1.5;
    box-sizing: border-box;
    background: #fff;
    margin:8px 0px;
    /* 文字だけを囲むようにborder */
}

.jobboard-company {
    font-weight: 900;
    font-size:0.8rem;
}

.jobboard-jobtitle {
    font-size:0.8rem;
}

.jobboard-jobtitle a.link {
    text-decoration: none;
}

.jobboard-jobtitle a.link:hover {
    text-decoration: underline;
    transition: 0.2s ease-in-out;
}

.jobboard-jobtitle a.link:focus {
    text-decoration: none;
    outline: none !important;
    border: none !important;
    background: none !important;
    transition: 0.2s ease-in-out;
}
.jobboard-jobtitle a.link:active {
    text-decoration: none;
    outline: none !important;
    border: none !important;
    background: none !important;
    transition: 0.2s ease-in-out;
}

.jobboard-jobtitle a.link::after {
    content: "↗";              /* 好きな記号や絵文字に変更可 */
    font-size: 0.8em;
    margin-left: 0.25em;
    display: inline-block;
}

.program-table a {
    text-decoration: none;
    font-weight: 800;
}

.program-table a:focus,
.program-table a:active {
    text-decoration: none !important;
    background: none !important;
    border: none !important;
    outline: none !important;
    color: #333 !important;
}

.program-table td {
    font-weight: 800;
}

.program-header {
    font-family: Bungee;
    font-size:2rem;
}

.program-tag-session-label {
    font-size: 0.7rem;
    color: #138E5B;
    padding: 1px 5px;
    background: #B1E1CA;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.program-tag-session-time {
    font-size: 0.7rem;
    color: #999;
    padding: 1px 5px;
    background: #F2EFEB;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.program-tag-plus {
    font-size: 0.7rem;
    color: #999;
    padding: 1px 5px;
}

.program-tag-workshop-label {
    font-size: 0.7rem;
    color: #F24E1E;
    padding: 1px 5px;
    background: #FFD8CC;
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
}

.program-tag-workshop-time {
    font-size: 0.7rem;
    color: #999;
    padding: 1px 5px;
    background: #F2EFEB;
    border-top-right-radius: 4px;
    border-bottom-right-radius: 4px;
}

.program-tag-language {
    font-size: 0.7rem;
    color: #aaa;
    padding: 1px 5px;
    background: #fff;
    border:1px solid #ccc;
    border-radius: 4px;
}


/** mobile */
@media only screen and (max-width: 782px) {


    :where(.wp-block-columns.is-layout-flex) {
        gap: 0 !important;
    }

    .speakers_body {
        max-width: 400px;
    }

    .speakers_unit_pair {
        position:relative;
        max-width: 400px;
    }

    .speakers_name {
    position: relative;
    top: -40px;
    left: 10px;
    transform: rotate(-4deg);
    line-height: 1;
    text-shadow:
        2px 2px 0 #F2EFEB,
        -2px 2px 0 #F2EFEB,
        -2px -2px 0 #F2EFEB,
        2px -2px 0 #F2EFEB;
    white-space: nowrap;
    font-size: 1.6rem;
    padding: 0px !important;
    }

    .speakers_metainfo {
        position: relative;
        top: -40px;
        left: 15px;
        transform: rotate(-4deg);
        padding: 0px !important;
        font-size: 0.8rem !important;
    }

}
