/* Shared navigation and editorial components. */
.c-skip-link { position: absolute; inset-block-start: 8px; inset-inline-start: 8px; z-index: 100; padding: 12px 24px; background: var(--color-bg); border: 2px solid var(--color-text); transform: translateY(-200%); }
.c-skip-link:focus { transform: none; }
.c-nav-toggle { display: none; width: min(8rem, 100%);}
.c-menu, .c-menu .sub-menu { list-style: none; padding: 0; }
.c-menu { display: flex; flex-wrap: wrap; gap: 0 var(--space-3); }
.c-menu li { position: relative; }
.c-menu a { display: block; padding-block: 10px; font-size: .875rem; text-decoration: none; }
.c-menu a:hover, .c-menu a:focus-visible { text-decoration: underline; }
.c-menu .sub-menu { display: none; position: absolute; inset-block-start: 100%; inset-inline-start: 0; z-index: 10; min-width: 224px; max-width: 300px; padding: var(--space-2); border: 1px solid var(--color-line); background: var(--color-bg); }
.c-menu > li:last-child > .sub-menu { inset-inline-start: auto; inset-inline-end: 0; }
.c-menu li:hover > .sub-menu, .c-menu li:focus-within > .sub-menu { display: block; }
.c-menu .sub-menu .sub-menu { position: static; display: block; min-width: 0; padding: 0 0 0 var(--space-2); border: 0; }
.c-section-heading__title { font-size: var(--font-size-h2); letter-spacing: -.02em; }
.c-section-heading__title--ja { max-width: 12em; }
.c-section-heading__subtitle { margin-block-start: var(--space-1); font-size: .875rem; color: var(--color-muted); }
.c-text-link { display: inline-block; padding-block: var(--space-1); font-weight: var(--font-weight); }
.c-post-list { padding: 0; list-style: none; }
.c-post-list__item { padding-block: var(--space-3); border-block-end: 1px solid var(--color-line); }
.c-post-list__item:first-child { padding-block-start: 0; }
.c-post-list__meta { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-block-end: var(--space-1); font-size: var(--font-size-small); color: var(--color-muted); }
.c-post-list h3 { font-size: 1.125rem; font-weight: var(--font-weight); }
.c-post-list a { text-decoration: none; }
.c-post-list a:hover, .c-post-list a:focus-visible { text-decoration: underline; }
.c-faq__item { border-block-end: 1px solid var(--color-line); padding-block: var(--space-3); }
.c-faq__item:first-child { padding-block-start: 0; }
.c-faq__question { font-weight: var(--font-weight); padding-block: var(--space-1); }
.c-faq__answer { margin-block-start: var(--space-2); }
@media (max-width: 63.99rem) {
	.c-nav-toggle:not([hidden]) { display: block; }
	.c-nav-toggle[aria-expanded="false"] + [data-enhanced="true"] { display: none; }
	.c-menu { flex-direction: column; gap: 0; background-color: #ffffffee }
	.c-menu > li { border-block-start: 1px solid var(--color-line); }
	.c-menu a { padding: 12px 0;}
	.c-menu .sub-menu { position: static; display: block; min-width: 0; max-width: none; border: 0; padding: 0 0 var(--space-1) var(--space-2); background: unset; }
}

.l-footer .c-menu { gap: 0 var(--space-3); }
.l-footer .c-menu .sub-menu { position: static; display: block; min-width: 0; max-width: none; padding: 0 0 0 var(--space-2); border: 0; }

@media (min-width: 64rem) { .l-header__nav li[data-submenu-dismissed] > .sub-menu { display: none; } }

.c-text-link:hover, .c-text-link:focus-visible { text-decoration-thickness: 2px; }
.c-faq__item:last-child { border-block-end: 0; }

/* Featured media: ratios live here; no empty frame when no image is set. */
.c-post-thumbnail { margin: 0 0 var(--space-2); }
.c-post-thumbnail__img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.c-page-header__title { margin: 0; overflow-wrap: anywhere; }
.c-page-header__image { margin: var(--space-3) 0 0; }
.c-page-header__img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }

/* Plain visible navigation and read-only post TOC. */
.c-breadcrumb { padding-block: var(--space-2); font-size: var(--font-size-small); }
.c-breadcrumb__list { display: flex; flex-wrap: wrap; gap: var(--space-1); list-style: none; padding: 0; margin: 0; }
.c-breadcrumb__item { min-width: 0; overflow-wrap: anywhere; }
.c-breadcrumb__item + .c-breadcrumb__item::before { content: "/"; margin-inline-end: var(--space-1); color: var(--color-muted); }
.c-toc { border: 1px solid var(--color-line); }
.c-toc .toc__title { font-weight: var(--font-weight); }
.c-toc .toc__title small { font-size: var(--font-size-small); font-weight: 400; }
/* .c-toc .toc__list { margin-block-start: var(--space-2); } */
.c-toc .toc__item--h3 { margin-inline-start: var(--space-2); }

/* Single-post author information; empty fields add no placeholder boxes. */
.c-post-meta { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); margin-block-start: var(--space-2); color: var(--color-muted); font-size: var(--font-size-small); }
.c-author { margin-block-start: var(--space-6); padding-block: var(--space-3); border-block-start: 1px solid var(--color-line); }
.c-author--with-image { display: grid; grid-template-columns: 96px minmax(0,1fr); gap: var(--space-3); align-items: start; }
.c-author__image { display: block; width: 96px; height: 96px; object-fit: cover; }
.c-author__content { min-width: 0; overflow-wrap: anywhere; }
.c-author__label { color: var(--color-muted); font-size: var(--font-size-small); }
.c-author__name { margin-block-start: var(--space-1); font-size: var(--font-size-base); }
.c-author__bio, .c-author__links { margin-block-start: var(--space-2); }
.c-author__bio > * + * { margin-block-start: var(--space-1); }
@media (max-width: 47.99rem) { .c-author--with-image { grid-template-columns: minmax(0,1fr); gap: var(--space-2); } }

/* Category copy precedes the archive cards. */
.c-category-content { margin-block: var(--space-3) var(--space-4); }

/* Archive pagination: WordPress keeps all URL and current-page logic. */
.c-pagination { margin-block-start: var(--space-6); }
.c-pagination .nav-links { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: var(--space-1); }
.c-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: var(--space-1); border: 1px solid var(--color-line); line-height: 1.25; text-decoration: none; }
.c-pagination .page-numbers.current { color: var(--color-bg); background: var(--color-text); border-color: var(--color-text); font-weight: var(--font-weight); }
.c-pagination a.page-numbers:hover { color: var(--color-bg); background: var(--color-text); border-color: var(--color-text); }
.c-pagination a.page-numbers:focus-visible { outline: 2px solid var(--color-text); outline-offset: 3px; }
.c-pagination .page-numbers.dots { min-width: 0; border-color: transparent; }
.c-pagination .screen-reader-text { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Keep the hidden search label from inheriting the block's full width. */
.wp-block-search__label.screen-reader-text { width: 1px; }

/* Lower-page list cards: singular pages and homepage cards remain unchanged. */
.c-entry--card { position: relative; padding: var(--space-3); border: 1px solid var(--color-line); background: var(--color-bg); }
.c-entry--card + .c-entry--card { margin-block-start: var(--space-4); }
.c-entry--card:hover { border-color: var(--color-muted); }
.c-entry--card .c-entry__link::after { content: ""; position: absolute; inset: 0; }
.c-entry--card .c-entry__link:focus-visible { outline: none; }
.c-entry--card .c-entry__link:focus-visible::after { outline: 3px solid var(--color-text); outline-offset: 4px; }
/* Preserve separately linked excerpts supplied by existing filters. */
.c-entry--card a:not(.c-entry__link) { position: relative; z-index: 1; }
@media (max-width: 47.99rem) { .c-entry--card { padding: var(--space-2); } }
