@charset "utf-8";

*, *::before, *::after {
    box-sizing: border-box;
}


body {
    font-size: 18px;
    font-weight: 400;
    font-family: source-han-sans-japanese, sans-serif;
    line-height: 180%;
    color: #333;
    margin: 0;
    padding: 0;
    width: 100%;
    overflow-x: hidden;
}

img {
    display: block;
    width: 100%;
}

figure {
    margin: 3em 0;
    padding: 0;
}

figcaption, aside, small {
    margin: 0;
    padding: 1% 2%;
    font-size: 0.8rem;
    line-height: 120%;
    color: #555;
}

ul, li, dl, dt, dd {
    margin: 0;
    padding: 0;
}

ul {
    list-style: none;
}

button {
    border: none;
}

section {
    width: 100%;
    margin: 10vh auto;
}

.inner  {
    width: min(550px, 100%);
    margin: 0 auto;
}

p {
    padding: 0;
}

h1 {
    background-image: url('images/hero_bg.jpg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 100vh;
    position: relative;
    margin: 0;
}

h1 img {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 70%;
}

.image_flexbox_wrap {
    width: 100%;
    margin: 10vh auto;
}

.image_flexbox {
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: 0.5rem;
    overflow: clip;
    width: 90%;
    margin: 0 auto;
}

.image_flexbox img {
    height: 60vh;
    object-fit: cover;
}

.image_flexbox img:first-child {
    width: 45%;
}

.image_flexbox img:last-child {
    width: 55%;
}

.img_caption {
    margin: 0px 0px 0px 6em;
    padding: 0 2%;
    font-size: 0.8rem;
    color: #555;
    text-indent: -2em;
    line-height: 120%;
}

.caption {
    font-size: 2.5rem;
    font-weight: 600;
    font-family: yu-mincho-pr6n, sans-serif;
    color: #fff;
    background-color: #000;
    padding: 10%;
    margin: 10vh auto;
    text-align: center;
}

.flow_chart {
    width: 100%;
    margin: 10vh auto;
}

.flow_chart h3 {
    font-size: 1.5rem;
    font-weight: 600;
    text-align: center;
}

.flow_chart ul {
    width: 100%;
} 

.flow_chart ul li {
    background-color: #4f5768;
    font-size: 20px;
    font-weight: 600;
    color: #fff;
    padding: 2% 10%;
    margin: 1rem 0;
    border-radius: 5px;
    position: relative;
}

.flow_chart ul li::after {
    position: absolute;
    content: "";
    display: inline-block;
    background-image: url('images/arrow_down.png');
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    width: 18px;
    height: 18px;
    top: 50%;
    left: 1rem;
    transform: translateY(-50%);
}

.flow_chart ul li span {
    font-family: "barlow-condensed", sans-serif;
    font-weight: 700;
    margin: 0 1em;
}

.about_daihonei {
    font-family: yu-mincho-pr6n, sans-serif;
    font-size: 16px;
    line-height: 140%;
    padding: 2% 10%;
    box-sizing: border-box;
    margin: 10vh 0;
    background-color: #efefef;
    border-radius: 5px;
}

.panorama_wrap {
    width: 100%;
    height: 100vh;
    overflow-x: auto;
    overflow-y: hidden;
    position: relative;
    background-color: #efefef;
    overflow: clip;
}

.panorama {
    height: 100%;
    position: relative;
}

.notice {
    position: absolute;
    bottom: 0;
    left: 10px;
    font-size: 0.75rem;
    padding: 0!important;
}

#panoramaSVG {
    position: absolute;
    bottom: 10px;
    left: 0;
}


.reveal, .non-reveal {
    position: absolute;
    transition: opacity 0.5s ease;
    top: 100px;
}

.reveal {
    opacity: 0;
}

#item001 {
    left: 75px;
}

#item002 {
    left: 500px;
}

#item003 {
    left: 1200px;
}

#item004 {
    left: 1700px;
}

#item005 {
    left: 2800px;
}

#item007 {
    left: 3300px;
}

#item008 {
    left: 4100px;
}

.event_item {
    width: 400px;
    background-color: #fff;
    border: 1px solid #000;
    border-radius: 10px;
}

.event_item img {
    width: 35%;
    object-fit: cover;
}

.event_details {
    flex-basis: 65%;
    padding: 2% 5%;
    color: #333;
}

.event_details h4 {
    font-size: 1.1rem;
    font-weight: 600;
    margin: 0 0 1%;
    border-bottom: 1px solid;
    padding: 1% 0;
}

.event_details dl {
    line-height: 120%;
}

.published_date {
    font-size: 0.8rem;
}

.description {
    font-family: yu-mincho-pr6n, sans-serif;
    margin-top: 0.5rem;
}

.results {
    margin-top: 1rem;
    border-top: 1px solid;
    padding: 1em 0;
    line-height: 160%;
}

.results span {
    color: #fff;
    background-color: #4f5768;
    padding: 3px 2%;
    border-radius: 5px;;
    margin-right: 1%;
    
}

.highlight {
    color: #333;
    display: inline;
    background: linear-gradient(to right, #a36e05 100%, transparent 0);
    background-repeat: no-repeat;
    background-size: 0 100%;
}

.highlight.active {
    animation: highlightAnime 1s forwards, changeColor 1s forwards;
}

@keyframes highlightAnime {
    to {
        background-size: 100% 100%;
    }
}

@keyframes changeColor {
    to {
        color: #fff;
    }
}


.event_caption {
    font-size: 1.3rem;
    font-weight: 700;
    text-align: left;
    color: #4f5768;
    margin: 3em auto 1em;
    border-bottom: 1px solid;
}

.newsrelease {
    padding: 2% 5%;
    box-sizing: border-box;
    background-color: #efefef;
    border-radius: 3px;
    box-shadow: 6px 6px 6px 0px rgba(0, 0, 0, 0.45);
    position: relative;
    margin: 3em auto;
}

.newsrelease::after {
    position: absolute;
    top: 10%;
    left: 5%;
    content: "";
    background-image: url('images/quote.png');
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    width: 25px;
    height: 25px;
}

.newsrelease p {
    font-family: yu-mincho-pr6n, sans-serif;
    font-weight: 700;
    padding: 0 10%;
    margin-top: 2em;
}

.daihonei_credit {
    text-align: right;
    display: block;
}

.article_img {
    background: rgba( 255, 255, 255, 0.1 );
    box-shadow: 0 8px 32px 0 rgba( 31, 38, 135, 0.37 );
    backdrop-filter: blur( 1px );
    -webkit-backdrop-filter: blur( 1px );
    border-radius: 10px;
    border: 1px solid rgba( 255, 255, 255, 0.18 );
}

.wide_width {
    margin-left: calc(50% - 30vw);
    margin-right: calc(50% - 30vw);
}

.chart_bg {
    background-color: #efefef;
}

@keyframes highlightAnime {
    to {
        background-size: 100% 100%;
    }
}

@keyframes changeColor {
    to {
        color: #fff;
    }
}

.chart_wrap {
    background-color: #f5f5f5;
    padding: 2% 5%;
    box-sizing: border-box;
    border-radius: 5px;
    margin-top: 10vh;
    margin-bottom: 10vh;
    margin-left: calc(50% - 45vw);
    margin-right: calc(50% - 45vw);
}

.fadeIn {
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

#go_to_interview {
    width: 100%;
    min-height: 20vh;
    background-color: #4f5768;
    color: #fff;
    font-size: 1.2rem;
    cursor: pointer;
    border: none;
}

#go_to_interview:hover {
    opacity: 0.9;
}

#modal_container {
    display: none;
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.45);
    justify-content: center;
    align-items: center;
    overflow: auto;

}

#interview_modal {
    background-color: #fff;
    width: 95%;
    margin: 10vh auto;
    padding: 1vh 0 10vh;
    border-radius: 8px;
}

#close_button {
    cursor: pointer;
    font-size: 24px;
    float: right;
}

#interview_modal h4 {
    font-size: 1.5rem;
    padding-top: 1.5rem;
    border-top: 3px solid #1110a7;
}

#interview_modal figure {
    margin: 1em auto 3em;
}

#interview_modal .profile {
    margin: 3rem auto;
    border: 1px solid #555;
    border-radius: 10px;
    padding: 2% 5%;
}

#interview_modal .profile ul li:first-child {
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

#interview_modal .profile ul li p {
    line-height: 120%;
    padding: 0;
    word-break: keep-all;
}

#interview_modal .profile ul li:first-child span {
    font-size: 0.6rem;
}

#interview_modal .profile ul li:last-child {
    font-size: 0.8rem;
    line-height: 120%;
    margin-top: 2%;
}

#interview_modal #profile_photo {
    width: 80px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 1rem;
}

#interview_modal dl {
    margin: 3rem auto;
}

#interview_modal dl dt {
    margin-bottom: 0.5rem;
    font-weight: 600;
    text-indent: -1em;
    margin-left: 1em;
    line-height: 140%;
}

.reference {
    width: 100%;
    font-size: 0.8rem;
    margin: 10vh auto;
}

.reference h4 {
    margin: 0;
}

footer {
    background-color: #000;
    padding: 1.5rem;
    width: 100%;
}

footer p {
    text-align: center;
    color: #fff;
}


@media screen and (max-width: 959px) {
    p {
        padding: 0 10%;
    }

    .image_flexbox img {
        height: 25vh;
    }

    .event_caption {
        padding: 0 10%;
    }

    .wide_width {
        margin-left: calc(50% - 45vw);
        margin-right: calc(50% - 45vw);
    }

    .wide_width picture {
        width: 90%;
        display: block;
        margin: 0 auto;
    }

    #go_to_interview {
        margin: 0 auto;
        display: block;
    }

    #interview_modal .inner {
        padding: 0 3%;
    }

    .img_caption {
        margin: 0px 0px 0px 3em;
        box-sizing: border-box;
        width: 85%;
    }
}

@media screen and (max-width: 620px) {
    h1 img {
        width: 80%;
    }
    
    .flow_chart ul {
        width: 95%;
        margin: 0 auto;
    }

    .about_daihonei {
        padding: 2% 0%;
    }

    .event_item {
        width: 300px;
    }

    .newsrelease {
        width: 95%;
        margin: 0 auto;
    }

    .wide_width {
        margin: 3em auto;
    }
}

@media screen and (min-width: 960px) {
    .chart_wrap {
        margin: 10vh auto;
        margin-left: calc(50% - 25vw);
        margin-right: calc(50% - 25vw);
    }
}

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

    #item003 {
        left: 1300px;
    }

    #item004 {
        left: 1640px;
    }

    #item005 {
        left: 2900px;
    }

    #item008 {
        left: 4180px;
    }
}


/*video content*/

.video_commentary_wrap {
	width: 100%;
	border-top: 1px dashed;
	border-bottom: 1px dashed;
}

.video_commentary {
	width: 50%;
	margin: 3em auto;
	display: flex;
	justify-content: center;
	position: relative;
}

.video_commentary_wrap h5 {
    margin: 1em 0 0 0;
    padding: 0 2%;
    border: 1px solid;
    border-radius: 5px;
    width: fit-content;
}

.video_commentary_wrap p {
    font-size: 0.9rem;
    line-height: 140%;
}

#comVideo {
	width: 100%;
}

.c_control_wrap {
	position: absolute;
	display: flex;
	justify-content: center;
	align-items: center;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

#c_play, #c_pause {
	width: 70px;
}

#c_pause {
	display: none;
}

.c_control_bottom_wrap {
	position: absolute;
	bottom: 0;
	width: 100%;
}

.c_control_bottom_wrap ul {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

#c_mute,
#c_unmute,
#c_close_fullscreen,
#c_fullscreen{
	display: none;
	width: 25px;
    right: 10px;
}

#c_fullscreen{
	margin-left: 0.7em;
}

#progressBar {
	height: 10px;
	margin: 0 auto;
	background-color: #ccc;
	cursor: pointer;
}

#progress {
	height: 100%;
	background-color: #555;
	width: 0;
}

.reference {
	width: 100%;
	padding: 0 5%;
}
 
@media screen and (max-width: 620px) {
    .video_commentary {
    width: 60%;
	}
}

@media screen and (max-width: 959px) {
    .video_commentary_wrap h5 {
        padding: 0 2%;
        margin: 1em 10% 0;
    }

}