/**
 * SignalMind — WordPress core output
 *
 * Styles for markup WordPress generates and the theme does not control:
 * alignments, captions, galleries, embeds, comments and default widgets.
 *
 * @package SignalMind
 */

/* ==========================================================================
   Accessibility
   ========================================================================== */

.screen-reader-text:focus {
	position: fixed !important;
	top: var(--sm-space-3);
	left: var(--sm-space-3);
	z-index: var(--sm-z-max);
	width: auto;
	height: auto;
	padding: var(--sm-space-3) var(--sm-space-5);
	margin: 0;
	clip: auto;
	clip-path: none;
	background-color: var(--sm-color-primary);
	color: var(--sm-color-primary-contrast);
	font-size: var(--sm-text-sm);
	font-weight: var(--sm-weight-semibold);
	border-radius: var(--sm-radius-md);
	box-shadow: var(--sm-shadow-lg);
	text-decoration: none;
}

/* ==========================================================================
   Alignments
   ========================================================================== */

.alignleft {
	float: left;
	margin: var(--sm-space-1) var(--sm-space-6) var(--sm-space-5) 0;
	max-width: 50%;
}

.alignright {
	float: right;
	margin: var(--sm-space-1) 0 var(--sm-space-5) var(--sm-space-6);
	max-width: 50%;
}

.aligncenter {
	display: block;
	margin-inline: auto;
}

.alignnone {
	margin-inline: 0;
}

@media (max-width: 639px) {
	.alignleft,
	.alignright {
		float: none;
		max-width: 100%;
		margin-inline: 0;
	}
}

.clear::after,
.entry-content::after {
	content: "";
	display: table;
	clear: both;
}

/* ==========================================================================
   Captions
   ========================================================================== */

.wp-caption {
	max-width: 100%;
	margin-bottom: var(--sm-space-6);
}

.wp-caption img,
.wp-caption a img {
	display: block;
	width: 100%;
	border-radius: var(--sm-radius-lg);
}

.wp-caption-text,
.wp-element-caption {
	margin-top: var(--sm-space-3);
	font-size: var(--sm-text-sm);
	line-height: var(--sm-leading-normal);
	color: var(--sm-color-text-muted);
	text-align: center;
}

/* ==========================================================================
   Galleries
   ========================================================================== */

.gallery {
	display: grid;
	gap: var(--sm-space-3);
	margin-block: var(--sm-space-8);
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
}

.gallery-columns-1 {
	grid-template-columns: 1fr;
}

.gallery-columns-2 {
	grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
	grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
	grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
	grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
	grid-template-columns: repeat(6, 1fr);
}

@media (max-width: 639px) {
	.gallery[class*="gallery-columns-"] {
		grid-template-columns: repeat(2, 1fr);
	}
}

.gallery-item {
	margin: 0;
}

.gallery-item img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--sm-radius-md);
	border: var(--sm-border-width) solid var(--sm-color-border);
}

.gallery-caption {
	display: block;
	margin-top: var(--sm-space-2);
	font-size: var(--sm-text-xs);
	color: var(--sm-color-text-muted);
	text-align: center;
}

/* ==========================================================================
   Embeds
   ========================================================================== */

.wp-embed-responsive .wp-block-embed__wrapper,
.wp-block-embed__wrapper {
	position: relative;
}

.wp-block-embed iframe,
.wp-block-embed video,
embed,
object {
	max-width: 100%;
	border-radius: var(--sm-radius-lg);
}

/* ==========================================================================
   Core block adjustments
   The editor is used for post content only; page composition is template-driven.
   ========================================================================== */

.wp-block-image figcaption {
	margin-top: var(--sm-space-3);
}

.wp-block-image img {
	border-radius: var(--sm-radius-lg);
}

.wp-block-quote,
.wp-block-pullquote {
	border-left: var(--sm-border-width-thick) solid var(--sm-color-primary);
	padding-left: var(--sm-space-6);
	font-size: var(--sm-text-lg);
	color: var(--sm-color-text);
}

.wp-block-pullquote {
	border: 0;
	padding: var(--sm-space-8) 0;
	text-align: center;
}

.wp-block-separator {
	border-top: var(--sm-border-width) solid var(--sm-color-divider);
	margin-block: var(--sm-space-10);
}

.wp-block-table table {
	width: 100%;
}

.wp-block-code {
	background-color: var(--sm-color-surface);
	border: var(--sm-border-width) solid var(--sm-color-border);
	border-radius: var(--sm-radius-lg);
	padding: var(--sm-space-5);
}

.wp-block-button__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--sm-control-height);
	padding: 0 var(--sm-space-5);
	background-color: var(--sm-color-primary);
	color: var(--sm-color-primary-contrast);
	border-radius: var(--sm-radius-md);
	font-size: var(--sm-text-sm);
	font-weight: var(--sm-weight-semibold);
	text-decoration: none;
	transition: var(--sm-transition-colors);
}

.wp-block-button__link:hover {
	background-color: var(--sm-color-primary-hover);
	color: var(--sm-color-primary-contrast);
}

.is-style-outline .wp-block-button__link {
	background-color: transparent;
	border: var(--sm-border-width) solid var(--sm-color-border-brand);
	color: var(--sm-color-primary);
}

/* Sticky posts */
.sticky .sm-card,
.sm-card.is-sticky {
	border-color: var(--sm-color-border-brand);
}

/* ==========================================================================
   Comments
   ========================================================================== */

.sm-comments {
	margin-top: var(--sm-space-16);
	padding-top: var(--sm-space-12);
	border-top: var(--sm-border-width) solid var(--sm-color-divider);
}

.sm-comments__title {
	margin-bottom: var(--sm-space-8);
	font-size: var(--sm-text-2xl);
}

.comment-list,
.comment-list .children {
	margin: 0;
	padding: 0;
	list-style: none;
}

.comment-list > li + li {
	margin-top: var(--sm-space-6);
}

.comment-list .children {
	margin-top: var(--sm-space-6);
	padding-left: var(--sm-space-6);
	border-left: var(--sm-border-width) solid var(--sm-color-border);
}

.comment-body {
	padding: var(--sm-space-5);
	background-color: var(--sm-color-surface);
	border: var(--sm-border-width) solid var(--sm-color-border);
	border-radius: var(--sm-radius-lg);
}

.comment-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--sm-space-3);
	margin-bottom: var(--sm-space-3);
}

.comment-author {
	display: flex;
	align-items: center;
	gap: var(--sm-space-3);
	font-size: var(--sm-text-sm);
	font-weight: var(--sm-weight-semibold);
	color: var(--sm-color-text);
}

.comment-author img,
.comment-author .avatar {
	width: 36px;
	height: 36px;
	border-radius: var(--sm-radius-circle);
	border: var(--sm-border-width) solid var(--sm-color-border);
}

.comment-metadata,
.comment-metadata a {
	font-size: var(--sm-text-xs);
	color: var(--sm-color-text-subtle);
}

.comment-content {
	font-size: var(--sm-text-sm);
	color: var(--sm-color-text-secondary);
}

.comment-content > * + * {
	margin-top: var(--sm-space-3);
}

.comment-awaiting-moderation {
	display: block;
	margin-top: var(--sm-space-2);
	font-size: var(--sm-text-xs);
	color: var(--sm-color-warning);
}

.reply {
	margin-top: var(--sm-space-3);
}

.comment-reply-link {
	font-size: var(--sm-text-xs);
	font-weight: var(--sm-weight-semibold);
	letter-spacing: var(--sm-tracking-wide);
	text-transform: uppercase;
	color: var(--sm-color-primary);
}

.comment-respond {
	margin-top: var(--sm-space-10);
}

.comment-reply-title {
	margin-bottom: var(--sm-space-5);
	font-size: var(--sm-text-xl);
}

.comment-form {
	display: flex;
	flex-direction: column;
	gap: var(--sm-space-4);
}

.comment-form .comment-notes,
.comment-form .logged-in-as {
	font-size: var(--sm-text-xs);
	color: var(--sm-color-text-subtle);
}

.comment-form label {
	display: block;
	margin-bottom: var(--sm-space-2);
}

.comment-form-cookies-consent {
	display: flex;
	align-items: center;
	gap: var(--sm-space-2);
	font-size: var(--sm-text-xs);
	color: var(--sm-color-text-muted);
}

.comment-form-cookies-consent input {
	width: auto;
	min-height: 0;
}

.comment-form .submit,
.comment-form input[type="submit"] {
	align-self: flex-start;
	width: auto;
	min-height: var(--sm-control-height);
	padding-inline: var(--sm-space-6);
	background-color: var(--sm-color-primary);
	border: 0;
	border-radius: var(--sm-radius-md);
	color: var(--sm-color-primary-contrast);
	font-size: var(--sm-text-sm);
	font-weight: var(--sm-weight-semibold);
	cursor: pointer;
	transition: var(--sm-transition-colors);
}

.comment-form .submit:hover,
.comment-form input[type="submit"]:hover {
	background-color: var(--sm-color-primary-hover);
}

.no-comments {
	font-size: var(--sm-text-sm);
	color: var(--sm-color-text-subtle);
}

/* ==========================================================================
   Default widgets

   WordPress ships block-based widgets, which render their own headings as
   `.wp-block-heading` and ignore the `before_title` markup registered by the
   theme. Both paths are normalised to the same small-caps label here.
   ========================================================================== */

/* Widget areas own their spacing: the footer places one widget per grid cell
   and the sidebar stacks them with .sm-stack. A sibling margin here would push
   the second footer column out of alignment with the first. */

.sm-widget h1,
.sm-widget h2,
.sm-widget h3,
.sm-widget h4,
.sm-widget h5,
.sm-widget h6,
.sm-widget .wp-block-heading,
.sm-widget .wp-block-search__label {
	display: block;
	margin: 0 0 var(--sm-space-4);
	font-size: var(--sm-text-xs);
	font-weight: var(--sm-weight-semibold);
	line-height: var(--sm-leading-normal);
	letter-spacing: var(--sm-tracking-widest);
	text-transform: uppercase;
	color: var(--sm-color-text-subtle);
}

/* Block widgets wrap their content in groups that would otherwise collapse. */
.sm-widget .wp-block-group__inner-container > * + * {
	margin-top: var(--sm-space-4);
}

.sm-widget ol {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	gap: var(--sm-space-2-5);
}

.sm-widget li {
	font-size: var(--sm-text-sm);
	color: var(--sm-color-text-muted);
	line-height: var(--sm-leading-normal);
}

.widget select,
.widget input[type="search"],
.sm-widget select {
	width: 100%;
}

/* Core search block — the theme's own searchform.php covers every other place. */
.wp-block-search__inside-wrapper {
	display: flex;
	align-items: stretch;
	gap: var(--sm-space-2);
}

.wp-block-search__input {
	flex: 1 1 auto;
	min-width: 0;
}

.wp-block-search__button {
	flex: none;
	min-height: var(--sm-control-height);
	padding-inline: var(--sm-space-4);
	background-color: var(--sm-alpha-white-6);
	border: var(--sm-border-width) solid var(--sm-color-border);
	border-radius: var(--sm-radius-md);
	color: var(--sm-color-text);
	font-size: var(--sm-text-sm);
	font-weight: var(--sm-weight-semibold);
	cursor: pointer;
	transition: var(--sm-transition-colors);
}

.wp-block-search__button:hover {
	background-color: var(--sm-alpha-white-12);
	border-color: var(--sm-color-border-strong);
}

.wp-block-latest-posts__post-date,
.wp-block-latest-comments__comment-date,
.rss-date,
.post-date {
	display: block;
	font-size: var(--sm-text-xs);
	color: var(--sm-color-text-subtle);
}

.wp-calendar-table {
	font-size: var(--sm-text-xs);
}

.wp-calendar-table th,
.wp-calendar-table td {
	padding: var(--sm-space-1-5);
	text-align: center;
}

.wp-calendar-nav {
	display: flex;
	justify-content: space-between;
	margin-top: var(--sm-space-2);
	font-size: var(--sm-text-xs);
}

.wp-block-tag-cloud a,
.tagcloud a {
	display: inline-flex;
	margin: 0 var(--sm-space-1-5) var(--sm-space-1-5) 0;
	padding: var(--sm-space-1) var(--sm-space-2-5);
	border: var(--sm-border-width) solid var(--sm-color-border);
	border-radius: var(--sm-radius-sm);
	font-size: var(--sm-text-xs) !important;
	color: var(--sm-color-text-muted);
	transition: var(--sm-transition-colors);
}

.wp-block-tag-cloud a:hover,
.tagcloud a:hover {
	border-color: var(--sm-color-border-brand);
	color: var(--sm-color-primary);
}

/* ==========================================================================
   Admin bar offset — keeps the sticky header below it
   ========================================================================== */

.admin-bar .sm-site__header {
	top: 32px;
}

.admin-bar .sm-drawer__panel {
	padding-top: calc(var(--sm-space-5) + 32px);
}

@media screen and (max-width: 782px) {
	.admin-bar .sm-site__header {
		top: 46px;
	}

	.admin-bar .sm-drawer__panel {
		padding-top: calc(var(--sm-space-5) + 46px);
	}
}
