/*
Theme Name: Jobless Cats
Theme URI: https://joblesscats.com
Description: Child theme of Twenty Twenty-Five for joblesscats.com. Résumé/portfolio layout with job hunt case files and household memos.
Author: WYM
Template: twentytwentyfive
Version: 1.4.3
Requires at least: 6.6
Requires PHP: 7.4
Text Domain: joblesscats
License: GNU General Public License v2 or later
*/

/* ---------- Tokens (mapped from theme.json presets) ---------- */
:root {
	--jc-ink: var(--wp--preset--color--contrast);
	--jc-ground: var(--wp--preset--color--base);
	--jc-paper: var(--wp--preset--color--paper);
	--jc-line: var(--wp--preset--color--line);
	--jc-muted: var(--wp--preset--color--muted);
	--jc-lexie: var(--wp--preset--color--lexie);
	--jc-lexie-soft: var(--wp--preset--color--lexie-soft);
	--jc-tilly: var(--wp--preset--color--tilly);
	--jc-tilly-soft: var(--wp--preset--color--tilly-soft);
	--jc-tilly-ink: var(--wp--preset--color--tilly-ink);
	--jc-stamp: #B3261E;
	--jc-serif: var(--wp--preset--font-family--cormorant);
	--jc-sans: var(--wp--preset--font-family--inter);
	--jc-radius: 12px;
}

/* ---------- Shared bits ---------- */
:where(a):focus-visible,
:where(button):focus-visible {
	outline: 2px solid var(--jc-tilly-ink);
	outline-offset: 3px;
}

.jc-eyebrow,
.jh-label,
.jc-section-label {
	font-family: var(--jc-sans);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--jc-muted);
	margin: 0;
}

/* Hunt number from post meta: stored as "1", shown as "Job hunt #1" */
.jc-hunt-number::before { content: "Job hunt #"; }
.jc-hunt-number:empty { display: none; }

/* ---------- Header ---------- */
.jc-header {
	background: var(--jc-paper);
	border-bottom: 1px solid var(--jc-line);
}
.jc-header .wp-block-site-title {
	font-family: var(--jc-serif);
	font-size: 1.75rem;
	font-weight: 600;
	margin: 0;
}
.jc-header .wp-block-site-title a { text-decoration: none; color: var(--jc-ink); }
.jc-header .wp-block-navigation { font-size: 0.9375rem; font-weight: 500; }
.jc-header .wp-block-navigation a { text-decoration: none; }
.jc-header .wp-block-navigation a:hover,
.jc-header .wp-block-navigation .current-menu-item > a { text-decoration: underline; text-underline-offset: 6px; }

/* ---------- Footer ---------- */
.jc-footer {
	border-top: 1px solid var(--jc-line);
	font-size: 0.9375rem;
}
.jc-footer h2 { font-family: var(--jc-sans); font-size: 0.9375rem; font-weight: 600; margin: 0 0 0.5rem; }
.jc-footer a { text-decoration: none; }
.jc-footer a:hover,
.jc-footer a:focus-visible { text-decoration: underline; text-underline-offset: 6px; }
.jc-footer .jc-footer-line { color: var(--jc-muted); font-size: 0.875rem; max-width: 18rem; }

/* ---------- Term pills (candidate + status) ---------- */
.wp-block-post-terms.taxonomy-candidate a,
.wp-block-post-terms.taxonomy-hunt_status a {
	display: inline-block;
	font-family: var(--jc-sans);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.4;
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	text-decoration: none;
}
.wp-block-post-terms.taxonomy-candidate a { background: var(--jc-lexie-soft); color: #2E3137; }
.candidate-tilly .wp-block-post-terms.taxonomy-candidate a { background: var(--jc-tilly-soft); color: var(--jc-tilly-ink); }
.wp-block-post-terms.taxonomy-hunt_status a { background: var(--jc-ink); color: #FFFFFF; }
.hunt_status-hired .wp-block-post-terms.taxonomy-hunt_status a { background: #1E6B3A; }
.wp-block-post-terms a:hover { text-decoration: underline; }

/* ---------- Homepage hero ---------- */
.jc-hero h1 {
	font-size: clamp(3rem, 7vw, 5.25rem);
	font-weight: 500;
	line-height: 1.05;
	margin: 0;
}
.jc-hero .jc-tagline { font-size: 1.375rem; color: var(--jc-lexie); margin-top: 1rem; }
.jc-hero .jc-intro { font-size: 0.9375rem; color: var(--jc-muted); max-width: 34rem; }

/* ---------- Candidate cards ---------- */
.jc-candidates { gap: 1.5rem; }
.jc-candidate {
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-top: 6px solid var(--jc-lexie);
	border-radius: var(--jc-radius);
	padding: 1.75rem;
	height: 100%;
	box-sizing: border-box;
}
.jc-candidate--tilly { border-top-color: var(--jc-tilly); }
.jc-candidate { --jc-accent: var(--jc-lexie); display: flex; flex-direction: column; align-items: center; text-align: center; }
.jc-candidate--tilly { --jc-accent: var(--jc-tilly); }
.jc-candidate .jc-headshot,
.jc-candidate .wp-block-image { margin: 0 0 1rem; }
.jc-candidate h3 { font-size: 2.25rem; font-weight: 600; line-height: 1.1; margin: 0.5rem 0; }
.jc-candidate p { margin: 0.5rem 0 0; max-width: 24rem; }
.jc-open {
	display: inline-block;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.25rem 0.625rem;
	border-radius: 999px;
	background: var(--jc-lexie-soft);
	color: #2E3137;
}
.jc-candidate--tilly .jc-open { background: var(--jc-tilly-soft); color: var(--jc-tilly-ink); }
.jc-candidate .jc-resume-link a { font-weight: 600; font-size: 0.9375rem; color: #2E3137; }
.jc-candidate--tilly .jc-resume-link a { color: var(--jc-tilly-ink); }

/* ---------- Search stats (shortcode) ---------- */
.jc-stats {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 3rem;
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: var(--jc-radius);
	padding: 1.25rem 1.75rem;
}
.jc-stat { display: flex; align-items: baseline; gap: 0.5rem; color: var(--jc-lexie); font-size: 0.9375rem; }
.jc-stat__num { font-family: var(--jc-serif); font-size: 2rem; font-weight: 600; color: var(--jc-ink); }

/* ---------- Job hunt cards (query loops) ---------- */
.jc-hunts-band {
	background: var(--jc-paper);
	border-top: 1px solid var(--jc-line);
}
/* The footer's top border is the only line between the page and the footer.
   Remove the theme's default gap so the band (or page) meets it directly. */
.wp-site-blocks > footer.wp-block-template-part,
.wp-site-blocks > .wp-block-template-part:last-child { margin-block-start: 0; }
.jc-hunt-cards .wp-block-post {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	background: var(--jc-ground);
	border: 1px solid var(--jc-line);
	border-top: 6px solid var(--jc-line);
	border-radius: var(--jc-radius);
	padding: 1.5rem;
}
.jc-hunt-cards .wp-block-post.candidate-lexie { border-top-color: var(--jc-lexie); }
.jc-hunt-cards .wp-block-post.candidate-tilly { border-top-color: var(--jc-tilly); }
.jc-hunt-cards .wp-block-post > * { margin: 0; }
.jc-hunt-cards .wp-block-post-title { font-size: 2rem; font-weight: 600; line-height: 1.1; }
.jc-hunt-cards .wp-block-post-title a { text-decoration: none; }
.jc-hunt-cards .wp-block-post-title a:hover { text-decoration: underline; }
.jc-hunt-cards .wp-block-post-excerpt {
	border-top: 1px solid var(--jc-line);
	padding-top: 0.875rem;
	font-size: 0.9375rem;
	color: var(--jc-lexie);
}
.jc-hunt-cards .wp-block-post-excerpt__excerpt { white-space: pre-line; margin: 0; }
.jc-hunt-cards .wp-block-post-date { font-size: 0.875rem; color: var(--jc-muted); }
.jc-chips { gap: 0.5rem; }

/* ---------- Single job hunt ---------- */
.jc-back a { font-size: 0.875rem; font-weight: 500; color: var(--jc-muted); text-decoration: none; }
.jc-back a:hover { text-decoration: underline; }
.jc-single .wp-block-post-title { font-size: clamp(3rem, 7vw, 4.5rem); font-weight: 500; line-height: 1.05; }
.jc-single .wp-block-post-date { font-size: 0.875rem; color: var(--jc-muted); }

.jh-section { margin-block: 3.5rem 0; }
.jh-section > .jh-label { margin-bottom: 1rem; }

/* Letters written by a candidate */
.jh-letter {
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: 4px;
	padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.25rem, 4vw, 2.75rem);
	font-family: var(--jc-serif);
	font-size: 1.3125rem;
	line-height: 1.55;
}
.jh-letter p { margin: 0 0 1rem; }
.jh-letter p:last-child { margin-bottom: 0; }
.jh-letter .jh-signature { font-size: 1.75rem; font-weight: 600; color: #2E3137; margin-top: -0.75rem; }

/* Interview transcript: start each paragraph with the speaker in bold */
.jh-transcript {
	border-top: 2px solid var(--jc-ink);
	border-bottom: 1px solid var(--jc-line);
	padding: 1.75rem 0;
	font-size: 1.0625rem;
}
.jh-transcript p {
	margin: 0 0 1rem;
	padding-left: 6.75rem;
	text-indent: -6.75rem;
	font-weight: 500;
}
.jh-transcript p:last-child { margin-bottom: 0; }
/* Interviewer lines alternate with the candidate's: odd = panel, muted */
.jh-transcript p:nth-of-type(odd) { color: #4A4D54; font-weight: 400; }
.jh-transcript p > strong:first-child {
	display: inline-block;
	width: 6.75rem;
	text-indent: 0;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--jc-muted);
	vertical-align: 0.1em;
}
.jh-transcript p:nth-of-type(even) > strong:first-child { color: #2E3137; }

/* Employer response on letterhead, with status stamp */
.jh-official {
	position: relative;
	overflow: hidden;
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: 4px;
	padding: clamp(1.5rem, 4vw, 2.25rem) clamp(1.25rem, 4vw, 2.75rem) 2.5rem;
	color: #2E3137;
}
.jh-official p { margin: 0 0 1rem; }
.jh-official p:last-child { margin-bottom: 0; }
.jh-official .jh-letterhead {
	font-size: 0.875rem;
	font-weight: 600;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--jc-ink);
	border-bottom: 1px solid var(--jc-ink);
	padding-bottom: 0.875rem;
	margin-bottom: 1.75rem;
}
.jh-official::after {
	position: absolute;
	top: 5.5rem;
	right: 2rem;
	transform: rotate(-12deg);
	border: 3px solid var(--jc-stamp);
	color: var(--jc-stamp);
	border-radius: 6px;
	padding: 0.4rem 1rem;
	font-size: 1.375rem;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	opacity: 0.85;
	pointer-events: none;
}
/* Empty alt text ("") keeps the decorative stamp out of screen readers */
.hunt_status-not-hired .jh-official::after { content: "Not hired"; content: "Not hired" / ""; }
.hunt_status-ghosted .jh-official::after { content: "Ghosted"; content: "Ghosted" / ""; border-color: var(--jc-muted); color: var(--jc-muted); }
.hunt_status-hired .jh-official::after { content: "Hired"; content: "Hired" / ""; border-color: #1E6B3A; color: #1E6B3A; }

/* Closing status strip */
.jc-status-strip {
	background: var(--jc-ink);
	color: #FFFFFF;
	border-radius: 8px;
	padding: 1.25rem 1.75rem;
	gap: 0.75rem 1.25rem;
	margin-top: 3.5rem;
}
.jc-status-strip > * { margin: 0; }
.jc-status-strip .jc-status-label { font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: #C9CACD; }
.jc-status-strip .wp-block-post-terms.taxonomy-hunt_status a { background: #FFFFFF; color: var(--jc-ink); }
.jc-status-strip .jc-status-note { font-size: 1.125rem; color: #E7E8EA; }
.jc-status-strip .jc-status-note:empty { display: none; }

.jc-post-nav {
	border-top: 1px solid var(--jc-line);
	padding-top: 1.75rem;
	margin-top: 2.5rem;
	gap: 1rem;
	font-size: 0.9375rem;
	font-weight: 600;
}
.jc-post-nav a { text-decoration: none; }
.jc-post-nav a:hover { text-decoration: underline; }
/* "More from Lexie" uses the candidate terms block with a prefix; show it as a plain link */
.jc-post-nav .wp-block-post-terms.taxonomy-candidate a { background: none; padding: 0; font-size: 0.9375rem; color: inherit; }

/* ---------- Household memo ---------- */
.jc-memo {
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: 4px;
	padding: clamp(1.5rem, 4vw, 2.25rem) clamp(1.25rem, 4vw, 2.75rem) 2.75rem;
	color: #2E3137;
}
.jc-memo p { margin: 0 0 1rem; }
.jc-memo .jc-memo-classification {
	text-align: center;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--jc-muted);
	margin-bottom: 1.25rem;
}
.jc-memo .jc-memo-letterhead {
	border-top: 3px solid var(--jc-ink);
	border-bottom: 1px solid var(--jc-ink);
	padding: 0.875rem 0;
	gap: 0.5rem 1rem;
	margin-bottom: 1.5rem;
}
.jc-memo .jc-memo-letterhead p { margin: 0; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--jc-ink); }
.jc-memo .jc-memo-letterhead p + p { font-size: 0.8125rem; color: var(--jc-muted); }
.jc-memo-header { border-bottom: 1px solid var(--jc-line); padding-bottom: 1.5rem; margin-bottom: 1.75rem; }
.jc-memo-header p { margin: 0 0 0.5rem; padding-left: 5.25rem; text-indent: -5.25rem; font-size: 0.9375rem; }
.jc-memo-header p > strong:first-child {
	display: inline-block;
	width: 5.25rem;
	text-indent: 0;
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--jc-muted);
}
.jc-memo-header p:last-child { font-weight: 600; }
.jc-items { list-style: none; padding: 0; margin: 0 0 1.5rem; border-top: 1px solid var(--jc-ink); font-size: 0.9375rem; }
.jc-items li {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem 1rem;
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--jc-line);
}
.jc-items li strong {
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.2rem 0.625rem;
	border-radius: 999px;
	border: 1px solid var(--jc-tilly-ink);
	color: var(--jc-tilly-ink);
}
.jc-items li em { font-style: normal; font-size: 0.75rem; font-weight: 600; padding: 0.2rem 0.625rem; border-radius: 999px; background: var(--jc-ink); color: #FFFFFF; }
.jc-memo .jc-memo-sign { font-family: var(--jc-serif); font-size: 1.75rem; font-weight: 600; color: var(--jc-ink); margin: 1.5rem 0 0; }
.jc-memo .jc-memo-role { font-size: 0.875rem; color: var(--jc-muted); }
.jc-memo .jc-memo-cc { border-top: 1px solid var(--jc-line); padding-top: 1rem; margin: 1.25rem 0 0; font-size: 0.8125rem; color: var(--jc-muted); }

/* ---------- Household group chat ---------- */
.jc-chat-section { margin-top: 3.5rem; }
.jc-chat {
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: 16px;
	overflow: hidden;
	margin-top: 1rem;
}
.jc-chat-head {
	padding: 1rem 1.5rem;
	border-bottom: 1px solid var(--jc-line);
	gap: 0.25rem 1rem;
}
.jc-chat-head p { margin: 0; font-weight: 600; }
.jc-chat-head p + p { font-size: 0.8125rem; font-weight: 400; color: var(--jc-muted); }
.jc-chat-body {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 1.5rem;
	font-size: 1rem;
	line-height: 1.45;
}
.jc-chat-body > * { margin: 0; }

.is-style-lexie-message,
.is-style-tilly-message {
	max-width: 80%;
	box-sizing: border-box;
	padding: 0.625rem 0.9375rem;
	color: var(--jc-ink);
	margin: 0;
}
.is-style-lexie-message {
	align-self: flex-start;
	background: var(--jc-lexie-soft);
	border-radius: 18px 18px 18px 4px;
}
.is-style-tilly-message {
	align-self: flex-end;
	background: var(--jc-tilly-soft);
	border-radius: 18px 18px 4px 18px;
}
/* Speaker name: start each message with the cat's name in bold */
.is-style-lexie-message > strong:first-child,
.is-style-tilly-message > strong:first-child {
	display: block;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.04em;
	margin-bottom: 0.125rem;
	color: #2E3137;
}
.is-style-tilly-message > strong:first-child { color: var(--jc-tilly-ink); }
/* Same cat twice in a row: tuck the bubble up and hide the repeated name visually (still read aloud) */
.jc-chat-body .is-style-lexie-message + .is-style-lexie-message,
.jc-chat-body .is-style-tilly-message + .is-style-tilly-message { margin-top: -0.375rem; }
.is-style-lexie-message + .is-style-lexie-message > strong:first-child,
.is-style-tilly-message + .is-style-tilly-message > strong:first-child {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
.is-style-chat-timestamp {
	align-self: center;
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--jc-muted);
	margin: 0;
}
.is-style-chat-seen {
	align-self: flex-start;
	font-size: 0.75rem;
	color: var(--jc-muted);
	margin: 0;
}
.jc-chat-body .is-style-chat-seen { margin-top: -0.5rem; }
.is-style-tilly-message + .is-style-chat-seen { align-self: flex-end; }

/* ---------- Small screens ---------- */
@media (max-width: 600px) {
	.jh-transcript p,
	.jc-memo-header p { padding-left: 0; text-indent: 0; }
	.jh-transcript p > strong:first-child,
	.jc-memo-header p > strong:first-child { display: block; width: auto; margin-bottom: 0.125rem; }
	.jh-official::after { top: auto; bottom: 1rem; right: 1rem; font-size: 1rem; }
	.is-style-lexie-message,
	.is-style-tilly-message { max-width: 88%; }
	.jc-chat-body { padding: 1.25rem 1rem; }
	/* Memo items: status pill always on its own line under the item */
	.jc-items li { flex-direction: column; align-items: flex-start; gap: 0.375rem; }
}

@media print {
	.jc-header, .jc-footer, .jc-post-nav, .jc-back { display: none; }
}

/* ---------- Round headshots (cards + profile pages) ---------- */
.jc-candidate .wp-block-image img,
.jc-avatar img {
	display: block;
	width: 128px;
	height: 128px;
	aspect-ratio: 1;
	object-fit: cover;
	object-position: 50% 30%;
	border-radius: 50%;
	border: 3px solid var(--jc-accent, var(--jc-lexie));
	padding: 4px;
	background: #fff;
	box-sizing: border-box;
}

/* ---------- Candidate profile header ---------- */
.jc-profile-header {
	--jc-accent: var(--jc-lexie);
	gap: 2rem;
	padding-bottom: 2.25rem;
	margin-bottom: 2rem;
	border-bottom: 1px solid var(--jc-line);
}
.jc-profile--tilly { --jc-accent: var(--jc-tilly); }
.jc-profile-header .jc-avatar { margin: 0; flex-shrink: 0; }
.jc-profile-header .jc-avatar img { width: 176px; height: 176px; padding: 5px; }
.jc-profile-text { flex: 1 1 20rem; }
.jc-profile-text > * { margin: 0; }
.jc-profile-text > * + * { margin-top: 0.5rem; }
.jc-profile-name { font-size: clamp(2.25rem, 5vw, 3rem); font-weight: 500; line-height: 1.05; }
.jc-profile-aka { font-size: 1.5rem; font-weight: 500; }
.jc-profile-title { font-size: 0.875rem; color: var(--jc-muted); }
.jc-profile--tilly .jc-open { background: var(--jc-tilly-soft); color: var(--jc-tilly-ink); }
@media (max-width: 600px) {
	.jc-profile-header { flex-direction: column; align-items: flex-start; gap: 1.25rem; }
	.jc-profile-header .jc-avatar img { width: 144px; height: 144px; }
	/* Stacked: the 20rem flex-basis would apply to height, leaving a big gap */
	.jc-profile-text { flex: 0 0 auto; width: 100%; }
	.jc-profile-header { padding-bottom: 1.75rem; margin-bottom: 1.5rem; }
}

/* ---------- Pointer cursor on everything clickable ---------- */
a[href],
button:not(:disabled),
[role="button"],
summary,
label[for],
select,
input[type="submit"],
input[type="button"],
input[type="checkbox"],
input[type="radio"],
.wp-block-button__link {
	cursor: pointer !important;
}

/* ---------- Kitty chats ---------- */
.jc-kitty-band { border-top: 1px solid var(--jc-line); }
.jc-hunts-band + .jc-kitty-band { border-top: 0; }
.jc-kitty-band > .wp-block-group:first-child { margin-bottom: 0.25rem; }
.jc-kitty-band h2 { margin: 0; }
.jc-kitty-lede { color: var(--jc-muted); font-size: 0.9375rem; margin: 0 0 1.5rem; }

/* Preview of a chat (homepage + list page): the post's own chat window,
   trimmed. The header row and "Mentioned in this chat" are hidden. */
.jc-chat-preview .jc-chat-head,
.jc-chat-preview .jc-mentions,
.jc-chat-preview .jc-section-label,
.jc-chat-preview .is-style-chat-seen { display: none; }
.jc-chat-preview .jc-chat-section { margin: 0; }
.jc-chat-preview .jc-chat { border: 0; border-radius: 0; margin: 0; background: transparent; }

/* Homepage: one card with the title in its header, first four messages */
.jc-home-chat .wp-block-post {
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: 16px;
	overflow: hidden;
}
.jc-home-chat-head { padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--jc-line); gap: 0.25rem 1rem; }
.jc-home-chat-head > .wp-block-group { gap: 0.25rem 0.875rem; }
.jc-home-chat-head .wp-block-post-title { margin: 0; font-size: 1.75rem; font-weight: 600; line-height: 1.1; }
.jc-home-chat-head .wp-block-post-date { margin: 0; font-size: 0.875rem; color: var(--jc-muted); }
.jc-home-chat-who { margin: 0; font-size: 0.8125rem; color: var(--jc-muted); }
.jc-home-chat .jc-chat-preview { margin: 0; }
.jc-home-chat .jc-chat-body > :nth-child(n+6) { display: none; } /* timestamp + 4 messages */
.jc-home-chat .is-style-lexie-message,
.jc-home-chat .is-style-tilly-message { max-width: 60%; }
.jc-home-chat-more {
	display: block;
	margin: 0;
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--jc-line);
	font-size: 0.9375rem;
	font-weight: 500;
}

/* List page: one card per chat, first two messages */
.jc-kitty-cards .wp-block-post {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: 16px;
	padding: 1.5rem;
}
.jc-kitty-cards .wp-block-post > * { margin: 0; }
.jc-kitty-cards .wp-block-post-date { font-size: 0.875rem; color: var(--jc-muted); }
.jc-kitty-cards .wp-block-post-title { font-size: 2rem; font-weight: 600; line-height: 1.1; }
.jc-kitty-cards .wp-block-post-title a { text-decoration: none; }
.jc-kitty-cards .wp-block-post-title a:hover { text-decoration: underline; }
.jc-kitty-cards .jc-chat-preview { border-top: 1px solid var(--jc-line); padding-top: 1rem; }
.jc-kitty-cards .jc-chat-body { padding: 0; gap: 0.5rem; font-size: 0.9375rem; }
.jc-kitty-cards .is-style-chat-timestamp { display: none; }
.jc-kitty-cards .jc-chat-body > :nth-child(n+4) { display: none; } /* timestamp (hidden) + 2 messages */
.jc-kitty-cards .is-style-lexie-message,
.jc-kitty-cards .is-style-tilly-message { max-width: 88%; }

/* "Mentioned in this chat" on a single kitty chat */
.jc-mentions { margin-top: 3rem; }
.jc-mentions .jc-section-label { margin-bottom: 1rem; }
.jc-mentions-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1rem;
}
.jc-mentions-list li { margin: 0; }
.jc-mentions-list a {
	display: block;
	height: 100%;
	box-sizing: border-box;
	padding: 1rem 1.25rem;
	background: var(--jc-paper);
	border: 1px solid var(--jc-line);
	border-radius: var(--jc-radius);
	font-weight: 500;
	text-decoration: none;
}
.jc-mentions-list a:hover,
.jc-mentions-list a:focus-visible { text-decoration: underline; border-color: var(--jc-lexie); }

@media (max-width: 600px) {
	.jc-home-chat .is-style-lexie-message,
	.jc-home-chat .is-style-tilly-message { max-width: 88%; }
	.jc-home-chat-head { padding: 1rem; }
	.jc-home-chat-more { padding: 1rem; }
}

/* ---------- Paw print signatures on the cats' letters ----------
   Lexie signs with a big paw, Tilly with a small one. Decorative only. */
.candidate-lexie .jh-letter .jh-signature,
.candidate-tilly .jh-letter .jh-signature {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.candidate-lexie .jh-letter .jh-signature::after,
.candidate-tilly .jh-letter .jh-signature::after {
	content: "";
	display: inline-block;
	flex-shrink: 0;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cellipse cx='32' cy='44' rx='14' ry='12'/%3E%3Cellipse cx='13' cy='28' rx='6' ry='8' transform='rotate(-20 13 28)'/%3E%3Cellipse cx='25' cy='15' rx='6' ry='8'/%3E%3Cellipse cx='39' cy='15' rx='6' ry='8'/%3E%3Cellipse cx='51' cy='28' rx='6' ry='8' transform='rotate(20 51 28)'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cellipse cx='32' cy='44' rx='14' ry='12'/%3E%3Cellipse cx='13' cy='28' rx='6' ry='8' transform='rotate(-20 13 28)'/%3E%3Cellipse cx='25' cy='15' rx='6' ry='8'/%3E%3Cellipse cx='39' cy='15' rx='6' ry='8'/%3E%3Cellipse cx='51' cy='28' rx='6' ry='8' transform='rotate(20 51 28)'/%3E%3C/svg%3E") center / contain no-repeat;
	transform: rotate(-14deg);
	opacity: 0.85;
}
.candidate-lexie .jh-letter .jh-signature::after { width: 2.75rem; height: 2.75rem; color: var(--jc-lexie); }
.candidate-tilly .jh-letter .jh-signature::after { width: 1.5rem; height: 1.5rem; color: var(--jc-tilly); }
