:root {
	--mosaic-bg: #222220;
	--mosaic-paper: #f7f3ed;
	--mosaic-muted: rgba(247, 243, 237, 0.68);
	--mosaic-faint: rgba(247, 243, 237, 0.14);
	--mosaic-accent: #ff8768;
	--mosaic-max: 1180px;
	--mosaic-copy: "Farhang2", Farhang, "Farhang Web", Tahoma, sans-serif;
	--mosaic-display: "Farhang2 Black", "Farhang2", Farhang, "Farhang Web", Tahoma, sans-serif;
	--mosaic-radius: 18px;
}

@font-face {
	font-family: "Farhang2";
	src: url("../fonts/Farhang2-Regular.woff2") format("woff2");
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Farhang2";
	src: url("../fonts/Farhang2-Medium.woff2") format("woff2");
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Farhang2";
	src: url("../fonts/Farhang2-DemiBold.woff2") format("woff2");
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Farhang2";
	src: url("../fonts/Farhang2-Bold.woff2") format("woff2");
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Farhang2";
	src: url("../fonts/Farhang2-ExtraBold.woff2") format("woff2");
	font-weight: 800;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Farhang2 Black";
	src: url("../fonts/Farhang2-Black.woff2") format("woff2");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: "Farhang2";
	src: url("../fonts/Farhang2-Black.woff2") format("woff2");
	font-weight: 900;
	font-style: normal;
	font-display: swap;
}

* {
	box-sizing: border-box;
}

html {
	background: var(--mosaic-bg);
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--mosaic-bg);
	color: var(--mosaic-paper);
	font-family: var(--mosaic-copy);
	font-size: 18px;
	letter-spacing: 0;
	line-height: 1.8;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

body.rtl {
	direction: rtl;
}

a {
	color: inherit;
	text-decoration: none;
}

img {
	display: block;
	max-width: 100%;
	height: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

.mosaic-site-header {
	position: relative;
	z-index: 10;
	border-bottom: 1px solid rgba(247, 243, 237, 0.1);
	background: var(--mosaic-bg);
}

.mosaic-site-header__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: min(100% - 48px, var(--mosaic-max));
	min-height: 116px;
	margin: 0 auto;
}

.mosaic-site-header__actions {
	position: absolute;
	inset: 0;
	pointer-events: none;
}

.mosaic-site-header__action {
	position: absolute;
	top: 50%;
	display: inline-flex;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	transform: translateY(-50%);
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: 0;
	color: rgba(247, 243, 237, 1);
	pointer-events: auto;
	background: transparent;
	transition: color 160ms ease, opacity 160ms ease;
}

.mosaic-site-header__action--search {
	left: 0;
}

.mosaic-site-header__action--instagram {
	right: 0;
	color: rgba(247, 243, 237, 1);
}

.mosaic-site-header__action:hover,
.mosaic-site-header__action:focus-visible {
	background: transparent;
	color: var(--mosaic-paper);
	opacity: 0.8;
	outline: none;
}

.mosaic-site-header__action svg {
	display: block;
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.mosaic-site-header__brand {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: clamp(220px, 24vw, 300px);
	height: clamp(60px, 6.8vw, 82px);
	background-image: url("../images/mosaic-logo-white-on-transparent.png?v=20260504");
	background-position: center;
	background-repeat: no-repeat;
	background-size: contain;
	min-width: 0;
}

.mosaic-site-header__brand img {
	display: none;
	width: 100%;
	height: auto;
	max-width: 100%;
	max-height: none;
	object-fit: contain;
}

.mosaic-site-footer__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px 18px;
	align-items: center;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--mosaic-muted);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	text-align: center;
}

.mosaic-site-footer__nav a:hover {
	color: var(--mosaic-paper);
}

.mosaic-home,
.mosaic-archive,
.mosaic-single,
.mosaic-empty {
	width: min(100% - 48px, var(--mosaic-max));
	margin: 0 auto;
	padding: clamp(28px, 5vw, 54px) 0 clamp(72px, 9vw, 120px);
}

.mosaic-home {
	padding-top: 0;
}

.mosaic-single {
	padding-top: 0;
}

.mosaic-category-filter {
	display: flex;
	gap: 8px;
	align-items: center;
	margin: 0 0 clamp(34px, 5vw, 54px);
	padding: clamp(10px, 1.4vw, 16px) 0;
	overflow-x: auto;
	border-bottom: 1px solid rgba(247, 243, 237, 0.1);
	scrollbar-width: thin;
}

.mosaic-home .mosaic-category-filter,
.mosaic-single .mosaic-category-filter,
.mosaic-archive .mosaic-category-filter {
	min-height: clamp(58px, 6.2vw, 76px);
}

.mosaic-category-filter__item {
	display: inline-flex;
	flex: 0 0 auto;
	align-items: center;
	justify-content: center;
	min-height: 36px;
	padding: 0 16px;
	border: 1px solid rgba(247, 243, 237, 0.17);
	border-radius: 999px;
	color: var(--mosaic-muted);
	font-size: 13px;
	font-weight: 800;
	white-space: nowrap;
}

.mosaic-category-filter__item:hover,
.mosaic-category-filter__item.is-active {
	border-color: rgba(247, 243, 237, 0.58);
	color: var(--mosaic-paper);
}

.mosaic-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 48px);
	align-items: start;
}

.mosaic-card {
	min-width: 0;
}

.mosaic-card__link {
	position: relative;
	display: grid;
	aspect-ratio: 1 / 1;
	place-items: end center;
	overflow: hidden;
	border-radius: var(--mosaic-radius);
	background: #111;
	isolation: isolate;
	text-align: center;
	container-type: inline-size;
}

.mosaic-card__image,
.mosaic-card__placeholder {
	position: absolute;
	inset: -8%;
	z-index: 0;
	width: 116%;
	height: 116%;
	object-fit: cover;
	filter: none;
	transform: translate3d(0, var(--mosaic-parallax-y, 0px), 0) scale(var(--mosaic-image-scale, 1));
	transition: transform 90ms linear;
	will-change: transform;
}

.mosaic-card__placeholder {
	background:
		linear-gradient(135deg, rgba(255, 255, 255, 0.08), transparent),
		#333;
}

.mosaic-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			to top,
			rgba(0, 0, 0, 0.92) 0%,
			rgba(0, 0, 0, 0.74) 30%,
			rgba(0, 0, 0, 0.28) 62%,
			rgba(0, 0, 0, 0.48) 100%
		);
}

.mosaic-card__link:hover .mosaic-card__image {
	--mosaic-image-scale: 1.025;
}

.mosaic-card__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-end;
	width: min(86%, 760px);
	height: 100%;
	padding: clamp(24px, 6cqw, 54px) clamp(18px, 5cqw, 34px);
	text-align: center;
}

.mosaic-card__category,
.mosaic-card__meta {
	color: rgba(255, 255, 255, 0.84);
	font-size: clamp(12px, 3cqw, 15px);
	font-weight: 800;
	line-height: 1.8;
}

.mosaic-card__title {
	max-width: 13em;
	margin: 16px auto 12px;
	color: #fff;
	font-family: var(--mosaic-display);
	font-size: clamp(
		calc(24px * var(--mosaic-card-title-scale, 1)),
		calc((1.8vw + 2.2cqw) * var(--mosaic-card-title-scale, 1)),
		calc(60px * var(--mosaic-card-title-scale, 1))
	);
	font-weight: 900;
	line-height: 1.14;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.mosaic-archive__header {
	max-width: 760px;
	margin: 0 auto clamp(34px, 5vw, 56px);
	text-align: center;
}

.mosaic-archive__header h1,
.mosaic-empty h1 {
	margin: 0;
	font-family: var(--mosaic-display);
	font-size: 4.75rem;
	font-weight: 900;
	line-height: 1.1;
}

.mosaic-archive__description {
	color: var(--mosaic-muted);
}

.mosaic-article-hero {
	position: relative;
	display: grid;
	aspect-ratio: 16 / 9;
	width: min(100%, 980px);
	min-height: clamp(420px, 62vh, 760px);
	max-height: 820px;
	margin: 0 auto clamp(24px, 4.2vw, 42px);
	overflow: hidden;
	border-radius: var(--mosaic-radius);
	background: #111;
	isolation: isolate;
}

.single-post .mosaic-article-hero {
	margin-bottom: clamp(12px, 2.2vw, 24px);
}

.mosaic-article-hero__image,
.mosaic-article-hero__placeholder {
	position: absolute;
	inset: -9%;
	z-index: 0;
	width: 118%;
	height: 118%;
	object-fit: cover;
	transform: translate3d(0, var(--mosaic-parallax-y, 0px), 0) scale(var(--mosaic-image-scale, 1));
	will-change: transform;
}

.mosaic-article-hero__placeholder {
	background: #333;
}

@media (pointer: coarse), (any-pointer: coarse) {
	.mosaic-card__image,
	.mosaic-card__placeholder,
	.mosaic-article-hero__image,
	.mosaic-article-hero__placeholder,
	.mosaic-article-media-image {
		transition: none;
		will-change: auto;
	}
}

.mosaic-article-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background:
		linear-gradient(
			to top,
			rgba(0, 0, 0, 0.92) 0%,
			rgba(0, 0, 0, 0.74) 28%,
			rgba(0, 0, 0, 0.30) 60%,
			rgba(0, 0, 0, 0.48) 100%
		);
}

.mosaic-article-hero__content {
	position: relative;
	z-index: 2;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: end;
	width: min(88%, 800px);
	height: 100%;
	margin: 0 auto;
	padding: clamp(28px, 5vw, 58px);
	text-align: center;
}

.mosaic-article-hero__category,
.mosaic-article-hero__meta {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35em 0.7em;
	align-items: center;
	justify-content: center;
	width: 100%;
	color: rgba(255, 255, 255, 0.84);
	font-size: 1.125rem;
	font-weight: 800;
	line-height: 1.8;
	text-align: center;
}

.mosaic-article-hero__title {
	max-width: 13em;
	margin: 18px auto 16px;
	color: #fff;
	font-family: var(--mosaic-display);
	font-size: 5.125rem;
	font-weight: 900;
	line-height: 1.1;
	text-align: center;
	overflow-wrap: anywhere;
	text-wrap: balance;
}

.mosaic-article__content {
	width: min(100%, 836px);
	margin: 0 auto;
	color: rgba(247, 243, 237, 0.88);
	font-size: 1.375rem;
	font-weight: 500;
	line-height: 2.08;
	overflow-wrap: break-word;
}

.single-post .mosaic-article__content,
.single-post .mosaic-article__content p,
.single-post .elementor-widget-container > p,
.single-post .elementor-widget-text-editor {
	color: rgba(247, 243, 237, 0.88);
	font-family: var(--mosaic-copy);
	font-weight: 500;
	text-align: justify;
	text-align-last: auto;
}

.mosaic-article__content > * {
	margin-top: 0;
	margin-bottom: 34px;
}

.mosaic-article__content a {
	color: #fff;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.mosaic-article__content h2,
.mosaic-article__content h3,
.mosaic-article__content h4,
.single-post .elementor-widget-container > h2,
.single-post .elementor-widget-container > h3,
.single-post .elementor-widget-container > h4 {
	color: var(--mosaic-paper);
	font-family: var(--mosaic-copy);
	font-weight: 700;
	line-height: 1.25;
}

.single-post .elementor-element.elementor-element-cd4decd {
	min-height: 0;
	padding-top: clamp(18px, 3vw, 34px) !important;
	padding-bottom: clamp(18px, 3vw, 34px) !important;
}

.single-post .elementor-element.elementor-element-cd4decd > .elementor-widget-container {
	margin: 0;
	padding: 0;
}

.single-post .elementor-element.elementor-element-cd4decd h2 {
	margin: 0;
	font-family: var(--mosaic-copy);
	font-weight: 700;
}

.mosaic-article__content img {
	width: 100%;
	border-radius: clamp(10px, 1.1vw, 14px);
}

.mosaic-article__content figure {
	max-width: 100%;
	margin-right: 0;
	margin-left: 0;
}

.mosaic-article-media-frame {
	position: relative;
	display: block;
	overflow: hidden;
	border-radius: clamp(10px, 1.1vw, 14px);
}

.mosaic-article-media-image {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
	transform: translate3d(0, var(--mosaic-parallax-y, 0px), 0) scale(1.045);
	transition: transform 90ms linear;
	will-change: transform;
}

.mosaic-article__content iframe,
.mosaic-article__content video,
.mosaic-article__content embed,
.mosaic-article__content object {
	max-width: 100%;
}

.mosaic-article__content > p:first-of-type::first-letter {
	float: right;
	display: inline-flex;
	min-width: 58px;
	min-height: 58px;
	margin: 12px 0 8px 22px;
	align-items: center;
	justify-content: center;
	border: 3px solid rgba(247, 243, 237, 0.92);
	color: #fff;
	font-family: var(--mosaic-display);
	font-size: 44px;
	font-weight: 900;
	line-height: 1;
	text-align: center;
}

.mosaic-share {
	width: min(100%, 760px);
	margin: 0 auto;
	border-top: 1px solid var(--mosaic-faint);
	border-bottom: 1px solid var(--mosaic-faint);
	padding: 18px 0 16px;
}

.mosaic-share__title {
	margin: 0 0 12px;
	color: var(--mosaic-muted);
	font-family: var(--mosaic-copy);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
	text-align: right;
}

.mosaic-share__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 12px;
}

.mosaic-share__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 14px;
	border: 1px solid rgba(247, 243, 237, 0.26);
	border-radius: 999px;
	background: rgba(247, 243, 237, 0.02);
	color: var(--mosaic-paper);
	font-family: var(--mosaic-copy);
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease;
}

.mosaic-share__button:hover,
.mosaic-share__button:focus-visible {
	border-color: rgba(247, 243, 237, 0.62);
	color: #fff;
	background: rgba(247, 243, 237, 0.08);
	outline: none;
}

.mosaic-share__button-content {
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.mosaic-share__icon {
	width: 13px;
	height: 13px;
	flex: 0 0 13px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.mosaic-share__label {
	white-space: nowrap;
}

.mosaic-share__button--copy.is-copied {
	border-color: rgba(247, 243, 237, 0.72);
	background: rgba(247, 243, 237, 0.18);
}

.mosaic-related {
	margin: clamp(58px, 8vw, 96px) auto 0;
}

.mosaic-related__header {
	margin-bottom: 26px;
	border-top: 1px solid var(--mosaic-faint);
	padding-top: 22px;
}

.mosaic-related__header h2 {
	margin: 0;
	font-family: var(--mosaic-copy);
	font-size: 2.5rem;
	font-weight: 700;
	line-height: 1.2;
	text-align: right;
}

.mosaic-pagination {
	margin-top: 46px;
	text-align: center;
}

.mosaic-pagination ul,
.mosaic-pagination .nav-links {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	margin: 0;
	padding: 0;
	list-style: none;
}

.mosaic-pagination a,
.mosaic-pagination span {
	display: inline-flex;
	min-width: 40px;
	min-height: 40px;
	align-items: center;
	justify-content: center;
	border: 1px solid rgba(247, 243, 237, 0.18);
	border-radius: 999px;
	color: var(--mosaic-muted);
	font-weight: 800;
}

.mosaic-pagination .current,
.mosaic-pagination a:hover {
	border-color: rgba(247, 243, 237, 0.62);
	color: #fff;
}

.mosaic-site-footer {
	border-top: 1px solid rgba(247, 243, 237, 0.1);
}

.mosaic-site-footer__inner {
	--mosaic-footer-logo-width: clamp(96px, 11vw, 128px);
	display: grid;
	grid-template-columns: minmax(var(--mosaic-footer-logo-width), 1fr) minmax(0, auto) minmax(var(--mosaic-footer-logo-width), 1fr);
	column-gap: clamp(16px, 2.6vw, 36px);
	row-gap: 14px;
	align-items: center;
	width: min(100% - 48px, var(--mosaic-max));
	margin: 0 auto;
	padding: 28px 0;
	color: var(--mosaic-muted);
	font-size: 14px;
}

.mosaic-site-footer__brand {
	justify-self: end;
	display: inline-flex;
	align-items: center;
	width: var(--mosaic-footer-logo-width);
	height: auto;
	background: none;
}

.mosaic-site-footer__brand img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
	object-fit: contain;
}

.mosaic-site-footer__menu {
	justify-self: center;
	min-width: 0;
	width: 100%;
	display: flex;
	justify-content: center;
}

.mosaic-site-footer__nav {
	justify-self: center;
	max-width: 100%;
	margin-inline: auto;
}

.mosaic-site-footer__spacer {
	display: block;
	justify-self: start;
	width: var(--mosaic-footer-logo-width);
	min-width: var(--mosaic-footer-logo-width);
}

/* Defensive cleanup for plugin/legacy blocks that can leak into previews. */
.mosaic-single .sharedaddy,
.mosaic-single .sd-sharing-enabled,
.mosaic-single .addtoany_share_save_container,
.mosaic-single .heateor_sss_sharing_container,
.mosaic-single .post-share,
.mosaic-single .share-bar,
.mosaic-single .social-share,
.mosaic-single .single-post-box,
.mosaic-single .comments-area,
.mosaic-single .comment-respond,
.mosaic-single [class*="rbi-"],
.mosaic-single [class*="rbc-"],
.mosaic-single [class*="ruby-"] {
	display: none !important;
}

.mosaic-single .wp-block-image,
.mosaic-single .wp-caption {
	max-width: 100%;
}

.mosaic-empty {
	min-height: 55vh;
	text-align: center;
}

/* Contact page typography + RTL form polish */
body.page-id-1481 .elementor-widget-text-editor,
body.page-id-1481 .elementor-widget-text-editor p {
	color: rgba(247, 243, 237, 0.88);
	font-family: var(--mosaic-copy);
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 2.02;
	text-align: justify;
	text-align-last: auto;
}

body.page-id-1481 .wpcf7,
body.page-id-1481 .wpcf7 form {
	direction: rtl;
	text-align: right;
	font-family: var(--mosaic-copy);
}

body.page-id-1481 .wpcf7 p {
	margin: 0 0 16px;
}

body.page-id-1481 .wpcf7 label {
	display: block;
	color: var(--mosaic-paper);
	font-family: var(--mosaic-copy);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.55;
	text-align: right;
	direction: rtl;
}

body.page-id-1481 .wpcf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 8px;
}

body.page-id-1481 .wpcf7 input:not([type="submit"]),
body.page-id-1481 .wpcf7 input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]),
body.page-id-1481 .wpcf7 textarea,
body.page-id-1481 .wpcf7 select {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid rgba(247, 243, 237, 0.24);
	border-radius: 8px;
	background: rgba(247, 243, 237, 0.03);
	color: var(--mosaic-paper);
	font-family: var(--mosaic-copy);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1.7;
	direction: rtl;
	text-align: right;
	outline: none;
	transition: border-color 160ms ease, background-color 160ms ease;
}

body.page-id-1481 .wpcf7 textarea {
	min-height: 170px;
	resize: vertical;
}

body.page-id-1481 .wpcf7 ::placeholder {
	color: rgba(247, 243, 237, 0.58);
}

body.page-id-1481 .wpcf7 input:not([type="submit"]):focus,
body.page-id-1481 .wpcf7 textarea:focus,
body.page-id-1481 .wpcf7 select:focus {
	border-color: rgba(247, 243, 237, 0.56);
	background: rgba(247, 243, 237, 0.07);
}

body.page-id-1481 .wpcf7 .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 18px;
	border: 1px solid rgba(247, 243, 237, 0.3);
	border-radius: 999px;
	background: rgba(247, 243, 237, 0.05);
	color: var(--mosaic-paper);
	font-family: var(--mosaic-copy);
	font-size: 0.96rem;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

body.page-id-1481 .wpcf7 .wpcf7-submit:hover,
body.page-id-1481 .wpcf7 .wpcf7-submit:focus-visible {
	border-color: rgba(247, 243, 237, 0.64);
	background: rgba(247, 243, 237, 0.11);
	color: #fff;
	outline: none;
}

body.page-id-1481 .wpcf7 .wpcf7-response-output {
	margin: 12px 0 0;
	padding: 10px 12px;
	border-radius: 8px;
	border-color: rgba(247, 243, 237, 0.28);
	color: var(--mosaic-paper);
	font-family: var(--mosaic-copy);
	font-size: 0.96rem;
	text-align: right;
}

/* Impressum page: hide duplicated large page heading ("شناسنامه"). */
body.page-id-2357 .mosaic-page > .mosaic-archive__header {
	display: none;
}

/* Datenschutz page: hide duplicated large Persian page heading. */
body.page-id-3 .mosaic-page > .mosaic-archive__header {
	display: none;
}

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

	.mosaic-site-header__inner {
		width: min(100% - 36px, var(--mosaic-max));
	}

	.mosaic-archive__header h1,
	.mosaic-empty h1,
	.mosaic-article-hero__title {
		font-size: 4rem;
	}

	.mosaic-article__content {
		font-size: 1.25rem;
	}

	.mosaic-article-hero {
		min-height: clamp(480px, 72vh, 720px);
	}
}

@media (max-width: 720px) {
	.mosaic-site-header__inner {
		min-height: 98px;
		padding: 10px 0;
	}

	.mosaic-site-header__brand {
		width: clamp(175px, 50vw, 240px);
		height: clamp(48px, 13.5vw, 66px);
	}

	.mosaic-site-header__action {
		width: 38px;
		height: 38px;
	}

	.mosaic-site-header__action svg {
		width: 18px;
		height: 18px;
	}

	.mosaic-home,
	.mosaic-archive,
	.mosaic-single,
	.mosaic-empty,
	.mosaic-site-header__inner,
	.mosaic-site-footer__inner {
		width: min(100% - 28px, var(--mosaic-max));
	}

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

	.mosaic-article-hero {
		aspect-ratio: auto;
		min-height: min(720px, calc(100vh - 120px));
		border-radius: 14px;
	}

	.single-post .mosaic-article-hero {
		aspect-ratio: 1 / 1;
		min-height: 0;
		max-height: none;
	}

	.mosaic-article-hero__title {
		font-size: 3.25rem;
		line-height: 1.12;
	}

	.mosaic-article-hero__content {
		width: min(92%, 520px);
		padding: 28px 16px;
	}

	.mosaic-article-hero__category,
	.mosaic-article-hero__meta {
		font-size: 14px;
	}

	.mosaic-card__title {
		font-size: clamp(
			calc(22px * var(--mosaic-card-title-scale, 1)),
			calc(8.4vw * var(--mosaic-card-title-scale, 1)),
			calc(46px * var(--mosaic-card-title-scale, 1))
		);
	}

	.mosaic-card__link {
		border-radius: 14px;
	}

	.mosaic-article__content {
		font-size: 1.125rem;
		line-height: 2;
	}

	.mosaic-share__button {
		min-height: 40px;
		padding: 0 14px;
		font-size: 14px;
	}

	.mosaic-article__content > p:first-of-type::first-letter {
		min-width: 48px;
		min-height: 48px;
		margin: 10px 0 6px 16px;
		font-size: 36px;
	}

	.mosaic-site-footer__inner {
		grid-template-columns: 1fr;
		justify-items: center;
		text-align: center;
	}

	.mosaic-site-footer__brand {
		justify-self: center;
		width: clamp(110px, 34vw, 132px);
		height: auto;
	}

	.mosaic-site-footer__spacer {
		display: none;
	}
}

@media (max-width: 420px) {
	.mosaic-home,
	.mosaic-archive,
	.mosaic-single,
	.mosaic-empty,
	.mosaic-site-header__inner,
	.mosaic-site-footer__inner {
		width: min(100% - 22px, var(--mosaic-max));
	}

	.mosaic-card__content {
		width: 90%;
		padding: 24px 14px;
	}

	.mosaic-share__actions {
		gap: 8px;
	}

	.mosaic-share__button {
		flex: 1 1 calc(50% - 8px);
	}

	.mosaic-share__button-content {
		gap: 6px;
	}

	.mosaic-share__icon {
		width: 12px;
		height: 12px;
		flex-basis: 12px;
	}

	.mosaic-card__title {
		font-size: clamp(
			calc(20px * var(--mosaic-card-title-scale, 1)),
			calc(9.2vw * var(--mosaic-card-title-scale, 1)),
			calc(34px * var(--mosaic-card-title-scale, 1))
		);
		line-height: 1.18;
	}

	.mosaic-archive__header h1,
	.mosaic-empty h1,
	.mosaic-article-hero__title {
		font-size: 2.75rem;
	}

	.mosaic-related__header h2 {
		font-size: 2rem;
	}
}
