/**
 * HASMaster Block Theme Enhancements
 * Handles hover effects, animations, and interactive styles
 */

/* ==========================================================================
   Prompt Card Hover Effects
   ========================================================================== */

.wp-block-group.hasmaster-prompt-card {
	cursor: pointer;
	transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
	background-color: var(--wp--preset--color--surface) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 12px !important;
	padding: 1.25rem !important;
}

.wp-block-group.hasmaster-prompt-card:hover {
	transform: translateY(-2px);
	border-color: var(--wp--preset--color--accent) !important;
	box-shadow: 0 4px 12px rgba(139, 0, 0, 0.1);
}

/* Dark mode shadow adjustment */
@media (prefers-color-scheme: dark) {
	.wp-block-group.hasmaster-prompt-card {
		background-color: #0a0a0a !important;
		border-color: #2d2d2d !important;
	}

	.wp-block-group.hasmaster-prompt-card:hover {
		box-shadow: 0 4px 12px rgba(139, 0, 0, 0.2);
	}
}

/* ==========================================================================
   Icon Box Styles
   ========================================================================== */

.wp-block-group.hasmaster-icon-box {
	width: 48px !important;
	height: 48px !important;
	min-width: 48px !important;
	max-width: 48px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 1.3rem !important;
	margin: 0 auto 1rem !important;
	flex-shrink: 0 !important;
	background-color: var(--wp--preset--color--accent) !important;
	border-radius: 12px !important;
	padding: 0 !important;
}

/* Smaller icon boxes for cards — light bg with border (matches taxonomy landing) */
.hasmaster-prompt-card .wp-block-group.hasmaster-icon-box {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	max-width: 36px !important;
	font-size: 1.1rem !important;
	margin: 0 0 0.75rem 0 !important;
	border-radius: 8px !important;
	background-color: var(--wp--preset--color--base, #fafafa) !important;
	border: 1px solid var(--wp--preset--color--border, #e0e0e0) !important;
}

/* Ensure icon box paragraphs don't add margins */
.wp-block-group.hasmaster-icon-box p {
	margin: 0 !important;
	padding: 0 !important;
	line-height: 1 !important;
}

/* ==========================================================================
   Input Container Styles
   ========================================================================== */

.wp-block-group.hasmaster-input-container {
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04) !important;
	transition: all 0.3s ease;
	background-color: var(--wp--preset--color--base) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 16px !important;
	padding: 1.5rem !important;
	margin-bottom: 2rem !important;
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
}

/* Override padding from pattern for direct children */
.wp-block-group.hasmaster-input-container > .wp-block-group {
	padding: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Style the inner "textarea" paragraph to look like an input */
.wp-block-group.hasmaster-input-container > .wp-block-group:first-child > p,
.wp-block-group.hasmaster-input-container textarea {
	min-height: 100px !important;
	background-color: var(--wp--preset--color--surface) !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 12px !important;
	padding: 1rem !important;
	color: var(--wp--preset--color--text-muted) !important;
	line-height: 1.6 !important;
	transition: all 0.3s ease;
	margin: 0 0 10px 0 !important;
	width: 100% !important;
	min-width: 100% !important;
	box-sizing: border-box !important;
	display: block !important;
	font-family: inherit !important;
	font-size: 1rem !important;
	resize: vertical !important;
}

.wp-block-group.hasmaster-input-container > .wp-block-group:first-child > p:hover,
.wp-block-group.hasmaster-input-container textarea:hover {
	border-color: var(--wp--preset--color--accent) !important;
	background-color: var(--wp--preset--color--base) !important;
}

/* Fix the footer layout with counter and buttons */
.wp-block-group.hasmaster-input-container > .wp-block-group:last-child {
	display: flex !important;
	flex-direction: row !important;
	justify-content: space-between !important;
	align-items: center !important;
	flex-wrap: nowrap !important;
	gap: 1rem !important;
}

/* Character counter styling */
.wp-block-group.hasmaster-input-container .char-counter {
	margin: 0 !important;
	padding: 0 !important;
	flex: 0 0 auto !important;
	border: none !important;
	background: transparent !important;
	white-space: nowrap !important;
}

/* Button group in input container */
.wp-block-group.hasmaster-input-container .wp-block-buttons {
	margin: 0 !important;
	flex: 0 0 auto !important;
	display: flex !important;
	gap: 0.5rem !important;
}

/* ==========================================================================
   Journey Interaction Style Panel (Compact)
   ========================================================================== */

.hasmaster-journey-interaction-panel {
	margin: 0 0 0.6rem;
	padding: 0.5rem 0.6rem;
	border: 1px solid var(--wp--preset--color--border, #d7dce2);
	border-radius: 0.6rem;
	background: var(--wp--preset--color--base, #ffffff);
}

.hasmaster-journey-interaction-panel__title {
	margin: 0 0 0.38rem;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-interaction-panel__compact-row {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 0.35rem 0.45rem;
}

.hasmaster-journey-pref-group {
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
	min-width: 0;
	align-items: center;
	text-align: center;
	position: relative;
	padding: 0.05rem 0.3rem;
}

.hasmaster-journey-pref-group:not(:last-child)::after {
	content: "";
	position: absolute;
	right: -0.24rem;
	top: 0.15rem;
	bottom: 0.15rem;
	width: 1px;
	background: var(--wp--preset--color--border, #d7dce2);
}

.hasmaster-journey-pref-group__label {
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	color: var(--wp--preset--color--text, #1f2937);
	white-space: nowrap;
	text-align: center;
}

.hasmaster-journey-pref-group__chips {
	display: inline-flex;
	align-items: center;
	gap: 0.18rem;
}

.hasmaster-journey-style-chip {
	cursor: pointer;
}

.hasmaster-journey-style-chip input[type="radio"] {
	position: absolute;
	opacity: 0;
	width: 0;
	height: 0;
	pointer-events: none;
}

.hasmaster-journey-style-chip span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 0.35rem;
	border: 1px solid var(--wp--preset--color--border, #d7dce2);
	border-radius: var(--hasmaster-interactive-radius, 12px);
	background: var(--wp--preset--color--base, #ffffff);
	color: var(--wp--preset--color--text, #1f2937);
	font-size: 0.68rem;
	font-weight: 700;
	line-height: 1;
	transition: border-color 0.1s ease, background 0.1s ease, color 0.1s ease;
}

.hasmaster-journey-style-chip:hover span {
	border-color: var(--wp--preset--color--accent, #8b0000);
}

.hasmaster-journey-style-chip input[type="radio"]:checked + span {
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d7dce2)));
	color: var(--hasmaster-interactive-active-text, var(--wp--preset--color--accent, #8b0000));
}

/* Summary candidate above scenario options in get-inspired */
.ai-scenario-summary-block {
	margin: 0 0 0.75rem;
	padding: 0.65rem 0.75rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 25%, var(--wp--preset--color--border, #d7dce2));
	border-radius: 0.55rem;
	background: color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 6%, var(--wp--preset--color--base, #ffffff));
}

.ai-scenario-summary-block .ai-scenario-summary {
	margin: 0 0 0.28rem;
	font-size: 0.92rem;
	line-height: 1.45;
}

.ai-scenario-summary-block .ai-scenario-confirm {
	margin: 0;
	font-size: 0.85rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.ai-results-questions {
	margin: 0.55rem 0 0.7rem;
}

.ai-reason-options {
	margin: 0.55rem 0 0.8rem;
	padding: 0.65rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border, #d7dce2);
	border-radius: 0.55rem;
	background: var(--wp--preset--color--base, #ffffff);
}

.ai-reason-options > p {
	margin: 0 0 0.45rem;
}

.ai-reason-options-list {
	list-style: disc;
	list-style-position: outside;
	margin: 0;
	padding-left: 1.15rem;
	display: grid;
	gap: 0.3rem;
}

.ai-reason-options-list li {
	margin: 0;
}

.ai-reason-option {
	display: inline-flex;
	align-items: flex-start;
	gap: 0.45rem;
	font-size: 0.9rem;
	line-height: 1.45;
	color: var(--wp--preset--color--text, #1f2937);
}

.ai-reason-option-input {
	margin-top: 0.18rem;
	width: 0.95rem;
	height: 0.95rem;
	accent-color: var(--wp--preset--color--accent, #8b0000);
}

.ai-reason-options-actions {
	margin-top: 0.55rem;
}

.ai-summary-confirm-options .ai-reason-options-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem 0.8rem;
}

.hasmaster-action-button {
	background: var(--wp--preset--color--surface, #ffffff) !important;
	color: var(--wp--preset--color--text, #1f2937) !important;
	border: 1px solid var(--wp--preset--color--border, #d7dce2) !important;
	border-radius: 8px !important;
	padding: 0.52rem 0.95rem !important;
	line-height: 1.1 !important;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease !important;
}

.hasmaster-action-button:hover {
	border-color: var(--wp--preset--color--accent, #8b0000) !important;
	color: var(--wp--preset--color--accent, #8b0000) !important;
	background: var(--wp--preset--color--base, #ffffff) !important;
}

.ai-next-step-link {
	display: inline-flex !important;
	align-items: center !important;
	text-decoration: none !important;
}

.ai-next-step-link.is-disabled {
	opacity: 0.6;
	cursor: default;
	pointer-events: none;
}

.ai-score-initial {
	color: var(--wp--preset--color--accent, #8b0000);
	font-weight: 700;
}

.ai-focus-option-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
	align-items: baseline;
}

.ai-focus-option-link {
	color: var(--wp--preset--color--text, #1f2937);
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

.ai-focus-option-link:hover {
	color: var(--wp--preset--color--accent, #8b0000);
}

.ai-inspiration-option-item {
	display: grid;
	gap: 0.18rem;
}

.ai-inspiration-option-desc {
	margin: 0 0 0 1.35rem;
	font-size: 0.84rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.ai-inspiration-option-meta {
	font-size: 0.8rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.ai-scenario-confirm-controls {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem 0.8rem;
	align-items: center;
	margin-top: 0.55rem;
}

.ai-scenario-confirm-hint {
	font-size: 0.82rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.ai-scenario-confirm-summary[disabled] {
	opacity: 0.55;
	cursor: not-allowed;
}

@media (prefers-color-scheme: dark) {
	.wp-block-group.hasmaster-input-container {
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important;
		background-color: #0a0a0a !important;
		border-color: #2d2d2d !important;
	}

	.wp-block-group.hasmaster-input-container > .wp-block-group > p {
		background-color: #000000 !important;
		border-color: #2d2d2d !important;
	}

	.wp-block-group.hasmaster-input-container > .wp-block-group > p:hover {
		background-color: #0a0a0a !important;
	}
}

/* ==========================================================================
   Grid Layouts for Prompt Cards
   ========================================================================== */

.prompt-grid,
.wp-block-group.prompt-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
	gap: 0.75rem !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
}

.prompt-grid-section {
	width: 100% !important;
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	text-align: left !important;
}

.prompt-grid-section .section-title {
	text-align: left !important;
	color: var(--wp--preset--color--text) !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	margin-top: 2rem !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	display: block !important;
}

/* Home page inline nudge buttons (title-only, equal-size controls) */
.hasmaster-home-nudge-strip {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0.5rem;
	margin-top: 0.8rem;
	width: 100%;
}

.hasmaster-home-nudge-btn {
	width: 100%;
	min-height: 2.35rem;
	height: 2.35rem;
	padding: 0 0.7rem;
	border-radius: 10px;
	border: 1px solid var(--wp--preset--color--border, #d8dce3);
	background: var(--wp--preset--color--surface, #f6f8fb);
	color: var(--wp--preset--color--text, #1f2a37);
	font-size: 0.79rem;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	cursor: pointer;
	transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.hasmaster-home-nudge-btn:hover {
	border-color: var(--wp--preset--color--accent, #8b0000);
	background: var(--wp--preset--color--base, #fff);
}

.hasmaster-home-nudge-btn:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #8b0000);
	outline-offset: 2px;
}

.hasmaster-home-nudge-btn.is-active {
	border-color: var(--wp--preset--color--accent, #8b0000);
	background: rgba(139, 0, 0, 0.08);
	color: var(--wp--preset--color--accent, #8b0000);
}

.prompt-grid-section.prompt-grid--home-inline .section-title,
.prompt-grid-section.prompt-grid--home-inline .prompt-grid {
	display: none !important;
}

@media (max-width: 980px) {
	.hasmaster-home-nudge-strip {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.prompt-grid,
	.wp-block-group.prompt-grid {
		grid-template-columns: 1fr !important;
	}
	.hasmaster-home-nudge-strip {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* Ensure grid children don't have extra margins */
.prompt-grid > .wp-block-group {
	margin: 0 !important;
}

/* 3-column grid for specific layouts */
.prompt-grid-3 {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 0.75rem !important;
}

.prompt-grid-section .prompt-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (max-width: 900px) {
	.prompt-grid-section .prompt-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
}

@media (max-width: 600px) {
	.prompt-grid-3 {
		grid-template-columns: repeat(2, 1fr) !important;
	}
	.prompt-grid-section .prompt-grid {
		grid-template-columns: 1fr !important;
	}
}

/* ==========================================================================
   AI Navigator / Results Card
   ========================================================================== */

/* ---------- AI Assistant title row with flanking stars ---------- */

.hasmaster-ai-title-row {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: 0.5rem;
}

.hasmaster-ai-title-text {
	font-size: clamp(1.8rem, 4vw, 2.5rem);
	font-weight: 700;
	margin: 0;
	line-height: 1.2;
}

.hasmaster-ai-title-star {
	flex-shrink: 0;
}

/* ---------- AI Results card ---------- */

.ai-results-card {
	color: var(--wp--preset--color--text) !important;
	font-size: 0.94rem !important;
	border-radius: 12px !important;
	border: 2px solid var(--wp--preset--color--border) !important;
	background: var(--wp--preset--color--base) !important;
	padding: 20px !important;
	position: relative;
	transition: border-color 0.3s ease;
}

/* ---------- Swirl / thinking border animation ---------- */

.ai-results--thinking {
	border-color: transparent !important;
}

.ai-results--thinking::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: 13px;
	padding: 1px;
	background: conic-gradient(
		from var(--swirl-angle, 0deg),
		transparent 0%,
		var(--wp--preset--color--accent, #8b0000) 25%,
		transparent 50%,
		var(--wp--preset--color--accent, #8b0000) 75%,
		transparent 100%
	);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	animation: hasmaster-swirl 1.8s linear infinite;
	z-index: 1;
	pointer-events: none;
}

@property --swirl-angle {
	syntax: "<angle>";
	initial-value: 0deg;
	inherits: false;
}

@keyframes hasmaster-swirl {
	to { --swirl-angle: 360deg; }
}

/* Fallback for browsers without @property support */
@supports not (background: conic-gradient(from 0deg, red, blue)) {
	.ai-results--thinking {
		border-color: var(--wp--preset--color--accent, #8b0000) !important;
		animation: hasmaster-pulse-border 1.2s ease-in-out infinite alternate;
	}
}

@keyframes hasmaster-pulse-border {
	0% { border-color: var(--wp--preset--color--accent, #8b0000); opacity: 0.5; }
	100% { border-color: var(--wp--preset--color--accent, #8b0000); opacity: 1; }
}

/* ---------- Swirl on input container when thinking ---------- */

.hasmaster-input-container.ai-thinking {
	position: relative;
	border-color: transparent !important;
}

.hasmaster-input-container.ai-thinking::before {
	content: "";
	position: absolute;
	inset: -1px;
	border-radius: 17px;
	padding: 1px;
	background: conic-gradient(
		from var(--swirl-angle, 0deg),
		transparent 0%,
		var(--wp--preset--color--accent, #8b0000) 25%,
		transparent 50%,
		var(--wp--preset--color--accent, #8b0000) 75%,
		transparent 100%
	);
	-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
	-webkit-mask-composite: xor;
	mask-composite: exclude;
	animation: hasmaster-swirl 1.8s linear infinite;
	z-index: 1;
	pointer-events: none;
}

@supports not (background: conic-gradient(from 0deg, red, blue)) {
	.hasmaster-input-container.ai-thinking {
		border-color: var(--wp--preset--color--accent, #8b0000) !important;
		animation: hasmaster-pulse-border 1.2s ease-in-out infinite alternate;
	}
}

/* ---------- AI Results section margin alignment ---------- */

.ai-results-section {
	width: 100% !important;
	max-width: 100% !important;
	padding: 0 !important;
}

.ai-results-title {
	font-weight: 700 !important;
	font-size: 1rem !important;
	color: var(--wp--preset--color--text) !important;
	margin-bottom: 0.5rem !important;
}

.ai-results-body {
	color: var(--wp--preset--color--text) !important;
}

.ai-results-related {
	margin-top: 0.5rem !important;
	font-weight: 600 !important;
}

.ai-assistant-response {
	width: 100% !important;
	box-sizing: border-box !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 16px !important;
	padding: 1.5rem !important;
	background: var(--wp--preset--color--base) !important;
}

.ai-nav-header {
	display: flex !important;
	flex-direction: column !important;
	gap: 4px !important;
	margin-bottom: 8px !important;
}

.ai-nav-title {
	font-weight: 700 !important;
	font-size: 1rem !important;
	color: var(--wp--preset--color--text) !important;
}

.ai-nav-context {
	color: var(--wp--preset--color--text-muted) !important;
	font-size: 0.9rem !important;
}

.ai-nav-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin: 8px 0 10px 0 !important;
}

.ai-nav-actions .wp-block-button__link {
	min-height: 34px !important;
	padding: 8px 12px !important;
	line-height: 1.1 !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--text) !important;
	transition: all 0.15s ease !important;
}

.ai-nav-actions .wp-block-button__link:hover {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--accent) !important;
	border-color: var(--wp--preset--color--accent) !important;
}

.ai-nav-actions .active {
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--white) !important;
	border-color: var(--wp--preset--color--accent) !important;
}

.ai-nav-refinements {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 6px !important;
	margin: 4px 0 10px 0 !important;
}

.ai-pill,
.ai-ref-chip,
.ai-tax-inline {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: var(--hasmaster-interactive-radius, 12px) !important;
	padding: 4px 10px !important;
	font-size: 0.85rem !important;
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--text) !important;
	white-space: nowrap !important;
}

.ai-pill:hover,
.ai-ref-chip:hover,
.ai-tax-inline:hover {
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--accent) !important;
	border-color: var(--wp--preset--color--accent) !important;
}

.ai-nav-results {
	margin: 6px 0 10px 0 !important;
}

.ai-nav-results ul {
	list-style: disc !important;
	margin: 0 !important;
	padding-left: 1.25rem !important;
}

.ai-nav-results li {
	margin-bottom: 6px !important;
	color: var(--wp--preset--color--text) !important;
}

.ai-nav-results a {
	color: var(--wp--preset--color--text) !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}

.ai-nav-results a:hover {
	color: var(--wp--preset--color--accent) !important;
	text-decoration: underline !important;
}

.ai-escape {
	margin-top: 12px !important;
	font-weight: 600 !important;
}

.ai-escape a {
	text-decoration: none !important;
	color: var(--wp--preset--color--text) !important;
	transition: color 0.15s ease;
}

.ai-escape a:hover {
	color: var(--wp--preset--color--accent) !important;
	text-decoration: underline !important;
}

.ai-tax-bottom {
	margin-top: 6px !important;
	font-size: 0.9rem !important;
	color: var(--wp--preset--color--text) !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}

.ai-tax-bottom a {
	color: var(--wp--preset--color--text) !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}

.ai-tax-bottom a:hover {
	color: var(--wp--preset--color--accent) !important;
	text-decoration: underline !important;
}

.ai-tax-inline-text {
	color: var(--wp--preset--color--text-muted) !important;
	font-size: 0.82rem !important;
	margin-left: 6px !important;
}
.ai-tax-inline-text a {
	color: var(--wp--preset--color--text) !important;
	text-decoration: none !important;
	transition: color 0.15s ease;
}
.ai-tax-inline-text a:hover {
	color: var(--wp--preset--color--accent) !important;
	text-decoration: underline !important;
}

@media (max-width: 640px) {
	.prompt-grid-3 {
		grid-template-columns: 1fr !important;
	}
}

/* 2-column grid */
.prompt-grid-2 {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 0.75rem !important;
}

@media (max-width: 640px) {
	.prompt-grid-2 {
		grid-template-columns: 1fr !important;
	}
}

/* ==========================================================================
   Button Enhancements
   ========================================================================== */

/* Icon button styling */
.wp-block-button.hasmaster-icon-button .wp-block-button__link {
	min-width: 32px !important;
	min-height: 32px !important;
	padding: 0.5rem !important;
	background-color: transparent !important;
	border: 1px solid var(--wp--preset--color--border) !important;
	border-radius: 8px !important;
	color: var(--wp--preset--color--text-muted) !important;
	transition: all 0.2s ease;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}

/* Icon button hover effects */
.wp-block-button.hasmaster-icon-button .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--surface) !important;
	border-color: var(--wp--preset--color--accent) !important;
}

.wp-block-button.hasmaster-icon-button .wp-block-button__link.is-pending {
	border-color: var(--wp--preset--color--accent-soft) !important;
	background-color: var(--wp--preset--color--accent-soft) !important;
	color: var(--wp--preset--color--accent) !important;
}

.wp-block-button.hasmaster-icon-button .wp-block-button__link.is-listening {
	border-color: var(--wp--preset--color--accent) !important;
	background-color: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--accent) !important;
}

@media (prefers-color-scheme: dark) {
	.wp-block-button.hasmaster-icon-button .wp-block-button__link {
		border-color: #2d2d2d !important;
	}

	.wp-block-button.hasmaster-icon-button .wp-block-button__link:hover {
		background-color: rgba(255, 255, 255, 0.05) !important;
	}
}

/* Send button styling */
.wp-block-button.is-style-send-button .wp-block-button__link {
	transition: all 0.2s ease;
	background-color: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--white) !important;
	border-radius: 10px !important;
	padding: 0.75rem !important;
}

/* Send button hover effects */
.wp-block-button.is-style-send-button .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--accent-hover) !important;
	transform: translateY(-1px);
}

.wp-block-button.is-style-send-button .wp-block-button__link:active {
	transform: translateY(0);
}

/* Accent button hover */
.wp-block-button.is-style-accent .wp-block-button__link:hover {
	background-color: var(--wp--preset--color--accent-hover) !important;
	transform: translateY(-1px);
}

/* ==========================================================================
   Typography Enhancements
   ========================================================================== */

/* Title styling for prompt cards */
.prompt-card-title,
h3.prompt-card-title {
	font-size: 0.95rem !important;
	font-weight: 600 !important;
	margin-bottom: 0.35rem !important;
	margin-top: 0 !important;
}

/* Description styling for prompt cards */
.prompt-card-description,
p.prompt-card-description {
	font-size: 0.8rem !important;
	color: var(--wp--preset--color--text-muted) !important;
	line-height: 1.5 !important;
	margin: 0 !important;
}

/* Subtitle styling */
.ai-subtitle,
p.ai-subtitle {
	color: var(--wp--preset--color--text-muted) !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
}

/* Section titles */
.section-title,
p.section-title {
	color: var(--wp--preset--color--text-muted) !important;
	font-size: 0.85rem !important;
	font-weight: 500 !important;
	margin-bottom: 1rem !important;
	margin-top: 0 !important;
}

/* ==========================================================================
   Header Styling
   ========================================================================== */

/* Header site title styling */
.header-site-title,
h1.header-site-title,
h2.header-site-title,
h1.wp-block-site-title,
h2.wp-block-site-title,
p.wp-block-site-title {
	font-size: 1.5rem !important;
	font-weight: 600 !important;
	margin: 0 !important;
}

.header-site-logo {
	margin: 0 !important;
}

.header-site-logo img {
	width: 180px;
	height: auto;
	max-width: 180px;
}

/* Align navigation baseline to logo baseline. */
header.wp-block-template-part .wp-block-group.alignwide.is-layout-flex.wp-block-group-is-layout-flex {
	align-items: flex-end;
}

header.wp-block-template-part nav.header-main-nav {
	align-self: flex-end;
}

/* Center the header icon and ensure proper spacing */
.wp-block-heading.has-text-align-center {
	margin-top: 0;
	line-height: 1.25;
}

/* Main page wrapper for AI Assistant (avoid transforms in header; they break fixed-position overlays like the mobile menu). */
.wp-site-blocks > main .alignfull > .wp-block-group {
	animation: fadeInUp 0.6s ease both;
}

/* ==========================================================================
   Animations
   ========================================================================== */

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes fadeInDown {
	from {
		opacity: 0;
		transform: translateY(-20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Stagger animation for grid items */
.prompt-grid > * {
	animation: fadeInUp 0.6s ease both;
}

.prompt-grid > *:nth-child(1) { animation-delay: 0.05s; }
.prompt-grid > *:nth-child(2) { animation-delay: 0.1s; }
.prompt-grid > *:nth-child(3) { animation-delay: 0.15s; }
.prompt-grid > *:nth-child(4) { animation-delay: 0.2s; }
.prompt-grid > *:nth-child(5) { animation-delay: 0.25s; }
.prompt-grid > *:nth-child(6) { animation-delay: 0.3s; }

/* ==========================================================================
   Navigation Enhancements
   ========================================================================== */

/* ==========================================================================
   Content Link Styling
   ========================================================================== */

/* Ensure standard content links follow HASMaster theme (not browser default blue/underline). */
.entry-content a:not(.wp-element-button),
.wp-block-post-content a:not(.wp-element-button) {
	color: inherit;
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.entry-content a:not(.wp-element-button):hover,
.entry-content a:not(.wp-element-button):focus-visible,
.wp-block-post-content a:not(.wp-element-button):hover,
.wp-block-post-content a:not(.wp-element-button):focus-visible {
	color: var(--wp--preset--color--accent);
	text-decoration-color: var(--wp--preset--color--accent);
}

/* Global navigation style baseline */
.wp-block-navigation-item a,
.wp-block-navigation .wp-block-navigation-item__content,
.wp-block-page-list .wp-block-pages-list__item__link {
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

/* Header base state: black, bold, spaced. Hover/current still follow global red + underline. */
.header-main-nav .wp-block-navigation__container {
	gap: 20px !important;
}

.header-main-nav .wp-block-navigation-item a,
.header-main-nav .wp-block-navigation .wp-block-navigation-item__content {
	color: var(--wp--preset--color--black) !important;
	font-weight: 400;
}

/* Global standard: hover/focus/current are red + underline site-wide. */
.wp-block-navigation-item a:hover,
.wp-block-navigation-item a:focus-visible,
.wp-block-navigation .wp-block-navigation-item__content:hover,
.wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.wp-block-navigation .current-menu-item > a,
.wp-block-navigation .current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation .current_page_item > a,
.wp-block-page-list .wp-block-pages-list__item__link:hover,
.wp-block-page-list .wp-block-pages-list__item__link:focus-visible,
.wp-block-page-list .current-menu-item > a,
.wp-block-page-list .current_page_item > a {
	color: var(--wp--preset--color--accent) !important;
	text-decoration-color: var(--wp--preset--color--accent);
}

/* Prevent header nav clipping on tablet/mobile widths by allowing row wrap. */
@media (max-width: 1024px) {
	header.wp-block-template-part .wp-block-group.alignwide.is-nowrap.is-layout-flex {
		flex-wrap: wrap !important;
		row-gap: 0.5rem;
	}

	.header-main-nav.wp-block-navigation {
		width: 100%;
		justify-content: flex-start !important;
	}

	.header-main-nav .wp-block-navigation__container {
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 0.5rem 0.9rem !important;
	}

	/* Extend WP overlay menu behavior beyond 600px so tablet/mobile always get full nav. */
	.header-main-nav .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex;
	}

	.header-main-nav .wp-block-navigation__responsive-container-open {
		display: inline-flex;
		align-items: center;
		gap: 0.35rem;
		padding: 0.4rem 0.65rem;
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 8px;
	}

	.header-main-nav .wp-block-navigation__responsive-container-open::after {
		content: "Menu";
		font-size: 0.9rem;
		font-weight: 600;
		line-height: 1;
	}

	.header-main-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) {
		display: none;
		position: fixed;
		left: 0;
		right: 0;
		top: 0;
		bottom: 0;
		width: auto;
		z-index: 100000;
	}

	.header-main-nav .wp-block-navigation__responsive-container.is-menu-open {
		position: fixed;
		inset: 0;
		display: flex;
		padding: max(0.75rem, env(safe-area-inset-top)) 1rem 1rem;
	}

	.header-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		padding-top: 0.75rem;
		align-items: flex-start;
		justify-content: flex-start;
	}

	.header-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
		width: 100%;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: stretch;
		justify-content: stretch;
		gap: 0.25rem 0.9rem;
	}

	.header-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
		display: block;
		padding: 0.65rem 0.25rem;
		font-size: 1rem;
	}

	@media (max-width: 520px) {
		.header-main-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
			grid-template-columns: 1fr;
			gap: 0.25rem;
		}
	}

	.header-main-nav .wp-block-navigation__responsive-container-close {
		top: 0.35rem;
		right: 0.35rem;
	}
}

/* ==========================================================================
   Device Navigator & Taxonomy Filter Nav
   ========================================================================== */

.hasmaster-devices-navigator,
.hasmaster-guides-navigator,
.hasmaster-platforms-navigator,
.hasmaster-use-cases-navigator,
.hasmaster-taxonomy-filter-nav {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

/* Ensure columns align at top */
.hasmaster-devices-navigator .wp-block-columns,
.hasmaster-guides-navigator .wp-block-columns,
.hasmaster-platforms-navigator .wp-block-columns,
.hasmaster-use-cases-navigator .wp-block-columns,
.hasmaster-taxonomy-filter-nav .wp-block-columns {
	align-items: flex-start;
}

/* Compact navigator with max-height and scroll */
.hasmaster-devices-navigator .wp-block-column {
	max-height: 220px;
	overflow-y: auto;
	scrollbar-width: thin;
}

.hasmaster-devices-navigator .wp-block-column::-webkit-scrollbar {
	width: 4px;
}

.hasmaster-devices-navigator .wp-block-column::-webkit-scrollbar-thumb {
	background: var(--wp--preset--color--border);
	border-radius: 2px;
}

.hasmaster-devices-navigator .wp-block-categories-list,
.hasmaster-guides-navigator .wp-block-categories-list,
.hasmaster-platforms-navigator .wp-block-categories-list,
.hasmaster-use-cases-navigator .wp-block-categories-list,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list,
.hasmaster-tax-list .wp-block-categories-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hasmaster-devices-navigator .wp-block-categories-list li,
.hasmaster-guides-navigator .wp-block-categories-list li,
.hasmaster-platforms-navigator .wp-block-categories-list li,
.hasmaster-use-cases-navigator .wp-block-categories-list li,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list li,
.hasmaster-tax-list .wp-block-categories-list li {
	margin: 0 0 0.35rem 0;
	padding: 0;
	line-height: 1.5;
}

.hasmaster-devices-navigator .wp-block-categories-list .children,
.hasmaster-guides-navigator .wp-block-categories-list .children,
.hasmaster-platforms-navigator .wp-block-categories-list .children,
.hasmaster-use-cases-navigator .wp-block-categories-list .children,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list .children,
.hasmaster-tax-list .wp-block-categories-list .children {
	margin: 0.35rem 0 0.35rem 1rem;
	padding: 0;
	border-left: 2px solid var(--wp--preset--color--border);
	padding-left: 0.75rem;
}

.hasmaster-devices-navigator .wp-block-categories-list a,
.hasmaster-guides-navigator .wp-block-categories-list a,
.hasmaster-platforms-navigator .wp-block-categories-list a,
.hasmaster-use-cases-navigator .wp-block-categories-list a,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list a,
.hasmaster-tax-list .wp-block-categories-list a {
	text-decoration: none;
	line-height: 1.5;
	color: var(--wp--preset--color--text);
	transition: color 0.15s ease;
}

.hasmaster-devices-navigator .wp-block-categories-list a:hover,
.hasmaster-guides-navigator .wp-block-categories-list a:hover,
.hasmaster-platforms-navigator .wp-block-categories-list a:hover,
.hasmaster-use-cases-navigator .wp-block-categories-list a:hover,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list a:hover,
.hasmaster-tax-list .wp-block-categories-list a:hover {
	color: var(--wp--preset--color--accent) !important;
}

.hasmaster-devices-navigator .wp-block-categories-list .current-cat > a,
.hasmaster-devices-navigator .wp-block-categories-list .current-term > a,
.hasmaster-guides-navigator .wp-block-categories-list .current-cat > a,
.hasmaster-guides-navigator .wp-block-categories-list .current-term > a,
.hasmaster-platforms-navigator .wp-block-categories-list .current-cat > a,
.hasmaster-platforms-navigator .wp-block-categories-list .current-term > a,
.hasmaster-use-cases-navigator .wp-block-categories-list .current-cat > a,
.hasmaster-use-cases-navigator .wp-block-categories-list .current-term > a,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list .current-cat > a,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list .current-term > a,
.hasmaster-tax-list .wp-block-categories-list .current-cat > a,
.hasmaster-tax-list .wp-block-categories-list .current-term > a {
	color: var(--wp--preset--color--accent) !important;
	font-weight: 600;
}

/* Post count styling */
.hasmaster-devices-navigator .wp-block-categories-list .cat-count,
.hasmaster-guides-navigator .wp-block-categories-list .cat-count,
.hasmaster-platforms-navigator .wp-block-categories-list .cat-count,
.hasmaster-use-cases-navigator .wp-block-categories-list .cat-count,
.hasmaster-taxonomy-filter-nav .wp-block-categories-list .cat-count,
.hasmaster-tax-list .wp-block-categories-list .cat-count {
	color: var(--wp--preset--color--text-subtle);
	font-size: 0.85em;
	margin-left: 0.25rem;
}

/* Tag cloud styling */
.hasmaster-tag-cloud {
	line-height: 1.6;
}

.hasmaster-tag-cloud a {
	display: inline-block;
	padding: 0.15rem 0.5rem;
	margin: 0.1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--hasmaster-interactive-radius, 12px);
	color: var(--wp--preset--color--text-muted) !important;
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
	background: var(--wp--preset--color--surface);
	transition: all 0.15s ease;
	white-space: nowrap;
}

.hasmaster-tag-cloud a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent) !important;
	text-decoration-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--base);
}

/* Compact tag cloud variant */
.hasmaster-tag-cloud-compact {
	line-height: 1.4;
}

.hasmaster-tag-cloud-compact a {
	padding: 0.1rem 0.4rem;
	margin: 0.05rem;
	font-size: 0.75rem !important;
}

/* ==========================================================================
   Directory Layout (Sidebar Filters + Results)
   ========================================================================== */

.hasmaster-directory-filters .hasmaster-devices-navigator,
.hasmaster-directory-filters .hasmaster-use-cases-navigator,
.hasmaster-directory-filters .hasmaster-platforms-navigator,
.hasmaster-directory-filters .hasmaster-guides-navigator {
	border-bottom: none !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.hasmaster-directory-filters .wp-block-columns {
	flex-direction: column !important;
	gap: var(--wp--preset--spacing--30);
}

.hasmaster-directory-filters .wp-block-column {
	flex-basis: auto !important;
	width: 100% !important;
}

.hasmaster-directory-filters .hasmaster-tag-cloud {
	line-height: 1.4;
}

.hasmaster-directory-filters .hasmaster-tag-cloud a {
	margin: 0.05rem;
	padding: 0.15rem 0.45rem;
}

/* Legacy tag styles */
.hasmaster-tax-tags .wp-block-categories-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
}

.hasmaster-tax-tags .wp-block-categories-list li {
	margin: 0;
}

.hasmaster-tax-tags .wp-block-categories-list a {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.15rem 0.5rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--hasmaster-interactive-radius, 12px);
	font-size: 0.78rem;
	color: var(--wp--preset--color--text-muted) !important;
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
}

.hasmaster-tax-tags .wp-block-categories-list a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent) !important;
	text-decoration-color: var(--wp--preset--color--accent);
}

/* Multi-column taxonomy list for long lists */
.hasmaster-tax-list-columns .wp-block-categories-list {
	columns: 2;
	column-gap: 2rem;
}

.hasmaster-tax-list-columns .wp-block-categories-list > li {
	break-inside: avoid;
	page-break-inside: avoid;
}

/* Keep children indented within column flow */
.hasmaster-tax-list-columns .wp-block-categories-list .children {
	columns: 1;
}

@media (max-width: 768px) {
	.hasmaster-tax-list-columns .wp-block-categories-list {
		columns: 1;
	}
}

/* ==========================================================================
   Card Styles for Archives
   ========================================================================== */

.is-style-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	transition: all 0.2s ease;
}

.is-style-card:hover {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

/* Post terms in cards */
.is-style-card .wp-block-post-terms {
	display: inline;
}

.is-style-card .wp-block-post-terms a {
	color: var(--wp--preset--color--text-muted);
	text-decoration: none;
	font-size: 0.85rem;
}

.is-style-card .wp-block-post-terms a:hover {
	color: var(--wp--preset--color--accent);
}

.is-style-card .wp-block-post-terms .wp-block-post-terms__separator {
	color: var(--wp--preset--color--text-subtle);
}

/* ==========================================================================
   Utilities
   ========================================================================== */

/* Center align content */
.has-text-align-center {
	text-align: center;
}

/* Constrain the main AI Assistant container */
.alignfull > .wp-block-group.wp-container-core-group-is-layout-1,
.wp-block-group.alignfull > .wp-block-group {
	max-width: 900px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Constrained width for AI assistant */
.ai-assistant-container {
	max-width: 900px;
	margin: 0 auto;
	padding: 2rem;
}

/* Character counter */
.char-counter {
	color: var(--wp--preset--color--text-subtle);
	font-size: 0.8rem;
	text-align: left;
	margin-top: 0.5rem;
}

/* Input footer message */
.input-footer-message {
	color: var(--wp--preset--color--text-subtle);
	font-size: 0.8rem;
}

/* ==========================================================================
   List View for Archives
   ========================================================================== */

.hasmaster-list-view {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.hasmaster-list-item {
	border-bottom: 1px solid var(--wp--preset--color--border) !important;
	gap: 0.75rem !important;
}

.hasmaster-list-thumb {
	flex: 0 0 48px;
	width: 48px !important;
	height: 48px !important;
	margin: 0 !important;
	display: block;
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	background: var(--wp--preset--color--surface) url('/wp-content/themes/hasmaster/assets/icons/svg/software-placeholder.svg') center/22px 22px no-repeat;
}

.hasmaster-list-thumb img {
	width: 48px;
	height: 48px;
	display: block;
	object-fit: cover;
	border-radius: 6px;
}

.hasmaster-list-thumb img[src=""],
.hasmaster-list-thumb img:not([src]) {
	display: none;
}

/* Infrastructure fallback icon for missing featured images. */
.hasmaster-infrastructure-thumb {
	background-image: url('/wp-content/themes/hasmaster/assets/icons/svg/network-nodes.svg');
}

/* Video fallback icon for missing featured images. */
.hasmaster-video-thumb {
	background-image: url('/wp-content/themes/hasmaster/assets/icons/svg/video-play.svg');
}

/* Placeholder when no featured image - use content wrapper's ::before */
.hasmaster-list-content {
	flex: 1;
	min-width: 0;
	position: relative;
}

/* If no .hasmaster-list-thumb sibling exists, show placeholder via parent */
.hasmaster-list-item:not(:has(.hasmaster-list-thumb))::before {
	content: '';
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
}

body.tax-prompt_category .hasmaster-list-item:not(:has(.hasmaster-list-thumb))::before {
	background: var(--wp--preset--color--surface) url('/wp-content/themes/hasmaster/assets/icons/svg/configuration-gear.svg') center/22px 22px no-repeat;
}

.hasmaster-list-item:last-child {
	border-bottom: none;
}

.hasmaster-list-item .wp-block-post-title {
	margin: 0;
}

.hasmaster-list-item .wp-block-post-title a {
	color: var(--wp--preset--color--text);
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
	font-weight: 600;
	transition: color 0.15s ease;
}

.hasmaster-list-item .wp-block-post-title a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration-color: var(--wp--preset--color--accent);
}

.hasmaster-list-item .wp-block-post-terms {
	display: inline;
}

.hasmaster-list-item .wp-block-post-terms a {
	color: var(--wp--preset--color--text-muted);
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
	transition: color 0.15s ease;
}

.hasmaster-list-item .wp-block-post-terms a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration-color: var(--wp--preset--color--accent);
}

.hasmaster-list-item .wp-block-post-terms .wp-block-post-terms__separator {
	color: var(--wp--preset--color--text-subtle);
}

/* Ensure a visible separator between adjacent taxonomy groups
   (e.g., category block followed by domain block). */
.hasmaster-term-pipe + .hasmaster-term-pipe::before {
	content: " | ";
	color: var(--wp--preset--color--text-subtle);
}

.hasmaster-result-meta .hasmaster-result-meta-label {
	display: none !important;
}

.hasmaster-result-meta .hasmaster-result-meta-label + .wp-block-post-terms {
	margin-left: 0 !important;
}

.hasmaster-result-meta .taxonomy-device_category {
	margin-right: 0;
}

.hasmaster-result-meta .hasmaster-result-meta-label--domain {
	margin-left: 0 !important;
}

.hasmaster-result-meta .hasmaster-result-meta-label--domain::before {
	content: none;
}

.hasmaster-result-meta {
	flex-wrap: wrap !important;
	row-gap: 0.1rem;
}

.hasmaster-result-meta .wp-block-post-terms {
	white-space: normal;
}

.hasmaster-result-meta .taxonomy-device_category::before,
.hasmaster-result-meta .taxonomy-domain::before {
	font-weight: 600;
	color: var(--wp--preset--color--text-subtle);
}

.hasmaster-result-meta .taxonomy-device_category::before {
	content: "Category: ";
}

.hasmaster-result-meta .taxonomy-domain::before {
	content: "Domain: ";
}

.hasmaster-list-item .wp-block-post-excerpt {
	margin: 0;
}

.hasmaster-list-item .wp-block-post-excerpt__excerpt {
	margin: 0;
}

/* ==========================================================================
   Card View (triggered by body.hasmaster-view-card)
   ========================================================================== */

.hasmaster-view-card .hasmaster-list-view {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

.hasmaster-view-card .hasmaster-list-item {
	flex-direction: row !important;
	align-items: flex-start !important;
	padding: 1rem !important;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	background: var(--wp--preset--color--base);
	gap: 0.75rem !important;
}

.hasmaster-view-card .hasmaster-list-item:last-child {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.hasmaster-view-card .hasmaster-list-thumb {
	flex: 0 0 88px;
	width: 88px !important;
	height: 88px !important;
	margin: 0;
	background-size: 32px 32px;
}

.hasmaster-view-card .hasmaster-list-thumb img {
	width: 88px;
	height: 88px;
	object-fit: cover;
	border-radius: 6px;
}

.hasmaster-view-card .hasmaster-list-thumb img[src=""],
.hasmaster-view-card .hasmaster-list-thumb img:not([src]) {
	display: none;
}

.hasmaster-view-card .hasmaster-list-thumb:empty::before {
	width: 88px;
	height: 88px;
}

.hasmaster-view-card .hasmaster-list-content {
	flex: 1;
}

.hasmaster-view-card .hasmaster-list-item .wp-block-post-title {
	font-size: 0.9rem !important;
	line-height: 1.3;
}

.hasmaster-view-card .hasmaster-result-meta {
	flex-wrap: wrap;
}

@media (max-width: 1100px) {
	.hasmaster-view-card .hasmaster-list-view {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Dark Mode Overrides
   ========================================================================== */

@media (prefers-color-scheme: dark) {
	.hasmaster-prompt-card {
		background-color: #0a0a0a;
		border-color: #2d2d2d;
	}

	.hasmaster-input-container {
		background-color: #0a0a0a;
		border-color: #2d2d2d;
	}
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */

@media (max-width: 768px) {
	.ai-assistant-container {
		padding: 1rem;
	}

	.hasmaster-icon-box {
		width: 40px;
		height: 40px;
		font-size: 1.1rem;
	}
}

/* ==========================================================================
   Directory Layout (3-Column: Filters | Results | Tags)
   ========================================================================== */

.hasmaster-directory-layout {
	width: 100%;
}

.hasmaster-directory-columns {
	align-items: flex-start;
}

/* Fixed-width sidebars, fluid center */
.hasmaster-directory-filters-col {
	flex: 0 0 200px !important;
	max-width: 200px !important;
}

.hasmaster-directory-results-col {
	flex: 1 1 auto !important;
	min-width: 0; /* Prevent overflow */
	padding-right: 30px; /* Balance spacing with tags column */
}

.hasmaster-directory-tags-col {
	flex: 0 0 180px !important;
	max-width: 180px !important;
}

/* ==========================================================================
   Directory Filters Sidebar
   ========================================================================== */

.hasmaster-directory-sidebar {
	position: sticky;
	top: var(--wp--preset--spacing--40);
}

.hasmaster-filter-group {
	margin-bottom: 1.25rem;
	border: none;
}

.hasmaster-filter-group[open] {
	margin-bottom: 1.25rem;
}

.hasmaster-filter-summary {
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--wp--preset--color--text-muted);
	text-transform: uppercase;
	letter-spacing: 0.05em;
	cursor: pointer;
	padding: 0.25rem 0;
	list-style: none;
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.hasmaster-filter-summary::-webkit-details-marker {
	display: none;
}

.hasmaster-filter-summary::before {
	content: '▸';
	font-size: 1.4rem;
	color: var(--wp--preset--color--accent);
	line-height: 1;
	transition: transform 0.15s ease;
}

.hasmaster-filter-group[open] .hasmaster-filter-summary::before {
	transform: rotate(90deg);
}

.hasmaster-filter-section {
	padding-top: 0.5rem;
}

.hasmaster-filter-section .hasmaster-filter-heading {
	display: none; /* Heading is in the summary */
}

.hasmaster-filter-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hasmaster-filter-item {
	margin: 0;
	padding: 0;
}

.hasmaster-filter-item a {
	display: flex;
	align-items: flex-start;
	gap: 0.35rem;
	padding: 0.25rem 0;
	color: var(--wp--preset--color--text);
	text-decoration: none;
	font-size: 0.875rem;
	line-height: 1.4;
	transition: color 0.15s ease;
}

.hasmaster-filter-item a:hover {
	color: var(--wp--preset--color--accent);
}

.hasmaster-filter-name {
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
}

.hasmaster-filter-item a:hover .hasmaster-filter-name {
	text-decoration-color: var(--wp--preset--color--accent);
}

.hasmaster-filter-item.is-active a {
	color: var(--wp--preset--color--accent);
	font-weight: 500;
}

.hasmaster-filter-item.is-empty a {
	color: var(--wp--preset--color--text-subtle);
	opacity: 1;
}

.hasmaster-filter-checkbox {
	font-size: 0.9rem;
	line-height: 1;
	color: var(--wp--preset--color--text-muted);
	flex: 0 0 auto;
	margin-top: 0.15rem;
}

.hasmaster-filter-name {
	flex: 1 1 auto;
	min-width: 0;
}

.hasmaster-filter-item.is-active .hasmaster-filter-checkbox {
	color: var(--wp--preset--color--accent);
}

.hasmaster-filter-count {
	font-size: 0.75rem;
	color: var(--wp--preset--color--text-subtle);
	margin-left: auto;
	padding-left: 0.4rem;
	white-space: nowrap;
	flex: 0 0 auto;
	min-width: 2.5ch;
	text-align: right;
	text-decoration: none;
}

.hasmaster-prompt-thumb:not(:has(img)) {
	background-image: url('/wp-content/themes/hasmaster/assets/icons/svg/configuration-gear.svg');
}

.hasmaster-filter-actions {
	padding-top: 0.75rem;
	border-top: 1px solid var(--wp--preset--color--border);
	margin-top: 0.5rem;
}

.hasmaster-clear-filters {
	font-size: 0.8rem;
	color: var(--wp--preset--color--accent);
	text-decoration: none;
}

.hasmaster-clear-filters:hover {
	text-decoration: underline;
}

/* ==========================================================================
   Directory Results Header
   ========================================================================== */

.hasmaster-results-header {
	border-bottom: 1px solid var(--wp--preset--color--border);
	padding-bottom: 0.75rem;
	margin-bottom: 0.5rem;
}

.hasmaster-results-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 0.5rem;
}

.hasmaster-results-meta {
	display: flex;
	align-items: baseline;
	gap: 0.35rem;
}

/* View Toggle */
.hasmaster-view-toggle {
	display: flex;
	gap: 0.25rem;
}

.hasmaster-view-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 4px;
	color: var(--wp--preset--color--text-muted);
	background: var(--wp--preset--color--base);
	text-decoration: none;
	transition: all 0.15s ease;
}

.hasmaster-view-btn:hover {
	border-color: var(--wp--preset--color--text-muted);
	color: var(--wp--preset--color--text);
}

.hasmaster-view-btn.is-active {
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d7dce2)));
	color: var(--hasmaster-interactive-active-text, var(--wp--preset--color--accent, #8b0000));
}

.hasmaster-results-count {
	font-size: 0.95rem;
	font-weight: 600;
	color: var(--wp--preset--color--text);
}

.hasmaster-results-filtered {
	font-size: 0.85rem;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-active-filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
	margin-bottom: 0.5rem;
}

.hasmaster-filter-pill {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	padding: 0.2rem 0.5rem;
	font-size: 0.75rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--hasmaster-interactive-radius, 12px);
	color: var(--wp--preset--color--text);
	text-decoration: none;
	transition: all 0.15s ease;
}

.hasmaster-filter-pill:hover {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--base);
}

.hasmaster-filter-pill--domain,
.hasmaster-filter-pill--category,
.hasmaster-filter-pill--tag {
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d7dce2)));
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	color: var(--hasmaster-interactive-active-text, var(--wp--preset--color--accent, #8b0000));
}

.hasmaster-pill-remove {
	font-size: 0.9rem;
	line-height: 1;
	opacity: 0.6;
}

.hasmaster-filter-pill:hover .hasmaster-pill-remove {
	opacity: 1;
}

/* ==========================================================================
   Directory Tags Sidebar
   ========================================================================== */

.hasmaster-directory-tags-sidebar {
	position: sticky;
	top: var(--wp--preset--spacing--40);
}

.hasmaster-tags-group {
	margin-bottom: 0;
}

.hasmaster-tags-content {
	padding-top: 0.5rem;
}

.hasmaster-tag-cloud-contextual {
	display: flex;
	flex-wrap: wrap;
	gap: 0.25rem;
}

.hasmaster-tag-pill {
	display: inline-block;
	padding: 0.15rem 0.5rem;
	font-size: 0.75rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--hasmaster-interactive-radius, 12px);
	color: var(--wp--preset--color--text-muted);
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 2px;
	transition: all 0.15s ease;
	white-space: nowrap;
}

.hasmaster-tag-pill:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	text-decoration-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--base);
}

.hasmaster-tag-pill.is-active {
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d7dce2)));
	color: var(--hasmaster-interactive-active-text, var(--wp--preset--color--accent, #8b0000));
	text-decoration-color: var(--hasmaster-interactive-active-text, var(--wp--preset--color--accent, #8b0000));
}

.hasmaster-no-tags {
	font-size: 0.8rem;
	color: var(--wp--preset--color--text-subtle);
	font-style: italic;
}

/* ==========================================================================
   Directory Responsive (Mobile)
   ========================================================================== */

@media (max-width: 900px) {
	.hasmaster-directory-columns {
		flex-direction: column !important;
	}

	.hasmaster-directory-filters-col,
	.hasmaster-directory-results-col,
	.hasmaster-directory-tags-col {
		flex-basis: 100% !important;
		max-width: 100% !important;
		width: 100% !important;
	}

	.hasmaster-directory-sidebar,
	.hasmaster-directory-tags-sidebar {
		position: static;
	}

	/* Collapse filters by default on mobile */
	.hasmaster-directory-filters-col .hasmaster-filter-group,
	.hasmaster-directory-tags-col .hasmaster-filter-group {
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 8px;
		padding: 0.5rem 0.75rem;
		margin-bottom: 0.75rem;
	}

	.hasmaster-directory-filters-col .hasmaster-filter-group:not([open]),
	.hasmaster-directory-tags-col .hasmaster-filter-group:not([open]) {
		margin-bottom: 0.5rem;
	}

	/* Reorder: Results first, then filters, then tags */
	.hasmaster-directory-columns {
		display: flex;
	}

	.hasmaster-directory-results-col {
		order: 1;
	}

	.hasmaster-directory-filters-col {
		order: 2;
		margin-top: var(--wp--preset--spacing--40);
	}

	.hasmaster-directory-tags-col {
		order: 3;
	}
}

@media (max-width: 600px) {
	.hasmaster-results-meta {
		flex-direction: column;
		gap: 0.15rem;
	}
}

/* ==========================================================================
   Device Hero Layout (Image + Scores)
   ========================================================================== */

.hasmaster-device-content {
	width: 100%;
}

.hasmaster-device-hero {
	margin-bottom: var(--wp--preset--spacing--50);
}

.hasmaster-device-image-col {
	display: flex;
	align-items: flex-start;
	justify-content: center;
}

.hasmaster-device-image-col .wp-block-image {
	margin: 0;
}

.hasmaster-device-image-col .wp-block-image img {
	max-width: 300px;
	max-height: 225px;
	width: auto;
	height: auto;
	object-fit: contain;
	border-radius: 8px;
}

.hasmaster-scores-card {
	border: 1px solid var(--wp--preset--color--border);
}

.hasmaster-scores-card h3 {
	margin-bottom: 0.75rem !important;
	color: var(--wp--preset--color--text);
}

.hasmaster-scores-table {
	margin: 0 !important;
}

.hasmaster-scores-table table {
	font-size: 0.875rem;
	border-collapse: collapse;
	width: 100%;
}

.hasmaster-scores-table th,
.hasmaster-scores-table td {
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.hasmaster-scores-table thead th {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

.hasmaster-scores-table tbody tr:last-child {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
}

.hasmaster-scores-table tbody td:nth-child(2) {
	text-align: center;
	white-space: nowrap;
}

/* ==========================================================================
   Consistent Table Styling for Device Posts
   ========================================================================== */

/* Base table styling for all tables in device posts */
.single-device .wp-block-table table,
.single-software .wp-block-table table,
.hasmaster-scores-card table {
	font-size: 0.85rem;
	border-collapse: collapse;
	width: 100%;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 6px;
	overflow: hidden;
}

.single-device .wp-block-table th,
.single-software .wp-block-table th,
.single-device .wp-block-table td,
.single-software .wp-block-table td,
.hasmaster-scores-card th,
.hasmaster-scores-card td {
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.single-device .wp-block-table thead th,
.single-software .wp-block-table thead th,
.hasmaster-scores-card thead th {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.025em;
}

.single-device .wp-block-table tbody tr:nth-child(even),
.single-software .wp-block-table tbody tr:nth-child(even) {
	background: var(--wp--preset--color--surface-alt, rgba(0,0,0,0.02));
}

.single-device .wp-block-table tbody tr:hover,
.single-software .wp-block-table tbody tr:hover {
	background: var(--wp--preset--color--surface);
}

/* Scores card specific - fixed column widths */
.hasmaster-scores-card table {
	font-size: 0.85rem;
	border-collapse: collapse;
	width: 100%;
}

.hasmaster-scores-card th,
.hasmaster-scores-card td {
	padding: 0.4rem 0.6rem;
	border: 1px solid var(--wp--preset--color--border);
	text-align: left;
}

.hasmaster-scores-card th:first-child,
.hasmaster-scores-card td:first-child {
	white-space: nowrap;
	width: 20%;
}

.hasmaster-scores-card th:nth-child(2),
.hasmaster-scores-card td:nth-child(2) {
	white-space: nowrap;
	text-align: center;
	width: 10%;
}

.hasmaster-scores-card th:nth-child(3),
.hasmaster-scores-card td:nth-child(3) {
	width: 70%;
}

.hasmaster-scores-card thead th {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
	font-size: 0.75rem;
	text-transform: uppercase;
}

.hasmaster-scores-card tbody tr:last-child {
	background: var(--wp--preset--color--surface);
	font-weight: 600;
}

/* ==========================================================================
   Device Intro Section (Description + Image)
   ========================================================================== */

.hasmaster-device-intro-section {
	margin-bottom: var(--wp--preset--spacing--40);
}

.hasmaster-device-intro-image {
	display: flex;
	align-items: flex-start;
	justify-content: center;
}

.hasmaster-device-intro-image .wp-block-image {
	max-width: 200px;
}

.hasmaster-device-intro-image .wp-block-image img {
	width: 100%;
	height: auto;
	border-radius: 8px;
}

/* ==========================================================================
   Device Scores Section (Full Width)
   ========================================================================== */

.hasmaster-device-scores-section {
	margin-bottom: var(--wp--preset--spacing--50);
}

.hasmaster-device-scores-section .hasmaster-scores-card {
	max-width: 800px;
}

/* Responsive: Stack on mobile */
@media (max-width: 768px) {
	.hasmaster-device-intro-section {
		flex-direction: column !important;
	}

	.hasmaster-device-intro-section > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.hasmaster-device-intro-image {
		margin-top: var(--wp--preset--spacing--30);
	}

	.hasmaster-device-intro-image .wp-block-image {
		max-width: 150px;
		margin: 0 auto;
	}
}

/* ==========================================================================
   Software Intro + Scores Layout
   ========================================================================== */

.hasmaster-app-image-col {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
}

.hasmaster-app-image-col .wp-block-image {
	margin: 0;
}

.hasmaster-app-image-col .wp-block-image img {
	max-width: 300px;
	max-height: 225px;
	width: 100%;
	height: auto;
	object-fit: contain;
	border-radius: 8px;
}

.hasmaster-app-intro-section,
.hasmaster-app-scores-section,
.hasmaster-app-snapshot-section {
	margin-bottom: var(--wp--preset--spacing--50);
}

.hasmaster-app-scores-section .hasmaster-scores-card,
.hasmaster-app-snapshot-section .hasmaster-app-snapshot-card {
	max-width: none;
}

@media (max-width: 768px) {
	.hasmaster-app-intro-section {
		flex-direction: column !important;
	}

	.hasmaster-app-intro-section > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.hasmaster-app-image-col {
		margin-bottom: var(--wp--preset--spacing--30);
	}

	.hasmaster-app-image-col .wp-block-image {
		max-width: 150px;
	}
}

/* ==========================================================================
   Use Case Intro Layout
   ========================================================================== */

.hasmaster-use-case-image-col {
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
}

.hasmaster-use-case-image-col .wp-block-image {
	margin: 0;
}

.hasmaster-use-case-image-col .wp-block-image img {
	max-width: 220px;
	max-height: 220px;
	width: 100%;
	height: auto;
	object-fit: contain;
	border-radius: 8px;
}

.hasmaster-use-case-intro-section {
	margin-bottom: var(--wp--preset--spacing--50);
}

@media (max-width: 768px) {
	.hasmaster-use-case-intro-section {
		flex-direction: column !important;
	}

	.hasmaster-use-case-intro-section > .wp-block-column {
		flex-basis: 100% !important;
		width: 100% !important;
	}

	.hasmaster-use-case-image-col {
		margin-bottom: var(--wp--preset--spacing--30);
	}

	.hasmaster-use-case-image-col .wp-block-image {
		max-width: 150px;
	}
}

/* ==========================================================================
   Lifecycle Cards
   ========================================================================== */

.hasmaster-lifecycle-grid {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1rem, 2vw, 1.5rem);
	align-items: stretch !important;
	margin-top: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--50);
}

.hasmaster-vision-lead {
	margin-bottom: 1.15rem;
	font-size: clamp(1.3rem, 1.1vw + 1rem, 1.85rem);
	font-weight: 700;
	line-height: 1.35;
	max-width: 26ch;
}

.hasmaster-lifecycle-grid > .wp-block-column {
	display: flex;
	flex-direction: column;
	flex-basis: auto !important;
	width: auto !important;
	min-width: 0;
	margin: 0 !important;
}

.hasmaster-lifecycle-card {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	height: 100%;
	padding: clamp(1.25rem, 2vw, 1.6rem);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 12%, var(--wp--preset--color--border));
	border-radius: 18px;
	background:
		linear-gradient(180deg, color-mix(in srgb, var(--wp--preset--color--accent-soft) 50%, var(--wp--preset--color--base)) 0%, var(--wp--preset--color--surface) 100%);
	box-shadow:
		0 18px 40px rgba(15, 23, 42, 0.06),
		0 4px 12px rgba(15, 23, 42, 0.04);
	position: relative;
	overflow: hidden;
}

.hasmaster-lifecycle-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--wp--preset--color--accent) 0%, color-mix(in srgb, var(--wp--preset--color--accent) 42%, transparent) 100%);
}

.hasmaster-lifecycle-card > * {
	max-width: none !important;
}

.hasmaster-lifecycle-card .wp-block-heading {
	margin: 0 0 0.9rem;
	font-size: clamp(1rem, 0.45vw + 0.95rem, 1.15rem);
	font-weight: 650;
	letter-spacing: -0.025em;
	line-height: 1.2;
	text-align: left;
}

.hasmaster-lifecycle-card .wp-block-list {
	margin: 0;
	padding-left: 1.15rem;
	color: var(--wp--preset--color--text);
	font-size: clamp(0.92rem, 0.18vw + 0.9rem, 0.98rem);
}

.hasmaster-lifecycle-card .wp-block-list li {
	margin: 0 0 0.7rem;
	color: var(--wp--preset--color--text);
	line-height: 1.7;
}

.hasmaster-lifecycle-card .wp-block-list li:last-child {
	margin-bottom: 0;
}

.hasmaster-lifecycle-card .wp-block-list li::marker {
	color: var(--wp--preset--color--accent);
}

@media (max-width: 1024px) {
	.hasmaster-lifecycle-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.hasmaster-lifecycle-grid {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Device Archive Thumbnails
   ========================================================================== */

.hasmaster-device-thumb {
	width: 80px !important;
	height: 60px !important;
	flex: 0 0 80px;
}

.hasmaster-device-thumb img {
	width: 80px;
	height: 60px;
	object-fit: cover;
	border-radius: 6px;
}

/* Card view thumbnails - square aspect like list view */
.hasmaster-view-card .hasmaster-device-thumb {
	width: 88px !important;
	height: 88px !important;
	flex: 0 0 88px;
	background: var(--wp--preset--color--surface);
	border-radius: 6px;
	margin: 0;
}

.hasmaster-view-card .hasmaster-device-thumb img {
	width: 88px;
	height: 88px;
	object-fit: contain !important;
}

/* ==========================================================================
   Directory Pagination
   ========================================================================== */

.hasmaster-results-query .wp-block-query-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 0.5rem;
	margin-top: var(--wp--preset--spacing--40);
	padding-top: var(--wp--preset--spacing--30);
	border-top: 1px solid var(--wp--preset--color--border);
}

.hasmaster-results-query .wp-block-query-pagination-numbers {
	display: flex;
	gap: 0.25rem;
}

.hasmaster-results-query .wp-block-query-pagination a,
.hasmaster-results-query .wp-block-query-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 4px;
	text-decoration: none;
	color: var(--wp--preset--color--text);
	background: var(--wp--preset--color--base);
	transition: all 0.15s ease;
}

.hasmaster-results-query .wp-block-query-pagination a:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.hasmaster-results-query .wp-block-query-pagination .current {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--white);
}

/* ==========================================================================
   Taxonomy Landing Block
   ========================================================================== */

.hasmaster-taxonomy-landing {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	width: 100%;
}

.hasmaster-taxonomy-landing__header {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.hasmaster-taxonomy-landing__title {
	margin: 0;
	font-size: 1.75rem;
	line-height: 1.2;
}

.hasmaster-taxonomy-landing__intro {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
}

/* ---------- AI Search bar ---------- */

.hasmaster-taxonomy-landing__search-wrap {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.hasmaster-taxonomy-landing__ai-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	align-self: flex-start;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--wp--preset--color--accent);
	letter-spacing: 0.02em;
}

.hasmaster-taxonomy-landing__search {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 0.75rem;
	align-items: stretch;
}

.hasmaster-taxonomy-landing__search-input {
	width: 100%;
	min-height: 52px;
	padding: 0.75rem 1rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	font-size: 1.05rem;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--text);
}

.hasmaster-taxonomy-landing__search-input:focus {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 1px;
	border-color: var(--wp--preset--color--accent);
}

.hasmaster-taxonomy-landing__search-button {
	min-width: 64px;
	border: 1px solid var(--wp--preset--color--text);
	border-radius: 8px;
	background: var(--wp--preset--color--text);
	color: var(--wp--preset--color--base);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: all 0.15s ease;
}

.hasmaster-taxonomy-landing__search-button:hover {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}

/* ---------- AI Star animation ---------- */

.hasmaster-ai-star {
	flex-shrink: 0;
}

.hasmaster-ai-star__spark {
	animation: hasmaster-twinkle 2.4s ease-in-out infinite;
}

.hasmaster-ai-star__spark--1 { animation-delay: 0s; }
.hasmaster-ai-star__spark--2 { animation-delay: 0.8s; }
.hasmaster-ai-star__spark--3 { animation-delay: 1.6s; }

@keyframes hasmaster-twinkle {
	0%, 100% { opacity: 0.2; r: 0.5; }
	50% { opacity: 1; r: 2; }
}

/* ---------- Category card grid ---------- */

.hasmaster-taxonomy-landing__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--wp--preset--spacing--30);
}

.hasmaster-taxonomy-landing__card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	position: relative;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hasmaster-taxonomy-landing__card:hover,
.hasmaster-taxonomy-landing__card:focus-within {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.hasmaster-taxonomy-landing__card-link {
	position: absolute;
	inset: 0;
	z-index: 1;
	border-radius: 12px;
}

.hasmaster-taxonomy-landing__card > *:not(.hasmaster-taxonomy-landing__card-link) {
	position: relative;
	z-index: 2;
}

.hasmaster-taxonomy-landing__card-head,
.hasmaster-taxonomy-landing__card-title-wrap,
.hasmaster-taxonomy-landing__term-description,
.hasmaster-taxonomy-landing__explore,
.hasmaster-taxonomy-landing__icon-wrap,
.hasmaster-taxonomy-landing__term-title,
.hasmaster-taxonomy-landing__children {
	pointer-events: none;
}

/* ---------- Card head (icon + title/desc side-by-side) ---------- */

.hasmaster-taxonomy-landing__card-head {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.hasmaster-taxonomy-landing__icon-wrap {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--border);
	flex: 0 0 56px;
}

.hasmaster-taxonomy-landing__icon-wrap--score {
	background: var(--wp--preset--color--base);
}

.hasmaster-taxonomy-landing__score-letter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 1.75rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	line-height: 1;
	color: var(--wp--preset--color--accent);
}

.hasmaster-taxonomy-landing__score-icon {
	width: 44px;
	height: 44px;
}

.hasmaster-taxonomy-landing__icon {
	width: 48px;
	height: 48px;
}

/* Inline SVGs inside the icon wrap - remove the background rect */
.hasmaster-taxonomy-landing__icon-wrap svg.hasmaster-taxonomy-landing__icon rect:first-child {
	display: none;
}

.hasmaster-taxonomy-landing__card-title-wrap {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.hasmaster-taxonomy-landing__term-title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.25;
}

.hasmaster-taxonomy-landing__term-description {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: 0.85rem;
	line-height: 1.45;
}

/* ---------- Child term list ---------- */

.hasmaster-taxonomy-landing__children {
	margin: 0.25rem 0 0;
	padding-left: 1rem;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.hasmaster-taxonomy-landing__children li {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: 0.85rem;
}

.hasmaster-taxonomy-landing__children a {
	color: var(--wp--preset--color--text);
	text-decoration: none;
	pointer-events: auto;
}

.hasmaster-taxonomy-landing__children a:hover,
.hasmaster-taxonomy-landing__children a:focus-visible {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
}

/* ---------- Explore link ---------- */

.hasmaster-taxonomy-landing__explore {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	margin-top: auto;
	padding-top: 0.35rem;
	font-size: 0.95rem;
	font-weight: 700;
	color: var(--wp--preset--color--black, #000);
	text-decoration-line: underline;
	text-decoration-color: transparent;
	text-decoration-thickness: 2px;
	text-underline-offset: 3px;
	transition: color 0.2s ease, text-decoration-color 0.2s ease;
}

.hasmaster-taxonomy-landing__card:hover .hasmaster-taxonomy-landing__explore,
.hasmaster-taxonomy-landing__card:focus-within .hasmaster-taxonomy-landing__explore {
	color: var(--wp--preset--color--accent);
	text-decoration-color: var(--wp--preset--color--accent);
}

/* Infrastructure + software root: landing-only. Any filtered/search state: results-only. */
body.post-type-archive-infrastructure.hasmaster-directory-mode-landing .hasmaster-directory-layout {
	display: none;
}

body.post-type-archive-infrastructure.hasmaster-directory-mode-results .hasmaster-infrastructure-landing-page {
	display: none;
}

body.post-type-archive-software.hasmaster-directory-mode-landing .hasmaster-directory-layout {
	display: none;
}

body.post-type-archive-software.hasmaster-directory-mode-results .hasmaster-software-landing-page {
	display: none;
}

body.post-type-archive-use_case.hasmaster-directory-mode-landing .hasmaster-directory-layout {
	display: none;
}

body.post-type-archive-use_case.hasmaster-directory-mode-results .hasmaster-use-cases-landing-page {
	display: none;
}

body.post-type-archive-guides.hasmaster-directory-mode-landing .hasmaster-directory-layout {
	display: none;
}

body.post-type-archive-guides.hasmaster-directory-mode-results .hasmaster-guides-landing-page {
	display: none;
}

/* ==========================================================================
   Taxonomy Sitemap (viewMode: tree | site-map)
   ========================================================================== */

/* Editor placeholder */
.hasmaster-taxonomy-landing__editor-preview {
	padding: 1.25rem;
	background: var(--wp--preset--color--surface, #f6f7f7);
	border: 2px dashed var(--wp--preset--color--border, #c3c4c7);
	border-radius: 6px;
}
.hasmaster-taxonomy-landing__editor-label {
	font-size: 0.875rem;
	color: var(--wp--preset--color--text-muted, #777);
}

/* Outer sitemap wrapper — default (tree mode): single column */
.hasmaster-taxonomy-sitemap {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}

/* Site-map mode: 6-column grid */
[data-view="site-map"] .hasmaster-taxonomy-sitemap {
	display: grid;
	grid-template-columns: repeat(6, 1fr);
	gap: 1.5rem;
	align-items: start;
}

/* Column wrapper */
.hasmaster-taxonomy-sitemap__column {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

/* Responsive: 3 columns on medium screens */
@media (max-width: 1200px) {
	[data-view="site-map"] .hasmaster-taxonomy-sitemap {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* Responsive: single column on mobile */
@media (max-width: 640px) {
	[data-view="site-map"] .hasmaster-taxonomy-sitemap {
		grid-template-columns: 1fr;
	}
}

/* Single taxonomy section */
.hasmaster-taxonomy-sitemap__section {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

/* Section heading (e.g. "Use Cases", "Devices") */
.hasmaster-taxonomy-sitemap__heading {
	margin: 0;
	font-size: 0.8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--text);
	padding-bottom: 0.4rem;
	border-bottom: 2px solid var(--wp--preset--color--border);
}

/* Term list — reset default list styles */
.hasmaster-taxonomy-sitemap__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Term item */
.hasmaster-taxonomy-sitemap__term {
	margin: 0;
}

/* Term row: connector + name + count */
.hasmaster-taxonomy-sitemap__row {
	display: flex;
	align-items: baseline;
	gap: 0.25rem;
	padding: 0.1rem 0;
	line-height: 1.6;
}
.hasmaster-taxonomy-sitemap__row:hover {
	background: transparent;
}

/* ASCII tree connector (monospace so spacing characters align) */
.hasmaster-taxonomy-sitemap__connector {
	font-family: 'Courier New', Courier, monospace;
	font-size: 0.8rem;
	color: var(--wp--preset--color--border);
	white-space: pre;
	flex-shrink: 0;
	line-height: inherit;
	user-select: none;
}

/* Term name — link or plain span */
.hasmaster-taxonomy-sitemap__link {
	font-size: 0.875rem;
	color: var(--wp--preset--color--text);
	text-decoration: none;
	flex: 1;
	min-width: 0;
}
a.hasmaster-taxonomy-sitemap__link:hover {
	color: var(--wp--preset--color--accent);
	text-decoration: underline;
}
.hasmaster-taxonomy-sitemap__link--nourl {
	color: var(--wp--preset--color--text-muted);
}

/* Post count */
.hasmaster-taxonomy-sitemap__count {
	font-size: 0.75rem;
	color: var(--wp--preset--color--text-muted);
	white-space: nowrap;
	flex-shrink: 0;
}

/* Nested list — no extra indent (handled via $prefix in PHP) */
.hasmaster-taxonomy-sitemap__list .hasmaster-taxonomy-sitemap__list {
	margin: 0;
	padding: 0;
}

/* ==========================================================================
   Prompt Library Landing
   ========================================================================== */

.hasmaster-prompt-library {
	gap: var(--wp--preset--spacing--30);
}

.hasmaster-prompt-library__detail {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	margin-bottom: 0.65rem;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
}

.hasmaster-prompt-library__back-link {
	margin: 0 0 0.5rem;
	font-size: 0.88rem;
}

.hasmaster-prompt-library__detail-title {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.3;
}

.hasmaster-prompt-library__detail-meta {
	margin: 0;
	font-size: 0.85rem;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-prompt-library__detail + .wp-block-code {
	margin-top: 0.5rem;
}

.hasmaster-prompt-library__detail-notice {
	margin: 0;
	padding: 0.75rem 0.9rem;
	border-radius: 8px;
	border: 1px solid var(--wp--preset--color--border);
	background: color-mix(in srgb, var(--wp--preset--color--surface, #fff6f6) 88%, #ffd8d8 12%);
	color: var(--wp--preset--color--text-muted);
	font-size: 0.9rem;
}

.hasmaster-prompt-library__content {
	display: grid;
	grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
	gap: 1rem;
	align-items: start;
}

.hasmaster-prompt-library__filters {
	position: sticky;
	top: 1rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding: 0.9rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	background: color-mix(in srgb, var(--wp--preset--color--surface, #fafafa) 92%, var(--wp--preset--color--base, #fff));
}

.hasmaster-prompt-library__filter-group {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.hasmaster-prompt-library__filter-title {
	margin: 0;
	font-size: 0.82rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-prompt-library__filter-options {
	display: flex;
	flex-direction: column;
	gap: 0.45rem;
}

.hasmaster-prompt-library__filter-options--tags {
	max-height: 420px;
	overflow-y: auto;
	padding-right: 0.1rem;
}

.hasmaster-prompt-library__results {
	min-width: 0;
}

.hasmaster-prompt-library__toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 0.75rem;
}

.hasmaster-prompt-library__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.hasmaster-prompt-library__tag {
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--text);
	border-radius: var(--hasmaster-interactive-radius, 12px);
	padding: 0.3rem 0.7rem;
	font-size: 0.82rem;
	font-weight: 500;
	cursor: pointer;
	text-align: left;
}

.hasmaster-prompt-library__tag:hover,
.hasmaster-prompt-library__tag:focus-visible {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.hasmaster-prompt-library__tag.is-active {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 8%, var(--wp--preset--color--surface, #fff));
	font-weight: 600;
}

.hasmaster-prompt-library__count {
	margin: 0;
	font-size: 0.88rem;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-prompt-library__icon-letter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1;
	color: var(--wp--preset--color--accent);
}

.hasmaster-prompt-library__descriptor {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
	margin: 0;
	font-size: 0.82rem;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-prompt-library__descriptor-label {
	font-weight: 600;
	color: var(--wp--preset--color--text-subtle);
}

.hasmaster-prompt-library__tags-list {
	margin-top: 0.25rem;
}

.hasmaster-prompt-library__empty {
	margin: 0.75rem 0 0;
	font-size: 0.88rem;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-prompt-library__card[hidden] {
	display: none !important;
}

/* List view modifier */
.hasmaster-prompt-library__grid--list {
	grid-template-columns: 1fr !important;
	gap: 0.4rem !important;
}

.hasmaster-prompt-library__grid--list .hasmaster-taxonomy-landing__card {
	flex-direction: row;
	align-items: flex-start;
	gap: 1rem;
	padding: 0.65rem 1rem;
}

.hasmaster-prompt-library__grid--list .hasmaster-taxonomy-landing__card-head {
	flex-shrink: 0;
	margin-bottom: 0;
}

.hasmaster-prompt-library__grid--list .hasmaster-taxonomy-landing__icon-wrap {
	width: 40px;
	height: 40px;
	flex-shrink: 0;
}

.hasmaster-prompt-library__grid--list .hasmaster-taxonomy-landing__card-title-wrap {
	flex: 1;
}

.hasmaster-prompt-library__grid--list .hasmaster-taxonomy-landing__term-description {
	font-size: 0.8rem;
	margin: 0.15rem 0 0;
}

.hasmaster-prompt-library__grid--list .hasmaster-taxonomy-landing__explore {
	display: none;
}

@media (max-width: 980px) {
	.hasmaster-prompt-library__content {
		grid-template-columns: 1fr;
	}

	.hasmaster-prompt-library__filters {
		position: static;
	}

	.hasmaster-prompt-library__filter-options,
	.hasmaster-prompt-library__filter-options--tags {
		flex-direction: row;
		flex-wrap: wrap;
		max-height: none;
		overflow: visible;
	}

	.hasmaster-prompt-library__tag {
		text-align: center;
	}
}

.hasmaster-labs-landing {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	width: 100%;
}

.hasmaster-labs-landing__header {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.hasmaster-labs-landing__title {
	margin: 0;
	font-size: 1.75rem;
	line-height: 1.2;
}

.hasmaster-labs-landing__intro {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	max-width: 72ch;
}

.hasmaster-labs-landing__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--wp--preset--spacing--30);
}

.hasmaster-labs-landing__card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.hasmaster-labs-landing__card:hover {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

.hasmaster-labs-landing__card-head {
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
}

.hasmaster-labs-landing__icon-wrap {
	width: 56px;
	height: 56px;
	border-radius: 10px;
	background: var(--wp--preset--color--base);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--wp--preset--color--border);
	flex: 0 0 56px;
}

.hasmaster-labs-landing__icon {
	width: 48px;
	height: 48px;
}

.hasmaster-labs-landing__card-title-wrap {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 0.2rem;
}

.hasmaster-labs-landing__term-title {
	margin: 0;
	font-size: 1.05rem;
	font-weight: 600;
	line-height: 1.25;
}

.hasmaster-labs-landing__term-description {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	font-size: 0.9rem;
	line-height: 1.45;
}

.hasmaster-labs-landing__status {
	margin: auto 0 0;
	font-size: 0.85rem;
	line-height: 1.4;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-labs-landing__meta-list {
	margin: 0;
	padding-left: 1.1rem;
	display: grid;
	gap: 0.35rem;
}

.hasmaster-labs-landing__meta-list li {
	line-height: 1.35;
}

.hasmaster-labs-landing__meta-list a {
	color: var(--wp--preset--color--foreground);
	text-decoration-color: rgba(0, 0, 0, 0.25);
	text-underline-offset: 2px;
}

.hasmaster-labs-landing__meta-list a:hover {
	color: var(--wp--preset--color--accent);
	text-decoration-color: var(--wp--preset--color--accent);
}

.hasmaster-labs-landing__coming-soon {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.hasmaster-labs-landing__coming-soon-icon {
	flex: 0 0 14px;
	opacity: 0.8;
}

/* Labs single post: snapshot + compact carousel two-column overview */
.hasmaster-labs-overview {
	display: grid;
	grid-template-columns: minmax(0, 1.12fr) minmax(0, 0.88fr);
	gap: 1.25rem;
	align-items: start;
	margin: 0.25rem 0 1.5rem;
}

.hasmaster-labs-overview__snapshot,
.hasmaster-labs-overview__media {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 12px;
	background: var(--wp--preset--color--surface);
	padding: 1rem;
}

.hasmaster-labs-overview__snapshot h2,
.hasmaster-labs-overview__media h3 {
	margin-top: 0;
	margin-bottom: 0.75rem;
}

.hasmaster-labs-overview__snapshot ul {
	margin: 0;
	padding-left: 1.2rem;
}

.hasmaster-photo-carousel {
	display: grid;
	gap: 0.65rem;
}

.hasmaster-photo-carousel__viewport {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	border-radius: 10px;
	border: 1px solid rgba(0, 0, 0, 0.12);
	background: #111;
	scrollbar-width: none;
}

.hasmaster-photo-carousel__viewport::-webkit-scrollbar {
	display: none;
}

.hasmaster-photo-carousel__slide {
	flex: 0 0 100%;
	scroll-snap-align: start;
	margin: 0;
}

.hasmaster-photo-carousel__slide img {
	display: block;
	width: 100%;
	height: clamp(220px, 26vw, 320px);
	object-fit: cover;
}

.hasmaster-photo-carousel__controls {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.hasmaster-photo-carousel__nav {
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--text);
	border-radius: 999px;
	height: 34px;
	width: 34px;
	cursor: pointer;
	line-height: 1;
	font-size: 1rem;
}

.hasmaster-photo-carousel__nav:hover {
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
}

.hasmaster-photo-carousel__dots {
	display: flex;
	flex-wrap: nowrap;
	flex: 1 1 auto;
	justify-content: center;
	gap: 0.35rem;
	overflow-x: auto;
	white-space: nowrap;
	scrollbar-width: none;
}

.hasmaster-photo-carousel__dots::-webkit-scrollbar {
	display: none;
}

.hasmaster-photo-carousel__dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: 1px solid rgba(0, 0, 0, 0.25);
	background: rgba(0, 0, 0, 0.18);
	padding: 0;
	cursor: pointer;
}

.hasmaster-photo-carousel__dot.is-active,
.hasmaster-photo-carousel__dot[aria-current="true"] {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}

.hasmaster-photo-carousel__empty {
	margin: 0;
	font-size: 0.9rem;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-labs-code {
	margin: 0.65rem 0 1rem;
	padding: 0.9rem 1rem;
	border-radius: 10px;
	border: 1px solid rgba(0, 0, 0, 0.15);
	background: #121820;
	color: #e6edf3;
	overflow-x: auto;
	white-space: pre;
	line-height: 1.45;
	font-size: 0.85rem;
}

.hasmaster-labs-code code {
	display: block;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	white-space: inherit;
	color: inherit;
}

.hasmaster-use-cases-landing-page .hasmaster-taxonomy-landing__grid {
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: var(--wp--preset--spacing--20);
}

.hasmaster-use-cases-landing-page .hasmaster-taxonomy-landing__card-head {
	flex-direction: column;
	align-items: center;
	gap: 0.65rem;
	text-align: center;
}

.hasmaster-use-cases-landing-page .hasmaster-taxonomy-landing__icon-wrap {
	margin: 0 auto;
}

.hasmaster-use-cases-landing-page .hasmaster-taxonomy-landing__card-title-wrap {
	align-items: center;
	text-align: center;
	width: 100%;
}

@media (max-width: 1280px) {
	.hasmaster-use-cases-landing-page .hasmaster-taxonomy-landing__grid {
		grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	}
}

@media (max-width: 781px) {
	.hasmaster-taxonomy-landing__search {
		grid-template-columns: 1fr;
	}

	.hasmaster-taxonomy-landing__search-button {
		min-height: 48px;
	}

	.hasmaster-taxonomy-landing__card-head {
		gap: 0.6rem;
	}

	.hasmaster-taxonomy-landing__icon-wrap {
		width: 48px;
		height: 48px;
		flex-basis: 48px;
	}

	.hasmaster-taxonomy-landing__icon {
		width: 40px;
		height: 40px;
	}

	.hasmaster-labs-landing__card-head {
		gap: 0.6rem;
	}

	.hasmaster-labs-landing__icon-wrap {
		width: 48px;
		height: 48px;
		flex-basis: 48px;
	}

	.hasmaster-labs-landing__icon {
		width: 40px;
		height: 40px;
	}

	.hasmaster-labs-overview {
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Use Case Single Alignment
   ========================================================================== */

.single-use_case .hasmaster-use-case-single-shell .wp-block-post-content.is-layout-constrained > *:not(.alignwide):not(.alignfull) {
	margin-left: 0 !important;
	margin-right: auto !important;
}

.single-use_case .hasmaster-use-case-single-shell .hasmaster-use-case-updated {
	width: 100%;
	max-width: var(--wp--style--global--content-size, 650px);
}

/* ==========================================================================
   Post Single Alignment + Labs Overview
   ========================================================================== */

.single-post .hasmaster-post-single-main.is-layout-constrained > .hasmaster-post-single-shell.alignwide {
	margin-left: auto !important;
	margin-right: auto !important;
}

.single-post .hasmaster-post-single-shell > *:not(.alignwide):not(.alignfull) {
	margin-left: 0 !important;
	margin-right: auto !important;
}

.single-post .hasmaster-post-single-shell .wp-block-post-content.is-layout-constrained > *:not(.alignwide):not(.alignfull) {
	margin-left: 0 !important;
	margin-right: auto !important;
}

.single-post .hasmaster-post-single-shell .wp-block-post-content.is-layout-constrained > .hasmaster-labs-overview {
	max-width: var(--wp--style--global--wide-size, 1340px);
}

/* ==========================================================================
   AI Conversation Thread
   ========================================================================== */

.ai-thread {
	max-height: 60vh;
	overflow-y: auto;
	scroll-behavior: smooth;
	margin-bottom: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	padding: 0.25rem 0;
}

.ai-thread::-webkit-scrollbar { width: 6px; }
.ai-thread::-webkit-scrollbar-track { background: transparent; }
.ai-thread::-webkit-scrollbar-thumb {
	background: var(--wp--preset--color--border, #e0e0e0);
	border-radius: 3px;
}

.ai-thread-latest--hidden { display: none; }

/* ---------- Thread sections: Response (top) and History (bottom) ---------- */

.ai-thread-response,
.ai-thread-history {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
}

.ai-thread-response--active::before {
	content: 'Response';
	display: block;
	font-size: 0.7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--wp--preset--color--text-muted);
	margin-bottom: 0.1rem;
}

.ai-thread-history--active {
	border: 1px dashed var(--wp--preset--color--border);
	border-radius: 8px;
	padding: 0.55rem 0.6rem;
	margin-top: 0.25rem;
	background: color-mix(in srgb, var(--wp--preset--color--surface, #fafafa) 86%, var(--wp--preset--color--base, #fff));
	min-height: clamp(8rem, 18vh, 11rem);
	max-height: min(16rem, 36vh);
	overflow-y: auto;
	scrollbar-gutter: stable;
	opacity: 0.9;
}

.ai-thread-history--active::before {
	content: none;
}

.ai-thread-history__title {
	display: block;
	font-size: 0.76rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0.09em;
	color: var(--wp--preset--color--text, #2d2d2d);
	margin-bottom: 0.18rem;
}

/* ---------- Message bubbles ---------- */

.ai-thread-msg {
	max-width: 85%;
	animation: ai-thread-fadein 0.25s ease-out;
}

@keyframes ai-thread-fadein {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* User: right-aligned dark bubble */
.ai-thread-msg--user {
	align-self: flex-end;
}

.ai-thread-msg--user .ai-thread-msg__content {
	background: var(--wp--preset--color--text, #2d2d2d);
	color: var(--wp--preset--color--base, #fff);
	border-radius: 12px 12px 2px 12px;
	padding: 0.65rem 1rem;
	font-size: 0.9rem;
	line-height: 1.5;
}

/* Assistant: left-aligned surface bubble */
.ai-thread-msg--assistant {
	align-self: flex-start;
}

.ai-thread-msg--assistant .ai-thread-msg__content {
	background: var(--wp--preset--color--surface, #fafafa);
	color: var(--wp--preset--color--text, #2d2d2d);
	border: 1px solid var(--wp--preset--color--border, #e0e0e0);
	border-radius: 12px 12px 12px 2px;
	padding: 0.65rem 1rem;
	font-size: 0.9rem;
	line-height: 1.5;
}

.ai-thread-msg__title {
	display: block;
	font-weight: 700;
	font-size: 0.9rem;
	margin-bottom: 0.2rem;
}

.ai-thread-msg__body {
	margin: 0;
	font-size: 0.85rem;
	color: var(--wp--preset--color--text-muted, #6b6b6b);
}

.ai-thread-msg__body a {
	color: var(--wp--preset--color--accent, #8b0000);
	text-decoration: underline;
	text-decoration-thickness: 1px;
}

/* ---------- History as compact terminal-like log ---------- */

.ai-thread-history .ai-thread-msg {
	max-width: 88% !important;
}

.ai-thread-history .ai-thread-msg--user {
	align-self: flex-end !important;
	text-align: right;
}

.ai-thread-history .ai-thread-msg--assistant {
	align-self: flex-start !important;
	text-align: left;
}

.ai-thread-history .ai-thread-msg__content {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0.15rem 0 !important;
	font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important;
	font-size: 0.73rem !important;
	line-height: 1.35 !important;
	display: block;
	color: var(--wp--preset--color--text-muted, #5d6776) !important;
}

.ai-thread-history .ai-thread-msg--user .ai-thread-msg__content::before {
	content: "you>";
	color: var(--wp--preset--color--accent, #8b0000);
	font-weight: 700;
	margin-right: 0.35rem;
}

.ai-thread-history .ai-thread-msg--assistant .ai-thread-msg__content::before {
	content: "ai >";
	color: var(--wp--preset--color--text-muted, #5d6776);
	font-weight: 700;
	margin-right: 0.35rem;
}

.ai-thread-history .ai-thread-msg__title {
	display: inline;
	margin: 0 0.25rem 0 0;
	font-size: 0.72rem !important;
	font-weight: 700;
}

.ai-thread-history .ai-thread-msg__body {
	display: inline;
	margin: 0;
	font-size: 0.72rem !important;
	color: inherit !important;
}

.ai-thread-history .ai-thread-msg__body a {
	color: inherit;
	text-decoration-thickness: 1px;
}

/* ---------- Prompt grid collapse ---------- */

.prompt-grid-section.prompt-grid--collapsed .section-title {
	display: none !important;
}

.prompt-grid-section.prompt-grid--collapsed .prompt-grid {
	max-height: 90px;
	overflow: hidden;
	position: relative;
}

.prompt-grid-section.prompt-grid--collapsed .prompt-grid::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 45px;
	background: linear-gradient(transparent, var(--wp--preset--color--base, #fff));
	pointer-events: none;
}

@media (max-width: 768px) {
	.ai-thread { max-height: 50vh; }
	.ai-thread-msg { max-width: 92%; }
	.ai-thread-history--active {
		min-height: 7rem;
		max-height: 12rem;
	}
}

/* ==========================================================================
   Journey Step Nav Block
   ========================================================================== */

.hasmaster-journey-step-nav {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	width: 100%;
	max-width: min(1680px, 95vw);
	margin-left: auto;
	margin-right: auto;
}

/* ---------- Header (full width) ---------- */

.hasmaster-journey-step-nav__header {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.hasmaster-journey-step-nav__title {
	margin: 0;
	font-size: 2rem;
	line-height: 1.2;
}

.hasmaster-journey-step-nav__description {
	margin: 0;
	color: var(--wp--preset--color--text-muted);
	max-width: 68ch;
}

/* ---------- Three-column layout ---------- */

.hasmaster-journey-step-nav__layout {
	display: grid;
	grid-template-columns: minmax(300px, 1.3fr) minmax(640px, 2.3fr) minmax(230px, 0.85fr);
	gap: 1rem;
	align-items: start;
}

/* Column labels */

.hasmaster-journey-step-nav__col-label {
	margin: 0 0 0.5rem;
	font-size: 0.72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.09em;
	color: var(--wp--preset--color--text-muted);
}

/* ---------- Inspiration library column ---------- */

.hasmaster-journey-step-nav__inspiration-col {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	min-width: 0;
	position: sticky;
	top: 1.2rem;
}

.hasmaster-journey-inspiration-library {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	padding: 0.7rem;
}

.hasmaster-journey-inspiration-library__title {
	margin: 0 0 0.3rem;
	font-size: 0.84rem;
	line-height: 1.25;
}

.hasmaster-journey-inspiration-library__hint {
	margin: 0;
	font-size: 0.73rem;
	line-height: 1.4;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-inspiration-library__list {
	list-style: none;
	margin: 0.6rem 0 0;
	padding: 0;
	display: grid;
	gap: 0.42rem;
	max-height: 54vh;
	overflow: auto;
}

.hasmaster-journey-inspiration-library__item {
	padding: 0.45rem 0.52rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 7px;
	background: var(--wp--preset--color--base, #fff);
}

.hasmaster-journey-inspiration-library__item--hasmaster {
	border-left: 2px solid var(--wp--preset--color--accent, #8b0000);
}

.hasmaster-journey-inspiration-library__section {
	margin: 0.1rem 0 0;
	padding: 0;
}

.hasmaster-journey-inspiration-library__section-title {
	margin: 0.15rem 0 0.1rem;
	padding-top: 0.18rem;
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: 0.65rem;
	line-height: 1.2;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-inspiration-library__section-title--hasmaster {
	color: var(--wp--preset--color--accent, #8b0000);
}

.hasmaster-journey-inspiration-library__item-title {
	margin: 0;
	font-size: 0.74rem;
	line-height: 1.35;
	font-weight: 600;
}

.hasmaster-journey-inspiration-library__item-meta {
	margin: 0.2rem 0 0;
	font-size: 0.68rem;
	line-height: 1.3;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-inspiration-library__empty {
	padding: 0.35rem 0.05rem;
	font-size: 0.74rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-inspiration-library__empty--section {
	padding-left: 0.12rem;
}

/* ---------- Chat column ---------- */

.hasmaster-journey-step-nav__chat-col {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	min-width: 0;
}

/* Thread sits above the output area */
.hasmaster-journey-step-nav__chat-col .ai-thread {
	max-height: 55vh;
	min-height: 120px;
}

.hasmaster-journey-step-nav__chat-col .hasmaster-input-container {
	margin-bottom: 0;
}

/* ---------- Output area (AI results container) ---------- */

.hasmaster-journey-step-nav__output-area {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	background: var(--wp--preset--color--surface);
	min-height: 100px;
	overflow: hidden;
}

/* Remove border/bg from the card itself — the wrapper provides it */
.hasmaster-journey-step-nav__output-area .ai-results-card {
	border: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	margin: 0;
}

/* ---------- Progress column (sticky) ---------- */

.hasmaster-journey-step-nav__progress-col {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	position: sticky;
	top: 1.2rem;
}

/* ---------- Status bar ---------- */

.hasmaster-journey-step-nav__status-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 0.1rem;
	padding: 0.4rem 0.7rem;
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
	font-size: 0.72rem;
	color: var(--wp--preset--color--text-muted);
	line-height: 1.3;
}

.hasmaster-journey-step-nav__status-item {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	white-space: nowrap;
}

.hasmaster-journey-step-nav__status-sep {
	color: var(--wp--preset--color--border);
	padding: 0 0.15rem;
}

.hasmaster-journey-step-nav__status-item--js:empty {
	display: none;
}

/* ---------- Progress summary bar ---------- */

.hasmaster-journey-step-nav__progress-summary {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.5rem 0.75rem;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 8px;
}

.hasmaster-journey-step-nav__progress-text {
	font-size: 0.78rem;
	font-weight: 600;
	color: var(--wp--preset--color--text-muted);
	white-space: nowrap;
}

.hasmaster-journey-step-nav__progress-pips {
	display: flex;
	gap: 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.hasmaster-journey-step-nav__pip {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--wp--preset--color--border);
	transition: background 0.2s ease;
}

.hasmaster-journey-step-nav__pip--answered {
	background: var(--wp--preset--color--accent);
}

/* ---------- Question list ---------- */

.hasmaster-journey-step-nav__questions {
	display: flex;
	flex-direction: column;
	gap: 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* ---------- Question card: compact single-column ---------- */

.hasmaster-journey-step-nav__question {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
	padding: 0.55rem 0.7rem;
	display: flex;
	flex-direction: column;
	gap: 0.28rem;
	align-items: start;
	transition: border-color 0.15s ease;
}

.hasmaster-journey-step-nav__question--answered {
	border-color: var(--wp--preset--color--accent);
}

.hasmaster-journey-step-nav__question-main {
	display: flex;
	flex-direction: column;
	gap: 0.22rem;
	min-width: 0;
	width: 100%;
}

.hasmaster-journey-step-nav__question-id {
	display: flex;
	align-items: center;
	gap: 0.4rem;
}

.hasmaster-journey-step-nav__question-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	border: 1.5px solid var(--wp--preset--color--border);
	font-size: 0.62rem;
	font-weight: 700;
	line-height: 1;
	flex-shrink: 0;
	color: var(--wp--preset--color--text);
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.hasmaster-journey-step-nav__question--answered .hasmaster-journey-step-nav__question-num {
	background: var(--wp--preset--color--base);
	border-color: var(--wp--preset--color--border);
	color: var(--wp--preset--color--text);
}

.hasmaster-journey-step-nav__question-label {
	font-size: 0.67rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--wp--preset--color--text-muted);
}

.hasmaster-journey-step-nav__question-text {
	margin: 0;
	font-size: 0.74rem;
	font-weight: 500;
	line-height: 1.3;
	color: var(--wp--preset--color--text);
}

.hasmaster-journey-step-nav__question-state {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}

.hasmaster-journey-step-nav__question-status {
	flex-shrink: 0;
	color: var(--wp--preset--color--border);
	transition: color 0.2s ease;
	line-height: 1;
}

.hasmaster-journey-step-nav__question--answered .hasmaster-journey-step-nav__question-status {
	color: var(--wp--preset--color--accent);
}

.hasmaster-journey-step-nav__status-icon--done {
	display: none;
}

.hasmaster-journey-step-nav__question--answered .hasmaster-journey-step-nav__status-icon--empty {
	display: none;
}

.hasmaster-journey-step-nav__question--answered .hasmaster-journey-step-nav__status-icon--done {
	display: block;
}

.hasmaster-journey-step-nav__answer {
	font-size: 0.7rem;
	line-height: 1.25;
	color: var(--wp--preset--color--text-muted, #5d6776);
	padding: 0;
	border-radius: 0;
	background: transparent;
	border: none;
	display: inline-flex;
	align-items: center;
}

.hasmaster-journey-step-nav__question-status.is-clickable,
.hasmaster-journey-step-nav__answer--has-recorded {
	cursor: pointer;
}

.hasmaster-journey-step-nav__answer--has-recorded {
	text-decoration: underline;
	text-decoration-style: dotted;
	text-underline-offset: 0.1rem;
}

.hasmaster-journey-step-nav__question-status.is-clickable:focus-visible,
.hasmaster-journey-step-nav__answer--has-recorded:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent, #8b0000);
	outline-offset: 2px;
	border-radius: 4px;
}

.hasmaster-journey-step-nav__answer--empty {
	color: var(--wp--preset--color--text-muted);
	border: none;
}

.hasmaster-journey-step-nav__question--answered .hasmaster-journey-step-nav__answer {
	color: var(--wp--preset--color--text, #1f2937);
	border: none;
}

.hasmaster-journey-task-answer-modal[hidden] {
	display: none;
}

.hasmaster-journey-task-answer-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
}

.hasmaster-journey-task-answer-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 42, 0.45);
}

.hasmaster-journey-task-answer-modal__dialog {
	position: relative;
	width: min(640px, calc(100vw - 2rem));
	max-height: calc(100vh - 4rem);
	overflow: auto;
	margin: 2rem auto;
	background: var(--wp--preset--color--base, #ffffff);
	border: 1px solid var(--wp--preset--color--border, #d7dce2);
	border-radius: 12px;
	padding: 1rem 1rem 1.1rem;
	box-shadow: 0 14px 30px rgba(15, 23, 42, 0.25);
}

.hasmaster-journey-task-answer-modal__close {
	position: absolute;
	top: 0.5rem;
	right: 0.5rem;
	background: transparent;
	border: none;
	font-size: 1.4rem;
	line-height: 1;
	color: var(--wp--preset--color--text-muted, #5d6776);
	cursor: pointer;
	padding: 0.2rem 0.4rem;
}

.hasmaster-journey-task-answer-modal__close:hover {
	color: var(--wp--preset--color--accent, #8b0000);
}

.hasmaster-journey-task-answer-modal__title {
	margin: 0 0 0.45rem;
	font-size: 1rem;
}

.hasmaster-journey-task-answer-modal__meta {
	margin: 0 0 0.45rem;
	font-size: 0.8rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-task-answer-modal__question {
	margin: 0 0 0.55rem;
	font-size: 0.82rem;
	color: var(--wp--preset--color--text, #1f2937);
}

.hasmaster-journey-task-answer-modal__body {
	font-size: 0.88rem;
	line-height: 1.5;
	white-space: pre-wrap;
	color: var(--wp--preset--color--text, #1f2937);
}

/* ---------- Save row (last item, full-width) ---------- */

.hasmaster-journey-step-nav__question--save {
	grid-template-columns: 1fr;
	border-style: dashed;
	background: transparent;
}

.hasmaster-journey-step-nav__save-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.hasmaster-journey-step-nav__save-label {
	margin: 0;
	font-size: 0.8rem;
	color: var(--wp--preset--color--text-muted);
	font-style: italic;
}

.hasmaster-journey-step-nav__save-btn {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.85rem;
	border-radius: 6px;
	background: transparent;
	color: var(--wp--preset--color--text);
	border: 1px solid var(--wp--preset--color--border);
	font-size: 0.78rem;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
	flex-shrink: 0;
}

.hasmaster-journey-step-nav__save-btn--guest {
	color: var(--wp--preset--color--text-muted);
	border-style: dashed;
}

/* Single hover standard — matches site-wide ghost button pattern */
.hasmaster-journey-step-nav__save-btn:hover,
.hasmaster-journey-step-nav__save-btn--guest:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	border-style: solid;
}

.hasmaster-journey-step-nav__save-feedback {
	flex: 1 1 100%;
	font-size: 0.78rem;
	line-height: 1.35;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-step-nav__save-feedback.is-success {
	color: var(--wp--preset--color--text, #1f2937);
}

.hasmaster-journey-step-nav__save-feedback.is-error {
	color: var(--wp--preset--color--accent, #8b0000);
}

/* ---------- Scenario switcher ---------- */

.hasmaster-journey-step-nav__scenario-switcher {
	margin: 0.15rem 0 0.7rem;
	padding: 0.55rem 0.6rem;
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	border-radius: 10px;
	background: var(--wp--preset--color--base, #fff);
}

.hasmaster-journey-step-nav__scenario-switcher-head,
.hasmaster-journey-step-nav__scenario-switcher-row {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	justify-content: space-between;
}

.hasmaster-journey-step-nav__scenario-switcher-row {
	margin-top: 0.4rem;
}

.hasmaster-journey-step-nav__scenario-switcher-row--actions {
	justify-content: flex-end;
	flex-wrap: wrap;
}

.hasmaster-journey-step-nav__scenario-label {
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-step-nav__scenario-select {
	flex: 1 1 auto;
	min-width: 0;
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	border-radius: 7px;
	padding: 0.28rem 0.42rem;
	font-size: 0.78rem;
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--text, #1f2937);
}

.hasmaster-journey-step-nav__scenario-btn {
	flex: 0 0 auto;
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	border-radius: 7px;
	background: transparent;
	padding: 0.28rem 0.45rem;
	font-size: 0.74rem;
	font-weight: 600;
	line-height: 1.2;
	cursor: pointer;
	color: var(--wp--preset--color--text, #1f2937);
}

.hasmaster-journey-step-nav__scenario-btn--ghost {
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journey-step-nav__scenario-status {
	margin-top: 0.38rem;
	font-size: 0.72rem;
	line-height: 1.25;
	color: var(--wp--preset--color--text-muted, #5d6776);
	min-height: 0.95rem;
}

/* ---------- Journeys portfolio workspace ---------- */

.hasmaster-journeys-portfolio {
	margin: 0 0 2rem;
	padding: 1.35rem;
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	border-radius: 16px;
	background: var(--wp--preset--color--surface, #fafafa);
}

.hasmaster-journeys-portfolio__hero {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1rem;
}

.hasmaster-journeys-portfolio__eyebrow {
	margin: 0 0 0.35rem;
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__hero-copy h2 {
	margin: 0;
	font-size: clamp(1.45rem, 2vw, 2rem);
}

.hasmaster-journeys-portfolio__hero-copy p:last-child {
	margin: 0.45rem 0 0;
	max-width: 62ch;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__toolbar {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
}

.hasmaster-journeys-portfolio__toolbar-btn,
.hasmaster-journeys-portfolio__action-btn,
.hasmaster-journeys-portfolio__stage-btn {
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	border-radius: 10px;
	background: var(--wp--preset--color--base, #fff);
	color: var(--wp--preset--color--text, #1f2937);
	font: inherit;
	cursor: pointer;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.15s ease;
}

.hasmaster-journeys-portfolio__toolbar-btn {
	padding: 0.68rem 0.95rem;
	font-weight: 600;
}

.hasmaster-journeys-portfolio__toolbar-btn:hover,
.hasmaster-journeys-portfolio__action-btn:hover,
.hasmaster-journeys-portfolio__stage-btn:hover {
	border-color: var(--wp--preset--color--accent, #8b0000);
	color: var(--wp--preset--color--accent, #8b0000);
	transform: translateY(-1px);
}

.hasmaster-journeys-portfolio__toolbar-btn--ghost,
.hasmaster-journeys-portfolio__action-btn--ghost {
	background: transparent;
}

.hasmaster-journeys-portfolio__status-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	margin-bottom: 1rem;
}

.hasmaster-journeys-portfolio__summary-line,
.hasmaster-journeys-portfolio__status-line {
	margin: 0;
	font-size: 0.92rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__status-line.is-error {
	color: var(--wp--preset--color--accent, #8b0000);
}

.hasmaster-journeys-portfolio__list {
	display: block;
}

.hasmaster-journeys-portfolio__workspace {
	display: grid;
	grid-template-columns: minmax(250px, 0.82fr) minmax(0, 1.68fr);
	gap: 1rem;
	align-items: start;
}

.hasmaster-journeys-portfolio__sidebar,
.hasmaster-journeys-portfolio__card,
.hasmaster-journeys-portfolio__detail-card,
.hasmaster-journeys-portfolio__empty {
	padding: 1.1rem;
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	border-radius: 16px;
	background: var(--wp--preset--color--base, #fff);
}

.hasmaster-journeys-portfolio__sidebar {
	background: var(--wp--preset--color--surface-alt, #f4f1eb);
}

.hasmaster-journeys-portfolio__detail-card.is-active {
	border-color: rgba(139, 0, 0, 0.36);
	box-shadow: 0 8px 22px rgba(139, 0, 0, 0.08);
}

.hasmaster-journeys-portfolio__detail-card.is-archived {
	opacity: 0.88;
}

.hasmaster-journeys-portfolio__sidebar-head h3 {
	margin: 0;
	font-size: 1rem;
}

.hasmaster-journeys-portfolio__sidebar-head p {
	margin: 0.3rem 0 0.85rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__selector-list {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	max-height: 72vh;
	overflow: auto;
	padding-right: 0.15rem;
}

.hasmaster-journeys-portfolio__selector-item {
	display: flex;
	align-items: flex-start;
	gap: 0.7rem;
	padding: 0.8rem 0.85rem;
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	border-radius: 14px;
	background: var(--wp--preset--color--base, #fff);
	cursor: pointer;
	transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.hasmaster-journeys-portfolio__selector-item:hover {
	border-color: rgba(139, 0, 0, 0.28);
	transform: translateY(-1px);
}

.hasmaster-journeys-portfolio__selector-item.is-selected {
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d5d9e2)));
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	box-shadow: 0 8px 20px rgba(139, 0, 0, 0.08);
}

.hasmaster-journeys-portfolio__selector-item.is-archived {
	opacity: 0.86;
}

.hasmaster-journeys-portfolio__selector-input {
	margin-top: 0.22rem;
	flex-shrink: 0;
	accent-color: var(--wp--preset--color--accent, #8b0000);
}

.hasmaster-journeys-portfolio__selector-copy {
	display: flex;
	flex-direction: column;
	gap: 0.22rem;
	min-width: 0;
	flex: 1;
}

.hasmaster-journeys-portfolio__selector-title-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
}

.hasmaster-journeys-portfolio__selector-title {
	font-weight: 700;
	line-height: 1.35;
	color: var(--wp--preset--color--text, #1f2937);
}

.hasmaster-journeys-portfolio__selector-status {
	display: inline-flex;
	align-items: center;
	padding: 0.18rem 0.45rem;
	border-radius: var(--hasmaster-interactive-radius, 12px);
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: capitalize;
	color: var(--wp--preset--color--text-muted, #5d6776);
	background: color-mix(in srgb, var(--wp--preset--color--text-muted, #6b6b6b) 10%, var(--wp--preset--color--base, #ffffff));
}

.hasmaster-journeys-portfolio__selector-stage {
	font-size: 0.86rem;
	font-weight: 600;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__selector-meta {
	font-size: 0.78rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__detail-panel {
	min-width: 0;
}

.hasmaster-journeys-portfolio__card-head,
.hasmaster-journeys-portfolio__detail-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
}

.hasmaster-journeys-portfolio__card-kicker {
	margin: 0 0 0.2rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__card-title {
	margin: 0;
	font-size: 1.15rem;
}

.hasmaster-journeys-portfolio__detail-intro {
	margin: 0.45rem 0 0;
	max-width: 62ch;
	line-height: 1.55;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}

.hasmaster-journeys-portfolio__badge {
	display: inline-flex;
	align-items: center;
	padding: 0.24rem 0.55rem;
	border-radius: var(--hasmaster-interactive-radius, 12px);
	border: 1px solid var(--wp--preset--color--border, #d5d9e2);
	font-size: 0.72rem;
	font-weight: 700;
	color: var(--wp--preset--color--text-muted, #5d6776);
	background: var(--wp--preset--color--surface-alt, #f4f1eb);
	text-transform: capitalize;
}

.hasmaster-journeys-portfolio__badge.is-active {
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d5d9e2)));
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	color: var(--hasmaster-interactive-active-text, var(--wp--preset--color--accent, #8b0000));
}

.hasmaster-journeys-portfolio__summary {
	margin: 0.75rem 0 0;
	line-height: 1.6;
	color: var(--wp--preset--color--text, #1f2937);
}

.hasmaster-journeys-portfolio__metrics {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.75rem;
	margin: 1rem 0 0;
}

.hasmaster-journeys-portfolio__metric {
	padding: 0.7rem 0.75rem;
	border-radius: 12px;
	background: var(--wp--preset--color--surface-alt, #f4f1eb);
}

.hasmaster-journeys-portfolio__metric-label {
	display: block;
	margin-bottom: 0.25rem;
	font-size: 0.76rem;
	font-weight: 700;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__recommended {
	margin: 1rem 0 0;
	padding: 0.78rem 0.85rem;
	border-radius: 12px;
	background: var(--wp--preset--color--accent-soft, #f4dede);
}

.hasmaster-journeys-portfolio__recommended p {
	margin: 0.35rem 0 0;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__stage-map {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.55rem;
	margin: 1rem 0 0;
}

.hasmaster-journeys-portfolio__stage-btn {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding: 0.7rem 0.75rem;
	text-align: left;
}

.hasmaster-journeys-portfolio__stage-btn.is-completed {
	background: var(--wp--preset--color--success-soft, #e7f3eb);
	border-color: color-mix(in srgb, var(--wp--preset--color--success, #267c4a) 28%, var(--wp--preset--color--border, #d5d9e2));
}

.hasmaster-journeys-portfolio__stage-btn.is-in_progress {
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d5d9e2)));
}

.hasmaster-journeys-portfolio__stage-btn.is-active {
	border-color: var(--hasmaster-interactive-active-border, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 28%, var(--wp--preset--color--border, #d5d9e2)));
	background: var(--hasmaster-interactive-active-background, color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 8%, var(--wp--preset--color--base, #ffffff)));
	box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--wp--preset--color--accent, #8b0000) 12%, transparent);
}

.hasmaster-journeys-portfolio__stage-label {
	font-weight: 600;
}

.hasmaster-journeys-portfolio__stage-meta {
	font-size: 0.78rem;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__details {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
	gap: 1rem;
	margin-top: 1rem;
}

.hasmaster-journeys-portfolio__detail h4 {
	margin: 0 0 0.55rem;
	font-size: 0.86rem;
	letter-spacing: 0.03em;
	text-transform: uppercase;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__checklist,
.hasmaster-journeys-portfolio__summary-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.hasmaster-journeys-portfolio__checklist {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.45rem 0.8rem;
}

.hasmaster-journeys-portfolio__checklist-item,
.hasmaster-journeys-portfolio__summary-list li {
	display: flex;
	align-items: flex-start;
	gap: 0.45rem;
	line-height: 1.45;
}

.hasmaster-journeys-portfolio__checkmark {
	font-weight: 700;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

.hasmaster-journeys-portfolio__checklist-item.is-complete .hasmaster-journeys-portfolio__checkmark {
	color: var(--wp--preset--color--success, #267c4a);
}

.hasmaster-journeys-portfolio__checklist-label {
	color: var(--wp--preset--color--text, #1f2937);
}

.hasmaster-journeys-portfolio__summary-list + h4 {
	margin-top: 0.85rem;
}

.hasmaster-journeys-portfolio__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
	margin-top: 1rem;
}

.hasmaster-journeys-portfolio__action-btn {
	padding: 0.62rem 0.85rem;
	font-weight: 600;
}

.hasmaster-journeys-portfolio__empty h3 {
	margin: 0 0 0.35rem;
}

.hasmaster-journeys-portfolio__empty p {
	margin: 0;
	color: var(--wp--preset--color--text-muted, #5d6776);
}

/* ---------- Stage navigation ---------- */

.hasmaster-journey-step-nav__stage-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	padding-top: 0.25rem;
	border-top: 1px solid var(--wp--preset--color--border);
	margin-top: 0.25rem;
}

.hasmaster-journey-step-nav__stage-nav-prev,
.hasmaster-journey-step-nav__stage-nav-next {
	flex: 1;
}

.hasmaster-journey-step-nav__stage-nav-next {
	text-align: right;
}

.hasmaster-journey-step-nav__stage-nav-center {
	flex-shrink: 0;
}

.hasmaster-journey-step-nav__stage-nav--actions {
	align-items: flex-start;
}

.hasmaster-journey-step-nav__stage-nav-action {
	flex: 1 1 0;
}

.hasmaster-journey-step-nav__stage-nav--actions .hasmaster-journey-step-nav__save-row {
	justify-content: flex-start;
}

.hasmaster-journey-step-nav__stage-nav--actions .hasmaster-journey-step-nav__nav-btn,
.hasmaster-journey-step-nav__stage-nav--actions .hasmaster-journey-step-nav__save-btn {
	justify-content: center;
	width: 100%;
}

.hasmaster-journey-step-nav__stage-nav-map {
	text-align: right;
}

/* Nav buttons */

.hasmaster-journey-step-nav__nav-btn {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.75rem;
	border-radius: 6px;
	font-size: 0.76rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	border: 1px solid transparent;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
	white-space: nowrap;
}

/* Single hover standard — matches site-wide ghost button pattern */
.hasmaster-journey-step-nav__nav-btn:hover {
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
}

/* Ghost: prev / back to journeys */
.hasmaster-journey-step-nav__nav-btn--ghost {
	background: transparent;
	color: var(--wp--preset--color--text-muted);
	border-color: var(--wp--preset--color--border);
}

/* Accent: next stage */
.hasmaster-journey-step-nav__nav-btn--accent {
	background: transparent;
	color: var(--wp--preset--color--text);
	border-color: var(--wp--preset--color--border);
}

/* Danger: delete */
.hasmaster-journey-step-nav__nav-btn--danger {
	background: transparent;
	color: var(--wp--preset--color--text-muted);
	border-color: var(--wp--preset--color--border);
	font-weight: 400;
	font-size: 0.72rem;
}

/* ---------- Responsive: stack on mobile ---------- */

@media (max-width: 1320px) {
	.hasmaster-journey-step-nav__layout {
		grid-template-columns: minmax(260px, 1.15fr) minmax(520px, 2fr) minmax(210px, 0.85fr);
	}

	.hasmaster-journey-interaction-panel__compact-row {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.hasmaster-journeys-portfolio__stage-map {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hasmaster-journeys-portfolio__workspace {
		grid-template-columns: minmax(220px, 0.9fr) minmax(0, 1.5fr);
	}
}

@media (max-width: 768px) {
	.hasmaster-journeys-portfolio {
		padding: 1rem;
	}

	.hasmaster-journeys-portfolio__hero,
	.hasmaster-journeys-portfolio__status-row,
	.hasmaster-journeys-portfolio__card-head,
	.hasmaster-journeys-portfolio__detail-head {
		flex-direction: column;
	}

	.hasmaster-journeys-portfolio__workspace,
	.hasmaster-journeys-portfolio__metrics,
	.hasmaster-journeys-portfolio__stage-map,
	.hasmaster-journeys-portfolio__details,
	.hasmaster-journeys-portfolio__checklist {
		grid-template-columns: 1fr;
	}

	.hasmaster-journeys-portfolio__selector-list {
		max-height: none;
	}

	.hasmaster-journey-step-nav__layout {
		grid-template-columns: 1fr;
	}

	.hasmaster-journey-step-nav__stage-nav--actions {
		flex-wrap: wrap;
	}

	.hasmaster-journey-step-nav__stage-nav--actions .hasmaster-journey-step-nav__stage-nav-action {
		flex: 1 1 100%;
	}

	.hasmaster-journey-step-nav__stage-nav-map {
		text-align: left;
	}

	.hasmaster-journey-step-nav__chat-col {
		order: 1;
	}

	.hasmaster-journey-step-nav__progress-col {
		order: 2;
		position: static;
	}

	.hasmaster-journey-step-nav__inspiration-col {
		order: 3;
		position: static;
	}

	.hasmaster-journey-step-nav__title {
		font-size: 1.6rem;
	}

	.hasmaster-journey-interaction-panel__compact-row {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.hasmaster-journey-inspiration-library__list {
		max-height: 36vh;
	}
}

.wp-block-code,
.hasmaster-copyable-code {
	position: relative;
	padding-right: 3.25rem;
}

.hasmaster-copy-code-button {
	position: absolute;
	top: 0.55rem;
	right: 0.55rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2rem;
	height: 2rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0.5rem;
	background: color-mix(in srgb, var(--wp--preset--color--surface) 88%, white 12%);
	color: var(--wp--preset--color--text);
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
	cursor: pointer;
	transition: background-color 120ms ease, border-color 120ms ease, color 120ms ease, transform 120ms ease;
}

.hasmaster-copy-code-button:hover,
.hasmaster-copy-code-button:focus-visible {
	border-color: var(--wp--preset--color--accent);
	background: color-mix(in srgb, var(--wp--preset--color--surface) 72%, white 28%);
	color: var(--wp--preset--color--accent);
	transform: translateY(-1px);
}

.hasmaster-copy-code-button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.hasmaster-copy-code-button.is-success {
	border-color: #1f7a45;
	color: #1f7a45;
}

.hasmaster-copy-code-button.is-error {
	border-color: #b42318;
	color: #b42318;
}

.hasmaster-copy-code-button__icon {
	display: inline-flex;
	width: 1rem;
	height: 1rem;
}

.hasmaster-copy-code-button__icon svg {
	display: block;
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* ==========================================================================
   Mermaid Diagram Styling
   ========================================================================== */

pre.mermaid {
	background: transparent !important;
	border: 1px solid var(--wp--preset--color--border, #e0e0e0);
	border-radius: 8px;
	padding: 1.5rem;
	margin-block: 1.5rem;
	text-align: center;
	overflow-x: auto;
}

pre.mermaid[data-processed="true"] {
	background: var(--wp--preset--color--surface, #fafafa) !important;
}

pre.mermaid svg {
	max-width: 100%;
	height: auto;
}
