/**
 * Loaded after twentytwenty.css — header chrome, content frame, picklist.
 */

/* Same frame as .mainbox (1200px + 30px gutters) */
body.kikori #site-header .header-inner.section-inner,
body.kikori #site-footer .section-inner,
body.kikori #kikori-menu-modal .menu-wrapper.section-inner {
	max-width: 1200px !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding-left: 30px !important;
	padding-right: 30px !important;
	box-sizing: border-box;
}

body.kikori #site-header .header-inner {
	position: relative;
	display: block !important;
}

/* Twenty Twenty hides this below 1000px — always show for kikori */
body.kikori #site-header .header-navigation-wrapper {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
}

/*
 * Full-width grid: logo row spans all columns (centered);
 * search + menu sit in the right column (not screen-left).
 */
body.kikori #site-header .header-toggles {
	display: grid !important;
	grid-template-columns: 1fr auto;
	align-items: start;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 6rem;
	margin: 0 !important;
	flex-shrink: 1 !important;
	position: static !important;
}

body.kikori #site-header .header-titles {
	grid-column: 1 / -1;
	grid-row: 1;
	justify-self: center;
	position: relative;
	z-index: 1;
	width: 13rem;
	margin: 0 !important;
	padding: 0 !important;
	pointer-events: none;
	text-align: center;
}

body.kikori #site-header .kikori-header__end {
	grid-column: 2;
	grid-row: 1;
	justify-self: end;
	align-self: start;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	flex-shrink: 0;
	position: relative;
	z-index: 2;
}

body.kikori #site-header .site-logo {
	position: relative;
	width: 13rem;
	min-height: 6rem;
	margin: 0 auto;
}

body.kikori #site-header .site-logo a {
	pointer-events: auto;
	display: block;
}

body.kikori #site-header .site-logo img.icon_svg {
	position: absolute !important;
	left: 0 !important;
	right: 0 !important;
	top: 20px !important;
	width: 13rem !important;
	max-width: 13rem !important;
	height: auto !important;
	max-height: 12rem !important;
	margin: 0 auto !important;
}

body.kikori #site-header .site-logo img.icon_svg.pc {
	display: block !important;
}

body.kikori #site-header .site-logo img.icon_svg.sp {
	display: none !important;
}

/* Toggle spacing inside right cluster */
body.kikori #site-header .header-inner .toggle {
	margin: 0 !important;
	padding: 0 !important;
	height: 4.4rem;
	position: relative !important;
	left: auto !important;
	right: auto !important;
	top: auto !important;
	bottom: auto !important;
	width: auto !important;
}

body.kikori #site-header .kikori-header__end .search-toggle {
	margin: 0 3rem 0 0 !important;
}

body.kikori #site-header .kikori-header__end .nav-toggle {
	margin: 0 !important;
}

body.kikori #site-header .header-inner .toggle-wrapper::before {
	display: none !important;
}

body.kikori #site-header .search-toggle-wrapper {
	position: relative;
	z-index: 2;
	flex-shrink: 0;
}

body.kikori #site-header .nav-toggle-wrapper {
	flex-shrink: 0;
	z-index: 2;
}

body.kikori #site-header .search-toggle .toggle-inner {
	height: auto !important;
	padding-top: 0 !important;
}

body.kikori #site-header .search-toggle .toggle-icon {
	width: 4rem !important;
	height: 4rem !important;
	max-width: none !important;
	overflow: visible !important;
}

body.kikori #site-header .search-toggle svg {
	width: 4rem !important;
	height: 4rem !important;
	max-width: none !important;
}

/* Search field opens to the left of the search icon */
body.kikori #site-header .search-toggle-wrapper .search-modal {
	display: none;
	position: absolute;
	right: calc(100% + 1.2rem) !important;
	left: auto !important;
	top: 50% !important;
	bottom: auto !important;
	transform: translateY(-50%);
	width: min(22rem, 40vw);
	max-width: none !important;
	background: none;
	opacity: 1;
	border-bottom: 2px solid currentColor;
	z-index: 3;
}

body.kikori #site-header .search-toggle-wrapper .search-modal.active {
	display: block;
}

body.kikori #site-header .search-toggle-wrapper .search-modal .search-modal-inner {
	transform: none;
	background: transparent;
	box-shadow: none;
}

body.kikori #site-header .search-toggle-wrapper .search-modal .section-inner {
	width: 100%;
	max-width: none;
	padding: 0;
	margin: 0;
}

/* Content column */
body.kikori #site-content {
	width: 100%;
	max-width: none;
}

body.kikori .mainbox {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 30px;
	padding-right: 30px;
	box-sizing: border-box;
}

body.kikori .picklist ul {
	justify-content: center;
}

/* Footer nav — loaded after _astro bundle so link resets do not win */
body.kikori #site-footer li a {
	color: #9b9b9b !important;
	font-family:
		"Avenir Next",
		Verdana,
		"ヒラギノ角ゴ Pro W3",
		"Hiragino Kaku Gothic Pro",
		"游ゴシック",
		"Yu Gothic",
		"メイリオ",
		Meiryo,
		Osaka,
		sans-serif !important;
	font-style: italic;
	font-weight: bold;
	text-decoration: none !important;
}

body.kikori #site-footer .footer-credits,
body.kikori #site-footer .footer-credits p {
	color: #fff !important;
}

/* Category page (/category) — match WP page-template-category */
body.kikori.page-template-category .mainbox {
	background: #fff !important;
	padding: 1% 8% !important;
	position: relative !important;
}

body.kikori.page-template-category .mainbox .breadcrumb {
	display: flex !important;
	transform: rotate(90deg) !important;
	transform-origin: left top !important;
	position: absolute !important;
	top: 100px !important;
	right: -105px;
	font-size: 1.4rem !important;
	white-space: nowrap;
}

body.kikori.page-template-category .breadcrumb * {
	display: inline-block !important;
}

body.kikori.page-template-category .breadcrumb img {
	width: auto !important;
	height: auto !important;
	max-width: none !important;
	display: inline-block !important;
	vertical-align: middle;
}

body.kikori.page-template-category .breadcrumb span::before {
	display: inline-block !important;
	content: "" !important;
	width: 50px !important;
	height: 2px !important;
	background: #000 !important;
	vertical-align: middle;
	margin: 0 10px;
}

body.kikori.page-template-category .mainbox div:first-child h2 {
	font-style: normal;
	font-size: 2.6rem;
	font-family: inherit !important;
}

body.kikori.page-template-category h2 img {
	display: inline-block !important;
	max-width: 4rem !important;
	width: 10% !important;
	vertical-align: middle;
	margin-right: 30px;
	height: auto !important;
}

body.kikori.page-template-category .mainbox > div:first-child > ul {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: space-between !important;
	row-gap: 3rem;
	margin-top: 7% !important;
}

body.kikori.page-template-category .mainbox > div:first-child > ul > li {
	box-sizing: border-box;
	flex: 0 0 45% !important;
	max-width: 45% !important;
	width: 45% !important;
	margin: 0 !important;
}

body.kikori.page-template-category .mainbox > div:first-child ul li > a {
	display: block !important;
	max-width: 100% !important;
	width: 100% !important;
}

body.kikori.page-template-category .mainbox > div:first-child ul li > a > div {
	overflow: hidden;
	width: 100%;
}

body.kikori.page-template-category .mainbox > div:first-child ul li > a .wp-post-image {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	display: block !important;
}

@media screen and (max-width: 768px) {
	body.kikori.page-template-category .breadcrumb {
		position: static !important;
		transform: none !important;
	}

	body.kikori.page-template-category .breadcrumb span::before {
		content: "/" !important;
		width: auto !important;
		height: auto !important;
		background: transparent !important;
	}

	body.kikori.page-template-category .mainbox > div:first-child > ul > li {
		flex: 0 0 100% !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	body.kikori #site-header .site-logo img.icon_svg {
		width: 11rem !important;
		max-width: 11rem !important;
		max-height: 10rem !important;
	}

	body.kikori #site-header .site-logo img.icon_svg.pc {
		display: none !important;
	}

	body.kikori #site-header .site-logo img.icon_svg.sp {
		display: block !important;
	}

	body.kikori #site-header .header-titles {
		width: 11rem;
	}

	body.kikori #site-header .search-toggle .toggle-icon,
	body.kikori #site-header .search-toggle svg {
		width: 3.4rem !important;
		height: 3.4rem !important;
	}

	body.kikori #site-header .search-toggle-wrapper .search-modal {
		position: fixed;
		top: 60px !important;
		left: 0 !important;
		right: auto;
		max-width: 100%;
		width: calc(100% - 4rem);
		margin: 0 2rem;
	}
}

/* Single post — match WP singular.php */
body.kikori.single .mainbox {
	max-width: 1200px !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	box-sizing: border-box;
	background: #fff !important;
	padding: 5% 8% !important;
	position: relative !important;
	overflow: visible !important;
}

/* Same as /category — rotated trail on the right edge of .mainbox */
body.kikori.single .mainbox .breadcrumb {
	display: flex !important;
	transform: rotate(90deg) !important;
	transform-origin: left top !important;
	position: absolute !important;
	top: 100px !important;
	/* fallback until KikoriBreadcrumbAlign runs (WP footer.php); no !important */
	right: -105px;
	left: auto;
	margin-left: 0;
	font-size: 1.4rem !important;
	white-space: nowrap;
	overflow: visible !important;
	z-index: 2;
}

body.kikori.single .breadcrumb * {
	display: inline-block !important;
}

body.kikori.single .breadcrumb img {
	width: auto !important;
	height: auto !important;
	max-width: none !important;
	display: inline-block !important;
	vertical-align: middle;
}

body.kikori.single .breadcrumb span::before {
	display: inline-block !important;
	content: "" !important;
	width: 50px !important;
	height: 2px !important;
	background: #000 !important;
	vertical-align: middle;
	margin: 0 10px;
}

body.kikori.single .mainbox > div:first-child li {
	margin: 0 !important;
	padding: 0;
	list-style: none;
}

body.kikori.single .single-content li {
	margin: 0 !important;
}

body.kikori.single .related-list,
body.kikori.single .wpp-list {
	row-gap: 5%;
}

body.kikori.single .related-list > li,
body.kikori.single .wpp-list > li {
	margin: 0 !important;
}

body.kikori.single .mainbox > div:first-child li > a {
	display: block;
	max-width: 100%;
}

/* Eyecatch — WP .single img { width: 100% } (column width, not capped at 500px) */
body.kikori.single .mainbox > div:first-child li > a > .single-featured-image {
	display: block;
	width: 100%;
	max-width: 100%;
}

body.kikori.single .single-featured-image .wp-post-image {
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	display: block !important;
}

/* Table of Contents Plus (inline custom CSS on production + child theme) */
body.kikori.single .single-content #toc_container {
	background: #f9f9f9 !important;
	border: 1px solid #aaa !important;
	border-left: none !important;
	border-right: none !important;
	border-top: 10px solid #f8f8f8 !important;
	border-bottom: 10px solid #f8f8f8 !important;
	width: 100% !important;
	max-width: 100% !important;
	display: block !important;
	box-sizing: border-box;
	margin: 6rem 0 !important;
	padding: 50px !important;
	font-size: 95%;
}

body.kikori.single #toc_container .toc_title {
	font-weight: 700;
	margin: 0;
	padding: 0;
	text-align: center;
}

body.kikori.single #toc_container .toc_title + ul.toc_list {
	margin-top: 1em;
	padding: 0;
	list-style: none;
}

body.kikori.single #toc_container.no_bullets ul,
body.kikori.single #toc_container.no_bullets li,
body.kikori.single #toc_container.no_bullets ul li {
	list-style: none !important;
	background: none;
	margin: 0;
	padding: 0;
}

body.kikori.single #toc_container ul.toc_list li {
	font-size: 16px !important;
	list-style-type: none !important;
}

body.kikori.single .single-content #toc_container a {
	color: #29aae1 !important;
	text-decoration: none !important;
}

body.kikori.single .single-content #toc_container a:hover {
	text-decoration: underline !important;
}

@media screen and (max-width: 768px) {
	body.kikori.single .breadcrumb {
		position: static !important;
		transform: none !important;
		white-space: normal;
		left: auto !important;
		margin-left: 0 !important;
	}

	body.kikori.single .breadcrumb span::before {
		content: "/" !important;
		width: auto !important;
		height: auto !important;
		background: transparent !important;
	}

	body.kikori.single .mainbox {
		padding: 5% !important;
	}

	body.kikori.single #site-content {
		margin-top: -200px;
	}
}

/* About (/pages/about) — WP templates/about.php */
body.kikori.page-template-about .mainbox {
	background: #fff !important;
	padding: 1% 8% !important;
	position: relative !important;
	overflow: visible !important;
}

body.kikori.page-template-about .mainbox .breadcrumb {
	display: flex !important;
	transform: rotate(90deg) !important;
	transform-origin: left top !important;
	position: absolute !important;
	top: 100px !important;
	right: -105px;
	left: auto;
	font-size: 1.4rem !important;
	white-space: nowrap;
	z-index: 2;
}

body.kikori.page-template-about .breadcrumb img {
	width: auto !important;
	height: auto !important;
	max-width: none !important;
}

body.kikori.page-template-about .breadcrumb span::before {
	display: inline-block !important;
	content: "" !important;
	width: 50px !important;
	height: 2px !important;
	background: #000 !important;
	vertical-align: middle;
	margin: 0 10px;
}

@media screen and (max-width: 768px) {
	body.kikori.page-template-about .breadcrumb {
		position: static !important;
		transform: none !important;
		white-space: normal;
	}

	body.kikori.page-template-about .breadcrumb span::before {
		content: "/" !important;
		width: auto !important;
		height: auto !important;
		background: transparent !important;
	}

	body.kikori.page-template-about .mainbox {
		padding: 5% !important;
	}
}

/* Contact (/pages/contact) — WP templates/contact.php + CF7 */
body.kikori.page-template-contact .mainbox {
	background: #fff !important;
	padding: 1% 8% !important;
	position: relative !important;
	overflow: visible !important;
}

body.kikori.page-template-contact .mainbox .breadcrumb {
	display: flex !important;
	transform: rotate(90deg) !important;
	transform-origin: left top !important;
	position: absolute !important;
	top: 100px !important;
	right: -105px;
	left: auto;
	margin-left: 0;
	font-size: 1.4rem !important;
	white-space: nowrap;
	overflow: visible !important;
	z-index: 2;
}

body.kikori.page-template-contact .breadcrumb * {
	display: inline-block !important;
}

body.kikori.page-template-contact .breadcrumb img {
	width: auto !important;
	height: auto !important;
	max-width: none !important;
	display: inline-block !important;
	vertical-align: middle;
}

body.kikori.page-template-contact .breadcrumb span::before {
	display: inline-block !important;
	content: "" !important;
	width: 50px !important;
	height: 2px !important;
	background: #000 !important;
	vertical-align: middle;
	margin: 0 10px;
}

body.kikori.page-template-contact .mainbox > div:first-child > div:last-child h2 {
	font-style: normal;
	font-size: 2.6rem;
	font-family: inherit !important;
	margin-bottom: 2rem;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form {
	--ec-form-gap: 0;
	--ec-form-field-border: 1px solid #ccc;
	--ec-form-field-radius: 0;
	--ec-form-field-padding: 0.5rem 0.75rem;
	--ec-form-field-bg: #fff;
	--ec-form-submit-bg: #fff;
	--ec-form-submit-color: #000;
	--ec-form-submit-radius: 0;
	--ec-form-submit-padding: 20px 80px;
	display: block;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-page {
	display: block;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-field {
	margin-bottom: 1.5rem;
	width: 100%;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-label {
	display: block;
	font-size: 1.4rem;
	font-weight: 400;
	margin-bottom: 0.35rem;
	line-height: 1.6;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-input,
body.kikori.page-template-contact .kikori-contact-form .ec-form textarea {
	width: 100%;
	max-width: 100%;
	font-size: 1.4rem;
	line-height: 1.5;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form textarea {
	min-height: 12rem;
	resize: vertical;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-input:focus,
body.kikori.page-template-contact .kikori-contact-form .ec-form textarea:focus {
	outline: 1px solid #000;
	outline-offset: 0;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-error {
	font-size: 1.2rem !important;
	line-height: 1.5;
	min-height: 1.5em;
	margin-top: 0.35rem;
	color: #c00 !important;
	font-weight: 600;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-input:invalid,
body.kikori.page-template-contact .kikori-contact-form .ec-form textarea:invalid {
	border-color: #c00;
}

/* .border-btn + .border-btn input (child theme) */
body.kikori.page-template-contact .kikori-contact-form .ec-form-turnstile {
	display: flex;
	justify-content: center;
	margin: 2rem 0 0;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-nav {
	width: 100%;
	text-align: center;
	margin: 5% 0;
	display: block;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-prev,
body.kikori.page-template-contact .kikori-contact-form .ec-form-next {
	display: none !important;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-submit {
	border: 2px solid #000 !important;
	background: #fff !important;
	color: #000 !important;
	padding: 20px 80px !important;
	font-size: 1.4rem !important;
	font-weight: 700 !important;
	border-radius: 0 !important;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
	line-height: 1.2;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-submit:hover {
	opacity: 0.85;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-status {
	margin: 2em 0.5em 1em;
	padding: 0.2em 1em;
	border: 2px solid #46b450;
	font-size: 1.4rem;
	line-height: 1.6;
}

body.kikori.page-template-contact .kikori-contact-form .ec-form-status:empty {
	display: none;
	border: none;
	margin: 0;
	padding: 0;
}

@media screen and (max-width: 768px) {
	body.kikori.page-template-contact .breadcrumb {
		position: static !important;
		transform: none !important;
		white-space: normal;
		left: auto !important;
		margin-left: 0 !important;
	}

	body.kikori.page-template-contact .breadcrumb span::before {
		content: "/" !important;
		width: auto !important;
		height: auto !important;
		background: transparent !important;
	}

	body.kikori.page-template-contact .mainbox {
		padding: 5% !important;
	}

	body.kikori.page-template-contact .kikori-contact-form .ec-form-submit {
		padding: 16px 48px !important;
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}
}
