/* Favorite Things — front-end styles (black/gold, aligns with the theme).
   Falls back to sensible values if theme brand vars aren't present. */

.henry-ft-subtitle {
	color: var(--henry-gray, #6b6b6b);
	font-weight: 600;
	margin: -4px 0 0;
}

.henry-ft-intro {
	max-width: 640px;
	color: var(--henry-ink, #1f1f1f);
}

/* ---- Messages ---------------------------------------------------------- */
.henry-ft-message {
	border-radius: var(--henry-radius, 10px);
	padding: 14px 18px;
	margin: 18px 0;
	font-weight: 600;
	border: 1px solid transparent;
}
.henry-ft-message--success { background: #eaf7ee; border-color: #b6e0c2; color: #1a7f37; }
.henry-ft-message--error   { background: #fdecec; border-color: #f3c2c2; color: #b32d2e; }
.henry-ft-message--info    { background: #fff8e6; border-color: #f4e2a8; color: #7a5b00; }

/* ---- Form -------------------------------------------------------------- */
.henry-ft-form .henry-ft-fieldset {
	border: 1px solid var(--henry-line, #e7e2d6);
	border-radius: var(--henry-radius, 10px);
	padding: 14px 18px 18px;
	margin: 0 0 20px;
}
.henry-ft-form legend {
	font-weight: 700;
	font-size: 1.05rem;
	padding: 0 8px;
	color: var(--henry-black, #141414);
}
.henry-ft-row { margin: 10px 0; }
.henry-ft-row label {
	display: block;
	font-weight: 600;
	margin-bottom: 4px;
	color: var(--henry-ink, #1f1f1f);
}
.henry-ft-form input[type="text"],
.henry-ft-form textarea {
	width: 100%;
	max-width: 560px;
	padding: 9px 11px;
	border: 1px solid var(--henry-line, #cfc8b8);
	border-radius: 8px;
	font: inherit;
	box-sizing: border-box;
}
.henry-ft-form input[type="text"]:focus,
.henry-ft-form textarea:focus {
	outline: 2px solid var(--henry-gold, #f4b41c);
	border-color: var(--henry-gold, #f4b41c);
}
.henry-ft-row--birthday { margin-bottom: 18px; }
.henry-ft-actions { margin-top: 8px; }

/* ---- Detail page ------------------------------------------------------- */
.henry-ft-meta {
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
	color: var(--henry-gray, #6b6b6b);
	font-weight: 600;
}
.henry-ft-updated { font-weight: 400; }
.henry-ft-print { margin: 6px 0 20px; }
.henry-ft-empty {
	background: var(--henry-cream, #fbf6ec);
	border: 1px dashed var(--henry-line, #e7e2d6);
	border-radius: var(--henry-radius, 10px);
	padding: 20px;
	color: var(--henry-gray, #6b6b6b);
}
.henry-ft-sections {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 18px;
}
.henry-ft-section {
	border: 1px solid var(--henry-line, #e7e2d6);
	border-radius: var(--henry-radius, 10px);
	padding: 14px 18px;
	break-inside: avoid;
}
.henry-ft-section-title {
	margin: 0 0 8px;
	font-size: 1.05rem;
	border-bottom: 2px solid var(--henry-gold, #f4b41c);
	padding-bottom: 6px;
}
.henry-ft-list { margin: 0; }
.henry-ft-list dt { font-weight: 700; margin-top: 8px; }
.henry-ft-list dd { margin: 0 0 2px; }
.henry-ft-back { margin-top: 24px; }

/* ---- Public list ------------------------------------------------------- */
.henry-ft-group { margin: 0 0 26px; }
.henry-ft-group-title {
	border-bottom: 2px solid var(--henry-gold, #f4b41c);
	padding-bottom: 6px;
}
.henry-ft-people {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 8px 20px;
}
.henry-ft-people li { padding: 4px 0; }
.henry-ft-people a { font-weight: 600; text-decoration: none; }
.henry-ft-people a:hover { text-decoration: underline; }
.henry-ft-people .henry-ft-person-role { color: var(--henry-gray, #6b6b6b); font-weight: 400; }

@media print {
	.henry-ft-print, .henry-ft-back, .site-header, .site-footer,
	.henry-header, .henry-footer, header, footer { display: none !important; }
	.henry-ft-sections { grid-template-columns: 1fr 1fr; }
}
