.pn-festival{max-width:1180px;margin:0 auto;padding:32px 20px;color:#17233d}.pn-festival__nav,.pn-festival__tabs,.pn-festival-card__actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pn-festival__nav{justify-content:flex-end;margin-bottom:24px}.pn-festival__nav a,.pn-festival__tabs a{text-decoration:none;padding:9px 14px;border-radius:999px}.pn-festival__hero{padding:36px;border-radius:24px;background:linear-gradient(135deg,#17233d,#5b3ea6);color:#fff;margin-bottom:24px}.pn-festival__hero h1,.pn-festival__hero h2{color:#fff}.pn-festival__tabs{margin:20px 0}.pn-festival__tabs a{background:#f0eef8;color:#2d2850}.pn-festival__tabs .is-active,.pn-button{background:#6547c7!important;color:#fff!important}.pn-button{display:inline-block;border:0;border-radius:10px;padding:11px 18px;text-decoration:none;cursor:pointer}.pn-festival__grid{display:grid;grid-template-columns:1fr;gap:20px}.pn-festival-card{overflow:hidden;background:#fff;border:1px solid #e4e1ec;border-radius:18px;box-shadow:0 8px 24px rgba(25,20,55,.07)}.pn-festival-card__media{aspect-ratio:16/10;background:#121827}.pn-festival-card__media img,.pn-festival-card__media video,.pn-festival-card__media .wp-video{display:block;width:100%!important;height:100%!important;object-fit:cover!important;padding:0!important;background:none;border-radius:0}.pn-festival-card__body{padding:18px}.pn-festival-card__body h2{font-size:1.25rem}.pn-festival-card__actions button{border:1px solid #d7d0e8;background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer}.pn-festival-form,.pn-festival-rules,.pn-notice{max-width:760px;margin:20px auto;padding:28px;background:#fff;border:1px solid #e3dfeb;border-radius:18px}.pn-festival-form label{display:block;margin:16px 0}.pn-festival-form input:not([type=checkbox]),.pn-festival-form textarea,.pn-festival-form select,.pn-festival-comment-form textarea{display:block;width:100%;box-sizing:border-box;padding:11px;border:1px solid #cfc9db;border-radius:8px;margin-top:6px}.pn-festival-comment{border-top:1px solid #eee;padding-top:10px}.pn-empty{grid-column:1/-1;text-align:center;padding:40px}.pn-festival-showcase{padding-inline:0}@media(max-width:600px){.pn-festival{padding:18px 12px}.pn-festival__hero{padding:24px}.pn-festival__grid{grid-template-columns:1fr}}.pn-festival-fields{border:0;padding:0;margin:0}.pn-festival-fields[disabled]{opacity:.45}.pn-festival-rules-confirm{font-weight:700;background:#f4f0ff;padding:14px;border-radius:10px;border:1px solid #d9cff5}

/* --- Free quota + PRO gate -------------------------------------------------*/
.pn-festival-quota {
	background: #eef4ff;
	border: 1px solid #d3e0fd;
	border-radius: 12px;
	color: #1d4ed8;
	font-size: .85rem;
	font-weight: 600;
	padding: .7rem 1rem;
}

.pn-home-festival-track {
	margin: 0 auto;
	max-width: 1200px;
	width: 100%;
}

.pn-festival-showcase .pn-festival__grid {
	display: flex;
	gap: 18px;
	overflow-x: auto;
	overflow-y: hidden;
	padding: 4px 2px 18px;
	scroll-behavior: smooth;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
	-webkit-overflow-scrolling: touch;
}

.pn-festival-showcase .pn-festival-card {
	flex: 0 0 clamp(260px, 32vw, 350px);
	scroll-snap-align: start;
}

.pn-festival-showcase .pn-festival-card__media {
	aspect-ratio: auto;
	background: #f8fafc;
	height: clamp(240px, 28vw, 320px);
}

.pn-festival-showcase .pn-festival-card__media img {
	display: block;
	height: 100%;
	object-fit: contain;
}

.pn-festival-showcase .pn-festival-card__body {
	padding: 12px 14px;
}

.pn-festival-showcase .pn-festival-card__body > span {
	font-size: .75rem;
}

.pn-festival-showcase .pn-festival-card__body h2 {
	font-size: 1.05rem;
	line-height: 1.35;
	margin: 5px 0 10px;
}

.pn-festival-showcase .pn-festival-card__actions {
	flex-wrap: nowrap;
	overflow-x: auto;
	scrollbar-width: none;
}

.pn-festival-showcase .pn-festival-card__actions::-webkit-scrollbar {
	display: none;
}

.pn-festival-showcase .pn-festival-card__actions button,
.pn-festival-showcase .pn-festival-card__actions .pn-festival-card__comment-link {
	flex: 0 0 auto;
	font-size: .72rem;
	line-height: 1;
	padding: 7px 9px;
	white-space: nowrap;
}

@media (max-width: 640px) {
	.pn-festival-showcase .pn-festival__grid {
		margin-inline: -20px;
		padding-inline: 20px;
		scroll-padding-inline: 20px;
	}

	.pn-festival-showcase .pn-festival-card {
		flex-basis: min(86vw, 330px);
	}

	.pn-festival-showcase .pn-festival-card__body {
		padding: 9px 10px 10px;
	}

	.pn-festival-showcase .pn-festival-card__body h2 {
		font-size: 1rem;
		margin: 3px 0 7px;
	}

	.pn-festival-showcase .pn-festival-card__actions {
		gap: 6px;
	}
}

.pn-festival-card__actions .pn-festival-card__comment-link {
	background: #fff;
	border: 1px solid #d7d0e8;
	border-radius: 8px;
	color: #17233d;
	padding: 8px 10px;
	text-decoration: none;
}

.pn-promotion-url small {
	display: block;
	color: #64748b;
	font-size: .78rem;
	margin-top: .35rem;
}

.pn-festival-card--promotion {
	position: relative;
	transition: transform .2s ease, box-shadow .2s ease;
}

.pn-festival-card--promotion:hover {
	box-shadow: 0 14px 36px rgba(25,20,55,.16);
	transform: translateY(-3px);
}

.pn-festival-card__promotion-link {
	color: inherit;
	display: block;
	height: 100%;
	text-decoration: none;
}

.pn-festival-card__ad-label {
	background: rgba(15,23,42,.86);
	border-radius: 999px;
	color: #fff;
	font-size: .7rem;
	font-weight: 700;
	inset-inline-start: 10px;
	padding: 4px 9px;
	position: absolute;
	top: 10px;
}

.pn-festival-card--promotion .pn-festival-card__media {
	position: relative;
}

.pn-festival-card__visit {
	color: #6547c7;
	display: inline-block;
	margin-top: 10px;
}

.pn-festival-pro-gate {
	background: linear-gradient(135deg, #fff7ed, #fdf2f8);
	border: 1px solid #fcd9a8;
	border-radius: 18px;
	margin: 1.2rem 0;
	padding: 1.6rem;
	text-align: center;
}

.pn-festival-pro-gate h2 {
	margin: 0 0 .5rem;
}

.pn-festival-pro-gate p {
	color: #64748b;
	margin: 0 auto 1rem;
	max-width: 34em;
}

.pn-festival-pro-gate .pn-button {
	background: linear-gradient(135deg, #f59e0b, #ec4899);
	border: 0;
	color: #fff;
	font-weight: 700;
	margin-inline-end: .5rem;
	padding: .7rem 1.4rem;
}

.pn-festival-card__excerpt {
	margin: 0 0 8px;
	color: #5a6480;
	font-size: .92rem;
	line-height: 1.7;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.pn-festival-review {
	max-width: 760px;
	margin: 20px auto;
}

.pn-festival-review .pn-festival-card {
	margin-bottom: 20px;
}

.pn-festival-review-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 14px;
}

.pn-button--danger {
	background: #dc2626 !important;
	color: #fff !important;
}
