@charset "utf-8";

/*************************************************************

フォント設定

*************************************************************/
:root {
    --noto-Sans-JP: "Noto Sans JP", serif;
    --noto-Serif-JP: "Noto Serif JP", serif;
    --colorOrange: #FF8103;
    --colorOrange2: #FFF2DE;
    --colorOrange3: #FFB265;
    --colorGreen: #597D52;
    --colorGreen2: #EDF2EB;
    --colorGreen3: #6c8b85;
    --colorDarkBlue: #526A7D;
    --colorDarkBlue2: #dfe1e3;
    --colorDarkBlue3: #F5FCFF;
    --mainTextColor: #333;
    --colorMainColor: #771419;
    --colorPink: #fff9fe;
}




/*************************************************************

基本設定

*************************************************************/
body {
    font-family: var(--noto-Sans-JP), sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.5;
    color: var(--mainTextColor);
    overflow-x: hidden;
    background: #eee;
    background: #fffbf3;
}

@media screen and (max-width:599px) {
    body {
        font-size: 14px;
    }
}

img {
    max-width: 100%;
    vertical-align: bottom;
}

p {
    text-align: justify;
    margin-bottom: 1em;
}

p:last-of-type {
    margin-bottom: 0;
}

strong {
    font-weight: 700;
}

a {
    transition: .3s;
    color: var(--colorOrange);
}

a:hover {
    opacity: .5;
}

.sec {
    margin-bottom: 100px;
    overflow: hidden;
}

.sec:last-child {
    margin-bottom: 0;
}

.sec>.inner {
    max-width: 1300px;
    margin: auto;
    padding: 100px 0;
}

@media screen and (max-width:1300px) {
    .sec>.inner {
        padding: 100px 20px;
    }
}

.contentsHeader+.inner {
    padding-top: 0;
}

.PcOnly {
    display: block;
}

@media screen and (max-width:1024px) {
    .PcOnly {
        display: none;
    }
}

.SpOnly {
    display: none;
}

@media screen and (max-width:1024px) {
    .SpOnly {
        display: block;
    }
}

.textRight {
    text-align: right;
}


/*************************************************************

共通デザイン設定（見出し・ボタン等）

*************************************************************/

/*----------------------------
H2タイトル
----------------------------*/
.sec>.inner h2:first-child {
    font-family: var(--noto-Serif-JP);
    font-weight: 900;
    font-size: 40px;
    text-align: center;
    position: relative;
    margin-bottom: 100px;
    color: var(--colorMainColor);
}

@media screen and (max-width:1024px) {
    .sec>.inner h2:first-child {
        font-size: 40px;
    }
}

@media screen and (max-width:599px) {
    .sec>.inner h2:first-child {
        font-size: 30px;
        margin-bottom: 50px;
    }
}


/*----------------------------
H2タイトル2
----------------------------*/
.sec .contentsHeader {
    position: relative;
}

.sec .contentsHeader::before {
    font-family: var(--noto-Sans-JP);
    font-size: 150px;
    position: absolute;
    z-index: -1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    font-weight: 900;
    color: var(--colorMainColor);
    opacity: .1;
    line-height: 1;
}

@media screen and (max-width:1024px) {
    .sec .contentsHeader::before {
        font-size: 100px;
    }
}

@media screen and (max-width:599px) {
    .sec .contentsHeader::before {
        font-size: 60px;
    }
}

.sec .contentsHeader h2 {
    font-family: var(--noto-Serif-JP);
    font-weight: 900;
    font-size: 40px;
    text-align: center;
    position: relative;
    margin-bottom: 100px;
    color: var(--colorMainColor);
    display: flex;
    align-items: center;
    justify-content: center;
}

@media screen and (max-width:599px) {
    .sec .contentsHeader h2 {
        margin-bottom: 50px;
    }
}

.sec .contentsHeader h2 span {
    display: block;
}

.sec .contentsHeader h2 span.small {
    font-size: 18px;
    font-family: var(--noto-Sans-JP);
}

.sec .contentsHeader h2::before,
.sec .contentsHeader h2::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--colorMainColor);
}

.sec .contentsHeader h2::before {
    margin-right: 40px;
}

.sec .contentsHeader h2::after {
    margin-left: 40px;
}



/*----------------------------
dlタグを使用した表組
----------------------------*/
.dlTable>div {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background: var(--colorPink);
}

@media screen and (max-width:599px) {
    .dlTable>div {
        background: #fff;
    }
}

.dlTable>div:nth-child(odd) {
    background: #fff;
}

@media screen and (max-width:599px) {
    .dlTable>div:nth-child(odd) {
        background: #fff;
    }
}

.dlTable>div dt {
    flex: 200px 0 1;
    padding: 20px;
    color: var(--colorMainColor);
    font-weight: 900;
}

@media screen and (max-width:599px) {
    .dlTable>div dt {
        flex: 100% 0 1;
        text-align: center;
        background: var(--colorOrange2);
        background: var(--colorPink);
    }
}

.dlTable>div dd {
    flex: calc(100% - 220px) 0 1;
    padding: 20px;
    color: var(--colorOrange);
    color: inherit;
}

@media screen and (max-width:599px) {
    .dlTable>div dd {
        flex: 100% 0 1;
    }
}


/*----------------------------
汎用ボタン
----------------------------*/
.moreBT a {
    display: block;
    max-width: 500px;
    margin: auto;
    text-align: center;
    padding: 20px 40px 20px;
    position: relative;
    background: var(--colorOrange);
    color: #fff;
    border-radius: 5px;
}

.moreBT a::before {
    content: "";
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translate(0, -50%) rotate(45deg);
    width: 8px;
    height: 8px;
}


.closeBT span {
    display: block;
    max-width: 500px;
    margin: auto;
    text-align: center;
    padding: 20px 40px 20px !important;
    position: relative !important;
    width: auto !important;
    height: auto !important;
    background: #666;
    color: #fff;
    border-radius: 5px;
    transition: .3s;
}

.closeBT span::before {
    content: "";
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translate(0, -50%) rotate(45deg);
    width: 8px;
    height: 8px;
}

.closeBT span:hover {
    opacity: .5;
}


/*----------------------------
注釈リスト
----------------------------*/
ul.notes li {
    position: relative;
    padding-left: 1.5em;
    font-size: 14px;
    text-align: justify;
    word-break: break-all;
}

ul.notes li::before {
    content: "※";
    position: absolute;
    left: 0;
    top: 0;
    font-size: 14px;
}




/*----------------------------
ページトップへ戻る
----------------------------*/
#page-top {
    position: fixed;
    right: 30px;
    bottom: 30px;
    z-index: 500;
    /*はじめは非表示*/
    opacity: 0;
    transform: translateY(100px);
}

#page-top a {
    background: var(--colorOrange);
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
}

#page-top a::before {
    content: "";
    width: 10px;
    height: 10px;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
    transform: translate(0, 25%) rotate(-45deg);
}

/*　上に上がる動き　*/

#page-top.UpMove {
    animation: UpAnimePageTop 0.5s forwards;
}

@keyframes UpAnimePageTop {
    from {
        opacity: 0;
        transform: translateY(100px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/*　下に下がる動き　*/

#page-top.DownMove {
    animation: DownAnimePageTop 0.5s forwards;
}

@keyframes DownAnimePageTop {
    from {
        opacity: 1;
        transform: translateY(0);
    }

    to {
        opacity: 1;
        transform: translateY(100px);
    }
}



/*----------------------------
モーダルウィンドウ共通設定
----------------------------*/
/*全て共通：hideエリアをはじめは非表示*/
.modalHide {
    display: none;
}

/*全て共通：モーダルのボタンの色を変更したい場合*/
.modaal-close:after,
.modaal-close:before {
    background: #ccc;
}

.modaal-close:focus:after,
.modaal-close:focus:before,
.modaal-close:hover:after,
.modaal-close:hover:before {
    background: #666;
}

.modaal-close {
    position: static;
    width: auto;
    height: auto;
}

.modaal-close::before,
.modaal-close::after {
    display: none;
}

.modaal-wrapper .modaal-close {
    border-top: dotted 2px #ccc;
    border-radius: 0;
    padding-top: 20px;
    padding-bottom: 20px;
}

.modalProf+.closeBT span {
    max-width: 300px;
}

.modaal-overlay {
    z-index: 9998;
}

@media screen and (max-height: 1000px) {
    .modaal-inner-wrapper {
        padding-top: 20px;
        padding-bottom: 20px;
    }
}

.modaal-container {
    background: none;
    width: auto;
}

.modaal-content-container {
    padding: 0 0 0px;
}

.modalWrapper {
    background: #fff;
    border-radius: 5px;
}


/*************************************************************

ヘッダー

*************************************************************/
#header {
    margin: 0;
}

#header>.inner {
    padding: 0;
}

#header #globalNav {
    position: fixed;
    z-index: 999;
    top: 50%;
    right: -120%;
    width: 280px;
    /* 
    height: 90vh;
    
    background:
        linear-gradient(to bottom, rgba(16, 90, 129, .67) 0%, rgba(114, 180, 55, .67) 50%, rgba(43, 59, 9, .81) 100%),
        url(../image/siteBg.jpg) repeat-x left center;
    */
    background:
        url(../image/contentsBG.jpg) repeat-x center top;
    background-size: cover;
    transition: all 0.6s;
    transform: translate(0, -50%);
    border-radius: 10px 0 0 10px;
    border: solid 5px #fff;
    border-right: none;
}

@media screen and (max-height:660px) {
    #header #globalNav {
        max-height: 95vh;
        overflow: auto;
    }
}

#header #globalNav.panelactive {
    right: 0;
}


#header #globalNav.panelactive .scrollBox {
    /* 
    position: fixed;
    z-index: 999;
    */
    padding: 20px 10px;
    width: 100%;
    /* 
    height: 100%;
    */
    /* 
    height: 100vh;
    */

}

/*----------------------------
SNSリンク
----------------------------*/
#header .snsIcon {
    position: absolute;
    top: 20px;
    right: 80px;
    z-index: 100;
}

#header .snsIcon ul {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

#header .snsIcon ul>li {
    flex: 50px 0 1;
    margin: 0 5px;
}

#header .snsIcon ul>li a {
    width: 50px;
    height: 50px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    padding: 10px;
}

#header .snsIcon ul>li a img {
    width: 30px;
}


/*ナビゲーション*/
#header #globalNav .logo {
    margin-bottom: 10px;
}

#header #globalNav .navContainer {
    background: #fff;
    border-radius: 10px;
    padding: 20px 10px;
    margin-bottom: 20px;
    overflow: auto;
    /* 
    height: 80%;
    */
    -webkit-overflow-scrolling: touch;
    -ms-overflow-style: none;
    scrollbar-width: none;
}

#header #globalNav .navContainer::-webkit-scrollbar {
    display: none;
}

#header #globalNav ul {
    /* 
    position: absolute;
    z-index: 999;
    top: 50%;
    left: 50%;    
    transform: translate(-50%, -50%);
    */
}

/*リストのレイアウト設定*/

#header #globalNav .navContainer li {
    list-style: none;
    border-bottom: dotted 2px var(--colorMainColor);
}

#header #globalNav .navContainer li a {
    color: var(--colorMainColor);
    text-decoration: none;
    padding: 10px 10px 10px 25px;
    display: block;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: bold;
    position: relative;
}

#header #globalNav li a::before {
    content: "";
    width: 8px;
    height: 8px;
    border-top: solid 2px var(--colorMainColor);
    border-right: solid 2px var(--colorMainColor);
    position: absolute;
    left: 5px;
    top: 50%;
    transform: translate(0, -50%) rotate(45deg);
}

/*----------------------------
SPナビ内　SNSリンク
----------------------------*/
#header .snsSP {}

#header .snsSP ul {
    display: flex;
    justify-content: space-between;
    justify-content: flex-start;
    align-items: center;
}

#header .snsSP ul>li {
    flex: 50px 0 1;
    margin: 0 5px;
}

#header .snsSP ul>li a {
    width: 50px;
    height: 50px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    padding: 10px;
}

#header .snsSP ul>li a::before {
    display: none;
}

#header .snsSP ul>li a img {
    width: 30px;
}

/*----------------------------
ハンバーガーボタン
----------------------------*/
#header .hamburgerBT {
    position: fixed;
    z-index: 9997;
    /*ボタンを最前面に*/
    top: 20px;
    right: 20px;
    cursor: pointer;
    width: 50px;
    height: 50px;
    background: #fff;
    border-radius: 50%;
    transition: .3s;
}

#header .hamburgerBT.active {}

/*×に変化*/
#header .hamburgerBT span {
    display: inline-block;
    transition: all .4s;
    position: absolute;
    left: 14px;
    height: 3px;
    border-radius: 2px;
    background-color: var(--colorMainColor);
    width: 45%;
}

#header .hamburgerBT span:nth-of-type(1) {
    top: 15px;
}

#header .hamburgerBT span:nth-of-type(2) {
    top: 23px;
}

#header .hamburgerBT span:nth-of-type(3) {
    top: 31px;
}

#header .hamburgerBT.active span:nth-of-type(1) {
    top: 18px;
    left: 18px;
    transform: translateY(6px) rotate(-45deg);
    width: 30%;
}

#header .hamburgerBT.active span:nth-of-type(2) {
    opacity: 0;
}

#header .hamburgerBT.active span:nth-of-type(3) {
    top: 30px;
    left: 18px;
    transform: translateY(-6px) rotate(45deg);
    width: 30%;
}


/*----------------------------
ナビゲーションオーバーレイ
----------------------------*/
.NavOverlay {
    position: fixed;
    z-index: -1;
    transition: .5s;
    opacity: 0;
}

.NavOverlay.panelactive {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(0, 0, 0, .9);
    z-index: 900;
    opacity: 1;
}


/*************************************************************

本サイト版
メインビジュアル

*************************************************************/
#mvMainSite {
    margin-bottom: 0;
}

#mvMainSite .swiper-slide {
    background: #fff;
}

/*----------------------------
スライド1枚目
----------------------------*/
#mvMainSite .slide01 {
    display: flex;
    justify-content: space-between;
}

#mvMainSite .slide01>div {
    flex: calc(100%/2) 0 1;
}

#mvMainSite .slide01>.left {
    background:
        url(../image/mv/01/bgLeftTop.png) no-repeat left top,
        url(../image/mv/01/bgLeftBottom.png) no-repeat left bottom;
    background-size: contain;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 40px;
}

#mvMainSite .slide01>.right {
    background: linear-gradient(135deg, #fff3b8 0%, #e89100 50%, #cf6100 100%);
    padding: 40px;
    display: flex;
    justify-content: center;
    align-items: center;
}


/*----------------------------
スライド2枚目
----------------------------*/
#mvMainSite .slide02 {
    display: flex;
    justify-content: space-between;
}




/*************************************************************

メインビジュアル

*************************************************************/
#mv {
    background: url(../image/siteBg.jpg) repeat-x left center;
    background-size: cover;
    position: relative;
    box-shadow: inset 0 0 300px rgba(0, 0, 0, .9);
    margin-bottom: 0;
    height: 95vh;
}

@media screen and (max-height:580px) {
    #mv {
        height: auto;
    }
}

#mv::after {
    content: "";
    background: url(../image/contentsBG_Bottom.svg) repeat-x center bottom;
    background-size: contain;
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 100%;
    padding-top: 80px;
}

#mv>.inner {
    padding: 0 0 100px;
    position: relative;
    top: 50%;
    transform: translate(0, -50%);
}

@media screen and (max-width:1300px) {
    #mv>.inner {
        padding: 20px 20px 100px;
    }
}

@media screen and (max-width:599px) {
    #mv>.inner {
        padding: 100px 20px 100px;
    }
}

@media screen and (max-height:580px) {
    #mv>.inner {
        top: inherit;
        transform: none;
    }
}

#mv .catch1 {
    position: absolute;
    left: 50%;
    top: 12%;
    z-index: 50;
    transform: translate(-50%, 0);
    width: 70%;
}

@media screen and (max-width:599px) {
    #mv .catch1 {
        width: 90%;
        top: 18%;
    }
}

#mv .catch2 {
    position: absolute;
    left: 50%;
    top: 18%;
    z-index: 50;
    transform: translate(-50%, 0);
    width: 70%;
}

@media screen and (max-width:599px) {
    #mv .catch2 {
        width: 90%;
        top: 22%;
    }
}

#mv .decoration1 {
    position: absolute;
    left: 0;
    top: 20px;
    z-index: 1;
}

@media screen and (max-width:1300px) {
    #mv .decoration1 {
        width: 15%;
        left: 20px;
    }
}

@media screen and (max-width:599px) {
    #mv .decoration1 {
        width: 30%;
        left: -10%;
    }
}

#mv .decoration2 {
    position: absolute;
    right: 0;
    top: 50px;
    z-index: 1;
}

@media screen and (max-width:1300px) {
    #mv .decoration2 {
        width: 15%;
        top: 7%;
        right: 20px;
    }
}

@media screen and (max-width:599px) {
    #mv .decoration2 {
        width: 30%;
        top: 10%;
        right: -10%;
    }
}



#mv .mvMain {
    position: relative;
    z-index: 10;
    text-align: center;
}

@media screen and (max-width:599px) {
    #mv .mvMain {
        width: 97vw;
        margin: 0 calc(52% - 50vw);
    }
}

#mv .mvMain img {
    width: 80%;
}

@media screen and (max-width:599px) {
    #mv .mvMain img {
        width: 100%;
    }
}

#mv .mvDatePlace {
    margin-top: -120px;
    position: relative;
    z-index: 11;
}

@media screen and (max-width:1024px) {
    #mv .mvDatePlace {
        margin-top: -50px;
    }
}

@media screen and (max-width:599px) {
    #mv .mvDatePlace {
        margin-top: 0px;
    }
}

#mv .mvDatePlace ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
    align-items: baseline;
}

#mv .mvDatePlace ul>li {
    flex: calc(100%/2 - 40px) 0 1;
    text-align: center;
}

@media screen and (max-width:1024px) {
    #mv .mvDatePlace ul>li {
        flex: calc(100%/2 - 10px) 0 1;
    }
}

@media screen and (max-width:599px) {
    #mv .mvDatePlace ul>li {
        flex: 100% 0 1;
        margin-bottom: 20px;
    }

    #mv .mvDatePlace ul>li:last-child {
        margin-bottom: 0;
    }
}

#mv .mvDatePlace .date {}

@media screen and (max-width:599px) {
    #mv .mvDatePlace .date {
        border-bottom: dotted 3px #fff;
        padding-bottom: 20px;
    }
}

#mv .mvDatePlace .place {}

@media screen and (max-width:599px) {
    #mv .mvDatePlace .place {
        text-align: center;
    }
}

#mv .mvDatePlace img {}

@media screen and (max-width:599px) {
    #mv .mvDatePlace img {
        width: 90%;
    }
}

#mv .mvDatePlace .place img {
    width: 80%;
}

@media screen and (max-width:599px) {
    #mv .mvDatePlace .place img {
        width: 60%;
    }
}



/*************************************************************

YouTube動画

*************************************************************/
#message .movie {
    max-width: 960px;
    margin: auto;
}

#message .youtubeWrapper {
    position: relative;
    width: 100%;
    margin: 0 auto 0;
    padding-top: 56.25%;
}

#message .youtubeWrapper iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    border-radius: 5px;
}


/*************************************************************

メッセージ

*************************************************************/
#message .contentsHeader::before {
    content: "MESSAGE";
}

#message .messageWrapper {
    padding: 40px 20px;
    background: #fff;
    border-radius: 10px;
}

#message .text {
    max-width: 930px;
    margin: auto;
}

#message .text p {
    font-size: 20px;
    text-align: center;
}

@media screen and (max-width:599px) {
    #message .text p {
        font-size: 16px;
        text-align: justify;
    }
}


/*************************************************************

インタビュー

*************************************************************/

#interview .contentsHeader::before {
    content: "INTERVIEW";
}

#interview .inner {
    padding: 40px 20px;
    background: #fff;
    border-radius: 10px;
}

/*----------------------------
YouTube動画
----------------------------*/
#interview .movie {
    max-width: 960px;
    margin: auto;
    margin-top: 50px;
}

#interview .youtubeWrapper {
    position: relative;
    width: 100%;
    margin: 0 auto 0;
    padding-top: 56.25%;
}

#interview .youtubeWrapper iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    border-radius: 5px;
}


/*************************************************************

お知らせ

*************************************************************/
#news {
    /* 
    background:
        linear-gradient(to bottom, rgba(16, 90, 129, .67) 0%, rgba(114, 180, 55, .67) 50%, rgba(43, 59, 9, .81) 100%),
        url(../image/siteBg.jpg) repeat-x left center;
    background: linear-gradient(135deg, #fff3b8 0%, #e89100 50%, #cf6100 100%);
    */
    /* 
    background: url(../image/contentsBG.jpg) no-repeat center;
    background-attachment: fixed;
    */
    padding: 150px 0 100px;
    position: relative;
    margin-bottom: 0;
}

#news .bgWrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: inset(0);
    z-index: -1;
}

@media screen and (max-width:599px) {
    #news .bgWrapper {
        height: calc(100% - 100px);
    }
}

#news .bgWrapper .bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: url(../image/contentsBG.jpg) no-repeat center;
    background-size: cover;
    background-position: center;
    z-index: -1;
}

#news .contentsHeader h2 {
    color: #fff;
    text-shadow: 0 0 7px rgba(79, 112, 105, .8);
    text-shadow: 0 0 7px rgba(0, 0, 0, .8);
}

#news .contentsHeader h2::before,
#news .contentsHeader h2::after {
    background: rgba(255, 255, 255, .4);
}

#news .contentsHeader::before {
    content: "NEWS";
    color: rgba(255, 255, 255, .1);
    z-index: 0;
    opacity: 1;
}

#news .flexArea {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

#news .flexArea>section {
    flex: 0 1 100%;
}

@media screen and (max-width:599px) {
    #news .flexArea>section {
        flex: 100% 0 1;
    }
}

#news .newsWrapper {
    background: #fff;
    padding: 20px;
    border-radius: 10px;
    color: #333;
}

@media screen and (max-width:599px) {
    #news .newsWrapper {
        margin-bottom: 20px;
    }
}

#news .newsWrapper ul {
    max-height: 360px;
    overflow: auto;
    margin-bottom: 30px;
}

#news .newsWrapper li {
    padding: 20px;
    border-bottom: solid 1px #eee;
}

#news .newsWrapper li:nth-child(even) {
    background: #eee;
}

#news .newsWrapper li .date {
    font-size: 14px;
    margin-bottom: 5px;
    line-height: 1;
}

#news .newsWrapper li h3 {
    color: var(--colorOrange);
    color: #333;
    font-weight: 600;
    font-size: 16px;
    border-bottom: dotted 2px var(--colorOrange);
    border-bottom: dotted 2px #333;
    padding-bottom: 5px;
    margin-bottom: 10px;
    position: relative;
    padding-left: 12px;
}

#news .newsWrapper li h3::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 6px;
    height: 6px;
    border-top: solid 2px #333;
    border-right: solid 2px #333;
    transform: rotate(45deg);
}

#news .newsWrapper li p {
    margin-bottom: 5px;
}

#news .newsWrapper li p:last-child {
    margin-bottom: 0;
}

#news .newsWrapper li a {}

#news .X_Wrapper {
    height: 400px;
    overflow: hidden;
}

#news .X_Wrapper iframe {
    width: 100% !important;
}

#news .snsLink {
    max-width: 1000px;
    margin: auto;
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

#news .snsLink>div {
    flex: 0 1 calc(100%/3 - 10px);
}

@media screen and (max-width:1000px) {
    #news .snsLink>div {
        flex: 0 1 100%;
        margin-bottom: 20px;
    }
}

#news .snsLink>div.xlink a {
    background: #000;
}

#news .snsLink>div.instalink a {
    background: linear-gradient(to right, #ffd600 0%, #ff7a00 25%, #ff0069 50%, #d300c5 75%, #7638fa 100%);
}

#news .snsLink>div.facebooklink a {
    background: #3B5998;
}


/*************************************************************

ストーリー

*************************************************************/
#story {
    padding-top: 150px;
    margin-bottom: 0;
    padding-bottom: 100px;
}

@media screen and (max-width:599px) {
    #story {
        padding-top: 0;
        padding-bottom: 0;
    }
}

#story .contentsHeader::before {
    content: "STORY";
}

#story .inner h2 {
    text-align: center;
    font-family: var(--noto-Sans-JP);
    font-size: 30px;
}

@media screen and (max-width:1300px) {
    #story .inner h2 {
        font-size: clamp(16px, 3vw, 30px);
    }
}

@media screen and (max-width:599px) {
    #story .inner h2 {
        font-size: clamp(12px, 3.5vw, 30px);
        text-align: center;
    }

    /* 
    #story .inner h2 br {
        display: none;
    }
    */
}

#story .inner h2 span {
    font-size: 60px;
}

@media screen and (max-width:1300px) {
    #story .inner h2 span {
        font-size: clamp(30px, 4.6vw, 60px);
    }
}

@media screen and (max-width:599px) {
    #story .inner h2 span {
        font-size: clamp(16px, 5.3vw, 60px);
        display: block;
    }
}

#story>.inner {
    position: relative;
}

#story .text {
    max-width: 930px;
    margin: auto;
}

#story .text p {
    font-size: 20px;
}

@media screen and (max-width:599px) {
    #story .text p {
        font-size: 16px;
    }
}

#story .decoration1 {
    position: absolute;
    left: -50%;
    top: 60%;
    transform: translate(0, -50%);
    z-index: -1;
    transition: .5s;
    opacity: .6;
    animation: 50s linear infinite rotation1;
}

@media screen and (max-width:1300px) {
    #story .decoration1 {
        opacity: .3;
    }
}

@media screen and (max-width:599px) {
    @media screen and (max-width:1300px) {
        #story .decoration1 {
            top: 70%;
            opacity: .2;
        }
    }
}

#story .decoration2 {
    position: absolute;
    right: -52%;
    top: -90%;
    transform: translate(0, -50%);
    z-index: -1;
    transition: .5s;
    animation: 50s linear infinite rotation1;
    opacity: .6;
}

@media screen and (max-width:1300px) {
    #story .decoration2 {
        top: -40%;
        opacity: .3;
    }
}

@media screen and (max-width:599px) {
    #story .decoration2 {
        top: -38%;
        opacity: .2;
    }
}

@keyframes rotation1 {
    0% {
        transform: rotate(0);
    }

    100% {
        transform: rotate(360deg);
    }
}


/*************************************************************

公演情報

*************************************************************/
#event {
    position: relative;
    /* 
    background:
        linear-gradient(to bottom, rgba(16, 90, 129, .67) 0%, rgba(114, 180, 55, .67) 50%, rgba(43, 59, 9, .81) 100%),
        url(../image/siteBg.jpg) repeat-x left center;
    background: #fff;
    */
    background-size: cover;
}

/* 
#event::before {
    content: "";
    background: url(../image/contentsBG_Top.svg) repeat-x center bottom;
    background-size: contain;
    position: absolute;
    top: -10px;
    left: 0;
    width: 100%;
    padding-top: 80px;
}

#event::after {
    content: "";
    background: url(../image/contentsBG_Bottom.svg) repeat-x center bottom;
    background-size: contain;
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 100%;
    padding-top: 80px;
}
*/

#event>.inner {
    max-width: 960px;
    padding-bottom: 100px;
}



/*************************************************************

出演者

*************************************************************/
#event {
    position: relative;
}

#event #cast {
    /* 
    background:
        linear-gradient(to bottom, rgba(16, 90, 129, .67) 0%, rgba(114, 180, 55, .67) 50%, rgba(43, 59, 9, .81) 100%),
        url(../image/siteBg.jpg) repeat-x left center;
    background: linear-gradient(135deg, #fff3b8 0%, #e89100 50%, #cf6100 100%);
    */
    /* 
    background: url(../image/contentsBG.jpg) no-repeat center;
    background-attachment: fixed;
    */
    padding: 150px 0 100px;
    position: relative;
    margin-bottom: 50px;
    margin-bottom: 0;

}

@media screen and (max-width:599px) {
    #event #cast {
        padding: 100px 0 0;
    }
}


#event #cast .bgWrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: inset(0);
    z-index: -1;
}

@media screen and (max-width:1300px) {
    #event #cast .bgWrapper {
        height: calc(100%);
    }
}

#event #cast .bgWrapper .bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: url(../image/contentsBG.jpg) no-repeat center;
    background-size: cover;
    background-position: center;
    z-index: -1;
}


/* 
#event #cast h2 {
    color: #fff;
}
*/

#event #cast h2::before,
#event #cast h2::after {
    /* 
    background: rgba(255, 255, 255, .4);
    */
}


#event #cast .contentsHeader h2 {
    color: #fff;
    text-shadow: 0 0 7px rgba(79, 112, 105, .8);
    text-shadow: 0 0 7px rgba(0, 0, 0, .8);
}

#event #cast .contentsHeader h2::before,
#event #cast .contentsHeader h2::after {
    background: rgba(255, 255, 255, .4);
}

#event #cast .contentsHeader::before {
    content: "CAST";
    color: rgba(255, 255, 255, .1);
    z-index: 0;
    opacity: 1;
}

/* 
#event #cast .castMain {
    padding-bottom: 0;
}

#event #cast .castMain>section {
    background: rgba(255, 255, 255, .8);
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 50px;
    border: solid 2px var(--colorOrange);
}

#event #cast h3 {
    font-size: 25px;
    font-weight: 900;
    text-align: center;
    color: var(--colorOrange);
    margin-bottom: 20px;
}

#event #cast h3 span {
    font-weight: 600;
    font-size: 14px;
    display: block;
    color: var(--colorOrange);
}

#event #cast .sakusya p {
    color: var(--colorOrange);
    text-align: center;
    font-size: 20px;
    font-weight: 900;
}
    */

#event #cast .castListText {
    background: #fff;
    padding: 20px;
    border-radius: 10px;
    margin-bottom: 50px;
}

#event #cast .castListText p {
    text-align: center;
    margin-bottom: 0;
    /* 
    max-width: 1200px;
    */
    margin: auto;
    text-align: left
}

@media screen and (max-width:1024px) {
    #event #cast .castListText p {
        font-size: inherit;
        text-align: left;
    }
}

#event #cast .castListText p span {
    display: inline-block;
    white-space: nowrap;
    margin: 0 5px;
}

#event #cast .castListText p span span.small {
    margin: 0;
    font-size: 11px;
}


#event #cast .castListText p+p {
    margin-top: 15px;
    padding-top: 15px;
}

@media screen and (max-width:599px) {
    #event #cast .castListText p+p {}
}


#event #cast .castWrapper {
    padding: 20px 20px 50px;
    border-radius: 10px;
    background: #fff;
}

#event #cast ul.castList {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-bottom: 50px;
}

@media screen and (max-width:599px) {
    #event #cast ul.castList {
        margin-right: -10px;
    }
}

#event #cast ul.castList+ul.castList {
    margin-top: 60px;
    position: relative;
}

#event #cast ul.castList+ul.castList::before {
    content: "";
    position: absolute;
    top: -30px;
    left: 0;
    width: calc(100% - 15px);
    height: 1px;
    background: #ccc;
}


#event #cast ul.castList>li {
    flex: calc(100%/5 - 15px) 0 1;
    margin-right: 15px;
    margin-bottom: 15px;
    word-break: break-all;
}

@media screen and (max-width:1024px) {
    #event #cast ul.castList>li {
        flex: calc(100%/4 - 15px) 0 1;
        margin-right: 15px;
        margin-bottom: 15px;
    }
}

@media screen and (max-width:599px) {
    #event #cast ul.castList>li {
        flex: calc(100%/2 - 10px) 0 1;
        margin-right: 10px;
    }
}

#event #cast ul.castList:nth-child(2) {}

@media screen and (max-width:599px) {
    #event #cast ul.castList:nth-child(2) {
        display: block;
    }

    #event #cast ul.castList:nth-child(2)>li {
        width: calc(100%/2 - 10px);
    }
}

#event #cast ul.castList>li {
    position: relative;
    /* プロフィールリンク追加時は以下削除*/
    overflow: hidden;
    border-radius: 12px;
}


#event #cast ul.castList>li a {
    position: relative;
    margin: 0 auto;
    display: block;
    border-radius: 12px;
    overflow: hidden;
    width: 100%;
    padding-top: 140%;
    color: var(--mainTextColor);
}

#event #cast ul.castList>li img {
    /* プロフィールリンク時にはアクティブに
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, 0);
    */
    width: 100%;
    display: block;
    transition: .4s ease-in-out;
}

#event #cast ul.castList>li a:hover {
    opacity: 1;
}

#event #cast ul.castList>li a:hover img:nth-of-type(2) {
    opacity: 0;
}

#event #cast ul.castList>li .name {
    text-align: center;
    font-family: var(--noto-Serif-JP);
    font-weight: 900;
    background: #ddd;
    padding: 10px;
    transition: .5s;
    /*
    display: flex;
    align-items: center;
    justify-content: center;
    */
    position: relative;
    z-index: 100;
}

@media screen and (max-width:1300px) {
    #event #cast ul.castList>li .name {
        font-size: 1.2vw;
    }
}


@media screen and (max-width:1024px) {
    #event #cast ul.castList>li .name {
        font-size: 1.5vw;
    }
}

@media screen and (max-width:599px) {
    #event #cast ul.castList>li .name {
        font-size: 2.6vw;
    }
}

#event #cast ul.castList>li a:hover .name {
    background: var(--colorOrange);
    color: #fff;
}

#event #cast ul.castList>li .name span {
    font-size: 12px;
    display: inline;
}

@media screen and (max-width:1300px) {
    #event #cast ul.castList>li .name span {
        font-size: .9vw;
    }
}

@media screen and (max-width:1024px) {
    #event #cast ul.castList>li .name span {
        font-size: 1.1vw;
    }
}

@media screen and (max-width:599px) {
    #event #cast ul.castList>li .name span {
        font-size: 2vw;
    }
}


/*----------------------------
出演者モーダル　レイアウト
----------------------------*/


.modalWrapper.profWrapper {
    max-width: 500px;
    border-radius: 10px;
    background: #fff;
}

.modalProf header h3 {
    padding: 20px;
    text-align: center;
    font-size: 24px;
    font-weight: 900;
    font-family: var(--noto-Serif-JP);
    color: var(--mainTextColor);
    border-bottom: solid 3px var(--colorOrange);
}

.modalProf header h3 span {
    font-size: 16px;
    display: block;
    font-weight: 600;
}

.modalProf .pic {
    position: relative;
}

.modalProf .pic .snsLink {
    position: absolute;
    right: 20px;
    bottom: 20px;
    display: flex;
    justify-content: flex-end;
    margin-right: -10px;
}

.modalProf .pic .snsLink>li {
    flex: 40px 0 1;
    margin-right: 10px;
}

.modalProf .pic .snsLink>li a {
    width: 40px;
    height: 40px;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    padding: 10px;
}

.modalProf .pic .snsLink>li a img {
    width: 30px;
}

.modalProf .text {
    padding: 20px;
    margin-bottom: 0;
}

.modalProf .text:last-child {
    margin-bottom: 40px;
}

.modalProf .text h4 {
    text-align: center;
    font-weight: 600;
    margin-bottom: 20px;
    font-size: 20px;
    display: flex;
    align-items: center;
}

.modalProf .text h4::before,
.modalProf .text h4::after {
    content: "";
    height: 1px;
    background: #666;
    flex: 1;
}

.modalProf .text h4::before {
    margin-right: 20px;
}

.modalProf .text h4::after {
    margin-left: 20px;
}

.modalProf .text p {
    margin-bottom: .5em;
}

.modalProf .text p:last-child {
    margin-bottom: 0;
}

.modalProf .text.movie .youtubeWrapper {
    position: relative;
    width: 90%;
    margin: 10px auto 0;
    padding-top: 56.25%;
}

.modalProf .text.movie .youtubeWrapper iframe {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    border-radius: 5px;
}

.modalProf .text.siteLink li a {
    display: block;
    padding-left: 1.5em;
    position: relative;
    color: var(--colorOrange);
}

.modalProf .text.siteLink li a::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 7px;
    height: 7px;
    border-top: solid 2px var(--colorOrange);
    border-right: solid 2px var(--colorOrange);
    transform: translate(0, -50%) rotate(45deg);
}


/*----------------------------
スタッフ一覧
----------------------------*/

#event #cast .staffList {
    margin-bottom: 50px;
    padding: 20px;
    background: #f6f5f5;
    border-radius: 5px;
}

#event #cast .staffList h3 {
    font-weight: 900;
    text-align: center;
    color: var(--colorMainColor);
    margin-bottom: 20px;
    font-size: 18px;
    font-family: var(--noto-Serif-JP);
}

#event #cast .staffList p {
    font-size: 14px;
}

#event #cast .textRight {
    font-size: 14px;
}



/*************************************************************

公演日時

*************************************************************/
#schedule .contentsHeader::before {
    content: "SCHEDULE";
}

#schedule .dlTable {
    margin-bottom: 50px;
    border-radius: 5px;
    overflow: hidden;
}

#schedule .dlTable>div dd span {
    font-size: 30px;
    font-weight: 900;
}

@media screen and (max-width:599px) {
    #schedule .dlTable>div dd span {
        font-size: 20px;
    }

    #schedule .dlTable>div dd {
        text-align: center;
    }

    #schedule .dlTable>div dd p {
        text-align: center;
    }

    #schedule .dlTable>div dd ul.notes {
        display: inline-block;
    }
}

/*----------------------------
スケジュール表
----------------------------*/
#schedule .tableContainer.PcOnly {
    margin-bottom: 50px;
}

#schedule .tableContainer table {
    width: 100%;
    text-align: center;
}

@media screen and (max-width:1024px) {
    #schedule .tableContainer.PcOnly table {
        font-size: 14px;
    }
}

#schedule .tableContainer.PcOnly table th {
    padding: 0 10px;
}

@media screen and (max-width:1024px) {
    #schedule .tableContainer.PcOnly table th {
        padding: 0 5px;
    }
}

#schedule .tableContainer.PcOnly table td,
#schedule .tableContainer.PcOnly table th {
    width: 16.6%;
}

#schedule .tableContainer.PcOnly table td {
    padding: 10px;
    vertical-align: middle;
    border-bottom: solid 1px #ddd;
    color: var(--colorOrange);
}

#schedule .tableContainer.PcOnly table td.noBorder {
    border: none !important;
}

#schedule .tableContainer table td.on {
    color: var(--colorOrange);
}

#schedule .tableContainer table th span {
    background: var(--colorMainColor);
    color: #fff;
    display: block;
    padding: 10px;
    border-radius: 5px 5px 0 0;
    font-weight: 900;
}

#schedule .tableContainer table th.yasumi span {
    background: #D8D8D8;
}

#schedule .tableContainer table th.kaien span {
    background: #fff;
    color: var(--colorOrange);
    text-align: center;
    font-weight: 600;
    border-radius: 50px;
    display: block;
    padding: 5px 10px;
}

@media screen and (max-width:1024px) {
    #schedule .tableContainer table th.kaien {
        width: 120px;
        position: sticky;
        top: 0;
        left: 0;
    }

    #schedule .tableContainer table th.kaien::before {
        content: "";
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        background: #fff;
        background: none;
        z-index: -1;
    }
}



/*----------------------------
スケジュール表 SP
----------------------------*/

#schedule .tableContainer.SpOnly table th.kaien {
    background: var(--colorPink);
    border-bottom: solid 1px #ddd;
    padding: 10px 5px;
    color: var(--colorOrange);
    font-weight: 600;
}

@media screen and (max-width:599px) {
    #schedule .tableContainer.SpOnly table th.kaien span {
        font-size: 12px;
    }
}

#schedule .tableContainer.SpOnly table th.date {
    min-width: 100px;
    max-width: 100px;
    padding: 10px 0;
    border-bottom: solid 1px var(--colorOrange2);
}

@media screen and (max-width:599px) {
    #schedule .tableContainer.SpOnly table th.date {
        min-width: 90px;
        max-width: 90px;
    }
}

#schedule .tableContainer.SpOnly table th.date span {
    border-radius: 50px;
    padding: 5px;
}

@media screen and (max-width:599px) {
    #schedule .tableContainer.SpOnly table th.date span {
        font-size: 12px;
    }
}

#schedule .tableContainer.SpOnly table td {
    border-bottom: solid 1px #ddd;
}



/*************************************************************

会場

*************************************************************/
#access .contentsHeader::before {
    content: "ACCESS";
}

#access .map {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

@media screen and (max-width:760px) {
    #access .map {
        border: solid 1px var(--colorMainColor);
        background: #fff;
        padding: 10px;
        border-radius: 5px;
        position: relative;
    }
}

#access .map .left {
    flex: calc(100%/2 - 20px) 0 1;
    background: #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    border: solid 1px var(--colorMainColor);
    position: relative;
    border-radius: 0 5px 0 5px;
}

@media screen and (max-width:760px) {
    #access .map .left {
        flex: 100% 0 1;
        border: none;
        padding: 50px 0;
    }
}

/* 
#access .map .left::before {
    content: "";
    background: url(../image/accessDecoration1.svg) no-repeat;
    width: 78px;
    height: 78px;
    background-size: contain;
    position: absolute;
    top: 0;
    left: 0;
}

@media screen and (max-width:760px) {
    #access .map .left::before {
        display: none;
    }
}

#access .map .left::after {
    content: "";
    background: url(../image/accessDecoration2.svg) no-repeat;
    width: 78px;
    height: 78px;
    background-size: contain;
    position: absolute;
    bottom: 0;
    right: 0;
}

@media screen and (max-width:760px) {
    #access .map .left::after {
        display: none;
    }
}
*/

#access .map .left h3 {
    text-align: center;
    font-weight: 900;
    color: var(--colorMainColor);
    font-size: 30px;
    position: relative;
    /* 
    padding-top: 64px;
    */
}

@media screen and (max-width:599px) {
    #access .map .left h3 {
        font-size: 20px;
    }
}

/* 
#access .map .left h3::before {
    content: "";
    width: 52px;
    height: 64px;
    background: url(../image/accessHitogata.png) no-repeat center top;
    background-size: contain;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, 0);
}
    */

#access .map .left h3>span {
    display: block;
    font-size: 20px;
}

@media screen and (max-width:599px) {
    #access .map .left h3>span {
        font-size: 14px;
    }
}

#access .map .left h3+p {
    text-align: center;
    color: var(--colorMainColor);
    margin-bottom: 20px;
}

#access .map .left .moreBT a::before {
    display: none;
}

#access .map .left .moreBT a::after {
    content: "";
    width: 15px;
    height: 15px;
    background: url(../image/icoLinkBlank.svg) no-repeat center center;
    background-size: contain;
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translate(0, -50%);
}

#access .map .left .moreBT+.moreBT {
    margin-top: 10px;
}

#access .map .left .moreBT:nth-child(2n) a {
    background: var(--colorOrange3);
}

#access .map .right {
    flex: calc(100%/2 - 20px) 0 1;
    background: #fff;
    border: solid 1px var(--colorMainColor);
    border-radius: 5px;
    overflow: hidden;
}

@media screen and (max-width:760px) {
    #access .map .right {
        flex: 100% 0 1;
        border-radius: 5px;
    }
}

#access .map .right .googleMapContainer {
    width: 100%;
    position: relative;
    padding-top: 90%;
}

#access .map .right .googleMapContainer iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

#access .map .right img {}

/*----------------------------
座席表モーダル
----------------------------*/
.modalWrapper.zasekiWrapper>.inner {
    padding: 20px;
}

/*************************************************************

チケット

*************************************************************/
#ticket {}

#ticket .contentsHeader::before {
    content: "TICKET";
}

#ticket .dlTable {
    margin-bottom: 50px;
    border-radius: 5px;
    overflow: hidden;
}


#ticket .dlTable>div dd span {
    font-size: 30px;
    font-weight: 900;
}

@media screen and (max-width:599px) {
    #ticket .dlTable>div dd span {
        font-size: 20px;
    }

    #ticket .dlTable>div dd {
        text-align: center;
    }
}


/*----------------------------
プレイガイド
----------------------------*/
#ticket .playguide h3 {
    font-weight: 900;
    font-size: 18px;
    margin-bottom: 20px;
    color: var(--colorMainColor);
}

#ticket .playguide h4 {
    font-weight: 900;
    position: relative;
    border-bottom: solid 1px var(--mainTextColor);
    margin-bottom: 20px;
    padding: 10px 10px 10px 1.5em;
}

#ticket .playguide h4::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: solid 2px var(--mainTextColor);
    border-right: solid 2px var(--mainTextColor);
    position: absolute;
    top: 50%;
    left: 0;
    transform: translate(0, -50%) rotate(45deg);
}

@media screen and (max-width:599px) {
    #ticket .playguide h4 a::before {
        display: none;
    }
}

#ticket .playguide ul {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}

#ticket .playguide ul::before {
    content: "";
    display: block;
    order: 1;
    width: calc(100%/3 - 20px);
}

#ticket .playguide ul>li {
    flex: calc(100%/3 - 20px) 0 1;
    padding: 20px;
    background: #fff;
    border-radius: 5px;
    margin-bottom: 30px;
}

@media screen and (max-width:1024px) {
    #ticket .playguide ul>li {
        flex: calc(100%/2 - 10px) 0 1;
    }
}

@media screen and (max-width:599px) {
    #ticket .playguide ul>li {
        flex: 100% 0 1;
    }
}

#ticket .playguide ul>li dl>div {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 20px;
}

#ticket .playguide ul>li dl>div dt {
    flex: 100px 0 1;
    padding: 5px 10px;
    border: solid 1px var(--mainTextColor);
    border-radius: 50px;
    text-align: center;
}

#ticket .playguide ul>li dl>div dd {
    flex: calc(100% - 120px) 0 1;
}

#ticket .playguide ul>li .moreBT a {
    padding-top: 5px;
    padding-bottom: 5px;
}

@media screen and (max-width:1024px) {
    #ticket .playguide ul>li .moreBT a {
        padding-left: 10px;
        padding-right: 30px;
        max-width: 200px;
        margin: 0;
    }
}

#ticket .playguide ul>li .moreBT a::before {
    display: none;
}

#ticket .playguide ul>li .moreBT a::after {
    content: "";
    width: 15px;
    height: 15px;
    background: url(../image/icoLinkBlank.svg) no-repeat center center;
    background-size: contain;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translate(0, -50%);
}


/*----------------------------
注釈
----------------------------*/

#ticket ul.notes {
    color: var(--colorOrange);
    color: inherit;
}




/*************************************************************

お問い合わせ

*************************************************************/
#footer {
    position: relative;
}

#footer .bgWrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    clip-path: inset(0);
    z-index: -1;
}

#footer .bgWrapper .bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: url(../image/contentsBG.jpg) no-repeat center;
    background-size: cover;
    background-position: center;
    z-index: -1;
}

#contact {
    /* 
    background:
        linear-gradient(to bottom, rgba(16, 90, 129, .67) 0%, rgba(114, 180, 55, .67) 50%, rgba(43, 59, 9, .81) 100%),
        url(../image/siteBg.jpg) repeat-x left center;
    background: linear-gradient(135deg, #fff3b8 0%, #e89100 50%, #cf6100 100%);
    */
    /* 
    background: url(../image/contentsBG.jpg) no-repeat center;
    background-attachment: fixed;
    */
    padding: 150px 0 0;
    position: relative;
}

#contact::before {
    content: "";
    background: url(../image/contentsBG_Top.svg) repeat-x center bottom;
    background-size: contain;
    position: absolute;
    top: -10px;
    left: 0;
    width: 100%;
    padding-top: 80px;
    display: none;
}

#contact .contentsHeader h2 {
    color: #fff;
    text-shadow: 0 0 7px rgba(79, 112, 105, .8);
    text-shadow: 0 0 7px rgba(0, 0, 0, .8);
}

#contact .contentsHeader h2::before,
#contact .contentsHeader h2::after {
    background: rgba(255, 255, 255, .4);
}

#contact .contentsHeader::before {
    content: "CONTACT";
    color: rgba(255, 255, 255, .1);
    z-index: 0;
    opacity: 1;
}

#contact>.inner {}

#contact .flexArea h3 {
    text-align: center;
    font-size: 20px;
    font-weight: 900;
    padding: 5px 10px;
    font-family: var(--noto-Serif-JP);
    color: var(--colorMainColor);
    border: solid 1px var(--colorMainColor);
    border-radius: 50px;
    margin-bottom: 20px;
}

@media screen and (max-width:760px) {
    #contact .flexArea h3 {
        font-size: 16px;
    }
}

#contact .flexArea {
    display: flex;
    justify-content: space-between;
    flex-wrap: wrap;
}


/*----------------------------
左
----------------------------*/
#contact .flexArea .left {
    /* 
    flex: calc(100%/2 - 20px) 0 1;
    */
    flex: 100% 0 1;
    background: #fff;
    padding: 20px;
    border-radius: 5px;
    box-shadow: 0 0 10px rgba(0, 0, 0, .05);
    margin-bottom: 20px;
}

@media screen and (max-width:599px) {
    #contact .flexArea .left {
        flex: 100% 0 1;
        margin-bottom: 20px;
    }
}

#contact .flexArea .left p {
    text-align: center;
}

#contact .flexArea .left p:first-of-type {
    margin-bottom: 0;
}

#contact .flexArea .left p.tel {
    font-size: 25px;
    font-weight: 900;
}

@media screen and (max-width:767px) {
    #contact .flexArea .left p.tel {
        font-size: 20px;
    }
}

#contact .flexArea .left p.tel span {
    font-weight: 600;
    display: block;
    font-size: 14px;
}


/*----------------------------
右
----------------------------*/
#contact {
    margin-bottom: 0;
}

#contact .flexArea .right {
    /* 
    flex: calc(100%/2 - 20px) 0 1;
    */
    flex: 100% 0 1;
    background: #fff;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 0 10px rgba(0, 0, 0, .05);
}

@media screen and (max-width:599px) {
    #contact .flexArea .right {
        flex: 100% 0 1;
    }
}

#contact .flexArea .right p {
    text-align: center;
}

#contact .flexArea .right p:first-of-type {
    margin-bottom: 0;
}

#contact .flexArea .right p.tel {
    font-size: 25px;
    font-weight: 900;
    padding-bottom: 20px;
    border-bottom: solid 1px #E0E8DD;
}

@media screen and (max-width:767px) {
    #contact .flexArea .right p.tel {
        font-size: 20px;
    }
}

#contact .flexArea .right p.tel span {
    font-weight: 600;
    display: block;
    font-size: 14px;
}

#contact .flexArea .right p.mail {
    font-weight: 900;
    font-size: 16px;
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: solid 1px #E0E8DD;
}

@media screen and (max-width:760px) {
    #contact .flexArea .right p.mail {
        font-size: 14px;
    }
}

#contact .flexArea .right .logoOsakaCaFes {
    text-align: center;
}

#contact .flexArea .right .logoOsakaCaFes img {
    max-width: 300px;
}

@media screen and (max-width:760px) {
    #contact .flexArea .right .logoOsakaCaFes img {
        max-width: 250px;
    }
}

@media screen and (max-width:599px) {
    #contact .flexArea .right .logoOsakaCaFes img {
        max-width: 220px;
    }
}


/*----------------------------
ロゴエリア
----------------------------*/

#footer .logoArea {
    padding: 20px 20px;
    background: #fff;
}

#footer .logoArea ul {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-right: -50px;
}

@media screen and (max-width:599px) {
    #footer .logoArea ul {
        flex-wrap: wrap;
        margin-right: 0;
    }
}

#footer .logoArea ul>li {
    margin-right: 50px;
    flex: 100% 0 1;
}

@media screen and (max-width:599px) {
    #footer .logoArea ul>li {
        margin-right: 0;
        margin-bottom: 20px;
    }
}

#footer .logoArea ul>li:nth-child(2) {
    flex: auto 0 0;
}

#footer .logoArea ul>li img {
    max-height: 60px;
}

@media screen and (max-width:599px) {
    #footer .logoArea ul>li img {
        max-height: 40px;
    }
}

#footer .logoArea .logoOsakaCaFes a {
    display: flex;
    justify-content: center;
    align-items: center;
    color: var(--mainTextColor);
    font-size: clamp(23px, 2.3vw, 32px);
    text-align: left;
}

@media screen and (max-width:599px) {
    #footer .logoArea .logoOsakaCaFes a {
        font-size: 14px;
    }
}

#footer .logoArea .logoOsakaCaFes a img {
    margin-right: 15px;
}


#footer {
    margin: 0;
}