@charset "UTF-8";
@import "reset5.css";
@import "../font/oakes-grotesk/oakes-grotesk.css";

@font-face {
    font-family: 'Granjon';
    src: url('../font/granjon/Granjon.woff2') format('woff2'),
        url('../font/granjon/Granjon.woff') format('woff');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

body { color:#171717; line-height:1; padding: 0; position: relative; min-height: 100%; }
html { min-height: 100%; }

* {word-wrap: break-word; }
img { -ms-interpolation-mode: bicubic; }
/* !font-size 14px default setting */
body { font-size: 15px; letter-spacing: 0.06em; font-family: oakes-grotesk, zen-kaku-gothic-new, Helvetica, Arial, Sans-Serif }
p, th, td, li, dt, dd, span { line-height: 2.0; }
h2, h3, h4, h5 { font-family: oakes-grotesk, zen-kaku-gothic-new, Helvetica, Arial, Sans-Serif; letter-spacing: 0.12em; font-weight: 700; font-style: normal }

.mincho { font-family: YuMincho, 'Yu Mincho', serif;}

/* !clearfix */
hr { display: none; }

.cfix { zoom:1; }
.cfix:after{
    content:"";
    clear:both;
    display:block;
    height:0;
}

/* スクロールバーの有無によるズレ対策 */
html {
	overflow-y: scroll;
}

img { vertical-align: bottom; }

.fltR { float: right; }
.fltL { float: left; }

.txtR { text-align: right; }
.txtL { text-align: left; }
.txtC { text-align: center; }

.pc_none { display: none }
.sp_none { display: block }


/* !Links */
a { cursor: pointer !important }
a:link { color: #171717; text-decoration: none }
a:visited { color: #171717; text-decoration: none }
a:hover { color: #cc1c7d; text-decoration: underline }
a:active { color: #cc1c7d; text-decoration: none }

i { font-style: italic !important }
.rd { color: crimson }
.pk { color: #cc1c7d }


html {  }
#loader { position: fixed; left: 50%; top: 50%; z-index: 10000 }
#wrapper { position: relative; width: 100%; text-align: left; min-height: 100%; overflow: hidden }

/* リストの高さ揃える  */
.list-flex { display:-webkit-box;
	display:-moz-box;
	display:-ms-flexbox;
    display:-webkit-flex;
    display:-moz-flex;
    display:flex;
    -webkit-box-lines:multiple;
    -moz-box-lines:multiple;
    -webkit-flex-wrap:wrap;
    -moz-flex-wrap:wrap;
    -ms-flex-wrap:wrap;
    flex-wrap:wrap;
}

/* /// table /// */
.dl-tbl { width: 100%; }
.dl-tbl a { color: #0065bd; font-weight: 500; text-decoration: none }
.dl-tbl dl {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}
.dl-tbl dl + dl {
    margin: 0 auto;
}
.dl-tbl dl dt {
    width: 25%;
    padding: 1.5em 1em;
    border-bottom: dotted 1px #d7d7d7;
    font-weight: 500;
}
.dl-tbl dl dd {
    width: 75%;
    padding: 1.5em 1em;
    border-bottom: dotted 1px #d7d7d7;
}
.dl-tbl.tbl2 dl dt {
    width: 10%;
}
.dl-tbl.tbl2 dl dd {
    width: 90%;
}
.dl-tbl.tbl3 dl dt {
    width: 40%;
}
.dl-tbl.tbl3 dl dd {
    width: 60%;
}
.dl-tbl dl.bd-t { border-top: #8c9aa0 1px solid; }
.dl-tbl dl dd.no-bd { border: none !important }
.dl-tbl.nrw dl dt {
    padding: 1em;
}
.dl-tbl.nrw dl dd {
    padding: 1em;
}

table.tbl { width: 100%; }
table.tbl th {
    width: 25%;
    padding: 1.33em 1em;
    background: #f0f3f8;
    border-bottom: #8c9aa0 1px solid;
    font-size: 12px;
    line-height: 1em;
    font-weight: 500;
}
table.tbl td {
    width: 75%;
    padding: 1.5em 1em;
    border-bottom: #c6cdd0 1px solid;
}


/* effects */
.fd { position: relative; opacity: 0; }
.fd .fd-inner { position: relative; top: 6vw }
.zm { transform: scale(1.24); }
.txtl, .txtl-t { opacity: 0 }

.lines { position: relative; }
.lines span { position: absolute; left: 50%; top: 0; margin-left: 0/*-100%*/; display: block; width: 0/*200%*/; height: 1px; background: #565f8d; }
.lines span:nth-child(1) { transform: rotate(11deg) }
.lines span:nth-child(2) { transform: rotate(12deg); opacity: 0.66 }
.lines span:nth-child(3) { transform: rotate(10.5deg); opacity: 0.5 }

#header { position: relative; left: 0; top: 0; width: 100%; padding: 60px 0; background: #fff; z-index: 1000 }
#header .head-inner { position: relative; padding: 0 4.4vw }
#header .head-inner .global-navi { position: absolute; right: calc(4.4vw + 8em); top: 0; }
#header .head-inner .global-navi>li { position: relative; display: inline-block; line-height: 40px }
#header .head-inner .global-navi>li a { display: block; padding: 0 1em; font-family: YuMincho, 'Yu Mincho', serif; }
#header .head-inner .global-navi>li ul { position: absolute; left: 0; top: 40px; width: 180%; padding: 1em; background: #ececec; display: none}
#header .head-inner .global-navi>li ul li a { display: block; padding: 0.5em; font-size: 14px }
#header .head-inner .lang { position: absolute; right: 4.4vw; top: 0; margin-right: -1em }
#header .head-inner .lang li { position: relative; display: inline-block; line-height: 40px; font-size: 18px }
#header .head-inner .lang li a { display: block; padding: 0 1em }
#header .head-inner .lang li:nth-child(1) { font-weight: 800 }
#header .head-inner .lang li:nth-child(1) a { color: #cc1c7d !important }
#header .head-inner .lang li:nth-child(1):after { content: ""; display: block; position: absolute; right: 0;top: 0; width: 1px; height: 100%; background: #d7d7d7 }
#header .btn-menu { display: none }

/* main */
#top-main { position: relative; padding: 8.8vw 4.4vw; z-index: 0; opacity: 0 }
#top-main aside { position: absolute; right: 0; top: 0; margin-top: 80px; line-height: 1.88em; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; }
#top-main aside p { opacity: 0 }
#top-main .slogan { font-size: 7.18vw; font-family: Granjon, serif; }
#top-main .slogan span { display: block; line-height: 1.18em; }
#top-main .summary { padding: 2.2vw 0 0 50% }
#top-main .summary p { font-family: YuMincho, 'Yu Mincho', serif; }
#top-main .summary p span {  }
#top-main .summary h3 { font-size: 2.2vw; }

#top-topics { padding: 0 }
#top-topics ul { margin: 0 -2.2vw }
#top-topics li { width: 33.33%; }
#top-topics li a { position: relative; display: block; padding: 2.2vw }
#top-topics li a .thumb { position: relative; margin-left: 4.4vw; overflow: hidden; }
#top-topics li a .thumb img { transition: all 0.2s; }
#top-topics li a:hover .thumb img { transform: scale(1.04) }
#top-topics li a .date { position: absolute; left: 2.2vw; top: 2.2vw; width: 4.4vw; text-align: center }
#top-topics li a .date span { display: block; font-size: 14px; line-height: 1.5em; }
#top-topics li a .date span.day { font-size: 36px; line-height: 1.25em;  }
#top-topics li a h3 { position: absolute; left: 2.2vw; bottom: 2.2vw; display: block; font-size: 20px; line-height: 1.5em; padding-right: 0.5em; background: #fff }

#top-programs { padding: 8.8vw 4.4vw 0 }
#top-programs h2 { font-size: 32px; margin-bottom: 1em }
#top-programs .programs { margin: 0 -2.2vw; }
#top-programs .programs .prg { width: calc(50% - 4.4vw); margin: 0 2.2vw }
#top-programs .programs .prg h3 { font-size: 24px; margin: 1em 0 }
#top-programs .programs .prg h3 span { font-size: 15px; font-weight: 400; display: inline-block; margin-left: 1em }
#top-programs .programs .prg ul { margin-top: 2em }
#top-programs .programs .prg ul li { margin: 0 0 10px }
#top-programs .programs .prg ul li a { position: relative; display: inline-block; background: #f1f1f1; padding: 0 1em 0 2em; font-size: 18px; font-weight: 500 }
#top-programs .programs .prg ul li a:before { content:""; position: absolute; left: 0.66em; top: 50%; margin-top: -6px; width: 12px; height: 12px; background: url(../img/arw.png) no-repeat; background-size: contain }
#top-programs .programs .prg ul li a:hover { background: #d7d7d7 }
#top-programs .programs .prg ul li a:hover:before { margin-left: 2px }


#contents { position: relative; padding: 0 4.4vw 200px; /*margin-top: 160px;*/ z-index: 1; }
#contents .contents-inner { max-width: 960px; }
#contents.clm-two { text-align: left; padding-right: calc(6.6vw + 200px) }
#contents.clm-one { text-align: center }
#contents.clm-one .contents-inner { margin: 0 auto; text-align: left }
#contents.clm-one-w { text-align: center; }
#contents.clm-one-w .contents-inner { max-width: 1280px; margin: 0 auto; text-align: left }
#contents .loc-navi { position: fixed; right: 4.4vw; top: 160px; width: 200px }
#contents .loc-navi li {  }
#contents .loc-navi li a { position: relative; display: block; padding: 0.8em 0 0.8em 1em; font-weight: 500; line-height: 1.5em }
#contents .loc-navi li a:before { content:""; position: absolute; left: 0; top: 1.33em; width: 6px; height: 6px; background: url(../img/tri_d.png) no-repeat; background-size: contain }
#contents .loc-navi li.on a { text-decoration: underline }
#contents .loc-navi li.on a:before { background: url(../img/tri_r.png) no-repeat; background-size: contain; }


/* footer */
#footer { position: relative; padding: 60px 4.4vw; background: #676767 }
#footer .foot-inner { position: relative; padding: 0 4.4vw 0; text-align: left; color: #fff }
#footer .foot-inner .f-link { font-size: 16px; font-weight: 600; margin-bottom: 60px }
#footer .foot-inner .e-newsletter { position: absolute; right: 4.4vw; top: 0; font-size: 18px; font-weight: 600; }
#footer .foot-inner .e-newsletter a { position: relative; display: block; padding: 0 0 0 1.5em; font-weight: 500 }
#footer .foot-inner .e-newsletter a:before { content:""; position: absolute; left: 0; top: 50%; margin-top: -6px; width: 12px; height: 12px; background: url(../img/arw.png) no-repeat; background-size: contain }
#footer .foot-inner .e-newsletter a:hover:before { left: 2px; }
#footer .foot-inner .f-navi .f-link { width: 20%; }
#footer .foot-inner .f-navi .f-link a { display: block }
#footer .foot-inner .f-navi .f-link:last-child { margin-bottom: 0 }
#footer .foot-inner .f-navi .f-link:last-child>a:nth-last-child(2) { margin-top: 1em }
#footer .foot-inner .f-navi .f-link:last-child>a:last-child { margin-top: 1em }
#footer .foot-inner .f-navi .f-link:last-child>ul>li>a { margin-top: 0 }
#footer .foot-inner .f-navi .f-link:nth-child(1) { width: 10% }
#footer .foot-inner .f-navi .f-link:nth-child(2) { width: 30% }
#footer .foot-inner .f-navi .f-link ul { margin: 1em }
#footer .foot-inner .f-navi .f-link li { font-size: 14px; font-weight: 400; letter-spacing: 0 }
#footer .foot-inner a:link, #footer .foot-inner a:visited { color: #fff; }
#footer .foot-inner a:hover { color: #c7c7c7; text-decoration: underline }
#footer .foot-inner a.no-ov:hover { color: #fff; text-decoration: none }
#footer .foot-inner .f-sns { margin: -12px }
#footer .foot-inner .f-sns li { display: inline-block; }
#footer .foot-inner .f-sns li a { display: block; padding: 12px; transition: all 0.2s }
#footer .foot-inner .f-sns li a:hover { opacity: 0.33 }
#footer .foot-inner .opening-hours { position: absolute; left: calc(4.4vw + 300px); bottom: 0; font-size: 11px; line-height: 1.5 }
#footer .foot-inner .f-logo { margin-top: 60px }
#footer .foot-inner .copyright { margin-top: 1.5em }
p.mt { margin-top: 2em }



/* Lower Contents */
.bigtit { padding: 2.2vw 0 0; opacity: 0 }
.bigtit h2 { position: relative; font-weight: normal; letter-spacing: 0.16em; margin-left: 2.2vw }
.bigtit h2 span.en { font-family: Granjon, serif; font-size: 48px; line-height: 1em }
.bigtit h2 span.ja { font-family: YuMincho, 'Yu Mincho', serif; display: block; }
.bigtit h2:after { content: ""; display: block; position: absolute; right: 0;top: 38px; width: 100%; height: 1px; background: #d7d7d7 }
.newstit { padding: 2.2vw 0 0; opacity: 0 }
.newstit h2 { position: relative; font-size: 32px; letter-spacing: 0.16em; line-height: 1.5em; margin-left: 2.2vw; border-bottom: solid 1px #d7d7d7 }
.newstit p.date { margin-top: 1em; font-style: italic; }
.newstit p.cat { margin-top: 0.5em; font-weight: 500 }
main.vis { margin-top: 2.2vw; opacity: 0 }
main.vis .lead { margin-top: 2em; padding: 0 2.2vw }

.sec { position: relative; padding: 5.866vw 4.4vw; border-bottom: dashed 1px #d7d7d7 }
.sec .sec-inner { position: relative; }
.sec h3 { font-size: 24px; margin-bottom: 1em }
.sec h3.lh { line-height: 1.5em; margin-bottom: 0.75em }
.sec h4 { font-size: 18px; margin-bottom: 1.5em }
.sec h5 { font-size: 16px; margin-bottom: 1em }
.sec .artist-tit { font-size: 24px; margin-bottom: 1em }
.sec .artist-tit .hd { display: inline-block; font-size: 14px; letter-spacing: 0.12em; line-height: 1.5em; }
.sec .artist-tit h3 { font-size: 28px; line-height: 1.5em; margin-bottom: 0; margin-top: 0.25em }
.sec .artist-tit h3 span { display: block; font-size: 17px; font-weight: 500 }
.sec .artist-tit p:last-child { margin-top: 0.5em }
.sec .portrait { padding: 0 0 2em }
.sec p strong { font-weight: 500 }
.sec p a:link, .sec p a:visited, .sec dd a:link, .sec dd a:visited { color: #171717; font-weight: 500; text-decoration: underline; }
.sec ol li span { font-size: 18px; font-weight: 500 }
.sec ol.num li { list-style: decimal; list-style-position: outside; margin-left: 2em }
.sec .dl-tbl { margin-top: 2em }
p.cap { font-size: 12px; line-height: 1.66em; margin-top: 0.8em }
.block { margin-top: 4em }
.block-l { margin-top: 6em }
.block-dotted { padding: 2em 0; border-bottom: dotted 1px #d7d7d7; }
.block-dotted:first-child { margin-top: 2em; }
.block-dotted:last-child { padding-bottom: 0; border-bottom: none; }
.pbox { padding: 1.5em; margin: 1em 0; background: #ececec; }
.pbox-s { padding: 1em; margin: 0.5em 0; background: #f0f0f0; }
p.price { font-size: 18px; font-weight: 500; color: #979797}
p.tri:before { content:"▶　"; font-size: 6px; }
.imgs { margin-top: 2em }
.imgs .list-flex { margin: -1em }
.imgs .clm-two .img { width: calc(50% - 2em); margin: 1em }
.imgs .clm-three .img { width: calc(33.33% - 2em); margin: 1em }
.imgs p.cap { text-align: right }
.img-l .img { float: left; width: calc(50% - 1em); margin-right: 2em }
.faq { padding: 2em 0 }
.faq:last-child { padding-bottom: 0; }
.faq h3 { position: relative; padding-left: 40px; font-size: 18px; line-height: 1.5em }
.faq h3:before { position: absolute; left: 0; top: 0; content: "Q."; font-size: 24px; line-height: 24px }
.faq p { position: relative; padding-left: 40px; }
.faq p:before { position: absolute; left: 0; top: 0; content: "A."; font-size: 24px; color: #a7a7a7; line-height: 24px }
.artist-box { position: relative; padding-left: calc(33.33% + 2.2vw) }
.artist-box .portrait { position: absolute; left: 0; top: 0 }

#report ul { margin: -2.2vw }
#report ul li { width: 25%; }
#report ul li a { display: block; padding: 2.2vw }
#report ul li a img { box-shadow: 1px 1px 5px rgba(0, 0, 0, .1); transition: all 0.2s }
#report ul li a:hover img { transform: scale(1.04); box-shadow: 2px 2px 25px rgba(0, 0, 0, .12); }
#report ul li a h3 { font-size: 17px; line-height: 1.66em; margin-top: 1em }

form input[type="text"], form input[type="email"], form textarea { border: solid 1px #e7e7e7; padding: 1em 0.5em; border-radius: 5px; margin-bottom: 1em }
form input[type="submit"] { padding: 1em 2em; background: #676767; color: #fff; border-radius: 5px }
.screen-reader-response { margin-bottom: 2em }
.screen-reader-response ul { display: none }
.wpcf7-not-valid-tip { margin-left: 1em; color: crimson }
.wpcf7-response-output { display: none }


#news-article { padding-top: 3vw }
.programs { margin-top: 4em }
.programs h4 { margin: 0.5em 0 }
.artists { margin-top: 4em }
.artists .artist-tit h4 { margin-bottom: 0.5em }
.artists .artist-tit p { font-size: 14px }
.archives li { display: inline-block }
.archives li a { display: block; padding: 0 1em; font-size: 20px }
.logos_l { margin-top: 1em }
.logos_l li { float: left; width: 33.3% }
.logos_m li { float: left; width: 20% }

.tx-larger { font-size: 1.22em !important }
.ts-larger { font-size: 1.12em !important }
.ts-smaller { font-size: 0.88em !important }
.pt-0 { padding-top: 0 !important }
.mt-0 { margin-top: 0 !important }
.mt-1 { margin-top: 1em !important }
.mt-2 { margin-top: 2em !important }
.mt-4 { margin-top: 4em !important }


/* 2023.09.18追加 */
#christopher-beauregard .imgs .clm-two .img-l { width: calc(60% - 2em); margin: 1em }
#christopher-beauregard .imgs .clm-two .img-r { width: calc(40% - 2em); margin: 1em }
#ruth-waters p span { font-size: 12px; line-height: 1.8; display: block; }


/* 2023.10.02追加 */
.block .notes { font-size: 12px; line-height: 1.8; display: block; }


/* 2024.05.25追加 */
.sec .bridge-tit .hd { display: inline-block; font-size: 14px; letter-spacing: 0.12em; line-height: 1.5em; }
.sec .bridge-tit h3 { font-size: 26px; line-height: 1.5em; margin-bottom: 0; margin-top: 0.25em }
#bridge2020 ol { padding: 6vw 0 0; }
#bridge2020 ol > li { padding: 0 0 3em; margin: 0 0 3em; border-bottom: dotted 1px #d7d7d7; }
#bridge2020 ol > li:last-child {  border-bottom: none; padding: 0; margin: 0; }
#bridge2020 ol li h4 { position: relative; padding: 0 0 0 25px; }
#bridge2020 ol li .num { font-size: 26px !important; position: absolute; top: -10px; left: 0; }
#bridge2020 ol li h5 { margin-bottom: 0 !important }
.bridge ul > li { margin: 0.2em 0 0; }
#bridge-info p { font-size: 13px; }


#ida-daisuke .imgs .clm-two .img { width: calc(60% - 2em); }
#ida-daisuke .imgs .clm-two .img:last-child { width: calc(40% - 2em); }
#isomura-dan .imgs .clm-two .img { width: calc(60% - 2em); }
#isomura-dan .imgs .clm-two .img:last-child { width: calc(40% - 2em); }

.bridge .notes { font-size: 12px; line-height: 1.8; display: block; }


/* 2024.07.16追加 */
#eva-seiler .imgs .clm-two .img-l { width: calc(46.1% - 2em); margin: 1em }
#eva-seiler .imgs .clm-two .img-r { width: calc(53.9% - 2em); margin: 1em }
#hyphen .imgs .clm-two .img-l { width: calc(43.4% - 2em); margin: 1em }
#hyphen .imgs .clm-two .img-r { width: calc(56.6% - 2em); margin: 1em }


/* 2024.12.11追加 */
.sec .sec-inner .period  { color: #a7a7a7 }

/* 2025.07.08追加 */
#procedure-corporate ol li h5 { margin-bottom: 0;}
#procedure-indivisual ol li h5 { margin-bottom: 0;}

/* 2026.02.05追加 */
#avani-tandon-vieira .imgs .clm-two .img-l { width: calc(40% - 2em); margin: 1em }
#avani-tandon-vieira .imgs .clm-two .img-r { width: calc(60% - 2em); margin: 1em }
#ibrahim-kurt .imgs .clm-two .img-l { width: calc(40% - 2em); margin: 1em }
#ibrahim-kurt .imgs .clm-two .img-r { width: calc(60% - 2em); margin: 1em }
#sato-koichi .imgs .clm-two .img-l { width: calc(54% - 2em); margin: 1em }
#sato-koichi .imgs .clm-two .img-r { width: calc(46% - 2em); margin: 1em }


/* 2026.03.06追加 */
.workshop-archives { margin: -3em 0 0 -1em; }
.workshop-archives li { width: calc(33.333% - 1em); float: left; margin: 3em 0 0 1em; display: inline-block; }
.workshop-archives li h4 { font-size: 13px; padding: 0 !important; margin: 0 !important  }


/* 2026.09.02追加 */
.building { padding: 50px 15% 0 15%; }
.detail-map { padding: 30px 0 0; }



@media screen and (max-width: 1220px) {
    #header .globalNav li a { padding: 35px 15px; }
} 


@media screen and (max-width: 1080px) {
    #header .globalNav { display: none; }
}


@media screen and (max-width: 780px) {
	
    body { font-size: 13px; line-height: 1.6; letter-spacing: 0.04em; -webkit-text-size-adjust: none; overflow: hidden }
    h2, h3, h4, h5 { letter-spacing: 0.08em; font-weight: 700; }
	
    a { text-decoration:none; -webkit-tap-highlight-color:rgba(0,0,0,0); -webkit-touch-callout:none; }

    .pc_none { display: block }
    .sp_none { display: none }
    
    /* effects */
    .fd .fd-inner { position: relative; top: 6vw }
    .zm { transform: scale(1.24); }
    .txtl, .txtl-t { opacity: 0; display: inline-block }
    
    .dl-tbl dl dt, .dl-tbl.nrw dl dt { padding: 1em 0.5em; }
    .dl-tbl dl dd, .dl-tbl.nrw dl dd { padding: 1em 0.5em; }
    .dl-tbl.tbl2 dl dt { width: 3em; }
    .dl-tbl.tbl2 dl dd { width: calc(100% - 3em); }
    
    #header { position: fixed; left: 0; top: 0; width: 100%; height: 26px; padding: 12px 0; }
    #header .head-inner { position: relative; padding: 0 5vw }
    #header .head-inner h1 { line-height: 0 }
    #header .head-inner h1 img { height: 26px }
    #header .head-inner .global-navi { display: none; position: absolute; right: inherit; left: 0; top: 38px; width: calc(100% - 10vw); padding: 5vw 5vw 10vw; background: #e7e7e7; }
    #header .head-inner .global-navi>li { position: relative; display: block; line-height: 1em; border-bottom: dotted 1px #fff }
    #header .head-inner .global-navi>li a { display: block; padding: 1.5em 1em; font-family: YuMincho, 'Yu Mincho', serif; }
    #header .head-inner .global-navi>li ul { position: relative; left: inherit; top: inherit; width: auto; padding: 1em; background: #ececec; display: none }
    #header .head-inner .global-navi>li ul li a { display: block; padding: 0.5em; font-size: 14px }
    #header .head-inner .global-navi>li.ov>a:after { content:"+"; position: absolute; right: 0; top: 24px; font-size: 16px; line-height: 1em; margin-top: -0.5em; }
    #header .head-inner .lang { position: absolute; right: 50px; top: 0; margin-right: 0 }
    #header .head-inner .lang li { position: relative; display: inline-block; line-height: 26px; font-size: 14px }
    #header .head-inner .lang li a { display: block; padding: 0 1em }
    #header .head-inner .lang li:nth-child(1) { font-weight: 800; }
    #header .head-inner .lang li:nth-child(1):after { content: ""; display: block; position: absolute; right: 0;top: 0; width: 1px; height: 100%; background: #d7d7d7 }
    #header .btn-menu { display: block; position: absolute; top: 0; right: 0; width: 50px; height: 50px; line-height: 0; text-align: center; cursor:pointer; transition: all 0.2s }
    #header .btn-menu span { position: absolute; width: 50%; height: 1px; left: 25%; top: 50%; background: #020102; display: block; line-height: 0; transition: all 0.2s }
    #header .btn-menu span.ln1 { margin: -4px 0 0; }
    #header .btn-menu span.ln2 { margin: 3px 0 0; }
    #header .btn-menu:hover, #header .btn-menu.on { background: #e7e7e7 }
    #header .btn-menu:hover span { width: 66.66%; left: 16.66% }
    #header .btn-menu.on span.ln1 { transform: rotate(45deg); margin: 0; }
    #header .btn-menu.on span.ln2 { transform: rotate(-45deg); margin: 0; }
    
    /* main */
    #top-main { position: relative; padding: 15vw 5vw; z-index: 0 }
    #top-main aside { position: absolute; right: 0; top: 2.5vw; font-size: 8px }
    #top-main .slogan { font-size: 10.8vw; font-family: Granjon, serif; }
    #top-main .slogan span { display: block; line-height: 1.18em; }
    #top-main .summary { padding: 2.2vw 0 0 }
    #top-main .summary p { font-family: YuMincho, 'Yu Mincho', serif; }
    #top-main .summary p span {  }
    #top-main .summary h3 { font-size: 18px; }
    
    #top-topics { padding: 0 5vw }
    #top-topics ul { margin: 0 -2.5vw }
    #top-topics li { width: 100%; }
    #top-topics li a { position: relative; display: block; padding: 5vw 2.5vw }
    #top-topics li a .thumb { position: relative; margin-left: 10vw; overflow: hidden; }
    #top-topics li a .date { position: absolute; left: 2.5vw; top: 5vw; width: 10vw; text-align: center }
    #top-topics li a .date span { display: block; font-size: 14px; line-height: 1.5em; }
    #top-topics li a .date span.day { font-size: 28px; line-height: 1.25em;  }
    #top-topics li a h3 { position: absolute; left: 2.5vw; bottom: 5vw; font-size: 16px; }
    
    #top-programs { padding: 7.5vw 5vw 0 }
    #top-programs h2 { font-size: 24px; margin-bottom: 1em }
    #top-programs .programs { margin: 0 }
    #top-programs .programs .prg { width: 100%; margin: 0 0 10vw }
    #top-programs .programs .prg h3 { font-size: 24px; margin: 0.66em 0; line-height: 1em }
    #top-programs .programs .prg h3 span { font-size: 13px; line-height: 1em }
    #top-programs .programs .prg ul { margin-top: 1em }
    #top-programs .programs .prg ul li { margin: 0 0 10px }
    #top-programs .programs .prg ul li a { position: relative; display: inline-block; background: #f1f1f1; padding: 0 1em 0 2em; font-size: 14px; font-weight: 500 }
    #top-programs .programs .prg ul li a:before { content:""; position: absolute; left: 0.66em; top: 1em; margin-top: -6px; width: 12px; height: 12px; background: url(../img/arw.png) no-repeat; background-size: contain }
    #top-programs .programs .prg ul li a:hover { background: #d7d7d7 }
    #top-programs .programs .prg ul li a:hover:before { margin-left: 2px }
    
    #contents { position: relative; padding: 0 0 100px; margin-top: 44px; z-index: 1 }
    #contents .contents-inner { max-width: inherit; }
    #contents.clm-two { text-align: left; padding-right: 0 }
    #contents.clm-one { text-align: left }
    #contents.clm-one .contents-inner { margin: 0 auto; text-align: left }
    #contents.clm-one-w { text-align: left; }
    #contents.clm-one-w .contents-inner { max-width: inherit; margin: 0 auto; text-align: left }
    #contents .loc-navi { display: none }
    
    /* footer */
    #footer { position: relative; padding: 30px 0; }
    #footer .foot-inner { position: relative; padding: 0 5vw; text-align: left; color: #fff }
    #footer .foot-inner .f-link { font-size: 15px; font-weight: 600; margin-bottom: 20px }
    #footer .foot-inner .e-newsletter { position: absolute; right: 5vw; top: 0; font-size: 16px; }
    #footer .foot-inner .f-navi .f-link { width: 100%; }
    #footer .foot-inner .f-navi .f-link a { display: block }
    #footer .foot-inner .f-navi .f-link:last-child a { margin-bottom: 20px }
    #footer .foot-inner .f-navi .f-link:last-child>a:last-child { margin-top: 0 }
    #footer .foot-inner .f-navi .f-link:nth-child(1) { width: 100% }
    #footer .foot-inner .f-navi .f-link:nth-child(2) { width: 100% }
    #footer .foot-inner .f-navi .f-link ul { display: none }
    #footer .foot-inner .f-sns { margin: -12px }
    #footer .foot-inner .f-sns li { display: inline-block; }
    #footer .foot-inner .f-sns li a { display: block; padding: 12px; transition: all 0.2s }
    #footer .foot-inner .f-sns li a:hover { opacity: 0.33 }
    #footer .foot-inner .opening-hours { position: relative; left: inherit; bottom: inherit; font-size: 10px; margin-top: 20px }
    #footer .foot-inner .f-logo { margin-top: 20px }
    #footer .foot-inner .copyright { margin-top: 1em }
    
    /* Lower Contents */
    .bigtit { padding: 5vw 0 0 }
    .bigtit h2 span.en { font-family: Granjon; font-size: 28px; }
    .bigtit h2 span.ja { font-family: YuMincho, 'Yu Mincho', serif; display: block; }
    .bigtit h2:after { content: ""; display: block; position: absolute; right: 0;top: 22px; width: 100%; height: 1px; background: #d7d7d7 }
    .newstit h2 { font-size: 22px; letter-spacing: 0.12em; line-height: 1.5em; margin-left: 2.2vw; padding: 0 5vw }
    .newstit p { padding: 0 5vw }
    main.vis p.lead { padding: 0 5vw }
    
    .sec { position: relative; padding: 7.5vw 5vw; border-bottom: dashed 1px #d7d7d7 }
    .sec .sec-inner { position: relative; }
    .sec h3 { font-size: 18px; margin-bottom: 1em }
    .sec h4 { font-size: 16px; margin-bottom: 1em }
    .sec h5 { font-size: 14px; margin-bottom: 1em }
    .sec .artist-tit { font-size: 20px; margin-bottom: 1em }
    .sec .artist-tit .hd { display: inline-block; font-size: 12px; letter-spacing: 0.12em; line-height: 1.5em; }
    .sec .artist-tit h3 { font-size: 28px; line-height: 1.5em; margin-bottom: 0; margin-top: 0.25em }
    .sec .artist-tit h3 span { display: block; font-size: 15px; font-weight: 500 }
    .sec .artist-tit p:last-child { margin-top: 0.5em }
    .sec .portrait { padding: 0 0 2em }
    .sec .portrait img { width: 50% }
    .sec p strong { font-weight: 500 }
    .sec p a:link, .sec p a:visited { font-weight: 500; text-decoration: underline; }
    .sec ol li span { font-size: 16px; }
    .sec .dl-tbl { margin-top: 3em }
    p.cap { font-size: 11px; }
    .block { margin-top: 3em }
    .block-l { margin-top: 4.5em }
    .imgs { margin-top: 2em }
    .imgs .list-flex { margin: -0.5em }
    .imgs .clm-two .img { width: calc(50% - 1em); margin: 0.5em }
    .imgs .clm-three .img { width: calc(50% - 1em); margin: 0.5em }
    .imgs p.cap { text-align: right }
    .img-l .img { float: none; width: 100%; margin-right: 0; margin-bottom: 2em }
    .map iframe { height: 90vw }
    .artist-box { position: relative; padding-left: 0 }
    .artist-box .portrait { position: relative; left: inherit; top: inherit }
    
    #report ul { margin: -1em }
    #report ul li { width: 50%; }
    #report ul li a { display: block; padding: 1em }
    #report ul li a h3 { font-size: 15px; }
    
    #news-article { padding-top: 0 }
    .artists .artist-tit p { font-size: 12px }
    .archives li a { display: block; padding: 0 1em; font-size: 16px }
    .logos_l li { float: left; width: 50% }
    .logos_m li { float: left; width: 33.33% }
	
    
	/* 2023.09.18追加 */
	#christopher-beauregard .imgs .clm-two .img-l { width: calc(40% - 1em); margin: 0.5em }
	#christopher-beauregard .imgs .clm-two .img-r { width: calc(60% - 1em); margin: 0.5em }
	#ruth-waters p span { font-size: 10px; }
	
	
	/* 2023.10.02追加 */
	.block .notes { font-size: 10px; }
	
	
	/* 2024.05.25追加 */
	.sec .bridge-tit .hd { font-size: 12px; }
	.sec .bridge-tit h3 { font-size: 20px; }
	#bridge2020 ol { padding: 12vw 0 0; }
	#bridge2020 ol li h4 { font-size: 18px; padding: 0 0 0 22px; }
	#bridge2020 ol li .num { font-size: 24px !important; position: absolute; top: -8px; left: 0; }
	#bridge-info p { font-size: 12px; }
	
	.bridge .notes { font-size: 10px; }	
	
	/* 2024.07.16追加 */
	#eva-seiler .imgs .clm-two .img-l { width: calc(46.1% - 1em); margin: 0.5em }
	#eva-seiler .imgs .clm-two .img-r { width: calc(53.9% - 1em); margin: 0.5em }
	#hyphen .imgs .clm-two .img-l { width: calc(43.4% - 1em); margin: 0.5em }
	#hyphen .imgs .clm-two .img-r { width: calc(56.6% - 1em); margin: 0.5em }	
	
	/* 2026.02.05追加 */
	#avani-tandon-vieira .imgs .clm-two .img-l { width: calc(40% - 1em); margin: 0.5em }
	#avani-tandon-vieira .imgs .clm-two .img-r { width: calc(60% - 1em); margin: 0.5em }
	#ibrahim-kurt .imgs .clm-two .img-l { width: calc(40% - 1em); margin: 0.5em }
	#ibrahim-kurt .imgs .clm-two .img-r { width: calc(60% - 1em); margin: 0.5em }
	#sato-koichi .imgs .clm-two .img-l { width: calc(54% - 1em); margin: 0.5em }
	#sato-koichi .imgs .clm-two .img-r { width: calc(46% - 1em); margin: 0.5em }
	
	/* 2026.03.06追加 */
	.workshop-archives { margin: -1em 0 0 0; }
	.workshop-archives li { width: 100%; float: left; margin: 1em 0 0 0; }
	.workshop-archives li h4 { font-size: 15px; }
	
	/* 2026.09.02追加 */
	.building { padding: 30px 0 0; }
	.detail-map { padding: 20px 0 0; }	
	
}




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

}


/**
 * ==============================================
 * Dot Typing
 * ==============================================
 */
.dot-typing {
  position: relative;
  left: -9999px;
  width: 5px;
  height: 5px;
  border-radius: 2.5px;
  background-color: #e9cbce;
  color: #e9cbce;
  box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  -webkit-animation: dot-typing 1s infinite linear;
  animation: dot-typing 1s infinite linear;
}

@-webkit-keyframes dot-typing {
  0% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  16.667% {
    box-shadow: 9986px -8px 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  33.333% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  50% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px -10px 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  66.667% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  83.333% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px -8px 0 0 #c7cad9;
  }
  100% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
}

@keyframes dot-typing {
  0% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  16.667% {
    box-shadow: 9986px -8px 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  33.333% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  50% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px -10px 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  66.667% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
  83.333% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px -8px 0 0 #c7cad9;
  }
  100% {
    box-shadow: 9986px 0 0 0 #1f2a68, 9999px 0 0 0 #8f94b3, 10012px 0 0 0 #c7cad9;
  }
}