/* ==========================================
	特設ページフェスティバル(2025.08作成)
============================================= */
/* .festival #wrap, */
.festival #header,
.festival main {
	padding-top: 0;
	background: none;
	background-color: var(--fes-bg, #01b4ed);
}
.festival main article { padding-top: 60px;}
.festival main h1 { display: none;}
.festival main .program {
	box-sizing: content-box;
	position: relative;
	margin: 100px auto;
  padding: 20px;
  background: #fff;
	border: 6px dashed var(--fes-bg, #01b4ed);
}
.festival main .program:last-child,
.festival main .program:has(+ :not(.program)) {
	margin-bottom: .2em;
}
.festival main .program + p,
.festival main .program + .attention {
	margin-top: .2em;
}

/* YOUTUBEショート */
.youtube-short-container {
  margin: 5vh auto 0;
  width: 90%;
  max-width: 450px;
}
.youtube-short-container .inner {
	position: relative;

  padding-bottom: 177.78%; /* 9:16のアスペクト比（16 / 9 * 100 = 177.78%）*/
  width: 100%;  /* コンテナの幅を任意に設定 */
  height: 0;
  overflow: hidden;
}
.youtube-short-container iframe {
  /* iframeをコンテナに合わせる */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


/*  コピー */
.festival main .copy0 {
	text-align: center;
	line-height: 1.8;
}
.festival main .copy {
	margin: 1em auto 3em;
	text-align: center;
	line-height: .8;
}
.festival main .copy img {
	margin: auto;
	width: auto !important;
	height: 80px !important;
}

/* スタッフ */
.festival .staff {
	color: #fff;
	text-align: center;
}
.festival .staff h3 { color:#1664be;}
.festival .staff p {
	display: inline-block;
	margin: .5em;

	font-weight: bold;
}
.festival .staff p.block {
	display: block !important;
}

/*  スケジュールリスト */
.list_schedule { 
	margin: auto;
	max-width: 900px;
}
.list_schedule li a {
	display: block;
	margin: .3em auto;
	padding: 1em;
	color: #222;
	text-align: left;
	letter-spacing: 0;
	vertical-align: text-top;
	background-color: #fff;
}
.list_schedule li a:hover {	
	color: #222;
	background-color: #fff000;
	filter: drop-shadow(0 0 10px rgba(0,0,0,.35));
}
.list_schedule li .date {
	font-size: 1.8rem;
	font-weight: bold;
}
.list_schedule li .date .yobi {
	margin-left: .3em;
	font-size: 0.85em;
	font-feature-settings: "palt";
}
.list_schedule li .place {
	display: block;
	font-weight: normal;
	font-size: 0.9em;
}
.list_schedule li .time {
	margin-left: .3em;
	text-align: right;
	font-size: 0.85em;
	letter-spacing: 0;
}
.list_schedule li .subject {
	margin: .3em auto .4em;
	border-top: 2px solid var(--fes-bg, #01b4ed);
	border-bottom: 2px solid var(--fes-bg, #01b4ed);
}
.list_schedule li .subject h3 {
	margin: .4em auto .2em;
	padding-bottom: .1em;
	line-height: 1.1;

}
.list_schedule li .price { text-align: right;}
.list_schedule li .price strong { font-size: 1.35em;}

.contents .attention {
	color: #fff;
	font-size: 1.45rem;
	font-weight: 600;
	text-shadow : 1px 1px 0px rgba(0,0,0,0.5);
	text-align: center;
}
.contents .fleama {
	margin: auto;
	max-width: 900px;
}
.contents .fleama a {
	display: block;
	margin: .3em auto;
	padding: 1em;
	color: #222;
	text-align: center;
	letter-spacing: 0.07em;
	vertical-align: text-top;
	background-color: #fff000;/* #fff000 #1664be */
}
.contents .fleama h3 {
	display: inline-block;
	margin: 0 auto .3em;
	color: #e3007f;
}
.contents .fleama p {
	color: #222;
	font-size: 1.7rem;
	font-weight: bold;
} 
.contents .fleama p.date {
	display: inline-block;
	font-size: 2rem;
}
.contents .fleama p.text { text-align: center;}
.contents .fleama .yellow { color: #e3007f}


/* チケット・お問い合わせ */
.contents .ticket {	text-align: center;}
.festival main .ticket { text-align: center;}
.ticket > a {
	display: block;
	margin: auto;
	padding: 3em 2em;
	max-width: 700px;

/* 	border-radius: 25px; */

	background-color: #e3007f;/* #1664be */
}
.ticket > a h4 {
	margin: 0;
	color: #fff;
	font-size: 2.3rem;
}
.ticket > a img {
	float: right;
	height: auto;
	width:  20%;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);;
}
.ticket > a p {
	margin: 0;
	color: #fff;
	font-weight: bold;
	text-align: center;
}

.ticket > a h4::after {
	content: "";
	position: relative;
	display: inline-block;
	margin-left: .2em;
	top: auto;
	right: auto;
	width: 1.7em;
	height: 1.7em;
	transform: translateY(0) rotate(0);
	background: url(/common/images/icon-outerlink.svg) no-repeat right center;
	background-size: contain;
	border: none;
	vertical-align: middle;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);
}

.festival main .ticket .wp-block-button.ticket-banner {
	width: 100%;
	max-width: 700px;
	margin: 0 auto;
}
.festival main .ticket .wp-block-button.ticket-banner .wp-block-button__link,
.festival main .ticket .wp-block-button.ticket-banner a.wp-block-button__link[target="_blank"] {
	display: block;
	box-sizing: border-box;
	margin: 0 auto;
	padding: 3rem 2rem !important;
	width: auto;
	max-width: 700px;
	border: none;
	border-radius: 0;
	font-size: 2.3rem;
	line-height: 1.15;
	font-weight: bold;
	text-align: center;
}
.festival main .ticket .wp-block-button.ticket-banner .wp-block-button__link small {
	display: block;
	margin-top: .15em;
	font-size: 1.65rem;
	font-weight: bold;
	line-height: 1.4;
}
.festival main .ticket .wp-block-button.ticket-banner .ticket-title {
	display: inline-block;
	font-size: 2.3rem;
	line-height: 1.15;
}
.festival main .ticket .wp-block-button.ticket-banner .ticket-title::after {
	content: "";
	position: relative;
	display: inline-block;
	margin-left: .2em;
	width: 1.7em;
	height: 1.7em;
	vertical-align: middle;
	background: url(/common/images/icon-outerlink.svg) no-repeat right center;
	background-size: contain;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);
}
.festival main .ticket .wp-block-button.ticket-banner .wp-block-button__link::before,
.festival main .ticket .wp-block-button.ticket-banner a.wp-block-button__link[target="_blank"]::before,
.festival main .ticket .wp-block-button.ticket-banner .wp-block-button__link::after,
.festival main .ticket .wp-block-button.ticket-banner a.wp-block-button__link[target="_blank"]::after {
	display: none;
	content: none;
	background: none;
	border: none;
	width: 0;
	height: 0;
}
.festival main .ticket .contact p {
	margin: 0 auto .2em;
	font-weight: bold;
	text-align: center;
}
.festival main .ticket .contact .wp-block-button.contact-btn .wp-block-button__link,
.festival main .ticket .contact .wp-block-button.contact-btn a.wp-block-button__link[target="_blank"] {
	display: block;
	position: relative;
	box-sizing: border-box;
	margin: 0.5em auto;
	padding: .5em 1.5em;
	width: 280px;
	font-size: 1.7rem;
	line-height: 1.25;
	font-weight: 600;
	border: 3px solid #333;
	border-radius: 50vh;
}
.festival main .ticket .contact .wp-block-button.contact-btn .wp-block-button__link::before,
.festival main .ticket .contact .wp-block-button.contact-btn a.wp-block-button__link[target="_blank"]::before {
	content: '';
	display: block;
	position: absolute;
	top: 50%;
	right: 15px;
	width: 20px;
	height: 20px;
	background: #fff;
	border-radius: 30vh;
	transform: translateY(-50%);
}
.festival main .ticket .contact .wp-block-button.contact-btn .wp-block-button__link::after,
.festival main .ticket .contact .wp-block-button.contact-btn a.wp-block-button__link[target="_blank"]::after {
	content: '';
	display: block;
	position: absolute;
	top: 50%;
	right: 22px;
	margin: 0;
	width: 9px;
	height: 9px;
	background: none;
	border: none;
	border-top: 2px solid #333;
	border-right: 2px solid #333;
	filter: none;
	transform: translateY(-50%) rotate(45deg);
}
.festival main .ticket .contact .wp-block-button.contact-btn .wp-block-button__link:hover::before,
.festival main .ticket .contact .wp-block-button.contact-btn a.wp-block-button__link[target="_blank"]:hover::before {
	background-color: #e83836;
}
.festival main .ticket .contact .wp-block-button.contact-btn .wp-block-button__link:hover::after,
.festival main .ticket .contact .wp-block-button.contact-btn a.wp-block-button__link[target="_blank"]:hover::after {
	background: none;
	border: none;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
}

.ticket .contact h3 {
color:#1664be;
}
.ticket .contact h4 {
	margin-top: 0;
}
.ticket .contact ul {
	display: inline-block;
	margin: 0 auto;
}
.ticket .contact ul li {
	font-weight: bold;
	text-align: center;
}
.ticket .contact ul li a {
	display: inline-block;
	padding: 0;
	background-color: transparent;
	color: inherit;
	text-decoration: none;
}
.ticket .contact ul li.btn a {
	padding: .5em 1.5em;
	background-color: #fff;
}


.festival main .program .wp-block-column:first-child {
/* 	padding-left: 60px; */
}

.festival main .program .date {
	position: absolute;
	top:-70px;
	left:-30px;
	padding: 1.3em 1em .7em;
	color: #fff;
	font-size: 2rem;
	font-weight: bold;
	line-height: 1.35;
	text-align: center;
	background-color: #222;
	border-radius: 50%;
}
.festival main .program .title {
	margin-bottom: 1.2em;
	padding-bottom: .8em;
	text-align: center;
	border-bottom: 3px solid var(--fes-bg, #01b4ed);
}
.festival main .program .title h2 { margin: 0;}
.festival main .program .title p {
	margin: 0;
	font-size: 2.1rem;
	font-weight: bold;
	text-align: center;
}
.festival main .program .text {
	margin-bottom: 1em;
	padding: 1.5em 0;
}
.festival main .program .text p {
	margin: 0 auto .1em;
	font-size: 1.7rem;
	line-height: 1.5;
	letter-spacing: 0;
}
.festival main .program dl {
 	display: grid;
  grid-template-columns: auto 1fr;
  gap:.3em 1.2em;
/*   width: max-content; */
  max-width: 100%;
  margin-bottom: .3em;
  max-width: 100%;
}
.festival main .program dl dt {
	width: 80px;
	font-size: 1.45rem;
	line-height: 1.65;
	text-align-last: justify;
	vertical-align: bottom;
}
.festival main .program dl dd {
	text-align: left;
	line-height: 1.5;
/* 	font-weight: bold; */
}
.festival main .program .program-meta-row {
	display: flex;
	flex-wrap: nowrap;
	align-items: flex-start;
	gap: 1.2em;
	margin: 0 0 0.5em;
	max-width: 100%;
}
.festival main .program .program-meta-row .meta-label {
	flex: 0 0 80px;
	width: 80px;
	margin: 0;
	font-size: 1.45rem;
	line-height: 1.65;
	text-align-last: justify;
}
.festival main .program .program-meta-row .meta-value {
	flex: 1;
	margin: 0;
	text-align: left;
	line-height: 1.5;
}
.festival main .program .program-meta-row .meta-value small {
	font-size: 0.85em;
	font-weight: normal;
}
.festival main .program .wp-block-image { margin: 0;}
.festival main .program .prof {
	margin-top: 2em;
	padding: 2em;
	gap:3em;
	background-color: #eee;
}
.festival main .program .prof .wp-block-media-text__content { padding: 0;}
.festival main .program .prof h3 {
	margin: 0 auto .6em;
	font-size: 1.9rem;
}
.festival main .program .prof p {
	font-size: 1.45rem;
	font-feature-settings: "pwid";
	letter-spacing: 0.06em;
	text-align: justify;
	text-justify: inter-ideograph;
	word-wrap: break-word;
	text-align-last: left;
}

/* SNSボタン */
.wp-block-buttons.sns {
	margin: 2.3em auto 0;
	gap:1em;
}
.wp-block-buttons.sns .wp-block-button { margin: 0;}
.wp-block-buttons.sns .wp-block-button.x a.wp-block-button__link,
.wp-block-buttons.sns .wp-block-button.insta a.wp-block-button__link,
.wp-block-buttons.sns .wp-block-button.facebook a.wp-block-button__link,
.wp-block-buttons.sns .wp-block-button.sns a.wp-block-button__link {
	margin: 0;
	padding: 0;
	width: 40px;
	height: 40px;
	border: none;
	border-radius: 0;
	overflow: hidden;
	text-indent: -9999px;
}
.wp-block-buttons.sns .wp-block-button.sns a.wp-block-button__link:link,
.wp-block-buttons.sns .wp-block-button.sns a.wp-block-button__link:visited {
	opacity: .6;
	background-size: 80% !important;
}
.wp-block-buttons.sns .wp-block-button.sns a.wp-block-button__link:hover {
	opacity: .8;
	background-size: 100% !important;
}
.wp-block-buttons.sns .wp-block-button.sns a.wp-block-button__link:active { opacity: 1;}

.wp-block-buttons.sns .wp-block-button.x a.wp-block-button__link {
	background: url(../images/icon-X.svg) no-repeat center center;
}
.wp-block-buttons.sns .wp-block-button.insta a.wp-block-button__link {
	background: url(../images/icon-insta.svg) no-repeat center center;
}
.wp-block-buttons.sns .wp-block-button.facebook a.wp-block-button__link {
	background: url(../images/icon-facebook.svg) no-repeat center center;
}
.wp-block-buttons.sns .wp-block-button.hp {
	display: block;
/* 	width: 100%; */
}
.wp-block-buttons.sns .wp-block-button.hp a.wp-block-button__link:link,
.wp-block-buttons.sns .wp-block-button.hp a.wp-block-button__link:visited { opacity: .8;}
.wp-block-buttons.sns .wp-block-button.hp a.wp-block-button__link:hover { opacity: 1;}
.wp-block-buttons.sns .wp-block-button.hp a.wp-block-button__link {
	padding: .25em 1em;
	width: 200px;
	font-size: 1.45rem;
	line-height: 1.5;
}
body .wp-block-buttons.sns .wp-block-button a.wp-block-button__link[target="_blank"]::after {
	display: none;
}

.fleamarket {
	padding: 0 3vmin;
	border: 2px solid #fff;
	border-radius: 60px;
}
.fleamarket .title_fleama { margin-top: -30px;}
.fleamarket .text {
	color: #fff;
	font-size: 2rem;
}
.fleamarket .date_fleama { padding: 0 2em;}




@media screen and (min-width:480px){ /* スマホ横用 */
}@media screen and (min-width:768px){ /*タブレット*/
.festival main .program {
  padding: 40px ;
}
.festival main .inner .wp-block-group .wp-block-group__inner-container {
  width: 100%;
}

.fleamarket .title_fleama { margin-top: -50px;}

}@media screen and (min-width:992px){ /* ノートPC用 */



/*  スケジュールリスト */
.list_schedule li a {
	display: flex;
	gap:2em;
}
.list_schedule li .date {
	width: 160px;
	text-align: right;
}
.list_schedule li .time {
	display: block;
	text-align: right;
}
.list_schedule li .subject {
	margin: 0;
	padding: 0;
	vertical-align: text-top;
	border: none;
	width: calc( 100% - 310px);
}
.list_schedule li .subject h3 { margin-top: 0;}
.list_schedule li .price { width: 150px;}

.fleamarket .title_fleama { margin-top: -60px;}

}@media screen and (min-width:1150px){ /* デスクトップ用 */
}
