@charset "utf-8";

button.artwork-list-panel,
button.modal-close,
button.modal-close-btn-left,
button.modal-close-btn-right {
  all: unset;
  display: inline-block;      /* フォーカスアウトラインを安定表示 */
  cursor: pointer;
}

button.artwork-list-panel:focus-visible,
button.modal-close:focus-visible,
button.modal-close-btn-left:focus-visible,
button.modal-close-btn-right:focus-visible {
  outline: 3px solid #09f;
  border-radius: 2px;
}

/* -----------------------------------------------------------------------
レイアウト
--------------------------------------------------------------------------*/
.vg-page-wrap {
	padding:30px 40px;
}

@media screen and (min-width:581px) and ( max-width:950px) {
	.vg-page-wrap {
		padding:20px 30px;
	}
}

@media screen and (max-width: 580px) {
	.vg-page-wrap {
		padding:20px 4%;
	}
}

.vg-page-inner {
	max-width:1400px;
	margin:0 auto;
}

/* -----------------------------------------------------------------------
 企画展　動画
--------------------------------------------------------------------------*/
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

.movie-main {
	margin-bottom:60px;
}

.movie-main video {
	width:100%;
	vertical-align:bottom;
}

/* -----------------------------------------------------------------------
 企画展　詳細
--------------------------------------------------------------------------*/
.vg-title {
	font-family: "Noto Serif JP", serif;
	font-weight: 500;
	line-height:1.5;
}

@media print, screen and (min-width: 1101px) {
	.vg-title {
		font-size:38px;
		margin-bottom:50px;
		text-indent:-152px;
		padding-left:152px;
	}
	.vg-content-wrap {
		display:flex;
		justify-content: space-between;
	}
	.vg-text-content-wrap {
		width:36%;
	}
	.vg-artwork-list-wrap {
		width:56%;
		padding-top:31px;
	}
}

@media screen and (min-width:1101px) and (max-width:1200px) {
	.vg-text-content-wrap {
		width:46%;
	}
	.vg-artwork-list-wrap {
		width:46%;
		padding-top:31px;
	}
}

@media screen and (max-width:1100px) {
	.vg-title {
		font-size:32px;
		max-width:740px;
		margin:0 auto 45px;
	}
	.vg-content-wrap {
		max-width:740px;
		margin:0 auto;
	}
	.vg-text-content-wrap {
		margin-bottom:70px;
	}
}
@media screen and (max-width:700px) {
	.vg-title {
		font-size:25px;
		padding:0 1%;
		margin:0 auto 38px;
	}
	.vg-content-wrap {
		padding:0 1%;
	}
}

.vg-info-box {
	padding-bottom:20px;
	border-bottom:1px solid #666;
	margin-bottom:30px;
}

.vg-info-text {
	font-size:17px;
	line-height:1.6;
	text-indent:-5em;
	padding-left:5em;
	margin-bottom:8px;
}

.artwork-list-title {
	font-size:17px;
	letter-spacing:3px;
	line-height:1.6;
	margin-bottom:20px;
}

.vg-section-title {
	font-size:15px;
	font-weight:bold;
	letter-spacing:2px;
	display: flex;
	align-items: center;
	margin-bottom:30px;
}

.vg-section-title::after {
  content: '';
  height: 1px;
  background-color: #666;
  flex-grow: 1;
}

.vg-section-title::after {
  margin-left: 10px;
}

@media screen and (max-width:700px) {
	.artwork-list-title {
		font-size:16px;
	}
	.vg-section-title {
		font-size:14px;
	}
}

/* ------------------　企画展　作品リスト　------------------*/
.vg-artwork-list {
	display:flex;
	flex-wrap: wrap;
}

.vg-artwork-item {
	display:flex;
	align-items: center;
}

button.tate-01 {
	width:88%;
	margin:0 auto;
}

button.tate-02 {
	width:82%;
	margin:0 auto;
}

button.tate-03 {
	width:70%;
	margin:0 auto;
}

button.tate-04 {
	width:55%;
	margin:0 auto;
}

@media print, screen and (min-width: 1301px) {
	.vg-artwork-item {
		width:29%;
		margin:0 3.25% 55px;
		transition: 0.2s ease-in-out;
	}
	.vg-artwork-item:nth-of-type(3n) {
    	margin-right:0;
	}
	.vg-artwork-item:nth-of-type(3n+1) {
    	margin-left:0;
	}
}

@media screen and (min-width:1201px) and (max-width:1300px) {
	.vg-artwork-item {
		width:30%;
		margin:0 2.5% 50px;
		transition: 0.2s ease-in-out;
	}
	.vg-artwork-item:nth-child(3n) {
    	margin-right:0;
	}
	.vg-artwork-item:nth-child(3n+1) {
    	margin-left:0;
	}
}

@media screen and (min-width:1101px) and (max-width:1200px) {
	.vg-artwork-item {
		width:42%;
		margin:0 8% 60px;
		transition: 0.2s ease-in-out;
	}
	.vg-artwork-item:nth-child(2n) {
    	margin-right:0;
	}
	.vg-artwork-item:nth-child(2n+1) {
    	margin-left:0;
	}
}

@media screen and (min-width:701px) and (max-width:1100px) {
	.vg-artwork-item {
		width:28%;
		margin:0 4% 55px;
		transition: 0.2s ease-in-out;
	}
	.vg-artwork-item:nth-child(3n) {
    	margin-right:0;
	}
	.vg-artwork-item:nth-child(3n+1) {
    	margin-left:0;
	}
}

@media screen and (max-width:700px) {
	.vg-artwork-item {
		width:42%;
		margin:0 8% 50px;
		transition: 0.2s ease-in-out;
	}
	.vg-artwork-item:nth-child(2n) {
    	margin-right:0;
	}
	.vg-artwork-item:nth-child(2n+1) {
    	margin-left:0;
	}
}

@media screen and (max-width:500px) {
	.vg-artwork-item {
		width:45%;
		margin:0 5% 30px;
		transition: 0.2s ease-in-out;
	}
}

.vg-artwork-item button {
	transition: 0.4s ease-in-out;
}

.vg-artwork-item button:hover {
	opacity:0.8;
	transform:scale(1.025,1.025);
	transition: 0.4s ease-in-out;
}

.vg-artwork-item button:hover .artwork-caption {
	color:#258fd7;
	transition: 0.4s ease-in-out;
}

/* -----------------------------------------------------------------------
モーダルウィンドウ
--------------------------------------------------------------------------*/
body.modal-open {
  overflow: hidden; /* ページのスクロールを禁止 */
}

.modal-overlay {
  z-index: 10;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, .8)
}

.modal-wrapper {
  z-index: 999;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 40px 10px;
  text-align: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s, visibility .3s;
}

.modal-wrapper.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity .4s, visibility .4s;
}

.modal-wrapper::after {
  display: inline-block;
  height: 100%;
  margin-left: -.05em;
  vertical-align: middle;
  content: ""
}

.modal-wrapper .modal-window {
  box-sizing: border-box;
  display: inline-block;
  z-index: 20;
  position: relative;
  width: 80%;
  max-width: 1200px;
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 0 30px rgba(0, 0, 0, .6);
  vertical-align: middle
}

@media screen and ( max-width:1400px) {
	.modal-wrapper .modal-window {
		max-width: 900px;
		width: 88%;
	}
}

.modal-wrapper .modal-window .modal-content {
  max-height: 80vh;
  overflow-y: auto;
  text-align: left;
  padding: 40px 55px 45px 50px;
}

@media screen and ( max-width:1400px) {
	.modal-wrapper .modal-window .modal-content {
		padding: 40px 50px 60px;
	}
}

@media screen and ( max-width:700px) {
	.modal-wrapper .modal-window .modal-content {
		padding: 30px 5% 40px;
	}
}

.modal-wrapper button.modal-close {
  z-index: 20;
  position: absolute;
  top: 11px;
  right: 17px;
  width: 20px;
  padding:0 6px 6px;
  background-color: rgba(255,255,255,0.3);
}

.modal-wrapper button.modal-close:hover {
  opacity:0.8;
}

.modal-wrapper p {
	color:#000;
}

@media print, screen and (min-width:1401px) {
	.modal-two-column-wrap {
		display:flex;
		justify-content: space-between;
	}
	.artwork-tate-00 {
		width:35%;
	}
	.artwork-text-content-00 {
		width:60%;
	}
	.artwork-tate-01 {
		width:40%;
	}
	.artwork-text-content-01 {
		width:55%;
	}
	.artwork-tate-02 {
		width:50%;
	}
	.artwork-text-content-02 {
		width:45%;
	}
}

@media screen and ( max-width:1400px) {
	.artwork-tate-00 {
		max-width:300px;
		margin:20px auto 50px;
	}
	.artwork-tate-01 {
		max-width:400px;
		margin:20px auto 50px;
	}
	.artwork-tate-02 {
		max-width:550px;
		margin:20px auto 50px;
	}
}

@media screen and ( max-width:700px) {
	.artwork-tate-00 {
		width:70%;
		margin:20px auto 30px;
	}
	.artwork-tate-01,
	.artwork-tate-02  {
		margin:20px auto 30px;
	}
}

.artwork-title {
	font-family: "Noto Serif JP", serif;
	font-weight: 600;
	font-size:30px;
	line-height:1;
}

.artwork-title-en {
	font-size:14px;
	line-height:1;
	padding:14px 0 30px;
}

.artwork-detail-wrap {
	border-top:1px dotted #aaa;
	border-bottom:1px dotted #aaa;
	padding:17px 0 17px;
}

.artwork-detail-text {
	font-size:13px;
	line-height:1.8;
}

.modal-desc-wrap {
	padding:20px 0 0;
}

.modal-desc-text {
	font-size:16px;
	line-height:1.7;
	text-align: justify;
}

.modal-desc-text span.kome {
	font-size:0.7em;
	color:#000;
	vertical-align: top;
	margin-right:3px;
}

.note-text {
	padding-top:20px;
	font-size:13px;
	line-height:1.7;
	text-align: justify;
}

@media screen and ( max-width:700px) {
	.artwork-title {
		font-size:25px;
	}
	.artwork-title-en {
		font-size:13px;
	}
	.modal-desc-text {
		font-size:15px;
	}
	.note-text {
		font-size:12px;
	}
}

.close-btn-wrap {
	text-align:center;
	padding:40px 0 0;
}

button.modal-close-btn-left,
button.modal-close-btn-right {
	display:inline-block;
	background:#000;
	font-size:14px;
	color:#fff;
	padding:3px 20px;
	border-radius:40px;
	transition: 0.3s ease-in-out;
}

button.modal-close-btn-left {
	margin-right:25px;
}

button.modal-close-btn-right {
	margin-left:25px;
}

@media screen and ( max-width:700px) {
	button.modal-close-btn-left {
		margin-right:12px;
	}
	button.modal-close-btn-right {
		margin-left:12px;
	}
	.modal-wrapper button.modal-close {
		top: 8px;
  		right: 17px;
  		width: 16px;
	}
}

button.modal-close-btn-left:hover,
button.modal-close-btn-right:hover {
	background:#666;
	transition: 0.3s ease-in-out;
}

/* 非アクティブ要素に inert がついたら */
[inert] {
  pointer-events: none;
  user-select: none;
  filter: blur(1px);
}
