#container.festival-shell{
	box-sizing:border-box;
	padding-bottom:48px;
	color:#29251f;
	background-color:#fff8eb;
	background-image:url("img_back.jpg");
	background-position:center top;
	background-repeat:no-repeat;
	background-size:cover;
	background-attachment:fixed;
	font-family:"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;
}
#container.festival-shell *{box-sizing:border-box}
#container.festival-shell img{max-width:100%}

.festival-shell .event-breadcrumb{
	width:min(1200px,94%);
	margin:0 auto;
	padding:14px 0 0;
}
.event-breadcrumb ul{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
	margin:0;
	padding:0;
	list-style:none;
	color:#665b4e;
	font-size:13px;
}
.event-breadcrumb a{color:inherit}

.festival-hero{width:100%;margin:0;padding:0;background:none}
.festival-hero-inner{width:100%;max-width:1920px;margin:0 auto}
.festival-main-visual{display:block;width:100%;height:auto}
.festival-copy-visual{display:block;width:80%;height:auto;margin:clamp(24px,4vw,48px) auto 0}
.visually-hidden{
	position:absolute!important;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0;
}

.event-content{width:min(1200px,100%);margin:0 auto;padding:24px clamp(14px,3vw,34px) 0}
.festival-nav{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	gap:10px;
	margin:clamp(16px,2.5vw,30px) auto 26px;
}
.festival-nav a{
	padding:10px 16px;
	border:1px solid #4b382d;
	color:#3d3027;
	background:#fff;
	font-size:14px;
	font-weight:800;
	text-decoration:none;
	box-shadow:3px 3px 0 #f2b847;
}
.festival-nav a:hover,
.festival-nav a:focus-visible{color:#fff;background:#bd4b2c}

.event-date-banner{margin:0 auto 28px}
.event-date-banner img{display:block;width:100%;height:auto}

@media screen and (min-width:768px){
	.festival-nav{gap:14px;margin-bottom:32px}
	.festival-nav a{padding:14px 22px;font-size:clamp(16px,1.5vw,18px)}
}

.festival-section{
	position:relative;
	margin:0 0 26px;
	padding:clamp(22px,4vw,44px);
	border:1px solid #eadcc8;
	background:#fff;
	box-shadow:0 8px 24px rgba(92,61,32,.08);
}
.festival-section-heading{
	margin:0 0 12px;
	color:#a94325;
	font-size:clamp(26px,4vw,42px);
	font-weight:900;
	line-height:1.2;
}
.festival-section-heading img{display:block;width:100%;height:auto}
.festival-section-kicker{
	display:block;
	margin-bottom:8px;
	color:#856b51;
	font-size:12px;
	font-weight:800;
	letter-spacing:.18em;
}
.stage-visual{display:block;width:100%;height:auto;margin-bottom:20px}
.festival-section-intro{
	margin:0 0 22px;
	color:#544a40;
	font-size:clamp(15px,1.8vw,18px);
	line-height:1.8;
}
.artist-gallery{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:30px 20px;
	margin:0;
	padding:0;
	list-style:none;
}
.artist-item{min-width:0;padding-top:38px}
.artist-card{
	display:block;
	color:#29251f;
	text-decoration:none;
	transition:transform .2s ease;
}
.artist-card:hover{transform:translateY(-3px)}
.artist-card:focus-visible{outline:3px solid #0c8290;outline-offset:4px}
.artist-time-range{
	display:flex;
	justify-content:flex-end;
	gap:4px;
	margin:0 0 8px;
	color:#a94325;
	font-size:13px;
	font-weight:800;
	letter-spacing:.04em;
	line-height:1.4;
}
@media screen and (min-width:768px){
	.artist-time-range{font-size:28px}
}
.artist-time{margin:0}
.artist-media{
	position:relative;
	display:block;
}
.artist-photo{
	display:block;
	width:100%;
	aspect-ratio:16 / 9;
	border:1px solid #2d3942;
	border-bottom:4px solid #ed5b2a;
	object-fit:cover;
	background:#10161b;
	transition:filter .2s ease;
}
.artist-card:hover .artist-photo{filter:brightness(.92)}
.artist-photo--portrait{object-fit:contain}
.artist-name-image{
	position:absolute;
	z-index:1;
	top:0;
	left:0;
	display:block;
	width:min(42%,220px);
	height:auto;
	transform:translateY(-48%);
}
.artist-link-hint{
	position:absolute;
	right:12px;
	bottom:14px;
	z-index:2;
	padding:6px 10px;
	border:1px solid rgba(255,255,255,.45);
	border-radius:999px;
	color:#fff;
	background:rgba(23,29,35,.68);
	font-size:11px;
	letter-spacing:.1em;
	line-height:1.2;
	text-transform:uppercase;
	backdrop-filter:blur(4px);
}

.booth-grid{
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:14px;
	margin:0;
	padding:0;
	list-style:none;
}
.booth-stack{
	align-self:start;
	min-width:0;
}
.booth-stack-list{
	display:grid;
	gap:14px;
	margin:0;
	padding:0;
	list-style:none;
}
.booth-card{
	height:100%;
	padding:20px;
	border:1px solid #e9dcc8;
	border-top:4px solid #ed5b2a;
	background:#fffaf1;
}
.booth-card h3{margin:0 0 8px;color:#a94325;font-size:20px}
.booth-card h3 a{position:relative;display:block}
.booth-card h3 img{display:block;width:100%;height:auto}
.booth-card h3 img.booth-external-link{
	position:absolute;
	top:-5px;
	right:4px;
	width:20px;
	height:20px;
}
.booth-card p{margin:0;color:#4e463e;line-height:1.75}
.booth-card a{color:inherit;text-decoration-thickness:1px;text-underline-offset:3px}
.booth-card a:focus-visible{outline:2px solid #0c8290;outline-offset:3px}
.booth-note{margin:16px 0 0;color:#6d6255;font-size:13px}
.abenon-booth{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:clamp(16px,3vw,28px);
	margin:22px auto 0;
	padding:18px 24px;
	border:1px solid #eadcc8;
	border-left:5px solid #ed5b2a;
	background:#fff3d4;
}
.abenon-booth-image{
	display:block;
	flex:0 0 auto;
	width:142px;
	height:210px;
	object-fit:contain;
}
.abenon-booth-copy{text-align:center}
.abenon-booth-title{
	margin:0;
	color:#a94325;
	font-size:clamp(24px,3.3vw,34px);
	font-weight:900;
	line-height:1.3;
}
.abenon-booth-description{
	margin:8px 0 0;
	color:#544a40;
	font-size:clamp(15px,1.7vw,18px);
	font-weight:700;
	line-height:1.6;
}

.lottery-section{
	background:#fff3d4;
	border-color:#e7bc51;
}
.lottery-callout{
	margin:0 0 24px;
	padding:18px;
	border:2px solid #302821;
	background:#ffc026;
	box-shadow:4px 4px 0 #302821;
	font-size:clamp(17px,2vw,22px);
	font-weight:800;
	line-height:1.65;
}
.lottery-steps{
	display:grid;
	gap:12px;
	margin:0;
	padding:0;
	list-style:none;
	counter-reset:lottery-step;
}
.lottery-steps li{
	position:relative;
	padding:18px 20px 18px 60px;
	border:1px solid #e6d3b4;
	background:rgba(255,255,255,.94);
	line-height:1.8;
	counter-increment:lottery-step;
}
.lottery-steps li::before{
	position:absolute;
	top:17px;
	left:18px;
	display:grid;
	width:28px;
	height:28px;
	place-items:center;
	border-radius:50%;
	color:#fff;
	background:#bd4b2c;
	content:counter(lottery-step);
	font-weight:900;
	line-height: 0;
}
.lottery-steps p{margin:0}
.lottery-steps p+p{margin-top:8px}
.lottery-cautions{margin:14px 0 0;padding-left:1.4em;color:#554b41;font-size:14px;line-height:1.8}
.lottery-pass-note{margin:18px 0 0;font-weight:700;line-height:1.8}
.venue-map{margin:24px 0 0;text-align:center}
.venue-map img{display:block;width:min(100%,900px);height:auto;margin:0 auto}
.venue-map figcaption{margin-top:8px;color:#6d6255;font-size:13px}

.chitose-promo{margin:0 0 24px}
.chitose-promo img{display:block;width:100%;height:auto}

@media screen and (min-width:768px){
	.lottery-callout{font-size:clamp(20px,2.4vw,24px)}
	.lottery-section > h3{font-size:20px}
	.lottery-steps{font-size:18px}
	.lottery-cautions{font-size:16px}
	.lottery-pass-note{font-size:17px}
}

.community-promo{
	display:block;
	margin:0 0 24px;
	padding:clamp(22px,4vw,42px);
	border:2px solid #ed8b38;
	background:#fff0d5;
	box-shadow:0 8px 24px rgba(92,61,32,.08);
}
.community-promo h2{margin:0 0 12px}
.community-heading-visual{display:block;width:min(100%,1000px);height:auto}
.community-cinema-visual,
.community-kouhou-visual{display:block;width:100%;height:auto}
.community-kouhou-visual{margin-top:16px}
.community-note{max-width:1000px;margin:18px auto 0;color:#29251f;font-size:clamp(15px,1.6vw,18px);font-weight:700;line-height:1.7}
.community-note-highlight{color:#1f7854;font-weight:900}
.community-note-example{color:#62584d;font-size:.92em;font-weight:500}

.event-notices{
	margin:0 0 24px;
	padding:clamp(20px,3vw,32px);
	border:1px solid #eadcc8;
	border-left:5px solid #bd4b2c;
	background:#fffaf1;
}
.event-notices-visual{display:block;width:100%;height:auto}
.event-notices h2{margin:0 0 16px;color:#a94325;font-size:clamp(22px,2.5vw,28px);font-weight:900;line-height:1.3}
.event-notices ul{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.event-notices li{
	padding:10px 14px;
	border-left:3px solid #ed8b38;
	background:#fff;
	color:#29251f;
	font-size:clamp(16px,1.5vw,18px);
	font-weight:600;
	line-height:1.75;
}
.event-contact-email{display:block;margin-top:4px;padding-left:1em}
.event-notices a{color:#176b52;text-decoration-thickness:1px;text-underline-offset:3px;overflow-wrap:anywhere}
.event-cooperation{
	margin:18px 0 0;
	padding-top:14px;
	border-top:1px solid #eadcc8;
	color:#4e463e;
	font-size:clamp(16px,1.4vw,17px);
	font-weight:700;
	line-height:1.75;
}

@media screen and (min-width:768px){
	.community-note{font-size:clamp(19px,2vw,22px)}
	.event-notices h2{font-size:clamp(26px,3vw,32px)}
	.event-notices li{font-size:clamp(18px,1.6vw,20px)}
	.event-cooperation{font-size:clamp(17px,1.5vw,19px)}
}

@media screen and (min-width:600px) and (max-width:959px){
	.booth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media screen and (max-width:599px){
	#container.festival-shell{padding-bottom:28px;background-size:contain}
	.event-content{padding:16px 12px 0}
	.festival-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
	.festival-nav a{padding:10px 7px;text-align:center;font-size:13px}
	.festival-section{margin-bottom:16px;padding:22px 17px}
	.artist-gallery{grid-template-columns:1fr;gap:22px}
	.artist-item{padding-top:34px}
	.artist-name-image{width:min(42%,180px)}
	.booth-grid{grid-template-columns:1fr;gap:10px}
	.booth-stack-list{gap:10px}
	.booth-card{padding:17px}
	.abenon-booth{flex-direction:column;gap:8px;padding:16px}
	.abenon-booth-image{width:120px;height:176px}
	.lottery-steps li{padding:16px 14px 16px 52px}
	.lottery-steps li::before{top:15px;left:13px}
	.chitose-promo{margin-bottom:16px}
	.community-promo{margin-bottom:16px;padding:22px 17px}
	.event-notices{margin-bottom:16px;padding:22px 17px}
}
@media (prefers-reduced-motion:reduce){
	.artist-card{transition:none}
	.artist-card:hover{transform:none}
	.artist-photo{transition:none}
}
