@charset "utf-8";
/* event css */

#page_event .page_titlebox::before,
#page_event_dtl .page_titlebox::before {
content: "EVENT";
}
body::before {
background-image: url("../img/event/body_bg.jpg");
}

@media all and (max-width : 767px ){
body::before {
background-image: url("../img/event/body_bg_sp.jpg");
}
}

/*-------------------------------------------------
intro
-------------------------------------------------*/

.intro_txt {
font-size: 1.6rem;
line-height: 200%;
letter-spacing: 0.2em;
display: block;
text-align: center;
margin-bottom: 50px;
}
.generic {
display: block;
}

@media all and (max-width : 900px ){
.generic {
display: none;
}
}

@media all and (max-width : 767px ){
.intro_txt {
font-size: 1.4rem;
line-height: 180%;
letter-spacing: 0.15em;
margin-bottom: 30px;
}
}


/*-------------------------------------------------
イベント一覧
-------------------------------------------------*/

.event_box_wrap {
display: flex;
flex-wrap: wrap;
gap: 30px;
margin-bottom: 50px;
}
.event_box {
width: calc(33.3333333% - 60px / 3);
padding-bottom: 25px;
position: relative;
background: #fff;
color: #222;
}
.icon_held {
position: absolute;
top: -30px;
left: 15px;
z-index: 10;
}
.icon_held img {
width: 100%;
}

@media all and (max-width : 767px ){
.icon_held {
position: absolute;
top: -24px;
left: 7px;
}
.icon_held img {
width: 80%;
}
}

.event_box .event_img {
margin-bottom: 15px;
position: relative;
background: #000;
overflow: hidden;
}
.event_box .event_img img {
width: 100%;
aspect-ratio: 3 / 2;
object-fit: cover;
transition-duration: 0.7s;
transform: translateZ(0);
backface-visibility: hidden;
will-change: transform;
}
.event_box .event_img img:hover {
transform: scale(1.05);	
transition-duration: 0.7s;	
opacity: 0.8;
}
.event_box .event_title {
font-weight: 700;
font-size: 1.8rem;
margin-bottom: 20px;
letter-spacing: 0.1em;
line-height: 145%;
padding: 0 20px;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
min-height: calc(1.8rem * 1.45 * 2);
}
.event_box .event_info {
display: flex;
align-items: center;
padding: 0 20px;
margin-bottom: 10px;
}
.event_box .event_info dt {
height: 16px;
width: auto;
margin-right: 10px;
}
.event_box .event_info dt img {
max-width :none;
}
.event_box .event_info dd {
font-size: 1.4rem;
margin-left: 5px;
margin-bottom: 0px;
}
.event_cap {
padding: 0 20px;
font-size: 1.4rem;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
text-overflow: ellipsis;
}

@media all and (max-width : 820px ){
.event_box_wrap {
gap: 20px;
}
.event_box {
width: calc((100% - 20px) / 2);
padding-bottom: 20px;
}
}

@media all and (max-width : 767px ){
.event_box {
width: 100%;
margin-right: 0px;
margin-bottom: 10px;
padding-bottom: 15px;
}
.event_box .event_img {
margin-bottom: 10px;
}
.event_box .event_title {
font-size: 1.5rem;
margin-bottom: 15px;
line-height: 145%;
padding: 0 15px;
min-height: 0;
}
.event_box .event_info {
display: flex;
align-items: center;
padding: 0 15px;
margin-bottom: 10px;
}
.event_box .event_info dt {
margin-right: 5px;
}
.event_box .event_info dt img {
height: 12px;
}
.event_box .event_info dd {
font-size: 1.2rem;
margin-left: 5px;
margin-bottom: 0px;
}
.event_cap {
padding: 0 15px;
font-size: 1.3rem;
}
.event_box_wrap {
margin-bottom: 20px;
}
}



/* イベント詳細ページ
-------------------------------------------------- */

#page_event_dtl .event_title {
font-weight: 500;
font-size: 2.4rem;
padding: 0 10px 10px 5px;
border-bottom: solid 1px #666;
letter-spacing: 0.2em;
margin-bottom: 30px;
}
#page_event_dtl .intro_box {
padding: 15px 50px;
background: rgba(0,6,38,0.7);
border: solid 1px #ECDCBE;
margin-bottom: 40px;
}
#page_event_dtl .intro_box dl {
display: flex;
align-items: center;
color: #ECDCBE;
font-size: 1.6rem;
padding: 20px 10px;
border-bottom: solid 1px #ECDCBE;
}
#page_event_dtl .intro_box dl:last-of-type {
border-bottom: none;
}
#page_event_dtl .intro_box dl dt {
padding-left: 30px;
}
#page_event_dtl .intro_box dl dt.date {
background-image: url("../img/event/icon_calendar_dtl.svg");
background-repeat: no-repeat;
background-position: left center;
}
#page_event_dtl .intro_box dl dt.access {
background-image: url("../img/event/icon_map_dtl.svg");
background-repeat: no-repeat;
background-position: left center;
}
#page_event_dtl .intro_box dl dd {
padding-left: 10px;
}

@media all and (max-width : 767px ){
#page_event_dtl .event_title {
font-size: 1.5rem;
padding: 0 0px 10px 5px;
letter-spacing: 0.1em;
margin-bottom: 20px;
}
#page_event_dtl .intro_box {
padding: 5px 15px;
margin-bottom: 20px;
}
#page_event_dtl .intro_box dl {
font-size: 1.3rem;
padding: 20px 0px;
}

#page_event_dtl .intro_box dl dt {
padding-left: 0px;
white-space: nowrap;
}
#page_event_dtl .intro_box dl dt.date {
background-image: none;
}
#page_event_dtl .intro_box dl dt.access {
background-image: none;
}
#page_event_dtl .intro_box dl dd {
padding-left: 0px;
}

}




/*-------------------------------------------------
slider
-------------------------------------------------*/

.item-slider {
overflow: hidden;
}
.item-slider-wrap {
max-width: 98rem;
}


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

.item-slider-images {
position: relative;
}
.item-slider-main {
position: relative;
width: 100%;
height: 520px;
overflow: hidden;
}
.item-slider-slide {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
visibility: hidden;
}
.item-slider-slide:first-child {
opacity: 1;
visibility: visible;
}
.item-slider-image {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
cursor: grab;
}
.item-slider-image img {
display: block;
width: 100%;
height: 100%;
object-fit: contain;
user-select: none;
-webkit-user-drag: none;
}
.item-slider-image figcaption {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
padding: 1rem;
background-color: rgba(0, 0, 0, 0.7);
font-size: 1.5rem;
color: #fff;
line-height: 1.6;
text-align: center;
}

/* キャプション未入力時 */
.item-slider-image figcaption:empty {
display: none;
}


/*-------------------------------------------------
thumbnail
-------------------------------------------------*/

.item-slider-thumbox {
display: flex;
flex-direction: column;
}
.item-slider-thumbs {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
}
.item-slider-thumb-track {
display: flex;
flex-direction: column;
gap: 10px;
}
.item-slider-thumb {
display: block;
width: 100%;
padding: 0;
margin: 0;
border: none;
background: transparent;
cursor: pointer;
opacity: 0.5;
transition: opacity 0.4s ease;
flex-shrink: 0;
aspect-ratio: 3 / 2;
overflow: hidden;
appearance: none;
-webkit-appearance: none;
}
.item-slider-thumb:hover {
opacity: 0.8;
}
.item-slider-thumb.is-active {
opacity: 1;
}
.item-slider-thumb img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.item-slider-thumb.is-active img {
outline: 2px solid #B29458;
outline-offset: -2px;
}


/*-------------------------------------------------
prev / next
-------------------------------------------------*/

.item-slider-prev,
.item-slider-next {
display: flex;
align-items: center;
justify-content: center;
flex: 0 0 48px;
width: 100%;
height: 48px;
padding: 0;
margin: 0;
border: none;
border-radius: 0;
background: transparent;
appearance: none;
-webkit-appearance: none;
cursor: pointer;
box-sizing: border-box;
}
.item-slider-prev::before,
.item-slider-next::before {
content: "";
display: block;
width: 1rem;
height: 1rem;
border-bottom: 1px solid #B29458;
border-right: 1px solid #B29458;
}
.item-slider-prev::before {
transform: rotate(-135deg);
}
.item-slider-next::before {
transform: rotate(45deg);
}


/*-------------------------------------------------
PC / tablet
-------------------------------------------------*/

@media screen and (min-width: 768px) {
.item-slider-wrap {
display: flex;
align-items: stretch;
}
.item-slider-images {
width: 79.5918367347%;
height: 520px;
}
.item-slider-main {
height: 520px;
}
.item-slider-thumbox {
width: 18.8775510204%;
height: 520px;
margin-left: 1.5rem;
padding: 0 1.5rem;
border: solid 1px #B29458;
box-sizing: border-box;
}

/*
上下ボタンを除いた残りの高さを
サムネイル表示エリアとして使用
*/
.item-slider-thumbs {
flex: 1;
min-height: 0;
overflow: hidden;
}
.item-slider-thumb-track {
display: flex;
flex-direction: column;
gap: 10px;
height: auto;
}

/*
サムネイルは必ず3:2
高さは横幅から自動計算
*/
.item-slider-thumb {
flex: 0 0 auto;
width: 100%;
height: auto;
aspect-ratio: 3 / 2;
}

/* 4枚までは上下ナビ非表示 */
.item-slider-prev,
.item-slider-next {
display: none;
}

/* 5枚以上の時だけ上下ナビ表示 */
.item-slider.is-overflow .item-slider-prev,
.item-slider.is-overflow .item-slider-next {
display: flex;
}
}


@media screen and (max-width: 1024px) and (min-width: 821px) {
.item-slider-images {
height: 460px;
}
.item-slider-main {
height: 460px;
}
.item-slider-thumbox {
height: 460px;
}
}

@media screen and (max-width: 820px) and (min-width: 768px) {
.item-slider-images {
height: 400px;
}
.item-slider-main {
height: 400px;
}
.item-slider-thumbox {
height: 400px;
}
}



/*-------------------------------------------------
SP
-------------------------------------------------*/

@media screen and (max-width: 767px) {
.item-slider-images {
width: 100%;
}
.item-slider-main {
height: 233px;
}
.item-slider-image figcaption {
font-size: 1.0rem;
padding: 0.6rem;
}
.item-slider-thumbox {
flex-direction: row;
align-items: center;
width: 100%;
margin-top: 10px;
}
.item-slider-prev,
.item-slider-next {
display: flex;
flex: 0 0 2rem;
width: 2rem;
height: 58px;
}
.item-slider-prev::before {
transform: rotate(135deg);
}
.item-slider-next::before {
transform: rotate(-45deg);
}
.item-slider-thumbs {
width: calc(100% - 50px);
height: 58px;
margin: 0 1.6rem;
}
.item-slider-thumb-track {
flex-direction: row;
gap: 10px;
height: 100%;
}
.item-slider-thumb {
flex: 0 0 calc((100% - 20px) / 3);
width: auto;
height: 58px;
aspect-ratio: auto;
}
.item-slider-thumb img {
width: 100%;
height: 100%;
object-fit: cover;
}
}



/* スポット紹介文
-------------------------------------------------- */

#page_event_dtl .event_txt {
font-size: 1.6rem;
line-height: 200%;
padding-top: 30px;
margin-bottom: 80px;
}
#page_event_dtl .menu_info {
font-size: 2.0rem;
font-weight: 500;
letter-spacing: 0.2em;
padding: 0 10px 10px 5px;
border-bottom: solid 1px #999;
margin-bottom: 20px;
}
#page_event_dtl .info_box {
width: 47.96%;
padding: 20px 10px;
border-bottom: solid 1px #999;
display: flex;
align-items: center;
letter-spacing: 0.2em;
}
#page_event_dtl .info_box dt {
width: 25%;
}
#page_event_dtl .info_box dd {
width: 75%;
}
#page_event_dtl .info_box dd a {
text-decoration: underline;
color: #ECDCBE;
}
#page_event_dtl .info_box dd a:hover {
text-decoration: none;
}
#page_event_dtl .info_box_wrap {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
margin-bottom: 80px;
}

@media all and (max-width : 767px ){
#page_event_dtl .event_txt {
font-size: 1.4rem;
line-height: 180%;
padding-top: 20px;
margin-bottom: 30px;
}
#page_event_dtl .menu_info {
font-size: 1.5rem;
letter-spacing: 0.15em;
padding: 0 10px 10px 5px;
margin-bottom: 10px;
}
#page_event_dtl .info_box {
width: 100%;
padding: 20px 10px;
border-bottom: solid 1px #999;
display: flex;
align-items: center;
letter-spacing: 0.2em;
}
#page_event_dtl .info_box dt {
width: 30%;
}
#page_event_dtl .info_box dd {
width: 70%;
}
#page_event_dtl .info_box_wrap {
margin-bottom: 40px;
}
}




/*-------------------------------------------------
アクセスマップ
-------------------------------------------------*/

#page_event_dtl .gmap {
height: 0;
overflow: hidden;
padding-bottom: 44.18%;
position: relative;
}
#page_event_dtl .gmap iframe {
position: absolute;
left: 0;
top: 0;
height: 100%;
width: 100%;
}
#page_event_dtl .gmap_wrap {
padding-top: 10px;
margin-bottom: 20px;
}
#page_event_dtl .access_ttl {
display: flex;
flex-direction: column;
font-size: 1.6rem;
letter-spacing: 0.2em;
margin-bottom: 60px;
}
#page_event_dtl .access_ttl dt {
margin-left: -8px;
margin-bottom: 10px;
}

@media all and (max-width : 767px ){
#page_event_dtl .access_ttl {
display: flex;
flex-direction: column;
font-size: 1.3rem;
letter-spacing: 0.1em;
margin-bottom: 25px;
}
#page_event_dtl .access_ttl dt {
margin-left: -8px;
margin-bottom: 6px;
}
}