@charset "UTF-8";

/* =========================================================
   PC共通レイアウト
   CLEAN CSS / 2026-09-19
========================================================= */

@media (min-width: 769px) {
	/* ---------------------------------------------------------
	   01. GeneratePress / outer frame
	--------------------------------------------------------- */
	body:is(
		.home,
		.post-type-archive-shop,
		.tax-area,
		.tax-genre,
		.tax-play,
		.post-type-archive-master,
		.single-master,
		.single-shop,
		.post-type-archive-dictionary,
		.tax-dictionary_category,
		.single-dictionary
	),
	body:has(.tkz-listing-page),
	body:has(.tkz-recruit-page),
	body:has(.tkz-contact-page),
	body:has(.tkz-about-page),
	body:has(.tkz-privacy-page) {
		background: #f2efe8 !important;
	}
	body:is(
		.home,
		.post-type-archive-shop,
		.tax-area,
		.tax-genre,
		.tax-play,
		.post-type-archive-master,
		.single-master,
		.single-shop,
		.post-type-archive-dictionary,
		.tax-dictionary_category,
		.single-dictionary
	) :is(#page, .site, .site-content, .content-area, .site-main, #primary),
	body:has(.tkz-listing-page) :is(#page, .site, .site-content, .content-area, .site-main, #primary),
	body:has(.tkz-recruit-page) :is(#page, .site, .site-content, .content-area, .site-main, #primary),
	body:has(.tkz-contact-page) :is(#page, .site, .site-content, .content-area, .site-main, #primary),
	body:has(.tkz-about-page) :is(#page, .site, .site-content, .content-area, .site-main, #primary),
	body:has(.tkz-privacy-page) :is(#page, .site, .site-content, .content-area, .site-main, #primary) {
		margin-top: 0 !important;
		padding-top: 0 !important;
		background: #f2efe8 !important;
	}
	/* ---------------------------------------------------------
	   02. Common shell
	   /shop/ = max 1100 + 20px side padding = 1060px content
	--------------------------------------------------------- */
	.home .tkz-home,
	.post-type-archive-shop .tkz-search-page,
	.tax-area .tkz-area-page,
	.tax-genre .tkz-genre-page,
	.tax-play .tkz-play-page,
	.post-type-archive-master .tkz-master-archive,
	.single-master .tkz-master-single-wrap,
	.post-type-archive-dictionary .tkz-dictionary-archive,
	.tax-dictionary_category .tkz-dictionary-category,
	.single-dictionary .tkz-dictionary-single-wrap,
	.page .tkz-listing-page,
	.page .tkz-recruit-page,
	.page .tkz-contact-page,
	.page .tkz-about-page,
	.page .tkz-privacy-page {
		width: 100% !important;
		max-width: 1100px !important;
		margin-left: auto !important;
		margin-right: auto !important;
		padding-top: 22px !important;
		padding-left: 20px !important;
		padding-right: 20px !important;
		box-sizing: border-box !important;
		background: #f2efe8 !important;
	}
	/* single系の内側だけ旧960/980pxに戻さない */
	.single-master .tkz-master-single,
	.single-dictionary .tkz-dictionary-single {
		width: 100% !important;
		max-width: none !important;
		margin-left: auto !important;
		margin-right: auto !important;
	}
	/* single-shop は外側shellが無いため1060pxを直接作る */
	.single-shop .tkz-shop-single {
		width: calc(100% - 40px) !important;
		max-width: 1060px !important;
		margin: 22px auto 0 !important;
		box-sizing: border-box !important;
	}
	/* ---------------------------------------------------------
	   03. HERO
	   TOPはKEY VISUAL構造が別なので、通常HEROの共通化対象外
	--------------------------------------------------------- */
	.post-type-archive-shop .tkz-search-header,
	.tax-area .tkz-area-header,
	.tax-genre .tkz-genre-header,
	.tax-play .tkz-play-header,
	.post-type-archive-master .tkz-master-archive-header,
	.single-master .tkz-master-single-hero,
	.single-shop .tkz-shop-single-hero,
	.post-type-archive-dictionary .tkz-dictionary-archive-header,
	.tax-dictionary_category .tkz-dictionary-header,
	.single-dictionary .tkz-dictionary-single-header,
	.page .tkz-listing-header,
	.page .tkz-recruit-header,
	.page .tkz-contact-header,
	.page .tkz-about-header,
	.page .tkz-privacy-header {
		position: relative !important;
		width: 100% !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
		margin-top: 0 !important;
		padding: 58px 46px 54px !important;
		background: linear-gradient(
			135deg,
			#0b0b0c 0%,
			#151516 72%,
			#241517 100%
		) !important;
		color: #f4f1ea !important;
		border-top: 1px solid #b99a5d !important;
		border-bottom: 1px solid rgba(185,154,93,.28) !important;
		border-left: 0 !important;
		border-right: 0 !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}
	/* /shop/ の装飾円を通常HEROへ共通化 */
	.post-type-archive-shop .tkz-search-header::after,
	.tax-area .tkz-area-header::after,
	.tax-genre .tkz-genre-header::after,
	.tax-play .tkz-play-header::after,
	.post-type-archive-master .tkz-master-archive-header::after,
	.single-master .tkz-master-single-hero::after,
	.single-shop .tkz-shop-single-hero::after,
	.post-type-archive-dictionary .tkz-dictionary-archive-header::after,
	.tax-dictionary_category .tkz-dictionary-header::after,
	.single-dictionary .tkz-dictionary-single-header::after,
	.page .tkz-listing-header::after,
	.page .tkz-recruit-header::after,
	.page .tkz-contact-header::after,
	.page .tkz-about-header::after,
	.page .tkz-privacy-header::after {
		content: "" !important;
		position: absolute !important;
		right: -90px !important;
		top: -110px !important;
		width: 300px !important;
		height: 300px !important;
		border: 1px solid rgba(185,154,93,.10) !important;
		border-radius: 50% !important;
		background: transparent !important;
		pointer-events: none !important;
	}
	/* HERO labels / eyebrow */
	.post-type-archive-shop .tkz-search-eyebrow,
	.tax-area .tkz-area-label,
	.tax-genre .tkz-genre-label,
	.tax-play .tkz-play-label,
	.post-type-archive-master .tkz-master-archive-label,
	.single-master .tkz-master-single-kicker,
	.single-shop .tkz-shop-single-kicker,
	.post-type-archive-dictionary .tkz-dictionary-archive-label,
	.tax-dictionary_category .tkz-dictionary-label,
	.single-dictionary .tkz-dictionary-single-eyebrow,
	.page .tkz-listing-label,
	.page .tkz-recruit-label,
	.page .tkz-contact-label,
	.page .tkz-about-label,
	.page .tkz-privacy-label {
		position: relative !important;
		z-index: 1 !important;
		display: block !important;
		margin: 0 0 11px !important;
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		color: #bda56f !important;
		font-size: 13px !important;
		font-weight: 600 !important;
		line-height: 1.4 !important;
		letter-spacing: .22em !important;
	}
	/* ---------------------------------------------------------
	   04. H1 hierarchy
	--------------------------------------------------------- */
	.home .tkz-home-hero h1,
	.post-type-archive-shop .tkz-search-header h1,
	.tax-area .tkz-area-header h1,
	.tax-genre .tkz-genre-header h1,
	.tax-play .tkz-play-header h1,
	.post-type-archive-master .tkz-master-archive-header h1,
	.single-master .tkz-master-single-name,
	.single-shop .tkz-shop-single-hero h1,
	.post-type-archive-dictionary .tkz-dictionary-archive-header h1,
	.tax-dictionary_category .tkz-dictionary-header h1,
	.single-dictionary .tkz-dictionary-single-header h1,
	.page .tkz-listing-header h1,
	.page .tkz-recruit-header h1,
	.page .tkz-contact-header h1,
	.page .tkz-about-header h1,
	.page .tkz-privacy-header h1 {
		position: relative !important;
		z-index: 1 !important;
		color: #f4f1ea !important;
		font-size: 42px !important;
		font-weight: 600 !important;
		line-height: 1.32 !important;
		letter-spacing: .01em !important;
		padding-left: 0 !important;
		border-left: 0 !important;
	}
	/* 通常HEROの説明文を/shop/の密度へ */
	.post-type-archive-shop .tkz-search-header p,
	.tax-area .tkz-area-header p,
	.tax-genre .tkz-genre-header p,
	.tax-play .tkz-play-header p,
	.post-type-archive-master .tkz-master-archive-header p,
	.post-type-archive-dictionary .tkz-dictionary-archive-header p,
	.tax-dictionary_category .tkz-dictionary-description,
	.tax-dictionary_category .tkz-dictionary-header p,
	.page .tkz-listing-header p,
	.page .tkz-recruit-header p,
	.page .tkz-contact-header p,
	.page .tkz-about-header p,
	.page .tkz-privacy-header p {
		position: relative !important;
		z-index: 1 !important;
		max-width: 680px !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		color: #aaa59b !important;
		font-size: 17px !important;
		font-weight: 400 !important;
		line-height: 1.9 !important;
	}
	/* ---------------------------------------------------------
	   05. Archive / taxonomy HERO spacing
	   /shop/ の18pxを一覧・検索系ページに揃える
	--------------------------------------------------------- */
	.post-type-archive-shop .tkz-search-header,
	.tax-area .tkz-area-header,
	.tax-genre .tkz-genre-header,
	.tax-play .tkz-play-header,
	.post-type-archive-master .tkz-master-archive-header,
	.post-type-archive-dictionary .tkz-dictionary-archive-header,
	.tax-dictionary_category .tkz-dictionary-header,
	.page .tkz-contact-header,
	.page .tkz-about-header,
	.page .tkz-privacy-header {
		margin-bottom: 18px !important;
	}
	/* ---------------------------------------------------------
	   06. Legacy taxonomy pages -> /shop/ PRO language
	--------------------------------------------------------- */
	.tax-area .tkz-area-children,
	.tax-area .tkz-area-shop-section,
	.tax-genre .tkz-genre-shop-section,
	.tax-play .tkz-play-shop-section {
		margin: 0 0 18px !important;
		padding: 36px 38px 38px !important;
		background: #f4f1ea !important;
		border: 1px solid rgba(126,111,81,.22) !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}
	.tax-area .tkz-area-children h2,
	.tax-area .tkz-area-shop-section > h2,
	.tax-genre .tkz-genre-shop-section > h2,
	.tax-play .tkz-play-shop-section > h2 {
		position: relative !important;
		margin: 0 0 24px !important;
		padding: 0 0 15px !important;
		border: 0 !important;
		color: #29261f !important;
		font-size: 27px !important;
		font-weight: 600 !important;
		line-height: 1.35 !important;
		letter-spacing: .02em !important;
	}
	.tax-area .tkz-area-children h2::after,
	.tax-area .tkz-area-shop-section > h2::after,
	.tax-genre .tkz-genre-shop-section > h2::after,
	.tax-play .tkz-play-shop-section > h2::after {
		content: "" !important;
		display: block !important;
		width: 38px !important;
		height: 1px !important;
		margin-top: 15px !important;
		background: #a98a4f !important;
	}
	/* AREA child links = /shop/ search tiles */
	.tax-area .tkz-area-child-links {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 9px !important;
	}
	.tax-area .tkz-area-child-links a {
		position: relative !important;
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto !important;
		align-items: center !important;
		gap: 8px !important;
		min-height: 64px !important;
		padding: 12px 39px 12px 15px !important;
		background: transparent !important;
		border: 1px solid #cbc3b4 !important;
		border-radius: 2px !important;
		color: #29261f !important;
		text-decoration: none !important;
		transition: border-color .2s ease, background .2s ease, transform .2s ease !important;
	}
	.tax-area .tkz-area-child-links a::after {
		content: "›" !important;
		position: absolute !important;
		right: 15px !important;
		top: 50% !important;
		transform: translateY(-52%) !important;
		color: #a98a4f !important;
		font-size: 22px !important;
		font-weight: 400 !important;
		line-height: 1 !important;
	}
	.tax-area .tkz-area-child-links a:hover {
		background: #fbf8f1 !important;
		border-color: #a98a4f !important;
		transform: translateY(-1px) !important;
	}
	.tax-area .tkz-area-child-links strong {
		color: inherit !important;
		font-size: 17px !important;
		font-weight: 600 !important;
		line-height: 1.4 !important;
	}
	.tax-area .tkz-area-child-links span {
		color: #8c867c !important;
		font-size: 13px !important;
		font-weight: 500 !important;
		white-space: nowrap !important;
	}
	/* Taxonomy shop cards = /shop/ card family */
	.tax-area .tkz-area-shop-card,
	.tax-genre .tkz-genre-shop-card,
	.tax-play .tkz-play-shop-card {
		background: #f7f4ed !important;
		border: 1px solid #cfc7b7 !important;
		border-radius: 2px !important;
		overflow: hidden !important;
		box-shadow: none !important;
		transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease !important;
	}
	.tax-area .tkz-area-shop-card:hover,
	.tax-genre .tkz-genre-shop-card:hover,
	.tax-play .tkz-play-shop-card:hover {
		transform: translateY(-2px) !important;
		border-color: #a98a4f !important;
		box-shadow: 0 12px 28px rgba(30,24,12,.08) !important;
	}
	.tax-area .tkz-area-shop-image img,
	.tax-genre .tkz-genre-shop-image img,
	.tax-play .tkz-play-shop-image img {
		display: block !important;
		width: 100% !important;
		aspect-ratio: 16 / 9 !important;
		height: auto !important;
		object-fit: cover !important;
	}
	.tax-area .tkz-area-shop-body,
	.tax-genre .tkz-genre-shop-body,
	.tax-play .tkz-play-shop-body {
		padding: 22px 22px 20px !important;
	}
	.tax-area .tkz-area-shop-body h3,
	.tax-genre .tkz-genre-shop-body h3,
	.tax-play .tkz-play-shop-body h3 {
		margin: 0 0 13px !important;
		color: #27241e !important;
		font-size: 23px !important;
		font-weight: 600 !important;
		line-height: 1.4 !important;
		letter-spacing: .01em !important;
	}
	.tax-area .tkz-area-genres span,
	.tax-genre .tkz-genre-tags span,
	.tax-play .tkz-play-genres span {
		display: inline-block !important;
		margin: 2px 3px 2px 0 !important;
		padding: 4px 8px !important;
		background: transparent !important;
		border: 1px solid rgba(110,32,43,.42) !important;
		border-radius: 2px !important;
		color: #6e202b !important;
		font-size: 13px !important;
		font-weight: 600 !important;
		line-height: 1.4 !important;
	}
	.tax-genre .tkz-genre-plays span,
	.tax-play .tkz-play-tags span {
		display: inline-block !important;
		margin: 2px 3px 2px 0 !important;
		padding: 4px 7px !important;
		background: #20201d !important;
		border-radius: 2px !important;
		color: #cdb57f !important;
		font-size: 12px !important;
		font-weight: 500 !important;
		line-height: 1.4 !important;
	}
	/* ---------------------------------------------------------
	   07. Static pages -> /shop/ PRO language
	   contact / about / privacy
	--------------------------------------------------------- */
	.tkz-contact-guide,
	.tkz-contact-form,
	.tkz-about-section,
	.tkz-privacy-section {
		margin: 0 0 18px !important;
		padding: 36px 38px 38px !important;
		background: #f4f1ea !important;
		border: 1px solid rgba(126,111,81,.22) !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}
	.tkz-contact-guide h2,
	.tkz-contact-form h2,
	.tkz-about-section h2,
	.tkz-privacy-section h2 {
		position: relative !important;
		margin: 0 0 22px !important;
		padding: 0 0 15px !important;
		border: 0 !important;
		color: #29261f !important;
		font-size: 27px !important;
		font-weight: 600 !important;
		line-height: 1.35 !important;
		letter-spacing: .02em !important;
	}
	.tkz-contact-guide h2::after,
	.tkz-contact-form h2::after,
	.tkz-about-section h2::after,
	.tkz-privacy-section h2::after {
		content: "" !important;
		display: block !important;
		width: 38px !important;
		height: 1px !important;
		margin-top: 15px !important;
		background: #a98a4f !important;
	}
	.tkz-contact-guide p,
	.tkz-about-section p,
	.tkz-privacy-section p {
		color: #4a463e !important;
		font-size: 17px !important;
		line-height: 1.95 !important;
	}
	/* Contact */
	.tkz-contact-types {
		gap: 9px !important;
	}
	.tkz-contact-types > div {
		background: #f7f4ed !important;
		border: 1px solid #d8d0bf !important;
		border-radius: 2px !important;
		padding: 17px 18px !important;
	}
	.tkz-contact-types strong {
		color: #8b6f32 !important;
		font-size: 17px !important;
		font-weight: 600 !important;
	}
	.tkz-contact-form .wpcf7-form label {
		color: #3a362f !important;
		font-size: 17px !important;
		font-weight: 600 !important;
	}
	.tkz-contact-form input[type="text"],
	.tkz-contact-form input[type="email"],
	.tkz-contact-form input[type="tel"],
	.tkz-contact-form input[type="url"],
	.tkz-contact-form select,
	.tkz-contact-form textarea {
		background: #fbfaf7 !important;
		border: 1px solid #c9c0af !important;
		border-radius: 2px !important;
		color: #29261f !important;
	}
	.tkz-contact-form input:focus,
	.tkz-contact-form select:focus,
	.tkz-contact-form textarea:focus {
		border-color: #a98a4f !important;
		box-shadow: none !important;
	}
	.tkz-contact-form input[type="submit"] {
		background: #7a1e2a !important;
		border-radius: 2px !important;
		font-weight: 600 !important;
	}
	.tkz-contact-form input[type="submit"]:hover {
		background: #681722 !important;
	}
	/* About */
	.tkz-about-table {
		border-top-color: #d8d0bf !important;
	}
	.tkz-about-row {
		border-bottom-color: #d8d0bf !important;
	}
	.tkz-about-th {
		background: #e9e4d8 !important;
		color: #3a362f !important;
		font-weight: 600 !important;
	}
	.tkz-about-td {
		background: #f7f4ed !important;
		color: #4a463e !important;
	}
	.tkz-about-td a {
		color: #6d592d !important;
		font-weight: 600 !important;
	}
	.tkz-about-cta {
		position: relative !important;
		overflow: hidden !important;
		margin: 0 0 18px !important;
		padding: 42px 38px !important;
		background: #0f0f10 !important;
		border: 1px solid #57482f !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}
	.tkz-about-cta h2 {
		color: #f4f1ea !important;
		font-size: 27px !important;
		font-weight: 600 !important;
		line-height: 1.4 !important;
	}
	.tkz-about-cta p {
		color: #aaa59b !important;
		font-size: 17px !important;
		line-height: 1.9 !important;
	}
	.tkz-about-cta a {
		background: #7a1e2a !important;
		color: #f4f1ea !important;
		border-radius: 2px !important;
		font-weight: 600 !important;
	}
	/* Privacy */
	.tkz-privacy-contact {
		background: #0f0f10 !important;
		border: 1px solid #57482f !important;
		border-radius: 0 !important;
		color: #f4f1ea !important;
	}
	/* ---------------------------------------------------------
	   08. Listing / Recruit
	   中身はSTEP12/13のPRO仕様を維持し、外枠とHEROだけ/shop/基準
	--------------------------------------------------------- */
	.page .tkz-listing-page,
	.page .tkz-recruit-page {
		max-width: 1100px !important;
	}
	/* TOPは画像開始位置だけ/shop/ shellに合わせる */
	.home .tkz-home-keyvisual {
		margin-top: 0 !important;
	}
}
