/**
 * Farajatna — widgets: core widgets and Zed widgets.
 *
 * Zed widgets use container queries, so the same widget adapts to a narrow
 * sidebar, a footer column or a full-width homepage area.
 */

.widget {
	margin-block-end: 2.25rem;
	min-inline-size: 0;
}

.widget:last-child {
	margin-block-end: 0;
}

.widget-title {
	border-block-start: 3px solid var(--cat-color, var(--fj-heading));
	font-size: 1.15rem;
	margin: 0 0 1rem;
	padding-block-start: 0.5rem;
}

/* Headings inside block widgets look like classic widget titles. */
.widget_block h2,
.widget_block .wp-block-heading,
.wp-block-search__label {
	border-block-start: 3px solid var(--fj-heading);
	display: block;
	font-family: var(--fj-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0 0 1rem;
	padding-block-start: 0.5rem;
}

.widget ul,
.widget ol {
	margin: 0;
	padding-inline-start: 0;
}

.widget_block ul,
.widget_block ol {
	padding-inline-start: 1.25em;
}

/* Core list widgets. */
.widget_categories ul,
.widget_archive ul,
.widget_pages ul,
.widget_meta ul,
.widget_recent_entries ul,
.widget_recent_comments ul,
.widget_nav_menu ul,
.widget_rss ul,
.wp-block-latest-posts,
.wp-block-categories-list,
.wp-block-archives-list {
	list-style: none;
	padding-inline-start: 0;
}

.widget_categories li,
.widget_archive li,
.widget_pages li,
.widget_meta li,
.widget_recent_entries li,
.widget_recent_comments li,
.widget_nav_menu li,
.widget_rss li {
	border-block-end: 1px solid var(--fj-border);
	padding-block: 0.5rem;
}

.widget_categories .children,
.widget_pages .children,
.widget_nav_menu .sub-menu {
	padding-inline-start: 1rem;
}

.widget li a {
	text-decoration: none;
}

.widget li a:hover {
	text-decoration: underline;
}

.widget_tag_cloud .tagcloud,
.wp-block-tag-cloud {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem;
}

.tag-cloud-link {
	border: 1px solid var(--fj-border);
	border-radius: 999px;
	color: var(--fj-text);
	padding: 0.2rem 0.7rem;
	text-decoration: none;
}

.tag-cloud-link:hover {
	border-color: var(--fj-primary);
}

.widget_calendar table,
.wp-block-calendar table {
	font-size: var(--fj-small);
	text-align: center;
}

.widget_calendar th,
.widget_calendar td {
	padding: 0.35rem;
	text-align: center;
}

.widget select {
	max-inline-size: 100%;
}

/* --------------------------------------------------------------------------
 * Zed widgets
 * ----------------------------------------------------------------------- */

.zed-widget__body {
	container-type: inline-size;
}

.zed-posts {
	display: grid;
	gap: 1rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.zed-posts .card__title {
	font-size: 1.02rem;
}

/* List layout. */
.zed-posts--list > .card + .card,
.zed-posts--big-first > .card + .card,
.zed-posts--compact > .card + .card {
	border-block-start: 1px solid var(--fj-border);
	padding-block-start: 1rem;
}

.zed-posts--list .card--list .card__media,
.zed-posts--big-first .card--list .card__media {
	aspect-ratio: 1;
	flex-basis: 5.5rem;
}

.zed-posts--big-first > .card:first-child .card__title {
	font-size: 1.25rem;
}

/* Numbered layout. */
.zed-posts--numbered {
	counter-reset: zed;
	gap: 0;
}

.zed-posts__item {
	align-items: flex-start;
	border-block-end: 1px solid var(--fj-border);
	counter-increment: zed;
	display: flex;
	gap: 0.85rem;
	padding-block: 0.8rem;
}

.zed-posts__item:first-child {
	padding-block-start: 0;
}

.zed-posts__item::before {
	color: var(--zed-accent, var(--fj-primary));
	content: counter(zed);
	flex: none;
	font-family: var(--fj-font-heading);
	font-size: 1.75rem;
	font-weight: 700;
	line-height: 1;
	min-inline-size: 1.3ch;
}

/* Grid and overlay layouts: the chosen column count is reached only when the
   container is wide enough. */
.zed-posts--grid,
.zed-posts--overlay {
	grid-template-columns: minmax(0, 1fr);
}

@container (min-width: 30rem) {
	.zed-posts--cols-2,
	.zed-posts--cols-3,
	.zed-posts--cols-4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@container (min-width: 48rem) {
	.zed-posts--cols-3,
	.zed-posts--cols-4 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.zed-posts--big-first {
		grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
	}

	.zed-posts--big-first > .card:first-child {
		grid-row: span 6;
	}

	.zed-posts--big-first > .card:nth-child(2) {
		border-block-start: 0;
		padding-block-start: 0;
	}
}

@container (min-width: 64rem) {
	.zed-posts--cols-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

.zed-posts--overlay .card--overlay {
	min-block-size: 14rem;
}

/* Accent colour. */
.zed-widget__body[style*="--zed-accent"] .cat-label {
	background: var(--zed-accent);
	color: var(--zed-on-accent);
}

.zed-more {
	margin: 1rem 0 0;
}

.zed-more a {
	align-items: center;
	display: inline-flex;
	font-size: var(--fj-small);
	font-weight: 600;
	gap: 0.3rem;
}

/* Category widget inherits the category colour. */
.zed-category-news .widget-title {
	border-color: var(--cat-color, var(--fj-heading));
}

/* Advertisement. */
.zed-ad {
	background: var(--zed-accent, transparent);
	text-align: center;
}

.zed-ad--start {
	text-align: start;
}

.zed-ad--start .zed-ad__content {
	justify-content: flex-start;
}

.zed-ad__label {
	color: var(--fj-muted);
	display: block;
	font-size: 0.6875rem;
	margin-block-end: 0.3rem;
}

.zed-ad__content {
	display: flex;
	justify-content: center;
}

.zed-ad__image {
	block-size: auto;
	max-inline-size: 100%;
}

.zed-ad--full .zed-ad__image {
	inline-size: 100%;
}

/* Newsletter widget. */
.zed-newsletter .zed-widget__body[style*="--zed-accent"] {
	background: var(--zed-accent);
	color: var(--zed-on-accent);
	padding: 1.25rem;
}

.zed-newsletter .zed-widget__body[style*="--zed-accent"] .newsletter__privacy,
.zed-newsletter .zed-widget__body[style*="--zed-accent"] .newsletter__privacy a {
	color: inherit;
}

/* Social widget. */
.zed-social__text {
	color: var(--fj-muted);
	font-size: var(--fj-small);
}

.zed-social .social-links--icons .social-links__link {
	border: 1px solid var(--fj-border);
	color: var(--zed-accent, var(--fj-heading));
	min-block-size: 2.75rem;
	min-inline-size: 2.75rem;
}

/* Footer context. */
.site-footer .zed-posts .card__link,
.site-footer .zed-posts__item::before {
	color: inherit;
}

.site-footer .meta,
.site-footer .zed-social__text,
.site-footer .zed-ad__label {
	color: color-mix(in srgb, var(--fj-footer-text) 80%, var(--fj-footer-bg));
}

.site-footer .zed-posts > .card + .card,
.site-footer .zed-posts__item,
.site-footer .widget li {
	border-color: color-mix(in srgb, var(--fj-footer-text) 20%, transparent);
}
