/**
 * HOKAGE Theme Styles
 * Custom styles beyond theme.json
 */

/* ========================================
   Base Styles
   ======================================== */

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
	padding: 0;
	margin: 0;
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Utility: SP only display */
.sp-only {
	display: none;
}

@media (max-width: 781px) {
	.sp-only {
		display: block;
	}
}

/* ========================================
   Header
   ======================================== */

/* Header template part wrapper: absolute positioned */
header.wp-block-template-part {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	z-index: 100;
}

/* Admin bar offset when logged in */
.admin-bar header.wp-block-template-part {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar header.wp-block-template-part {
		top: 46px;
	}
}

/* PC Header: 112px height */
.site-header {
	min-height: 112px;
	background-color: transparent !important;
}

/* Header inner flex layout */
.site-header__inner {
	display: flex;
	flex-wrap: nowrap;
	justify-content: space-between;
	align-items: center;
}

/* SP Header: 88px height */
@media (max-width: 781px) {
	.site-header {
		min-height: 88px;
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	/* SP Logo: 56x56 */
	.site-header__logo img {
		width: 56px !important;
		height: 56px !important;
	}
}

/* ========================================
   Footer
   ======================================== */

/* SP Footer */
@media (max-width: 781px) {
	/* SP info: vertical layout, gap 8px */
	.site-footer__info {
		flex-direction: column !important;
		align-items: flex-start;
		gap: 8px !important;
	}

	/* SP Logo: 88x88 */
	.site-footer__logo img {
		width: 88px !important;
		height: 88px !important;
	}

	/* SP store name: 16px */
	.site-footer__name {
		font-size: 16px !important;
	}
}

/* ========================================
   Social Links Fixed
   ======================================== */

/* PC: 縦並び、右端固定、50x134px、アイコン34x34 */
.social-links-fixed {
	position: fixed;
	right: 0;
	bottom: 56px;
	z-index: 100;
	padding: 8px;
	background-color: #232323;
	border-radius: 8px 0 0 8px;
	border: 1px solid #616161;
	border-right: none;
}

.social-links-fixed .wp-block-social-links {
	gap: 8px;
}

.social-links-fixed .wp-social-link {
	width: 34px;
	height: 34px;
}

/* SP: 38x118px、アイコン30x30 */
@media (max-width: 781px) {
	.social-links-fixed {
		padding: 8px 2px 8px 6px;
	}

	.social-links-fixed .wp-block-social-links {
		gap: 6px;
	}

	.social-links-fixed .wp-social-link {
		width: 30px;
		height: 30px;
	}
}

/* ========================================
   Navigation
   ======================================== */

.wp-block-navigation {
	gap: var(--wp--preset--spacing--30);
}

.wp-block-navigation-item a {
	font-size: 20px;
	text-decoration: none;
	letter-spacing: 0.05em;
	transition: color 0.3s ease;
}

.wp-block-navigation-item a:hover {
	color: var(--wp--preset--color--accent-red);
}

/* Mobile Navigation - Hamburger Button - Hide on PC */
.wp-block-navigation__responsive-container-open {
	display: none !important;
}

/* Mobile Navigation - Hamburger Button - Mobile only */
@media (max-width: 781px) {
	.wp-block-navigation__responsive-container-open {
		background-color: var(--wp--preset--color--secondary-dark) !important;
		border-radius: 0 !important;
		display: flex !important;
		justify-content: center !important;
		align-items: center !important;
		width: 48px !important;
		height: 48px !important;
		border: solid 1px #616161 !important;
		position: fixed !important;
		top: 20px !important;
		right: 16px !important;
		transition: none !important;
		z-index: 100000 !important;
	}

	/* Admin bar offset for hamburger button */
	.admin-bar .wp-block-navigation__responsive-container-open {
		top: 66px !important;
	}

	/* Hide hamburger button when menu is open */
	body.has-modal-open .wp-block-navigation__responsive-container-open {
		display: none !important;
	}

	/* Disable transform on navigation ancestors to fix position:fixed */
	.site-header,
	.site-header .wp-block-group,
	.wp-block-navigation,
	header.wp-block-template-part {
		transform: none !important;
		animation: none !important;
	}

	.wp-block-navigation__responsive-container-open svg {
		width: 28px !important;
		height: 28px !important;
		fill: var(--wp--preset--color--white) !important;
	}
}


/* Mobile Navigation - Container (slide from right) - Mobile only */
@media (max-width: 781px) {
	.wp-block-navigation__responsive-container {
		display: flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		transform: translateX(100%) !important;
		transition: transform 0.3s ease !important;
		animation: none !important;
		position: fixed !important;
		top: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		background-color: var(--wp--preset--color--primary-dark) !important;
		z-index: 99999 !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open {
		transform: translateX(0) !important;
		padding: var(--wp--preset--spacing--40) !important;
	}

	.wp-block-navigation__responsive-container.is-menu-open.is-menu-closing {
		transform: translateX(100%) !important;
	}

}


.wp-block-navigation__responsive-container-content {
	gap: var(--wp--preset--spacing--30);
}

/* ========================================
   Buttons
   ======================================== */

/* btn-type-1: 118x40px, padding 8/40, radius 24px */
.wp-block-button.is-style-btn-type-1 .wp-block-button__link {
	padding: 8px 40px;
	border-radius: 24px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	color: #ffffff;
	background-color: var(--wp--preset--color--green);
	text-decoration: none;
	transition: all 0.3s ease;
}

.wp-block-button.is-style-btn-type-1 .wp-block-button__link:hover {
	opacity: 0.9;
	transform: translateY(-2px);
}

/* btn-type-1 color variants */
.wp-block-button.is-style-btn-type-1.has-primary-dark-background .wp-block-button__link {
	background-color: var(--wp--preset--color--primary-dark);
}

.wp-block-button.is-style-btn-type-1.has-accent-red-background .wp-block-button__link {
	background-color: var(--wp--preset--color--accent-red);
}

/* btn-type-1__wide: 264px width, outline style */
.wp-block-button.is-style-btn-type-1-wide .wp-block-button__link {
	padding: 8px 40px;
	min-width: 264px;
	border-radius: 24px;
	border: 1px solid #ffffff;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: #ffffff;
	background-color: transparent;
	text-decoration: none;
	text-align: center;
	transition: all 0.3s ease;
}

.wp-block-button.is-style-btn-type-1-wide .wp-block-button__link:hover {
	background-color: rgba(255, 255, 255, 0.1);
	transform: translateY(-2px);
}

/* btn-type-1-wide filled variant (color3 = accent-orange) */
.wp-block-button.is-style-btn-type-1-wide.is-style-filled .wp-block-button__link {
	border: none;
}

.wp-block-button.is-style-btn-type-1-wide.is-style-filled .wp-block-button__link:hover {
	opacity: 0.9;
}

/* btn-type-2: アイコン付きボタン 110x40px */
.wp-block-button.is-style-btn-type-2 .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 30px 8px 14px;
	border-radius: 24px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	color: #ffffff;
	background-color: var(--wp--preset--color--green);
	text-decoration: none;
	transition: all 0.3s ease;
}

.wp-block-button.is-style-btn-type-2 .wp-block-button__link::before {
	content: "";
	display: inline-block;
	width: 20px;
	height: 16px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M12 16l-6-6h4V4h4v6h4l-6 6zm-8 4h16v2H4v-2z'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
	background-position: center;
}

.wp-block-button.is-style-btn-type-2 .wp-block-button__link:hover {
	opacity: 0.9;
	transform: translateY(-2px);
}

/* btn-type-2 outline variant */
.wp-block-button.is-style-btn-type-2.is-style-outline .wp-block-button__link {
	background-color: transparent;
	border: 1px solid #ffffff;
}

/* ========================================
   Headings
   ======================================== */

/* heading_2: セクション見出し（下線付き） */
.wp-block-heading.is-style-heading-2 {
	display: inline-block;
	max-width: fit-content;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 40px;
	font-weight: 700;
	color: #ffffff;
	line-height: 1.2;
	letter-spacing: 0.01em;
	margin: 0;
}

.wp-block-heading.is-style-heading-2::after {
	content: "";
	display: block;
	width: 100%;
	height: 5px;
	background-color: var(--wp--preset--color--accent-orange);
	margin-top: 10px;
}

@media (max-width: 781px) {
	.wp-block-heading.is-style-heading-2 {
		font-size: 20px;
		letter-spacing: 0;
	}

	.wp-block-heading.is-style-heading-2::after {
		height: 4px;
		margin-top: 8px;
	}
}

/* heading_3: カード見出し */
.wp-block-heading.is-style-heading-3 {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 24px;
	font-weight: 700;
	color: #ffffff;
	line-height: 1.4;
}

@media (max-width: 781px) {
	.wp-block-heading.is-style-heading-3 {
		font-size: 16px;
	}
}

/* ========================================
   Cards
   ======================================== */

.wp-block-query .wp-block-group {
	transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.wp-block-query .wp-block-group:hover {
	transform: translateY(-4px);
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
}

/* ========================================
   Cover Block
   ======================================== */

.wp-block-cover {
	position: relative;
}

.wp-block-cover::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 100px;
	background: linear-gradient(to top, var(--wp--preset--color--primary-dark), transparent);
	pointer-events: none;
}

/* ========================================
   Images
   ======================================== */

.wp-block-image img {
	transition: transform 0.3s ease;
}

.wp-block-image:hover img {
	transform: scale(1.02);
}

.wp-block-post-featured-image img {
	object-fit: cover;
	width: 100%;
	height: 100%;
}

/* ========================================
   Social Links
   ======================================== */

.wp-block-social-links .wp-social-link {
	transition: transform 0.3s ease, opacity 0.3s ease;
}

.wp-block-social-links .wp-social-link:hover {
	transform: translateY(-2px);
	opacity: 0.8;
}

/* ========================================
   Separator
   ======================================== */

.wp-block-separator {
	border: none;
	height: 1px;
	opacity: 0.3;
}

/* ========================================
   Pagination
   ======================================== */

.wp-block-query-pagination {
	gap: var(--wp--preset--spacing--20);
}

.wp-block-query-pagination-numbers .page-numbers {
	padding: 0.5rem 1rem;
	background: var(--wp--preset--color--primary-dark);
	border-radius: 4px;
	text-decoration: none;
	transition: background 0.3s ease;
}

.wp-block-query-pagination-numbers .page-numbers:hover,
.wp-block-query-pagination-numbers .page-numbers.current {
	background: var(--wp--preset--color--accent-red);
}

/* ========================================
   Responsive Styles
   ======================================== */

@media (max-width: 781px) {
	/* Mobile Typography */
	h1.wp-block-heading {
		font-size: 2rem !important;
	}

	h2.wp-block-heading {
		font-size: 1.5rem !important;
	}

	/* Mobile Columns */
	.wp-block-columns {
		flex-direction: column;
	}

	.wp-block-column {
		flex-basis: 100% !important;
	}

	/* Mobile Spacing */
	.wp-block-group[style*="padding-top:var(--wp--preset--spacing--70)"] {
		padding-top: var(--wp--preset--spacing--50) !important;
	}

	.wp-block-group[style*="padding-bottom:var(--wp--preset--spacing--70)"] {
		padding-bottom: var(--wp--preset--spacing--50) !important;
	}

	/* Mobile Grid */
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: 1fr !important;
	}
}

@media (min-width: 782px) and (max-width: 1024px) {
	/* Tablet Grid */
	.wp-block-post-template.is-layout-grid {
		grid-template-columns: repeat(2, 1fr) !important;
	}
}

/* ========================================
   Animations
   ======================================== */

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.wp-block-group {
	animation: fadeInUp 0.6s ease-out;
}

/* ========================================
   Accessibility
   ======================================== */

:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-red);
	outline-offset: 2px;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute;
	width: 1px;
	word-wrap: normal !important;
}

/* ========================================
   Print Styles
   ======================================== */

@media print {
	body {
		background: white;
		color: black;
	}

	.wp-block-navigation,
	.wp-block-social-links,
	.wp-block-button {
		display: none;
	}
}

/* ========================================
   KV Section (Key Visual)
   ======================================== */

/* PC: 1280x808, image positioned absolutely */
.kv-section {
	position: relative;
	min-height: 808px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	border-bottom: 8px solid var(--wp--preset--color--schedule-green);
}

/* KV Slideshow */
.kv-slideshow {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
	overflow: hidden;
}

.kv-slideshow__slide {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	transition: opacity 1.5s ease-in-out;
}

.kv-slideshow__slide.is-active {
	opacity: 1;
}

.kv-slideshow__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.kv-slideshow__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: var(--wp--preset--color--secondary-dark);
	opacity: 0.48;
	pointer-events: none;
}

.kv-section .kv-copy {
	position: relative;
	z-index: 1;
	max-width: 765px;
}

/* KV Typography */
.kv-h1 {
	width: fit-content;
}

.kv-subtitle {
	margin-bottom: -4px !important;
	position: relative;
	left: -0.08em;
}

.kv-title {
	margin-bottom: 8px !important;
	position: relative;
	left: -0.08em;
}

.kv-underline.wp-block-separator {
	width: calc(100% - 0.8em) !important;
	max-width: none !important;
	height: 8px !important;
	border: none !important;
	opacity: 1 !important;
	margin-left: 0;
}

.kv-tagline {
	max-width: 749px;
	line-height: 1.5 !important;
	position: relative;
	left: -0.08em;
}

/* SP: Different layout - image separate from copy */
@media (max-width: 781px) {
	.kv-section {
		min-height: auto;
		padding: 0 !important;
		padding-top: 88px !important; /* Header height */
		border-bottom: none;
	}

	.kv-slideshow {
		position: relative;
		min-height: 244px;
		padding: 8px 0;
		border-top: 8px solid var(--wp--preset--color--primary-dark);
		border-bottom: 8px solid var(--wp--preset--color--primary-dark);
	}

	.kv-section .kv-copy {
		padding: 40px 16px;
		max-width: 100%;
	}

	/* SP Typography */
	.kv-subtitle {
		font-size: 14px !important;
		margin-bottom: 0 !important;
	}

	.kv-title {
		font-size: 32px !important;
		margin-bottom: 4px !important;
	}

	.kv-underline.wp-block-separator {
		width: calc(100% - 0.8em) !important;
		max-width: none !important;
		height: 4px !important;
	}

	.kv-tagline {
		font-size: 12px !important;
		line-height: 1.34 !important;
		padding: 8px 0;
	}
}

/* ========================================
   News & Instagram Section
   ======================================== */

.news-instagram-section .wp-block-columns {
	gap: 64px;
}

.news-column,
.instagram-column {
	display: flex;
	flex-direction: column;
	gap: 32px;
}

/* Reset all child margins within columns */
.news-column > *,
.instagram-column > * {
	margin-top: 0;
	margin-bottom: 0;
}

.news-card {
	margin-top: 0;
}

.news-content {
	color: #000;
}

.news-content p {
	margin: 0;
	line-height: 1.8;
	&:not(:last-of-type) {
		margin-bottom: 1em;
	}
}

.instagram-embed-placeholder {
	border-radius: 8px;
}

.instagram-column .wp-block-buttons,
.instagram-column .wp-block-html {
	margin: 0;
}

.instagram-embed-placeholder {
	align-items: flex-start !important;
	background: none !important;
	min-height: auto !important;
}
#sb_instagram #sbi_images {
	padding: 0;
}
/* SP: Stack columns vertically */
@media (max-width: 781px) {
	.news-instagram-section {
		padding: 48px 0 32px !important;
	}

	.news-instagram-section .wp-block-columns {
		flex-direction: column;
		gap: 8px;
	}

	.news-instagram-section .wp-block-column {
		padding: 48px 24px !important;
		gap: 24px;
	}

	/* SP news card */
	.news-card {
		padding: 32px 24px 48px !important;
	}

	.news-date-title {
		gap: 8px !important;
	}

	.news-title {
		font-size: 16px !important;
	}

	/* SP Instagram */
	.instagram-embed-placeholder {
		min-height: 400px !important;
	}

	/* SP news body text */
	.news-card > p,
	.news-content,
	.news-content p {
		font-size: 14px !important;
	}
}

/* ========================================
   Schedule Section
   ======================================== */

.schedule-section {
	/* Items centered via counterAxisAlignItems, but heading is left-aligned */
}

.schedule-section__inner {
	width: 1080px;
	margin-inline: auto;
}

.schedule-section .is-style-heading-2 {
	text-align: left;
	margin-bottom: 48px;
}

/* Schedule List: Grid layout, equal height cards */
.schedule-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, 256px);
	grid-auto-rows: 1fr;
	justify-content: flex-start;
	gap: 16px;
	margin: 0;
}

/* ========================================
   TODAY'S EVENT Section
   ======================================== */

.todays-event-section {
	padding: 96px 100px;
	background-color: var(--wp--preset--color--green);
}

.todays-event-section__heading {
	display: inline-block;
	max-width: fit-content;
	margin: 0 0 32px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 40px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.01em;
	color: var(--wp--preset--color--white);
}

.todays-event-section__heading::after {
	content: "";
	display: block;
	width: 100%;
	height: 5px;
	background-color: var(--wp--preset--color--accent-orange);
	margin-top: 10px;
}

.todays-event-section__list {
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* TODAY'S EVENT Card */
.todays-event-card {
	display: flex;
	align-items: stretch;
	padding: 24px;
	background-color: var(--wp--preset--color--white);
	border-radius: 8px;
}

.todays-event-card__content {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-right: 24px;
}

.todays-event-card__time-label {
	display: inline-block;
	width: fit-content;
	padding: 4px 16px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
	color: var(--wp--preset--color--black);
	background-color: #d1cb25;
	border-radius: 4px;
}

.todays-event-card__time-label--night {
	color: var(--wp--preset--color--white);
	background-color: #2819a9;
}

.todays-event-card__time-label--midnight {
	color: var(--wp--preset--color--white);
	background-color: #6b1fa8;
}

.todays-event-card__presents {
	margin: 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--black);
}

.todays-event-card__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--black);
	word-break: break-all;
}

.todays-event-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.todays-event-card__tag {
	display: inline-block;
	padding: 2px 8px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	background-color: var(--wp--preset--color--black);
	border-radius: 4px;
}

.todays-event-card__tag--soldout {
	background-color: #dc3232;
}

.todays-event-card__performers {
	margin: 8px 0 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--black);
	word-break: break-all;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.todays-event-card__drink {
	margin: 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 14px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--black);
}

/* VIEW Button - Inside card */
.todays-event-card__btn {
	display: block;
	width: 100%;
	margin-top: auto;
	padding: 8px 30px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	text-align: center;
	color: var(--wp--preset--color--white);
	background-color: var(--wp--preset--color--accent-orange);
	border-radius: 24px;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.todays-event-card__btn:hover {
	opacity: 0.8;
}

/* Thumbnail - Right side on PC */
.todays-event-card__thumb {
	flex-shrink: 0;
	width: 280px;
	overflow: hidden;
}

.todays-event-card__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* TODAY'S EVENT - Mobile */
@media (max-width: 781px) {
	.todays-event-section {
		padding: 48px 16px;
	}

	.todays-event-section__heading {
		font-size: 20px;
		letter-spacing: 0;
		margin-bottom: 24px;
	}

	.todays-event-section__heading::after {
		height: 4px;
		margin-top: 8px;
	}

	.todays-event-section__list {
		gap: 24px;
	}

	.todays-event-card {
		display: flex;
		flex-direction: column;
		padding: 16px;
		gap: 12px;
	}

	/* Use display: contents to flatten structure for reordering */
	.todays-event-card__content {
		display: contents;
	}

	/* Reorder elements: time, presents, title, tags, THUMB, performers, drink, btn */
	.todays-event-card__time-label { order: 1; }
	.todays-event-card__presents { order: 2; }
	.todays-event-card__title { order: 3; font-size: 18px; }
	.todays-event-card__tags { order: 4; }
	.todays-event-card__thumb { order: 5; width: 100%; }
	.todays-event-card__performers { order: 6; }
	.todays-event-card__drink { order: 7; }
	.todays-event-card__btn { order: 8; }
}

/* Schedule Card: 256px wide, full height */
.schedule-card {
	width: 256px;
	height: 100%;
	overflow: visible;
}

/* Inner: positioning context for absolute dateLabel, stretch to fill */
.schedule-card__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	border-radius: 8px;
	overflow: hidden;
}

/* Thumbnail: 256x176px */
.schedule-card__thumb {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 176px;
	overflow: hidden;
	background-color: var(--wp--preset--color--secondary-dark);
	transition: background-color 0.3s ease;
	position: relative;
}

.schedule-card__thumb:not(:has(img)) {
	&::after {
		/* content: 'No image'; */
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%, -50%);
		font-family: var(--wp--preset--font-family--acumin);
		font-size: 16px;
		font-weight: 700;
		line-height: 1.5;
		color: var(--wp--preset--color--white);
		text-align: center;
		text-wrap: balance;
	}
}

.schedule-card__thumb img {
	max-width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Content: white bg, 16px padding, 16px gap between children, grow to fill */
.schedule-card__content {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 16px;
	background-color: var(--wp--preset--color--white);
	flex: 1;
}

/* Title block: 8px gap */
.schedule-card__title {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.schedule-card__title p {
	margin: 0;
}

/* Presents: 12px Noto Sans JP regular, black */
/* Always reserve space for presents line (18px = 12px * 1.5 line-height) */
.schedule-card__title::before {
	content: '';
	display: block;
	min-height: 18px;
}

.schedule-card__title:has(.schedule-card__presents)::before {
	display: none;
}

.schedule-card__presents {
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--black);
}

/* Event name: 16px Acumin bold, black */
.schedule-card__event-name {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--black);
	word-break: break-all;
}

/* Tags container: horizontal, 4px gap */
.schedule-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

/* Tag item: #232323 bg, white text, 4px radius */
.schedule-card__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1px 8px 2px;
	background-color: var(--wp--preset--color--secondary-dark);
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 12px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

/* Sold out tag: red background */
.schedule-card__tag--soldout {
	background-color: #dc3232;
	margin-right: 8px;
}

/* Info block: 8px gap */
.schedule-card__info {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.schedule-card__info p {
	margin: 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--black);
}

.schedule-card__performers {
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	word-break: break-all;
}

/* Button wrapper: push to bottom */
.schedule-card__btn-wrap {
	margin-top: auto;
}

/* Button: 224x40px, #1c1c1c, radius 24px, 8px 40px padding */
.schedule-card__btn {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 40px;
	padding: 8px 40px;
	background-color: var(--wp--preset--color--primary-dark);
	border-radius: 24px;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.schedule-card__btn:hover {
	opacity: 0.9;
	color: var(--wp--preset--color--white);
}

/* Date Label: ABSOLUTE positioned, 64x88px, top-left, bottom-right radius 8px */
.schedule-card__date-label {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10;
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 64px;
	/* height: 88px; */
	gap: 0px;
	border-radius: 0 0 8px 0;
	overflow: hidden;
}

/* Date text container */
.schedule-card__date-text {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 8px 16px 6px;
	background-color: var(--wp--preset--color--secondary-dark);
}

/* Date: 24px Acumin bold, white */
.schedule-card__date {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 23px;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--white);
}

/* Day: 24px Acumin bold, white, center */
.schedule-card__day {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 22px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--white);
	text-align: center;
}

/* Saturday: blue text */
.schedule-card__date-text--saturday .schedule-card__date,
.schedule-card__date-text--saturday .schedule-card__day {
	color: var(--wp--preset--color--saturday-blue);
}

/* Sunday: red text */
.schedule-card__date-text--sunday .schedule-card__date,
.schedule-card__date-text--sunday .schedule-card__day {
	color: var(--wp--preset--color--sunday-red);
}

/* Time Label base: 64px wide, 18px height */
.schedule-card__time-label {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 64px;
	height: 18px;
	padding: 2px 0 4px;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}

/* DAY: yellow bg, black text */
.schedule-card__time-label--day {
	background-color: #D1CB25;
	color: var(--wp--preset--color--black);
}

/* NIGHT: blue/purple bg, white text */
.schedule-card__time-label--night {
	background-color: #2819A9;
	color: var(--wp--preset--color--white);
}

/* MIDNIGHT: purple bg, white text */
.schedule-card__time-label--midnight {
	background-color: #6B1FA8;
	color: var(--wp--preset--color--white);
}

/* SP Schedule */
@media (max-width: 781px) {
	.schedule-section {
		padding: 48px 24px !important;
		width: 100%;
	}

	.schedule-section__inner {
		width: 100%;
	}

	.schedule-section .is-style-heading-2 {
		margin-bottom: 32px;
	}

	.schedule-list {
		grid-template-columns: 1fr;
		justify-content: center;
		justify-items: center;
		gap: 24px;
	}

	.schedule-card {
		width: 100%;
		max-width: 296px;
	}
}

/* ========================================
   System & Equipments Section
   ======================================== */

.system-equipments-section {
	display: flex;
	gap: 1px;
}

.system-equipments-section__item {
	position: relative;
	width: 50%;
	min-height: 312px;
	padding: 76px 155px 76px 165px;
	overflow: hidden;
}

/* Background with overlay */
.system-equipments-section__bg {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 0;
	background-size: cover;
	background-position: center;
}

.system-equipments-section__bg::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background-color: rgba(28, 28, 28, 0.7);
}

/* System background image */
.system-equipments-section__system .system-equipments-section__bg {
	background-image: url('../images/system-bg.jpg');
	background-color: #C4C4C4;
}

/* Equipments background image */
.system-equipments-section__equipments .system-equipments-section__bg {
	background-image: url('../images/equipments-bg.jpg');
	background-color: #C4C4C4;
}

/* Content */
.system-equipments-section__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 56px;
	height: 100%;
}

.system-equipments-section__content .is-style-heading-2 {
	text-align: left;
}

/* Button: color5 = dark bg + white outline */
.system-equipments-section__btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	min-width: 264px;
	padding: 8px 40px;
	background-color: var(--wp--preset--color--primary-dark);
	border: 1px solid var(--wp--preset--color--white);
	border-radius: 24px;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	transition: all 0.3s ease;
}

.system-equipments-section__btn:hover {
	background-color: rgba(255, 255, 255, 0.1);
	color: var(--wp--preset--color--white);
}

/* SP: Stack vertically */
@media (max-width: 781px) {
	.system-equipments-section {
		flex-direction: column;
		gap: 1px;
	}

	.system-equipments-section__item {
		width: 100%;
		min-height: 280px;
		padding: 48px 24px;
	}

	.system-equipments-section__content {
		gap: 32px;
	}

	.system-equipments-section__btn {
		width: 100%;
	}
}

/* ========================================
   Banner Section (Shop Banner)
   ======================================== */

.banner-section {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 80px 40px;
	background-color: var(--wp--preset--color--primary-dark);
}

.shop-banner {
	display: block;
	max-width: 590px;
	transition: opacity 0.3s ease;
}

.shop-banner:hover {
	opacity: 0.85;
}

.shop-banner img {
	width: 100%;
	height: auto;
	display: block;
}

/* SP: Banner */
@media (max-width: 781px) {
	.banner-section {
		padding: 48px 24px;
	}

	.shop-banner {
		max-width: 342px;
	}
}

/* ========================================
   Gallery Section
   ======================================== */

.gallery-section {
	background-color: var(--wp--preset--color--primary-dark);
}

.gallery-slider {
	display: flex;
	flex-direction: column;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	overflow: hidden;
}

/* Main slider area: 480px height */
.gallery-slider__main {
	position: relative;
	width: 100%;
	height: 480px;
	overflow: hidden;
}

/* Track: horizontal scroll */
.gallery-slider__track {
	display: flex;
	gap: 8px;
	height: 100%;
	transition: transform 0.5s ease;
}

/* Each item: 640x480px */
.gallery-slider__item {
	flex: 0 0 640px;
	width: 640px;
	height: 480px;
}

.gallery-slider__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Thumbnails area: 100px height (76px track + padding) */
.gallery-slider__thumbs {
	display: flex;
	justify-content: center;
	align-items: center;
	padding: 8px 0 16px;
	overflow: hidden;
}

/* Thumbnail track */
.gallery-slider__thumb-track {
	display: flex;
	justify-content: center;
	gap: 8px;
}

/* Each thumbnail: 80x60px */
.gallery-slider__thumb {
	flex: 0 0 80px;
	width: 80px;
	height: 60px;
	padding: 0;
	border: none;
	background: none;
	cursor: pointer;
	opacity: 0.5;
	transition: opacity 0.3s ease;
}

.gallery-slider__thumb:hover {
	opacity: 0.8;
}

.gallery-slider__thumb.is-active {
	opacity: 1;
}

.gallery-slider__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* SP: Gallery */
@media (max-width: 781px) {
	.gallery-slider__main {
		height: auto;
	}

	.gallery-slider__item {
		flex: 0 0 51.2vw;
		width: 51.2vw;
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.gallery-slider__thumbs {
		display: none;
	}
}

/* ========================================
   Beer Section
   ======================================== */

.beer-section {
	background-color: var(--wp--preset--color--schedule-green);
}

.beer-section__content {
	display: flex;
	max-width: 1280px;
	margin: 0 auto;
}

/* Text block: 640x640, vertical center */
.beer-section__text-block {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50%;
	padding: 80px 64px 80px 0;
}

/* Text content: 260px wide, vertical stack */
.beer-section__text-content {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	max-width: 260px;
}

/* Title: Acumin bold */
.beer-section__title {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--white);
	text-align: left;
}

.beer-section__title-brand {
	font-size: 32px;
}

/* Illustration: 212x320 */
.beer-section__illust {
	width: 212px;
	height: 320px;
}

.beer-section__illust img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

/* Subtitle: Acumin 14px bold */
.beer-section__subtitle {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--white);
	text-align: left;
	white-space: nowrap;
}

/* Video block: 640x640 */
.beer-section__video-block {
	width: 50%;
	overflow: hidden;
}

.beer-section__video-block video {
	width: 100%;
	height: 100%;
	max-width: 360px;
	object-fit: cover;
}

/* SP: Beer */
@media (max-width: 781px) {
	.beer-section__content {
		
	}

	.beer-section__text-block {
		min-height: 88.7vw;
		padding: 0px 24px;
	}

	.beer-section__title {
		font-size: 11px;
	}

	.beer-section__title-brand {
		font-size: 18px;
	}

	.beer-section__illust {
		width: 106px;
		height: 160px;
	}

	.beer-section__subtitle {
		font-size: 11px;
	}

	.beer-section__video-block {
		height: 88.7vw;
	}

	.beer-section__video-block video {
		max-width: none;
	}
}

/* ========================================
   Access Section
   ======================================== */

.access-section {
	display: flex;
	max-width: 1280px;
	margin: 0 auto;
	background-color: var(--wp--preset--color--primary-dark);
}

/* Text block: 640x440, centered content */
.access-section__text {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50%;
	min-height: 440px;
	padding: 0 80px;
}

/* Inner content: 480px wide */
.access-section__inner {
	display: flex;
	flex-direction: column;
	gap: 40px;
	max-width: 480px;
}

.access-section__inner .is-style-heading-2 {
	text-align: left;
}

/* Address text: Noto Sans JP 16px */
.access-section__address {
	margin: 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

/* Map block: 640x440 */
.access-section__map {
	width: 50%;
	min-height: 440px;
	background-color: var(--wp--preset--color--secondary-dark);
}

.access-section__map iframe {
	width: 100%;
	height: 100%;
	min-height: 440px;
}

/* SP: Access */
@media (max-width: 781px) {
	.access-section {
		flex-direction: column;
	}

	.access-section__text {
		width: 100%;
		min-height: auto;
		padding: 64px 40px;
	}

	.access-section__inner {
		gap: 24px;
	}

	.access-section__address {
		font-size: 14px;
	}

	.access-section__map {
		width: 100%;
		min-height: 300px;
	}

	.access-section__map iframe {
		min-height: 300px;
	}
}

/* ========================================
   Subpage Title
   ======================================== */

.subpage-title {
	padding: 160px 100px 40px 100px;
	background-color: var(--wp--preset--color--primary-dark);
	flex-wrap: wrap;
}

.subpage-title__desc {
	padding: 1em 0;
}

.subpage-title--schedule {
	background-color: var(--wp--preset--color--schedule-green);
}

.subpage-title__text {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 64px;
	font-weight: 700;
	line-height: 1.2;
	color: var(--wp--preset--color--white);
}

/* SP: Subpage Title */
@media (max-width: 781px) {
	.subpage-title {
		padding: 128px 0 24px 24px;
	}

	.subpage-title__text {
		font-size: 28px;
	}
}

/* ========================================
   Month Navigation
   ======================================== */

.month-nav {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	min-height: 183px;
	background-color: var(--wp--preset--color--primary-dark);
}

.month-nav--bottom {
	padding-bottom: 64px;
}

.month-nav__controls {
	display: flex;
	align-items: center;
	gap: 48px;
}

/* Prev/Next buttons */
.month-nav__prev,
.month-nav__next {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.month-nav__prev:hover,
.month-nav__next:hover {
	opacity: 0.7;
}

.month-nav__label {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 24px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
}

.old-schedule {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}
.old-schedule-link {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 14px;
	font-style: normal;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	transition: opacity 0.3s ease;
	translate: 0 -200%;
	@media (max-width: 781px) {
		translate: 0 -100%;
	}
}

/* Arrows */
.month-nav__arrow {
	display: block;
	width: 9px;
	height: 14px;
	background-color: var(--wp--preset--color--white);
	clip-path: polygon(0 50%, 100% 0, 100% 100%);
}

.month-nav__arrow--left {
	clip-path: polygon(100% 0, 0 50%, 100% 100%);
}

.month-nav__arrow--right {
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* Current month */
.month-nav__current {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	cursor: pointer;
}

.month-nav__current-text {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 40px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
}

.month-nav__dropdown-arrow {
	display: block;
	width: 14px;
	height: 9px;
	background-color: var(--wp--preset--color--white);
	clip-path: polygon(0 0, 100% 0, 50% 100%);
	transition: transform 0.3s ease;
}

.month-nav__current[aria-expanded="true"] .month-nav__dropdown-arrow {
	transform: rotate(180deg);
}

/* Month Dropdown */
.month-nav__dropdown {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	margin-top: 12px;
	padding: 16px 0;
	background-color: var(--wp--preset--color--secondary-dark);
	border-radius: 8px;
	list-style: none;
	max-height: 300px;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
	z-index: 100;
	min-width: 140px;
	box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}

.month-nav__current[aria-expanded="true"] .month-nav__dropdown {
	opacity: 1;
	visibility: visible;
}

.month-nav__dropdown li {
	padding: 0;
}

.month-nav__dropdown li a {
	display: block;
	padding: 8px 24px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 18px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	text-align: center;
	transition: background-color 0.2s ease;
}

.month-nav__dropdown li a:hover {
	background-color: rgba(255, 255, 255, 0.1);
}

.month-nav__dropdown li[aria-selected="true"] a {
	color: var(--wp--preset--color--accent-red);
}

/* Disabled months (no events) */
.month-nav__dropdown li.is-disabled {
	cursor: not-allowed;
}

.month-nav__dropdown li.is-disabled span {
	display: block;
	padding: 8px 24px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 18px;
	font-weight: 700;
	color: var(--wp--preset--color--gray);
	text-align: center;
}

/* Scrollbar styling for dropdown */
.month-nav__dropdown::-webkit-scrollbar {
	width: 6px;
}

.month-nav__dropdown::-webkit-scrollbar-track {
	background: transparent;
}

.month-nav__dropdown::-webkit-scrollbar-thumb {
	background-color: var(--wp--preset--color--gray);
	border-radius: 3px;
}

/* SP: Month Navigation */
@media (max-width: 781px) {
	.month-nav {
		min-height: 120px;
	}

	.month-nav__controls {
		gap: 24px;
	}

	.month-nav__label {
		font-size: 16px;
	}

	.month-nav__current-text {
		font-size: 28px;
	}
}

/* ========================================
   Schedule Archive
   ======================================== */

.schedule-archive {
	display: flex;
	justify-content: center;
	padding: 0 40px 64px;
	background-color: var(--wp--preset--color--primary-dark);
}

.schedule-archive__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, 256px);
	grid-auto-rows: 1fr;
	justify-content: center;
	gap: 16px;
	max-width: 1080px;
	width: 100%;
}

.schedule-archive__no-events {
	width: 100%;
	padding: 48px;
	text-align: center;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	color: var(--wp--preset--color--gray);
}

/* SP: Schedule Archive */
@media (max-width: 781px) {
	.schedule-archive {
		padding: 0 24px 48px;
	}

	.schedule-archive__list {
		grid-template-columns: 1fr;
		justify-items: center;
		gap: 24px;
	}

	.schedule-card {
		max-width: 296px;
		width: 100%;
	}
}

/* ========================================
   Single Event
   ======================================== */

.event-content {
	display: flex;
	justify-content: center;
	padding: 80px 40px 160px;
	background-color: var(--wp--preset--color--secondary-dark);
}

.event-content__inner {
	display: flex;
	flex-direction: column;
	gap: 64px;
	max-width: 1080px;
	width: 100%;
}

/* Event Meta */
.event-meta {
	display: flex;
	flex-direction: column;
	gap: 40px;
}

.event-meta__date {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	color: #ccc;
}

.event-meta__title {
	display: flex;
	flex-direction: column;
}

.event-meta__presents {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.event-meta__event-name {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 40px;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.4px;
	color: var(--wp--preset--color--white);
}

.event-meta__tags {
	display: flex;
	gap: 4px;
}

.event-meta__tag {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 1px 8px 2px;
	background-color: var(--wp--preset--color--secondary-dark);
	border: 1px solid var(--wp--preset--color--white);
	border-radius: 4px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.event-meta__tag--soldout {
	background-color: #dc3232;
	border-color: #dc3232;
	margin-right: 8px;
}

.event-meta__time-ticket {
	display: flex;
	flex-direction: column;
	gap: 13px;
}

.event-meta__row {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
}

.event-meta__item {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 160px;
}

.event-meta__item--extra {
	width: auto;
	min-width: 160px;
}

.event-meta__item--drink {
	width: auto;
}

.event-meta__label {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 72px;
	height: 30px;
	padding: 4px 8px;
	background-color: #616161;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.event-meta__value {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

/* Event Detail */
.event-detail {
	display: flex;
	flex-direction: column;
	gap: 80px;
}

.event-detail__article {
	display: flex;
	justify-content: space-between;
	gap: 80px;
}

.event-detail__content {
	flex: 1;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	width: clamp(320px, 44.4%, 480px);
	max-width: 480px;
}

.event-detail__performers {
	margin-bottom: 24px;
}

.event-detail__content p {
	margin: 0 0 24px;
}

.event-detail__content a {
	color: var(--wp--preset--color--white);
	text-decoration: underline;
}

.event-detail__thumb {
	width: clamp(320px, 44.4%, 480px);
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 16px;
}

.event-detail__thumb img {
	width: 100%;
	height: auto;
}

/* Ticket Section */
.event-detail__ticket {
	display: flex;
	gap: 80px;
}

.event-ticket__reserve,
.event-ticket__info {
	flex: 1;
	max-width: 500px;
}

.event-ticket__heading {
	margin: 0 0 32px;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--white);
	border-bottom: 3px solid var(--wp--preset--color--white);
	padding-bottom: 8px;
}

/* Form */
.event-ticket__form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	padding: 0 32px;
}

.event-ticket__row {
	display: flex;
	flex-direction: column;
}

.event-ticket__label {
	padding: 8px 0;
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.event-ticket__label .required {
	color: var(--wp--preset--color--accent-red);
}

.event-ticket__input,
.event-ticket__select,
.event-ticket__textarea {
	padding: 8px;
	background-color: transparent;
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--white);
	border-radius: 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.event-ticket__input::placeholder,
.event-ticket__textarea::placeholder {
	color: #ccc;
}

.event-ticket__input:focus,
.event-ticket__select:focus,
.event-ticket__textarea:focus {
	outline: none;
	border-bottom-color: var(--wp--preset--color--schedule-green);
}

.event-ticket__select {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--secondary-dark);
	border: 1px solid var(--wp--preset--color--black);
	border-radius: 4px;
	padding: 4px 8px;
	width: 56px;
}

.event-ticket__textarea {
	height: 120px;
	resize: none;
}

.event-ticket__btn-wrapper {
	padding: 24px 0;
	display: flex;
	justify-content: center;
}

.event-ticket__submit {
	padding: 8px 40px;
	background-color: #FF5E1A;
	border: none;
	border-radius: 24px;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	cursor: pointer;
	transition: opacity 0.3s ease;
}

.event-ticket__submit:hover {
	opacity: 0.9;
}

.event-ticket__static {
	padding: 8px;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	line-height: 1.5;
	color: #ccc;
}

.event-ticket__select-wrap {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 0;
}

.event-ticket__select-unit {
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

/* Ticket Info */
.event-ticket__list {
	display: flex;
	flex-direction: column;
	gap: 24px;
	padding: 0 32px;
}

.event-ticket__item {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.event-ticket__item-title {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: #FF5E1A;
}

.event-ticket__item-title--link {
	text-decoration: underline;
	transition: opacity 0.2s ease;
}

.event-ticket__item-title--link:hover {
	opacity: 0.7;
}

.event-ticket__item-desc {
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.event-ticket__item-label {
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 14px;
	color: var(--wp--preset--color--gray);
}

.event-ticket__item-value {
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
}

/* Event Ticket - CF7 Integration */
.event-ticket__form-wrap .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.event-ticket__row .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

.event-ticket__select-wrap .wpcf7-form-control-wrap {
	display: inline-block;
	width: auto;
}

.event-ticket__row input[type="text"],
.event-ticket__row input[type="email"],
.event-ticket__row input[type="tel"] {
	width: 100%;
	padding: 8px;
	background-color: transparent;
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--white);
	border-radius: 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	outline: none;
}

.event-ticket__row input[type="text"]::placeholder,
.event-ticket__row input[type="email"]::placeholder,
.event-ticket__row input[type="tel"]::placeholder {
	color: #ccc;
}

.event-ticket__row input[type="text"]:focus,
.event-ticket__row input[type="email"]:focus,
.event-ticket__row input[type="tel"]:focus {
	border-bottom-color: var(--wp--preset--color--schedule-green);
}

.event-ticket__row textarea {
	width: 100%;
	height: 120px;
	padding: 8px;
	background-color: transparent;
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--white);
	border-radius: 0;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	outline: none;
	resize: none;
}

.event-ticket__row textarea::placeholder {
	color: #ccc;
}

.event-ticket__row textarea:focus {
	border-bottom-color: var(--wp--preset--color--schedule-green);
}

.event-ticket__select-wrap select {
	background-color: var(--wp--preset--color--white);
	color: var(--wp--preset--color--secondary-dark);
	border: 1px solid var(--wp--preset--color--black);
	border-radius: 4px;
	padding: 4px 8px;
	width: 56px;
	font-family: var(--wp--preset--font-family--noto-sans-jp);
	font-size: 16px;
}

.event-ticket__btn-wrapper input[type="submit"],
.event-ticket__btn-wrapper .wpcf7-submit {
	padding: 8px 40px;
	background-color: #FF5E1A;
	border: none;
	border-radius: 24px;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed);
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	cursor: pointer;
	transition: opacity 0.3s ease;
}

.event-ticket__btn-wrapper input[type="submit"]:hover,
.event-ticket__btn-wrapper .wpcf7-submit:hover {
	opacity: 0.9;
}

/* Event Navigation */
.event-nav {
	display: flex;
	justify-content: center;
	padding: 64px 0;
}

.event-nav__controls {
	display: flex;
	align-items: center;
	gap: 48px;
}

.event-nav__prev,
.event-nav__next,
.event-nav__list {
	display: flex;
	align-items: center;
	gap: 12px;
	text-decoration: none;
	transition: opacity 0.3s ease;
}

.event-nav__prev:hover,
.event-nav__next:hover,
.event-nav__list:hover {
	opacity: 0.7;
}

.event-nav__label {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 16px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
}

.event-nav__arrow {
	display: block;
	width: 9px;
	height: 14px;
	background-color: var(--wp--preset--color--white);
}

.event-nav__arrow--left {
	clip-path: polygon(100% 50%, 0 0, 0 100%);
}

.event-nav__arrow--right {
	clip-path: polygon(0 0, 100% 50%, 0 100%);
}

/* SP: Single Event */
@media (max-width: 781px) {
	.event-content {
		padding: 48px 24px 128px;
	}

	.event-content__inner {
		gap: 48px;
	}

	.event-meta {
		gap: 16px;
	}

	.event-meta__date {
		font-size: 16px;
	}

	.event-meta__title {
		gap: 8px;
	}

	.event-meta__presents {
		font-size: 14px;
	}

	.event-meta__event-name {
		font-size: 20px;
	}

	.event-meta__tag {
		font-size: 12px;
	}

	.event-meta__row {
		gap: 8px;
	}

	.event-meta__item {
		min-width: auto;
	}
	.event-meta__item--drink {
		width: auto;
	}

	.event-meta__label {
		min-width: 49px;
		width: 49px;
		height: 24px;
		padding: 4px;
		font-size: 12px;
	}

	.event-meta__item--extra .event-meta__label {
		width: auto;
		min-width: 49px;
	}

	.event-meta__value {
		font-size: 12px;
	}

	.event-detail {
		gap: 48px;
	}

	.event-detail__article {
		flex-direction: column-reverse;
		gap: 24px;
	}

	.event-detail__content {
		font-size: 14px;
	}

	.event-detail__thumb {
		flex: none;
		width: 100%;
		height: auto;
		padding: 0 80px;
	}

	.event-detail__thumb img {
		width: 100%;
		height: auto;
	}

	.event-detail__ticket {
		flex-direction: column;
		gap: 80px;
	}

	.event-ticket__reserve,
	.event-ticket__info {
		max-width: 100%;
	}

	.event-ticket__heading {
		font-size: 16px;
		border-bottom-width: 2px;
	}

	.event-ticket__form,
	.event-ticket__list {
		padding: 0 32px;
	}

	.event-ticket__label {
		font-size: 14px;
	}

	.event-ticket__input,
	.event-ticket__textarea,
	.event-ticket__static {
		font-size: 14px;
	}

	/* Event Ticket - CF7 Mobile */
	.event-ticket__row input[type="text"],
	.event-ticket__row input[type="email"],
	.event-ticket__row input[type="tel"],
	.event-ticket__row textarea {
		font-size: 14px;
	}

	.event-ticket__item-title,
	.event-ticket__item-desc {
		font-size: 14px;
	}

	.event-nav {
		padding: 48px 0;
	}

	.event-nav__controls {
		gap: 24px;
	}
}

/* ========================================
   PHP Template Header/Footer
   ======================================== */

/* Header (PHP Template) */
.site-header.has-background {
	background-color: var(--wp--preset--color--primary-dark);
	padding: 16px 32px;
}

.site-header__inner {
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.site-header__logo a {
	display: block;
}

.site-header__logo img {
	width: 80px;
	height: 80px;
	display: block;
}

/* Navigation (PHP Template) */
.site-header__nav {
	display: block;
}

.site-header__menu {
	display: flex;
	gap: 32px;
	gap: clamp(16px, 2vw, 32px);
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-header__menu li a {
	font-family: var(--wp--preset--font-family--acumin);
	font-size: 24px;
	font-size: clamp(14px, 1.5vw, 24px);
	font-weight: 700;
	color: var(--wp--preset--color--white);
	text-decoration: none;
	letter-spacing: 0.05em;
	transition: color 0.3s ease;
	white-space: nowrap;
}

.site-header__menu li a:hover {
	color: var(--wp--preset--color--accent-red);
}


/* Hamburger Menu (PHP Template) */
.site-header__hamburger {
	display: none;
	flex-direction: column;
	gap: 6px;
	background: none;
	border: none;
	padding: 8px;
	cursor: pointer;
}

.site-header__hamburger-line {
	display: block;
	width: 24px;
	height: 2px;
	background-color: var(--wp--preset--color--white);
	transition: all 0.3s ease;
}

/* SP Header (PHP Template) */
@media (max-width: 781px) {
	.site-header.has-background {
		padding: 16px;
	}

	.site-header__logo img {
		width: 56px;
		height: 56px;
	}

	.site-header__hamburger {
		display: flex;
		z-index: 1001;
	}

	.site-header__hamburger[aria-expanded="true"] .site-header__hamburger-line:nth-child(1) {
		transform: rotate(45deg) translate(6px, 6px);
	}

	.site-header__hamburger[aria-expanded="true"] .site-header__hamburger-line:nth-child(2) {
		opacity: 0;
	}

	.site-header__hamburger[aria-expanded="true"] .site-header__hamburger-line:nth-child(3) {
		transform: rotate(-45deg) translate(6px, -6px);
	}

	/* PHP Template navigation - mobile overlay */
	.site-header__nav {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background-color: var(--wp--preset--color--primary-dark);
		z-index: 1000;
		padding: 100px 32px 32px;
	}

	.site-header__nav.is-open {
		display: block;
	}

	.site-header__menu {
		flex-direction: column;
		align-items: center;
		gap: 24px;
	}
}

/* Footer (PHP Template) */
.site-footer.has-background {
	background-color: #2B2B2B;
	padding: 32px 32px 8px;
}

.site-footer__info {
	max-width: 1216px;
	margin: 0 auto 40px;
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.site-footer__logo a {
	display: block;
}

.site-footer__logo img {
	width: 128px;
	height: 128px;
	display: block;
}

.site-footer__txt {
	padding: 8px 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 16px;
	max-width: 479px;
}

.site-footer__name {
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
}

.site-footer__txt p {
	font-size: 12px;
	line-height: 1.5;
	margin: 0;
}

.site-footer__copyright-wrap {
	max-width: 1216px;
	margin: 0 auto;
	padding: 8px;
	display: flex;
	justify-content: center;
}

.site-footer__copyright {
	font-size: 12px;
	line-height: 1.5;
	margin: 0;
}

/* SP Footer (PHP Template) */
@media (max-width: 781px) {
	.site-footer__info {
		flex-direction: column;
		gap: 8px;
	}

	.site-footer__logo img {
		width: 88px;
		height: 88px;
	}

	.site-footer__name {
		font-size: 16px;
	}
}

/* Social Links for PHP template */
.social-links-fixed ul {
	display: flex;
	flex-direction: column;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.social-links-fixed li {
	width: 34px;
	height: 34px;
}

.social-links-fixed li a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.social-links-fixed li a img {
	width: 34px;
	height: 34px;
	display: block;
}

@media (max-width: 781px) {
	.social-links-fixed ul {
		gap: 6px;
	}

	.social-links-fixed li {
		width: 30px;
		height: 30px;
	}

	.social-links-fixed li a img {
		width: 30px;
		height: 30px;
	}
}

/* ========================================
   For Artists Page
   ======================================== */

.page-for-artists {
	background-color: var(--wp--preset--color--primary-dark);
}

/* Subpage Title - Artists (Green) */
.subpage-title--artists {
	background-color: var(--wp--preset--color--green);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 40px;
}

.subpage-title--artists .subpage-title__desc-container {
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex-shrink: 0;
	width: 557px;
}

.subpage-title--artists .subpage-title__desc {
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

/* Subpage Title - No background (transparent) */
.subpage-title--no-bg {
	background-color: transparent;
	padding: 160px 0 40px 100px;
}

.subpage-title--no-bg .subpage-title__text--h2 {
	font-size: 40px;
	letter-spacing: 0.01em;
}

/* Section Content */
.section-content {
	padding: 80px 100px;
}

.section-content--dark {
	background-color: var(--wp--preset--color--primary-dark);
	color: var(--wp--preset--color--white);
}

.section-content--equipments {
	padding-top: 60px;
}

.section-content__inner {
	max-width: 1080px;
	margin: 0 auto;
}

/* Equipment Sections (FLOOR MAP + EQUIPMENT LIST) */
.equipment-section {
	padding-bottom: 80px;
	margin-bottom: 64px;
}

.equipment-section:last-child {
	margin-bottom: 0;
}

/* Section Heading H3 */
.section-heading--h3 {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--white);
	padding: 0 0 4px;
	border-bottom: 3px solid var(--wp--preset--color--white);
	margin-bottom: 64px;
}

/* Info Category */
.info-category {
	margin-bottom: 32px;
}

.info-category__heading-wrap {
	display: flex;
	align-items: baseline;
	gap: 24px;
	padding: 8px 64px;
	border-bottom: 1px solid var(--wp--preset--color--gray);
}

.info-category__heading {
	font-family: var(--wp--preset--font-family--noto-sans-jp), sans-serif;
	font-size: 24px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	padding: 8px 64px;
	border-bottom: 1px solid var(--wp--preset--color--gray);
	margin: 0;
}

.info-category__heading-wrap .info-category__heading {
	padding: 0;
	border-bottom: none;
}

.info-category__note {
	font-size: 16px;
	color: var(--wp--preset--color--white);
}

.info-category__content {
	padding: 16px 64px;
}

.info-category__content p {
	margin: 0;
	line-height: 1.5;
}

.info-category__table {
	padding: 16px 64px;
}

/* Info List */
.info-list {
	list-style: none;
	padding: 0;
	margin: 0;
}

.info-list > li {
	position: relative;
	padding-left: 1.5em;
	line-height: 1.5;
	margin-bottom: 8px;
}

.info-list > li::before {
	content: '●';
	position: absolute;
	left: 0;
}

.info-list ul {
	list-style: none;
	padding: 0;
	margin: 8px 0 0;
}

.info-list ul li {
	padding-left: 1em;
	line-height: 1.5;
}

.info-list ul li::before {
	content: '-';
	margin-right: 0.5em;
}

/* Rental Table */
.rental-table {
	width: 100%;
	border-collapse: collapse;
}

.rental-table th,
.rental-table td {
	padding: 16px;
	text-align: center;
	border: 1px solid var(--wp--preset--color--gray);
}

.rental-table thead th {
	background-color: #616161;
	font-family: var(--wp--preset--font-family--noto-sans-jp), sans-serif;
	font-size: 24px;
	font-weight: 700;
}

.rental-table tbody th {
	background-color: var(--wp--preset--color--secondary-dark);
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 20px;
	font-weight: 700;
	text-align: left;
	width: 200px;
}

.rental-table tbody th small {
	font-size: 14px;
	font-weight: 400;
	display: block;
}

.rental-table tbody td {
	background-color: var(--wp--preset--color--secondary-dark);
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 24px;
	font-weight: 700;
}

/* Simple rental table (no row headers) */
.rental-table--simple tbody td {
	text-align: center;
}

.rental-table--simple .tax {
	display: block;
	font-size: 14px;
	font-weight: 400;
	color: var(--wp--preset--color--light-gray);
	margin-top: 4px;
}

/* Contact Buttons Section */
.contact-buttons {
	padding: 80px 100px;
}

.contact-buttons .section-content__inner {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: flex-start;
}

.contact-buttons__list {
	display: flex;
	gap: 24px;
	padding: 0 64px;
	align-items: flex-start;
}

.contact-buttons__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	width: 300px;
}

.contact-buttons__text {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 16px;
	font-weight: 700;
	margin: 0;
	text-align: center;
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 6px 30px;
	border-radius: 24px;
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none;
	transition: opacity 0.3s;
}

.btn:hover {
	opacity: 0.8;
}

.btn--primary {
	background-color: var(--wp--preset--color--green);
	color: var(--wp--preset--color--white);
}

.btn--orange {
	background-color: #FF5E1A;
	color: var(--wp--preset--color--white);
}

.btn--download {
	background-color: #FF5E1A;
	color: var(--wp--preset--color--white);
	gap: 8px;
}

.btn--download::before {
	content: '';
	display: inline-block;
	width: 16px;
	height: 16px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='white' viewBox='0 0 24 24'%3E%3Cpath d='M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z'/%3E%3C/svg%3E");
	background-size: contain;
	background-repeat: no-repeat;
}

/* Floor List */
.floor-list {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	align-content: flex-start;
	gap: 24px;
	padding: 0 64px;
}

.floor-item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	width: 300px;
}

.floor-item__figure {
	position: relative;
	width: 300px;
	border: 1px solid var(--wp--preset--color--gray);
	display: flex;
	justify-content: center;
	align-items: center;
}

.floor-item__image {
	width: 214px;
	height: 300px;
	object-fit: contain;
	display: block;
}

.floor-item__zoom {
	position: absolute;
	right: 8px;
	bottom: 8px;
	width: 48px;
	height: 48px;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.floor-item__zoom:hover {
	opacity: 0.8;
}

.floor-item__zoom img {
	width: 100%;
	height: 100%;
}

.floor-item__title {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 24px;
	font-weight: 700;
	line-height: 1.4;
	color: var(--wp--preset--color--white);
	margin: 0;
	text-align: center;
}

/* Floor Lightbox */
.floor-lightbox {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10000;
	display: flex;
	justify-content: center;
	align-items: center;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s ease, visibility 0.3s ease;
}

.floor-lightbox.is-active {
	opacity: 1;
	visibility: visible;
}

.floor-lightbox__overlay {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color: rgba(0, 0, 0, 0.9);
}

.floor-lightbox__content {
	position: relative;
	max-width: 90vw;
	max-height: 90vh;
	display: flex;
	justify-content: center;
	align-items: center;
}

.floor-lightbox__close {
	position: absolute;
	top: -48px;
	right: 0;
	width: 32px;
	height: 32px;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
	transition: opacity 0.2s ease;
}

.floor-lightbox__close:hover {
	opacity: 0.7;
}

.floor-lightbox__close img {
	width: 100%;
	height: 100%;
}

.floor-lightbox__image {
	max-width: 90vw;
	max-height: 85vh;
	object-fit: contain;
}

/* Equipment Group */
.equipment-group {
	margin-bottom: 64px;
}

.equipment-group__heading {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 40px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	padding: 0 0 8px;
	margin: 0 0 8px;
	letter-spacing: 0.01em;
	line-height: 1.2;
}

.equipment-group__heading--large {
	font-size: 64px;
	margin-bottom: 32px;
}

/* PDF Download List */
.pdf-download-list {
	display: flex;
	gap: 24px;
	padding: 0;
}

/* Equipment Category */
.equipment-category {
	margin-bottom: 32px;
}

.equipment-category__heading {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 40px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	padding: 0 0 8px;
	margin: 0 0 8px;
	letter-spacing: 0.01em;
	line-height: 1.2;
}

/* Equipment Subcategory */
.equipment-subcategory {
	margin-bottom: 24px;
}

.equipment-subcategory__heading {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 24px;
	font-weight: 700;
	color: var(--wp--preset--color--white);
	padding: 8px 64px;
	margin: 0 0 16px;
}

/* Table Scroll Wrapper */
.js-scrollable {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

/* Equipment Table */
.equipment-table {
	border-collapse: separate;
	border-spacing: 2px;
	table-layout: fixed;
	width: 939px; /* 195+208+208+112+208 + 8px gaps */
}

.equipment-table th,
.equipment-table td {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	border: none;
}

.equipment-table th {
	background-color: #616161;
	color: var(--wp--preset--color--white);
	padding: 8px;
	text-align: center;
}

.equipment-table td {
	background-color: var(--wp--preset--color--white);
	color: #1a1a1a;
	padding: 8px 16px;
	text-align: left;
	vertical-align: middle;
}

/* 5 column equipment table */
.equipment-table--5col th:nth-child(1),
.equipment-table--5col td:nth-child(1) {
	width: 195px;
}

.equipment-table--5col th:nth-child(2),
.equipment-table--5col td:nth-child(2),
.equipment-table--5col th:nth-child(3),
.equipment-table--5col td:nth-child(3),
.equipment-table--5col th:nth-child(5),
.equipment-table--5col td:nth-child(5) {
	width: 208px;
}

.equipment-table--5col th:nth-child(4),
.equipment-table--5col td:nth-child(4) {
	width: 112px;
}

/* Quantity cells - always center aligned (use class to avoid nth-child issues with rowspan) */
.equipment-table th.equipment-table__qty,
.equipment-table td.equipment-table__qty {
	text-align: center;
	width: 112px;
}

/* Equipment Table - Lighting (3 Column: MODEL | QUANTITY | DESCRIPTION) */
.equipment-table--lighting {
	border-collapse: separate;
	border-spacing: 2px;
	table-layout: fixed;
	width: 948px; /* 416+112+416 + 4px gaps */
}

.equipment-table--lighting th,
.equipment-table--lighting td {
	border: none;
	padding: 8px 16px;
}

.equipment-table--lighting th {
	background-color: #616161;
}

.equipment-table--lighting td {
	background-color: var(--wp--preset--color--white);
}

.equipment-table--lighting th:nth-child(1),
.equipment-table--lighting td:nth-child(1) {
	width: 416px;
	text-align: left;
}

.equipment-table--lighting th:nth-child(2),
.equipment-table--lighting td:nth-child(2) {
	width: 112px;
	text-align: center;
}

.equipment-table--lighting th:nth-child(3),
.equipment-table--lighting td:nth-child(3) {
	width: 416px;
	text-align: left;
}

/* Equipment Contact */
.equipment-contact {
	display: flex;
	align-items: center;
	gap: 40px;
	justify-content: center;
	padding: 40px 0;
}

.equipment-contact__text {
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 16px;
	font-weight: 700;
	margin: 0;
}

/* For Artists Page - Mobile */
@media (max-width: 781px) {
	.subpage-title--artists {
		padding: 120px 16px 24px;
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}

	.subpage-title--artists .subpage-title__text {
		font-size: 32px;
	}

	.subpage-title--artists .subpage-title__desc-container {
		width: 100%;
		display: none;
	}

	.subpage-title--artists .subpage-title__desc {
		font-size: 14px;
	}

	.subpage-title--no-bg {
		padding: 40px 16px 24px;
	}

	.subpage-title--no-bg .subpage-title__text--h2 {
		font-size: 28px;
	}

	.subpage-title--no-bg .subpage-title__desc {
		font-size: 14px;
	}

	.section-content {
		padding: 0 16px 40px;
	}

	.section-heading--h3 {
		font-size: 18px;
		margin-bottom: 40px;
	}

	.info-category__heading-wrap {
		flex-direction: column;
		gap: 8px;
		padding: 8px 16px;
	}

	.info-category__heading {
		font-size: 18px;
		padding: 8px 16px;
	}

	.info-category__content,
	.info-category__table {
		padding: 16px;
	}

	.rental-table thead th {
		font-size: 14px;
		padding: 8px;
	}

	.rental-table tbody th {
		font-size: 14px;
		width: auto;
		padding: 8px;
	}

	.rental-table tbody td {
		font-size: 16px;
		padding: 8px;
	}

	.rental-table--simple .tax {
		font-size: 12px;
	}

	.contact-buttons {
		padding: 40px 16px;
	}

	.contact-buttons__list {
		flex-direction: column;
		gap: 24px;
		align-items: center;
		padding: 0;
	}

	.contact-buttons__item {
		width: auto;
	}

	.floor-list {
		flex-direction: column;
		align-items: center;
		align-content: center;
		padding: 16px;
		gap: 24px;
	}

	.floor-item {
		width: 100%;
		max-width: 230px;
		gap: 8px;
	}

	.floor-item__figure {
		width: 100%;
	}

	.floor-item__image {
		width: 100%;
		max-width: 214px;
		height: 230px;
		object-fit: contain;
	}

	.floor-item__zoom {
		width: 40px;
		height: 40px;
		right: 4px;
		bottom: 4px;
	}

	/* Floor Lightbox Mobile */
	.floor-lightbox__close {
		top: -40px;
		width: 28px;
		height: 28px;
	}

	.equipment-group__heading {
		font-size: 28px;
		padding: 0 0 8px;
	}

	.equipment-group__heading--large {
		font-size: 28px;
	}

	.pdf-download-list {
		flex-direction: column;
		padding: 16px;
		align-items: center;
	}

	.pdf-download-list .btn--download {
		width: 214px;
		padding: 8px 30px 8px 14px;
	}

	.equipment-category__heading {
		font-size: 20px;
		padding: 0 0 8px;
	}

	.equipment-subcategory__heading {
		font-size: 18px;
		padding: 8px 16px;
	}

	/* Table Scroll Container - SP */
	.js-scrollable {
		overflow-x: scroll;
		padding: 0 0 8px;
	}

	.equipment-table {
		margin: 0;
		max-width: none;
	}

	.equipment-table--lighting {
		margin: 0;
		max-width: none;
	}

	.equipment-contact {
		flex-direction: column;
		gap: 16px;
		padding: 24px 0;
	}

	.contact-buttons .section-content__inner {
		align-items: center;
		justify-content: flex-start;
	}
	
}

/* ========================================
   Contact Page
   ======================================== */

.page-contact {
	background-color: var(--wp--preset--color--primary-dark);
}

/* Subpage Title - Contact (Green) */
.subpage-title--contact {
	display: flex;
	align-items: center;
	background-color: var(--wp--preset--color--green);
}

.subpage-title--contact .subpage-title__text {
	flex-shrink: 0;
	width: 544px;
}

.subpage-title--contact .subpage-title__desc {
	flex-shrink: 0;
	width: 557px;
	margin: 0;
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

/* Contact Form Section */
.contact-form-section {
	padding: 80px 0;
}

/* Contact Form */
.contact-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 560px;
	margin-inline: auto;
}

.contact-form__row {
	display: flex;
	gap: 24px;
	align-items: flex-start;
}

.contact-form__label {
	flex-shrink: 0;
	width: 136px;
	padding: 8px 0;
	font-family: var(--wp--preset--font-family--acumin), sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.contact-form__field {
	width: 400px;
}

.contact-form__input,
.contact-form__textarea {
	width: 100%;
	padding: 8px;
	font-family: var(--wp--preset--font-family--noto-sans-jp), sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	background-color: transparent;
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--white);
	border-radius: 0;
	outline: none;
}

.contact-form__input:focus,
.contact-form__textarea:focus {
	border-bottom-color: var(--wp--preset--color--green);
}

.contact-form__input::placeholder,
.contact-form__textarea::placeholder {
	color: #ccc;
}

.contact-form__textarea {
	resize: none;
	height: 120px;
}

/* Radio Button Group */
.contact-form__radio-group {
	display: flex;
	gap: 24px;
	align-items: center;
	padding: 8px;
}

.contact-form__radio-item {
	display: flex;
	gap: 8px;
	align-items: center;
	cursor: pointer;
}

/* Static form only - hide native radio for custom styling */
input.contact-form__radio {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
}

.contact-form__radio-custom {
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	background-color: var(--wp--preset--color--white);
	border: 1px solid #000;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.contact-form__radio:checked + .contact-form__radio-custom::after {
	content: '';
	width: 12px;
	height: 12px;
	background-color: #318e70;
	border-radius: 50%;
}

.contact-form__radio-text {
	font-family: var(--wp--preset--font-family--noto-sans-jp), sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
}

.contact-form__submit {
	display: flex;
	justify-content: center;
	padding: 24px 0;
}

.btn--submit {
	padding: 8px 40px;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed), sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	background-color: var(--wp--preset--color--accent-orange);
	border: none;
	border-radius: 24px;
	cursor: pointer;
	transition: opacity 0.3s;
}

.btn--submit:hover {
	opacity: 0.8;
}

/* ========================================
   Contact Form 7 Integration
   ======================================== */

/* CF7 Form Wrapper - match .contact-form layout */
.contact-form-section .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 560px;
	margin-inline: auto;
}

/* CF7 Form Control Wrap */
.contact-form__field .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

/* CF7 Input Fields - transparent background, bottom border only */
.contact-form__field input[type="text"],
.contact-form__field input[type="email"],
.contact-form__field input[type="tel"],
.contact-form__field textarea {
	width: 100%;
	padding: 8px;
	font-family: var(--wp--preset--font-family--noto-sans-jp), sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	background-color: transparent;
	border: none;
	border-bottom: 1px solid var(--wp--preset--color--white);
	border-radius: 0;
	outline: none;
	transition: border-color 0.3s;
}

.contact-form__field input[type="text"]:focus,
.contact-form__field input[type="email"]:focus,
.contact-form__field input[type="tel"]:focus,
.contact-form__field textarea:focus {
	border-bottom-color: var(--wp--preset--color--green);
}

.contact-form__field input::placeholder,
.contact-form__field textarea::placeholder {
	color: #ccc;
}

.contact-form__field textarea {
	resize: none;
	height: 120px;
}

/* CF7 Radio Buttons */
.contact-form__radio-group {
	padding: 8px 0;
}

.contact-form__radio-group .wpcf7-form-control-wrap {
	display: block !important;
	width: 100%;
}

.contact-form__radio-group span.wpcf7-form-control.wpcf7-radio {
	display: flex !important;
	flex-wrap: wrap;
	gap: 24px;
	align-items: center;
}

.contact-form__radio-group span.wpcf7-list-item {
	display: inline-flex !important;
	align-items: center;
	margin: 0 !important;
	padding: 0 !important;
}

.contact-form__radio-group .wpcf7-list-item label {
	display: inline-flex !important;
	gap: 8px;
	align-items: center;
	cursor: pointer;
	margin: 0 !important;
	padding: 0 !important;
}

.contact-form__radio-group .wpcf7-list-item input[type="radio"] {
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	display: inline-block !important;
	width: 24px !important;
	height: 24px !important;
	min-width: 24px !important;
	min-height: 24px !important;
	margin: 0 !important;
	padding: 0 !important;
	background-color: #fff !important;
	border: 1px solid #000 !important;
	border-radius: 50% !important;
	cursor: pointer;
	flex-shrink: 0;
	vertical-align: middle;
}

.contact-form__radio-group .wpcf7-list-item input[type="radio"]:checked {
	background-color: #318e70 !important;
	box-shadow: inset 0 0 0 6px #fff !important;
}

.contact-form__radio-group .wpcf7-list-item-label {
	display: inline !important;
	font-family: var(--wp--preset--font-family--noto-sans-jp), sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.5;
	color: #fff;
}

/* CF7 Spinner - Ring style, fixed center */
.wpcf7-spinner {
	position: fixed !important;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	margin: 0 !important;
	z-index: 9999;
	width: 32px !important;
	height: 32px !important;
	background: none !important;
	border: 3px solid rgba(255, 255, 255, 0.2);
	border-top-color: var(--wp--preset--color--green);
	border-radius: 50%;
	animation: spinnerRing 0.8s linear infinite;
}

.wpcf7-spinner::before {
	display: none !important;
}

@keyframes spinnerRing {
	to {
		transform: rotate(360deg);
	}
}

/* CF7 Submit Button */
.contact-form__submit {
	position: relative;
}

.contact-form__submit input[type="submit"],
.contact-form__submit .wpcf7-submit {
	padding: 8px 40px;
	font-family: var(--wp--preset--font-family--acumin-semi-condensed), sans-serif;
	font-size: 16px;
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--white);
	background-color: var(--wp--preset--color--accent-orange);
	border: none;
	border-radius: 24px;
	cursor: pointer;
	transition: opacity 0.3s;
}

.contact-form__submit input[type="submit"]:hover,
.contact-form__submit .wpcf7-submit:hover {
	opacity: 0.8;
}

/* CF7 Validation Messages - show only after form submission attempt */
.wpcf7-form:not(.invalid):not(.sent):not(.failed) .wpcf7-not-valid-tip {
	display: none;
}

/* Floating Tooltip Error Style */
.wpcf7-form-control-wrap {
	position: relative;
}

.wpcf7-not-valid-tip {
	position: absolute;
	bottom: 100%;
	right: 0;
	z-index: 10;
	margin-bottom: 8px;
	padding: 8px 12px;
	background-color: #FF4028;
	color: #fff;
	font-size: 13px;
	line-height: 1.4;
	border-radius: 4px;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
	white-space: nowrap;
	animation: fadeInDown 0.3s ease;
}

.wpcf7-not-valid-tip::after {
	content: '';
	position: absolute;
	top: 100%;
	right: 16px;
	border: 6px solid transparent;
	border-top-color: #FF4028;
}

@keyframes fadeInDown {
	from {
		opacity: 0;
		transform: translateY(4px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Invalid field border highlight */
.wpcf7-not-valid {
	border-bottom-color: var(--wp--preset--color--accent-red) !important;
}

/* CF7 Response Output - Toast Style */
.wpcf7 form .wpcf7-response-output {
	position: fixed !important;
	bottom: 24px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	z-index: 9999 !important;
	margin: 0 !important;
	padding: 8px 16px !important;
	border: none !important;
	border-radius: 8px !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4) !important;
	animation: toastSlideUp 0.4s ease !important;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output {
	background-color: #FF4028;
	color: #fff;
}

.wpcf7 form.sent .wpcf7-response-output {
	background-color: var(--wp--preset--color--green);
	color: #fff;
}

.wpcf7 form.submitting .wpcf7-response-output {
	background-color: var(--wp--preset--color--secondary-dark);
	color: var(--wp--preset--color--white);
}

@keyframes toastSlideUp {
	from {
		opacity: 0;
		transform: translateX(-50%) translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateX(-50%) translateY(0);
	}
}

/* Contact Page - Mobile */
@media (max-width: 781px) {
	.subpage-title--contact {
		display: block;
		padding: 128px 24px 24px;
	}

	.subpage-title--contact .subpage-title__text {
		width: auto;
		font-size: 28px;
	}

	.subpage-title--contact .subpage-title__desc {
		display: none;
	}

	.contact-form-section {
		padding: 80px 24px;
	}

	.contact-form__row {
		flex-direction: column;
		gap: 0;
		padding-bottom: 16px;
	}

	.contact-form__label {
		width: auto;
		font-size: 14px;
	}

	.contact-form__field {
		width: 100%;
	}

	.contact-form__input,
	.contact-form__textarea {
		font-size: 14px;
	}

	/* Radio SP */
	.contact-form__radio-group {
		gap: 16px;
		padding: 8px 0;
	}

	.contact-form__radio-item {
		gap: 4px;
	}

	.contact-form__radio-custom {
		width: 20px;
		height: 20px;
	}

	.contact-form__radio:checked + .contact-form__radio-custom::after {
		width: 10px;
		height: 10px;
	}

	.contact-form__radio-text {
		font-size: 14px;
	}

	.btn--submit {
		padding: 8px 40px;
	}

	/* CF7 Mobile */
	.contact-form__field input[type="text"],
	.contact-form__field input[type="email"],
	.contact-form__field input[type="tel"],
	.contact-form__field textarea {
		font-size: 14px;
	}

	.contact-form__radio-group span.wpcf7-form-control.wpcf7-radio {
		gap: 16px;
	}

	.contact-form__radio-group .wpcf7-list-item label {
		gap: 4px;
	}

	.contact-form__radio-group .wpcf7-list-item input[type="radio"] {
		width: 20px !important;
		height: 20px !important;
		min-width: 20px !important;
		min-height: 20px !important;
	}

	.contact-form__radio-group .wpcf7-list-item input[type="radio"]:checked {
		background-color: #318e70 !important;
		box-shadow: inset 0 0 0 5px #fff !important;
	}

	.contact-form__radio-group .wpcf7-list-item-label {
		font-size: 14px;
	}
}
