/* Blog/event additions. Typography, colour and spacing inherit the original site. */
.home .shinkoshi-smoke-ready .top_midashi_en,
.home .shinkoshi-smoke-ready .top_lead { opacity: 0; }
.home .shinkoshi-smoke-visible .top_midashi_en,
.home .shinkoshi-smoke-visible .top_lead {
	animation: shinkoshi-smoke-rise 1.8s cubic-bezier(.2,.65,.25,1) both;
}
.home .shinkoshi-smoke-visible .top_lead { animation-delay: .22s; }
@keyframes shinkoshi-smoke-rise {
	0% { opacity: 0; filter: blur(16px); transform: translate3d(0, 26px, 0); }
	45% { opacity: .65; filter: blur(5px); }
	100% { opacity: 1; filter: blur(0); transform: translate3d(0, 0, 0); }
}
@media (prefers-reduced-motion: reduce) {
	.home .shinkoshi-smoke-ready .top_midashi_en,
	.home .shinkoshi-smoke-ready .top_lead { opacity: 1; animation: none; filter: none; transform: none; }
}
body.page-id-59302 { overflow-x: clip; }
:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] .p-tb-form-wrap .item :is(.item-heading, .itemーheading) { justify-content: flex-start !important; text-align: left !important; }
:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] .p-tb-form-wrap .item :is(.item-heading, .itemーheading) .name { flex: 0 1 auto !important; text-align: left !important; }
:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] .p-tb-form-wrap .item :is(.item-heading, .itemーheading) .required { margin-left: 0 !important; justify-content: flex-start !important; text-align: left !important; }
.page-id-59302 .tb-mc-li:has(.tb-mc-sym-few) { display: none !important; }
.page-id-59302 .n2-ss-slider { margin-bottom: 26px !important; }
.page-id-59302 .wpb_text_column:has(#n2-ss-4) { padding-bottom: 8px !important; }
.page-id-59302 .n2-ss-slider-controls-absolute-center-bottom {
	top: 100% !important;
	bottom: auto !important;
	height: 26px !important;
	justify-content: center !important;
	align-items: center !important;
}
.page-id-59302 .n2-ss-control-bullet { margin: 0 !important; --widget-offset: 0px !important; }
.page-id-59302 .nextend-bullet-bar { gap: 8px !important; padding: 0 !important; }
.page-id-59302 .nextend-bullet-bar .n2-bullet {
	width: 6px !important;
	height: 6px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: #aaa !important;
	box-shadow: none !important;
}
.page-id-59302 .nextend-bullet-bar .n2-bullet.n2-active { background: #333 !important; }
.page-category-list li.current-cat a {
	color: #000;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.shinkoshi-feed-grid,
.shinkoshi-home-feed {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 52px 30px;
	width: 100%;
	margin-top: 25px;
}

.shinkoshi-feed-grid .editorial-card,
.shinkoshi-home-feed .editorial-card {
	min-width: 0;
	margin: 0;
}

.editorial-card__media {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 3 / 4;
	background: #f3f3f1;
	text-decoration: none;
}

.editorial-card__media .editorial-media {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.editorial-media--placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: #f3f3f1;
}

.editorial-card__count,
.editorial-card__video-label {
	position: absolute;
	top: 10px;
	z-index: 2;
	padding: 4px 7px 3px;
	background: rgba(0, 0, 0, .65);
	color: #fff;
	font-family: Helvetica, Arial, sans-serif;
	font-size: 10px;
	line-height: 1;
	letter-spacing: .08em;
}

.editorial-card__count { right: 10px; }
.editorial-card__reservation {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	padding: 8px 10px;
	background: #ece94e;
	color: #000;
	font-family: Helvetica, Arial, sans-serif;
	font-size: 15px;
	font-weight: 700;
	line-height: 1.4;
}
.editorial-card__pin {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	width: 24px;
	height: 24px;
	color: #fff;
	filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .55));
}
.editorial-card__pin svg { display: block; width: 100%; height: 100%; transform: rotate(35deg); }
.editorial-card--pinned .editorial-card__count { right: 42px; }
.editorial-card__video-label { left: 10px; }
.editorial-card__body { padding-top: 15px; }

.editorial-card__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 5px 13px;
	margin-bottom: 5px;
	font-family: "HelveticaLTPro-Light", "Yu Gothic", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro W3", メイリオ, sans-serif;
	font-size: 12px;
	font-weight: 400;
	color: rgba(0, 0, 0, .5);
}

.editorial-card__title {
	margin: 0;
	font-size: 18px;
	font-weight: 400;
	line-height: 1.4;
}

.editorial-card__title a {
	font-family: "ACaslonPro-Semibold", "FOT-筑紫明朝 Pr6 B", "Yu Mincho", serif;
	font-size: 18px;
	font-weight: 400;
	font-feature-settings: "palt";
	color: #262406;
	text-decoration: none;
}

.editorial-card__excerpt {
	margin: 8px 0 0;
	font-family: "游明朝", "Yu Mincho", YuMincho, "Hiragino Mincho Pro", serif;
	font-size: 14px;
	line-height: 1.8;
	letter-spacing: .05em;
}

.shinkoshi-single-featured {
	max-width: 900px;
	margin: 30px 0 45px;
}

.shinkoshi-single-featured img,
.instagram-media-gallery img,
.instagram-media-gallery video {
	display: block;
	max-width: 100%;
	height: auto;
}

.single-post article .post-img img,
.shinkoshi-single-featured img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 800px;
	object-fit: contain;
	object-position: left top;
}

.instagram-media-gallery img {
	width: auto;
	max-height: 800px;
	object-fit: contain;
	object-position: left top;
}

.instagram-media-gallery {
	display: grid;
	gap: 24px;
	margin-bottom: 36px;
}

.instagram-media-gallery figure { margin: 0; }

.shinkoshi-single-video video,
.instagram-media-gallery video {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 800px;
	object-fit: contain;
	background: #000;
}

.instagram-caption { white-space: normal; }

.shinkoshi-reservation-cta { margin: 24px 0 35px; }
.shinkoshi-reservation-cta a {
	display: inline-block;
	max-width: 100%;
	padding: 15px 24px;
	border: 1px solid #262406;
	color: #262406;
	font-size: 16px;
	line-height: 1.6;
	text-align: center;
	text-decoration: none;
}
.shinkoshi-reservation-cta a:hover,
.shinkoshi-reservation-cta a:focus-visible { background: #262406; color: #fff; }

.instagram-source,
.shinkoshi-single-back { margin-top: 35px; }

.shinkoshi-single-back a,
.instagram-source a {
	display: inline-block;
	padding: 8px 15px 6px;
	border: 1px solid #222;
	font-family: 'Sorts Mill Goudy', serif;
	text-decoration: none;
}

.shinkoshi-single-back a:hover,
.instagram-source a:hover {
	background: #222;
	color: #fff;
}

.shinkoshi-pagination {
	clear: both;
	width: 100%;
	padding: 60px 15px 0;
}
.shinkoshi-pagination > .pagination,
.shinkoshi-pagination > .page-numbers { margin-top: 0; }

.shinkoshi-pagination ul.page-numbers,
.shinkoshi-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.shinkoshi-pagination ul.page-numbers > li {
	list-style: none;
	margin: 0;
	padding: 0;
}
.shinkoshi-pagination a.page-numbers,
.shinkoshi-pagination span.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 8px 12px;
	margin: 0;
	border: 1px solid #d8d8d8;
	color: #333;
	font-size: 14px;
	line-height: 1.4;
	text-decoration: none;
	box-sizing: border-box;
}
.shinkoshi-pagination .page-numbers.current,
.shinkoshi-pagination a.page-numbers:hover,
.shinkoshi-pagination a.page-numbers:focus-visible {
	background: #333;
	border-color: #333;
	color: #fff;
}
.shinkoshi-pagination span.page-numbers.dots { border-color: transparent; min-width: 20px; padding: 8px 0; }

.shinkoshi-home-feed--blog > .editorial-card:nth-child(n+4) { display: none; }

.shinkoshi-photo-strip {
	--photo-height: clamp(300px, 30vw, 420px);
	width: var(--shinkoshi-viewport-width, 100%);
	max-width: none;
	margin: 0;
	margin-left: calc((100% - var(--shinkoshi-viewport-width, 100%)) / 2);
}
.shinkoshi-photo-strip__window { overflow: hidden; }
.shinkoshi-photo-strip__profile { margin: 28px 15px 0; text-align: center; }
.shinkoshi-photo-strip__profile a {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	max-width: 100%;
	padding-bottom: 7px;
	border-bottom: 1px solid currentColor;
	color: #333;
	font-size: 16px;
	line-height: 1.6;
	text-decoration: none;
}
.shinkoshi-photo-strip__profile svg { flex: 0 0 24px; }
.shinkoshi-photo-strip__profile .shinkoshi-photo-strip__external { flex: 0 0 14px; width: 14px; height: 14px; }
.shinkoshi-photo-strip__handle { font-family: "ACaslonPro-Semibold", "FOT-筑紫明朝 Pr6 D", serif; font-size: 20px; }
.shinkoshi-photo-strip__profile a:hover { opacity: .65; }
.shinkoshi-photo-strip__profile a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.shinkoshi-photo-strip__track {
	display: flex;
	width: max-content;
	animation: shinkoshi-photo-flow 35s linear infinite;
	animation-play-state: paused;
	transform: translate3d(0, 0, 0);
	will-change: transform;
}
.shinkoshi-photo-strip[data-ready="true"] .shinkoshi-photo-strip__track { animation-play-state: running; }
.shinkoshi-photo-strip__group { display: flex; flex: none; gap: 1px; padding-right: 1px; }
.shinkoshi-photo-strip__group img { display: block; flex: none; width: calc(var(--photo-height) * var(--photo-ratio, .8)); height: var(--photo-height); max-width: none; object-fit: contain; }
@keyframes shinkoshi-photo-flow { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@media (prefers-reduced-motion: reduce) {
	.shinkoshi-photo-strip__track { animation: none; }
	.shinkoshi-photo-strip__window { overflow-x: auto; }
	.shinkoshi-photo-strip__group[aria-hidden="true"] { display: none; }
}

@media (min-width: 768px) {
	.page-id-59302 .page-headline-image { margin-bottom: 30px; }
	.page-id-59302 .vc_column-inner:has(h1.heading02) { margin-top: 20px !important; }
	.page-id-59302 .wpb_text_column:has(#n2-ss-4) { padding-bottom: 32px !important; }
	.home .shinkoshi-home-feed--blog,
	.home .shinkoshi-home-feed--event { margin-top: 2.5px; }
	/* Reduce desktop calendar whitespace without changing the first date row's top. */
	.home #tb-wrapper.tb-wrapper-59471 { margin-top: 62px; padding-top: 36px; padding-bottom: 36px; }
	.home #tb-wrapper .tb-wrapper-heading { margin-bottom: 36px; }
	#tb-calendar { padding-top: 36px; padding-bottom: 24px; }
	#tb-calendar .tb-calendar-table thead th { padding-top: 12px; padding-bottom: 12px; }
	#tb-calendar .tb-calendar-table tbody td { padding-top: 7px; padding-bottom: 7px; }
	#tb-calendar .tb-calendar-table tbody tr:first-child td { padding-top: 10px; }
	#tb-calendar .tb-calendar-table tbody tr:last-child td { padding-bottom: 4px; }
	#tb-calendar .tb-calendar-table { margin-bottom: 12px; }
	#tb-calendar #tb-calendar_nav { margin-top: 6px; padding-top: 6px; }
	#tb-events { padding-top: 32px; padding-bottom: 24px; }
	#tb-events .tb-events-inner > h2 { padding-top: 24px; padding-bottom: 18px; margin-bottom: 16px; }
	#tb-events #tb-events-list > p { padding-top: 18px; padding-bottom: 18px; }
	.home #xo-slider-2996 .swiper-button-prev,
	.home #xo-slider-2996 .swiper-button-next {
		width: 44px;
		height: 44px;
		top: calc(50% - 13px);
		text-shadow: none;
		color: #fff;
	}
	.home #xo-slider-2996 .swiper-button-prev { left: 20px; }
	.home #xo-slider-2996 .swiper-button-next { right: 20px; }
	.home #xo-slider-2996 .swiper-button-prev::after,
	.home #xo-slider-2996 .swiper-button-next::after {
		content: '';
		width: 18px;
		height: 18px;
		border-top: 1px solid currentColor;
		border-right: 1px solid currentColor;
		filter: drop-shadow(0 1px 1px rgba(0,0,0,.25));
	}
	.home #xo-slider-2996 .swiper-button-prev::after { transform: rotate(-135deg); }
	.home #xo-slider-2996 .swiper-button-next::after { transform: rotate(45deg); }
	.home #xo-slider-2996 .swiper-button-prev:focus-visible,
	.home #xo-slider-2996 .swiper-button-next:focus-visible {
		opacity: 1;
		visibility: visible;
		transform: none;
		outline: 1px solid #fff;
		outline-offset: 2px;
	}
	.home #xo-slider-2996 .swiper-pagination {
		position: relative;
		inset: auto;
		transform: none;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 8px;
		height: 26px;
		margin: 0;
	}
	.home #xo-slider-2996 .swiper-pagination-bullet {
		width: 6px;
		height: 6px;
		margin: 0;
		background: #aaa;
		opacity: 1;
	}
	.home #xo-slider-2996 .swiper-pagination-bullet-active { background: #333; }
}

@media (max-width: 767px) {
	:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] form.wpcf7-form input:not([type="hidden"]):not([type="submit"]),
	:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] form.wpcf7-form select,
	:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] form.wpcf7-form textarea { font-size: 16px !important; }
	:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] form.wpcf7-form input::placeholder,
	:is(body, #tb-mc-form-panel) .wpcf7[id^="wpcf7-f59641-"] form.wpcf7-form textarea::placeholder { font-size: 16px !important; }
	.page-id-59302 .vc_single_image-wrapper:has(img[src*="taiken_text05.png"]) {
		width: var(--shinkoshi-viewport-width, 100vw);
		max-width: none;
		margin-left: calc((100% - var(--shinkoshi-viewport-width, 100vw)) / 2);
	}
	.page-id-59302 img[src*="taiken_text05.png"] { width: 100%; height: auto; }
	.page-id-59302 .page-headline-image { margin-bottom: 15px; }
	.page-id-59302 h1.heading02 { padding-bottom: 15px; }
	.page-id-59302 .vc_column-inner:has(h1.heading02) { margin-top: 0 !important; }
	.page-id-59302 .wpb_text_column:has(.n2-ss-slider) {
		width: var(--shinkoshi-viewport-width, 100vw);
		margin-left: calc((100% - var(--shinkoshi-viewport-width, 100vw)) / 2);
	}
	.page-id-59302 #tb-calendar-seats-footer.tb-mc-wrap { width: 100% !important; max-width: 100%; margin-left: 0 !important; left: auto !important; transform: none !important; }
	.page-id-59302 #tb-calendar-seats-footer .tb-mc-slot { grid-template-columns: 80px 65px minmax(0, 1fr) !important; gap: 6px; }
	.page-id-59302 .tb-mc-slot-time { white-space: nowrap; }
	.page-id-59302 .tb-mc-slot-st,
	.page-id-59302 .tb-mc-slot-btn { width: auto; min-width: 0; }
	.editorial-card__reservation { padding: 6px 7px; font-size: 11px; }
	.editorial-card__media:has(.editorial-card__reservation) .editorial-card__count { top: 38px; }
	body { padding-bottom: calc(54px + env(safe-area-inset-bottom, 0px)); }
	#tb-calendar .tb-calendar-table thead th { padding-top: 6px; padding-bottom: 6px; line-height: 24px; }
	#tb-calendar .tb-calendar-table tbody td { padding-top: 4px; padding-bottom: 4px; }
	#tb-calendar .tb-calendar-table tbody tr:first-child td { padding-top: 10px; }
	#tb-calendar .tb-calendar-table tbody tr:last-child td { padding-bottom: 2px; }
	#tb-calendar .tb-calendar-table { margin-bottom: 6px; }
	#tb-calendar #tb-calendar_nav { margin-top: 4px; padding-top: 4px; }
	#tb-calendar { padding-top: 16px; padding-bottom: 16px; }
	#tb-events { padding-top: 16px; padding-bottom: 16px; }
	#tb-events .tb-events-inner > h2 { padding-top: 16px; padding-bottom: 10px; margin-bottom: 8px; }
	#tb-events #tb-events-list > p { padding-top: 10px; padding-bottom: 10px; }
	#scrollUp { display: none !important; }
	.shinkoshi-mobile-footer {
		display: flex;
		position: fixed;
		bottom: 0;
		left: 0;
		right: 0;
		z-index: 9999;
		background: #ece94e;
	}
	.shinkoshi-mobile-footer a {
		display: flex;
		flex: 1 1 0;
		min-width: 0;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		box-sizing: border-box;
		padding: 9px 3px calc(4px + env(safe-area-inset-bottom, 0px));
		min-height: calc(54px + env(safe-area-inset-bottom, 0px));
		background: #ece94e;
		color: #262122;
		text-decoration: none;
	}
	.shinkoshi-mobile-footer__icon { display: flex; align-items: center; justify-content: center; height: 22px; margin-bottom: 1px; }
	.shinkoshi-mobile-footer__icon svg { display: block; width: 22px; height: 22px; max-width: 25px; }
	.shinkoshi-mobile-footer__top svg { width: 25px; }
	.shinkoshi-mobile-footer__label { font-family: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif; font-size: 11px; font-weight: 700; height: 18px; line-height: 18px; letter-spacing: 0; white-space: nowrap; }
	.shinkoshi-mobile-footer a.shinkoshi-mobile-footer__top { flex: 0 0 58px; background: #c3c4c6; }
	.shinkoshi-mobile-footer a:focus-visible { outline: 2px solid #262122; outline-offset: -3px; }
	.home #header { margin-bottom: 0 !important; }
	.home .wpb_text_column:has(#xo-slider-2996) > .wpb_wrapper > p:empty { display: none; }
	.home .wpb_text_column:has(#xo-slider-2996) + .vc_empty_space { height: 32px !important; }
	/* Compact only the space above homepage section headings on mobile. */
	.home .vc_empty_space:has(+ .wpb_text_column .top_title01) { height: 48px !important; }
	.home .vc_empty_space[style*="80px"]:has(+ .wpb_text_column .top_title01) { height: 64px !important; }
	.home #tb-wrapper.tb-wrapper-59471 { margin-top: 40px; padding-top: 24px; }
	.home #tb-wrapper .tb-wrapper-heading { margin-bottom: 28px; }
	.shinkoshi-photo-strip { --photo-height: clamp(288px, 88vw, 416px); }
	.shinkoshi-photo-strip__profile { margin-top: 22px; }
	.shinkoshi-photo-strip__profile a { font-size: 14px; gap: 9px; }
	.shinkoshi-photo-strip__handle { font-size: 18px; }
	.shinkoshi-pagination ul.page-numbers,
	.shinkoshi-pagination .nav-links { gap: 4px; }
	.shinkoshi-pagination a.page-numbers,
	.shinkoshi-pagination span.page-numbers { min-width: 34px; padding: 8px; font-size: 13px; }
	/* These home rows have 15px side gutters; keep the media edge-to-edge. */
	.home #xo-slider-2996,
	.home .youtube:has(iframe[src*="914249791"]) {
		width: calc(100% + 30px);
		max-width: none;
		margin-left: -15px;
		margin-right: -15px;
	}
	.home #xo-slider-2996 .swiper-pagination {
		position: relative;
		inset: auto;
		transform: none;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 8px;
		height: 26px;
		margin: 0;
	}
	.home #xo-slider-2996 .swiper-pagination-bullet {
		width: 6px;
		height: 6px;
		margin: 0;
		background: #aaa;
		opacity: 1;
	}
	.home #xo-slider-2996 .swiper-pagination-bullet-active { background: #333; }
	.home #xo-slider-2996 .swiper-button-prev,
	.home #xo-slider-2996 .swiper-button-next { display: none; }
	.home .youtube:has(iframe[src*="914249791"]) { aspect-ratio: 1080 / 608; }
	.home .youtube iframe[src*="914249791"] { display: block; width: 100%; height: 100%; }
	.shinkoshi-home-feed--blog > .editorial-card:nth-child(4) { display: block; }
	.home .shinkoshi-home-feed--blog,
	.home .shinkoshi-home-feed--event { margin-top: 5px; }
	.shinkoshi-home-feed--event > .editorial-card:nth-child(n+3) { display: none; }
	.shinkoshi-pagination { padding-top: 40px; }
	.shinkoshi-feed-grid,
	.shinkoshi-home-feed {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 38px 14px;
	}
	.editorial-card__body { padding-top: 11px; }
	.editorial-card__title,
	.editorial-card__title a { font-size: 16px; }
	.editorial-card__meta { font-size: 10px; gap: 3px 8px; }
	.editorial-card__excerpt { display: none; }
	.shinkoshi-single-featured { margin: 22px 0 30px; }
}

@media (min-width: 768px) { .shinkoshi-mobile-footer { display: none; } }
