/*
 * Styles for markup produced by WordPress itself: post content, pagination,
 * comments, WPForms, accessibility helpers. Visual language follows signal.css.
 */

.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 !important; width: 1px; word-wrap: normal !important; }
.skip-link:focus { clip: auto; clip-path: none; height: auto; width: auto; margin: 0; z-index: 2000; top: 8px; left: 8px; padding: 12px 18px; background: var(--cs-paper); color: var(--cs-ink); font-size: 13px; }

/* ---------- Article body (block editor + classic content) ---------- */
.entry-content { min-width: 0; }
.entry-content > * { margin-block: 25px; }
.entry-content > :first-child { margin-top: 0; }
.entry-content p { font-size: 17px; line-height: 1.95; }
.entry-content > p:first-child.is-style-lead, .entry-content .article-lead { font-size: 22px; line-height: 2; }
.entry-content h2 { margin: 64px 0 22px; font-size: 26px; line-height: 1.55; scroll-margin-top: 24px; }
.entry-content h3 { margin: 44px 0 16px; font-size: 20px; line-height: 1.6; scroll-margin-top: 24px; }
.entry-content h4 { margin: 35px 0 15px; font-size: 17px; }
.entry-content a:not(.action):not(.wp-block-button__link) { color: #a13b11; text-decoration: underline; text-underline-offset: 4px; }
.entry-content ul, .entry-content ol { padding-left: 1.4em; font-size: 17px; line-height: 1.95; }
.entry-content blockquote, .entry-content .wp-block-quote { border-left: 3px solid var(--cs-orange); margin: 45px 0; padding: 0 0 0 35px; }
.entry-content blockquote p { font-size: 26px; line-height: 1.7; }
.entry-content blockquote cite { display: block; margin-top: 12px; font: 11px var(--cs-font-mono); font-style: normal; color: #5f5f58; }
.entry-content figure { margin: 50px 0; }
.entry-content figure img { background: #ddd6c8; }
.entry-content .wp-caption { max-width: 100%; }
.entry-content figcaption, .entry-content .wp-element-caption, .wp-caption-text, .gallery-caption { font-size: 13px; line-height: 1.7; margin-top: 12px; color: #4d4d47; text-align: left; }
.entry-content img { height: auto; }
.entry-content .alignleft { float: left; margin: 8px 30px 20px 0; max-width: 50%; }
.entry-content .alignright { float: right; margin: 8px 0 20px 30px; max-width: 50%; }
.entry-content .aligncenter { margin-inline: auto; }
.entry-content::after { content: ''; display: table; clear: both; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: 14px; }
/* Wide tables and code scroll sideways inside their own box, never the page. */
.entry-content .wp-block-table { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry-content .wp-block-table table { width: max-content; min-width: 100%; }
.entry-content .wp-block-table td, .entry-content .wp-block-table th { max-width: 22em; }
.entry-content > table { display: block; overflow-x: auto; }
.entry-content > * { max-width: 100%; }
.entry-content .wp-block-gallery img { background: none; }
.entry-content th, .entry-content td { border-bottom: 1px solid #7776; padding: 12px 10px; text-align: left; vertical-align: top; }
.entry-content pre, .entry-content code { font-family: var(--cs-font-mono); font-size: 13px; }
.entry-content pre { background: #1b1e18; color: var(--cs-paper); padding: 20px; overflow-x: auto; }
.entry-content iframe, .entry-content video { max-width: 100%; }
.entry-content .wp-block-embed__wrapper iframe { width: 100%; aspect-ratio: 16 / 9; height: auto; }
.entry-content hr { border: 0; border-top: 1px solid #7776; margin: 50px 0; }
.entry-content .wp-block-button__link { background: var(--cs-action); color: #fff; border-radius: 0; padding: 17px 25px; font-size: 13px; }
@media (max-width: 600px) {
	.entry-content p, .entry-content ul, .entry-content ol { font-size: 16px; line-height: 1.9; }
	.entry-content .article-lead { font-size: 18px; }
	.entry-content h2 { font-size: 22px; margin-top: 52px; }
	.entry-content h3 { font-size: 18px; }
	.entry-content blockquote p { font-size: 22px; }
	.entry-content .alignleft, .entry-content .alignright { float: none; margin: 30px 0; max-width: 100%; }
}

/* Philosophy / policy columns reuse editor content with the SIGNAL rhythm. */
.philosophy .entry-content p { font-size: 16px; line-height: 2; }
.philosophy .entry-content > * { margin-block: 0; }
.philosophy .entry-content > * + * { margin-top: 22px; }
.policy-section .entry-content p { font-size: 16px; line-height: 2; }
.policy-section .entry-content h2 { font-size: 24px; margin: 38px 0 20px; }
.policy-section .notice-meta { font: 11px var(--cs-font-mono); color: #5f5f58; margin: 18px 0 30px; }
.policy-section > h2 { font-size: 26px; line-height: 1.6; margin: 30px 0 0; }
@media (max-width: 600px) { .policy-section .entry-content h2 { font-size: 22px; } }

/* Core classes: sticky posts are not highlighted in SIGNAL lists; post-author comments get a rule. */
.sticky { position: relative; }
.article-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; font: 12px var(--cs-font-mono); }
.article-tags a { border: 1px solid #26292150; padding: 6px 12px; }
.article-tags a:hover { border-color: var(--cs-orange); }

/* ---------- Pagination / post navigation ---------- */
.pagination { margin-top: 50px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.pagination .page-numbers { display: inline-block; min-width: 44px; text-align: center; padding: 12px 16px; border: 1px solid #26292150; font: 12px var(--cs-font-mono); }
.pagination .page-numbers.current { background: #1a1c18; color: var(--cs-paper); }
.pagination a.page-numbers:hover { border-color: var(--cs-orange); }
.post-pager { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; padding: 0 7% 70px; background: var(--cs-paper); color: var(--cs-ink); }
.post-pager a { display: block; border-top: 1px solid #7776; padding-top: 18px; font-size: 15px; line-height: 1.7; }
.post-pager a:hover { color: #a13b11; }
.post-pager small { display: block; font-size: 12px; margin-bottom: 8px; color: #5f5f58; }
.post-pager .next { text-align: right; grid-column: 2; }
@media (max-width: 600px) { .post-pager { grid-template-columns: 1fr; } .post-pager .next { grid-column: auto; text-align: left; } }

/* ---------- Comments (only shown when open or existing comments are present) ---------- */
.comments-area { padding: 70px 7% 90px; background: var(--cs-paper); color: var(--cs-ink); border-top: 1px solid #7774; }
.comments-area > * { max-width: 760px; margin-left: auto; margin-right: auto; }
.comments-head { margin-bottom: 34px; }
.comments-head .eyebrow { margin-bottom: 12px; }
.comments-head h2 { display: flex; align-items: baseline; gap: 14px; font-size: 26px; line-height: 1.5; }
.comments-count { font: 600 40px/1 var(--cs-font-display); color: var(--cs-orange-deep); letter-spacing: -1px; }
.comments-closed { font-size: 13px; color: #5f5f58; margin-top: 30px; }

.comment-list, .comment-list .children { list-style: none; margin-block: 0; padding: 0; }
.comment-list > li { border-top: 1px solid #7775; }
.comment-list > li:last-child { border-bottom: 1px solid #7775; }
.comment-list .children { margin-left: 22px; padding-left: 26px; border-left: 1px solid #7775; }
.comment-body { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 18px; padding: 26px 0; }
.comment-avatar { width: 40px; height: 40px; display: grid; place-items: center; background: #1b1e18; color: var(--cs-cream); font: 900 15px/1 var(--cs-font-logo); }
.bypostauthor > .comment-body .comment-avatar { background: var(--cs-brand); color: #111; }
.comment-body.is-ping .comment-avatar { background: transparent; border: 1px solid #7777; color: #5f5f58; }
.comment-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-bottom: 10px; }
.comment-author { font-size: 14px; font-weight: 700; }
.comment-author a { border-bottom: 1px solid; }
.comment-badge { font: 10px/1 var(--cs-font-mono); letter-spacing: 1.5px; padding: 5px 8px; background: var(--cs-brand); color: #111; }
.comment-badge.is-muted { background: transparent; border: 1px solid #7777; color: #5f5f58; }
.comment-time { font: 11px var(--cs-font-mono); color: #5f5f58; }
.comment-time:hover { color: var(--cs-orange-deep); }
.comment-content p { font-size: 14px; line-height: 2; margin: 0; }
.comment-content p + p { margin-top: 14px; }
.comment-content a { color: var(--cs-orange-deep); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.comment-awaiting { font-size: 12px; color: var(--cs-orange-deep); margin-bottom: 8px; }
.comment-actions { display: flex; gap: 18px; margin-top: 14px; font-size: 12px; }
.comment-reply-link { display: inline-flex; align-items: center; gap: 6px; padding: 7px 14px; border: 1px solid #26292160; transition: background .2s, color .2s, border-color .2s; }
.comment-reply-link:hover, .comment-reply-link:focus-visible { background: #1b1e18; color: var(--cs-paper); border-color: #1b1e18; }
.comment-edit-link { align-self: center; color: #5f5f58; border-bottom: 1px solid; }

/* Reply form: dark panel in the same language as the article call to action.
   comment-reply.js moves it under the comment being answered. */
.signal-respond { margin-top: 50px; background: #1b1e18; color: var(--cs-paper); padding: 40px; color-scheme: dark; }
.comment-list .signal-respond { margin: 4px 0 28px; }
.respond-head { margin-bottom: 26px; }
.respond-head .eyebrow { margin-bottom: 12px; }
.signal-respond .orange { color: var(--cs-orange-text); }
.comment-reply-title { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; font-size: 24px; line-height: 1.5; }
.cancel-reply a { display: inline-block; font: 400 12px var(--cs-font-jp); color: var(--cs-paper); border: 1px solid #ffffff55; padding: 7px 14px; }
.cancel-reply a:hover { border-color: var(--cs-orange-text); color: var(--cs-orange-text); }
.signal-respond .comment-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.signal-respond .comment-form > * { margin: 0; grid-column: 1 / -1; }
.signal-respond .comment-form-author, .signal-respond .comment-form-email, .signal-respond .comment-form-url { grid-column: auto; }
.signal-respond .comment-notes, .signal-respond .logged-in-as { font-size: 12px; color: #b8b9ad; line-height: 1.8; }
.signal-respond .logged-in-as a { color: var(--cs-paper); border-bottom: 1px solid; }
.signal-respond .required { color: var(--cs-orange-text); }
.signal-respond label { display: block; font-size: 12px; margin-bottom: 8px; color: #d1cbbd; }
.signal-respond input:not([type=checkbox]):not([type=submit]), .signal-respond textarea { width: 100%; border: 1px solid #5d5f55; background: #11130f; color: var(--cs-paper); padding: 13px 14px; font: 14px/1.8 var(--cs-font-jp); border-radius: 0; color-scheme: dark; }
.signal-respond textarea { height: 132px; min-height: 96px; resize: vertical; }
.signal-respond :is(input, textarea):focus-visible { outline: 2px solid var(--cs-orange-text); outline-offset: 2px; border-color: var(--cs-orange-text); }
.signal-respond .comment-form-cookies-consent { display: flex; align-items: flex-start; gap: 10px; }
.signal-respond .comment-form-cookies-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--cs-orange-text); flex-shrink: 0; }
.signal-respond .comment-form-cookies-consent label { margin: 0; font-size: 12px; line-height: 1.7; color: #b8b9ad; }
.signal-respond .form-submit { margin-top: 6px; }
.signal-respond .submit { border: 0; cursor: pointer; font-family: var(--cs-font-jp); }
@media (max-width: 760px) {
	.signal-respond { padding: 26px 22px; }
	.signal-respond .comment-form { grid-template-columns: minmax(0, 1fr); }
	.comment-reply-title { font-size: 20px; }
	.comment-list .children { margin-left: 8px; padding-left: 16px; }
	.comment-body { grid-template-columns: 32px minmax(0, 1fr); gap: 14px; }
	.comment-avatar { width: 32px; height: 32px; font-size: 12px; }
	.comments-head h2 { font-size: 22px; }
}

/* ---------- Search form ---------- */
.search-form { display: flex; gap: 8px; max-width: 520px; margin-top: 25px; }
.search-form input[type=search] { flex: 1; min-width: 0; border: 1px solid #87877a; background: #faf7ef; color: var(--cs-ink); padding: 12px 14px; font: 14px var(--cs-font-jp); color-scheme: light; }
.search-form button { background: var(--cs-action); color: #fff; padding: 0 20px; font-size: 13px; }

/* ---------- WPForms inside the SIGNAL contact panel ---------- */
.contact-panel .wpforms-container {
	--wpforms-field-border-color: #87877a;
	--wpforms-field-background-color: #faf7ef;
	--wpforms-field-text-color: #191a18;
	--wpforms-label-color: #191a18;
	--wpforms-label-sublabel-color: #65665b;
	--wpforms-label-error-color: #a13b11;
	--wpforms-button-background-color: #bc4c00;
	--wpforms-button-text-color: #ffffff;
	--wpforms-field-border-radius: 0px;
	--wpforms-button-border-radius: 0px;
	--wpforms-field-size-font-size: 14px;
	--wpforms-label-size-font-size: 13px;
	margin: 0;
	font-family: var(--cs-font-jp);
}
.contact-panel .wpforms-field-label { font-size: 13px; font-weight: 500; margin-bottom: 10px; }
.contact-panel .wpforms-required-label { color: var(--cs-orange-deep); font-size: 10px; }
.contact-panel .wpforms-form input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=hidden]),
.contact-panel .wpforms-form select,
.contact-panel .wpforms-form textarea {
	width: 100%; max-width: 100%; border: 1px solid #87877a; background: #faf7ef; color: #191a18; padding: 14px; font: 14px/1.7 var(--cs-font-jp); border-radius: 0; color-scheme: light; height: auto; min-height: 50px;
}
.contact-panel .wpforms-form textarea { min-height: 180px; resize: vertical; }
.contact-panel .wpforms-form select { appearance: none; padding-right: 44px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23191a18' stroke-width='1.6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 16px center; }
.contact-panel .wpforms-form :is(input, select, textarea):focus-visible { outline: 2px solid var(--cs-action); outline-offset: 3px; }
.contact-panel .wpforms-form input[type=checkbox] { accent-color: var(--cs-action); width: 18px; height: 18px; }
/* Error messages sit in reserved space so showing/hiding them never shifts the
   fields below (a shift between mousedown and mouseup made clicks miss). */
.contact-panel .wpforms-form .wpforms-field { position: relative; padding: 0 0 34px; }
/* !important on layout only: WPForms' own stylesheet sets these with higher specificity. */
.contact-panel .wpforms-container .wpforms-form .wpforms-field :is(label, em).wpforms-error { position: absolute !important; left: 0; bottom: 10px !important; margin: 0 !important; padding: 0 !important; color: var(--cs-orange-deep); font-size: 12px; line-height: 1.4; font-style: normal; }
.contact-panel .wpforms-form .wpforms-submit,
.contact-panel .cs-form-button {
	display: inline-flex; gap: 35px; justify-content: space-between; align-items: center; background: var(--cs-action); color: #fff; padding: 17px 25px; font-size: 13px; border: 0; border-radius: 0; height: auto; cursor: pointer; font-family: var(--cs-font-jp);
}
.contact-panel .wpforms-error-container, .contact-panel .wpforms-error-alert { color: var(--cs-orange-deep); border: 1px solid currentColor; background: #fff3ec; padding: 14px 16px; font-size: 13px; }
.contact-panel .wpforms-confirmation-container-full, .contact-panel div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) { background: transparent; border: 0; border-left: 3px solid var(--cs-orange); padding: 6px 0 6px 24px; color: var(--cs-ink); font-size: 14px; line-height: 2; }
.contact-panel .wpforms-confirmation-container-full p { margin: 0 0 12px; }

/* Review step added by signal.js (入力 → 確認 → 完了). */
.contact-review { margin: 0 0 30px; }
.contact-review h2 { font-size: 24px; margin-bottom: 10px; }
.contact-review dl { margin: 0; }
.contact-review dt { font-size: 11px; color: #5f5a4e; padding-top: 20px; }
.contact-review dd { margin: 8px 0 0; padding-bottom: 20px; border-bottom: 1px solid #7774; line-height: 1.9; white-space: pre-wrap; overflow-wrap: anywhere; }
.contact-review-actions { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; }
.contact-review-actions .text-link { background: transparent; }
.contact-notice { font-size: 12px; margin-bottom: 25px; }
.contact-privacy { margin-top: 20px; }
.contact-privacy a { border-bottom: 1px solid; padding-bottom: 2px; }
.contact-order-note { margin-top: 30px; font-size: 12px; }
.archive-intro { margin-bottom: 30px; }
.search-spacer { height: 40px; }
.contact-missing-form { border-left: 3px solid var(--cs-orange); padding: 14px 20px; background: #e7dfcd; font-size: 13px; }
