:root {
	--zxo-page: min(92vw, 1440px);
	--zxo-copy: 720px;
	--zxo-ink: #151515;
	--zxo-muted: #666;
	--zxo-line: rgba(18, 18, 18, 0.16);
	--zxo-space: clamp(4.5rem, 9vw, 10rem);
}

html {
	scroll-behavior: smooth;
}

body {
	color: var(--zxo-ink);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

/* Preserve the artwork as the visual focus. */
main,
.site-main,
.elementor-location-single,
.elementor-location-archive {
	overflow: clip;
}

.elementor-section > .elementor-container,
.e-con.e-parent,
.wp-site-blocks > main,
main .alignwide {
	width: var(--zxo-page);
	max-width: var(--zxo-page);
	margin-inline: auto;
}

.elementor-widget-text-editor,
.entry-content > p,
.entry-content > .wp-block-group p {
	max-width: var(--zxo-copy);
}

.entry-content h1,
.elementor-widget-heading h1 {
	font-size: clamp(2.8rem, 7vw, 7.5rem);
	line-height: 0.94;
	letter-spacing: -0.045em;
	font-weight: 500;
	text-wrap: balance;
}

.entry-content h2,
.elementor-widget-heading h2 {
	font-size: clamp(2rem, 4.2vw, 4.8rem);
	line-height: 1;
	letter-spacing: -0.035em;
	font-weight: 500;
	text-wrap: balance;
}

.entry-content p,
.elementor-widget-text-editor {
	font-size: clamp(1rem, 1.2vw, 1.25rem);
	line-height: 1.62;
}

.entry-content figure,
.elementor-widget-image {
	margin-block: 0;
}

.entry-content img,
.elementor-widget-image img {
	display: block;
	width: 100%;
	height: auto;
}

.entry-content section,
.entry-content > .wp-block-group,
.elementor-top-section,
.e-con.e-parent {
	margin-block: var(--zxo-space);
}

a {
	text-underline-offset: 0.22em;
	text-decoration-thickness: 1px;
}

.wp-element-button,
.elementor-button,
.entry-content a.zxo-cta {
	border: 1px solid currentColor;
	border-radius: 999px;
	background: transparent;
	color: inherit;
	padding: 0.82em 1.35em;
	font-size: 0.9rem;
	letter-spacing: 0.02em;
	transition: background-color 180ms ease, color 180ms ease;
}

.wp-element-button:hover,
.elementor-button:hover,
.entry-content a.zxo-cta:hover {
	background: var(--zxo-ink);
	color: #fff;
}

/* Remove shop chrome while the portfolio is not selling work. */
.wp-block-woocommerce-mini-cart,
.wc-block-mini-cart,
.wc-block-mini-cart__drawer,
.site-header-cart,
.cart-contents,
a[href*="/cart"],
a[href*="/basket"] {
	display: none !important;
}

@media (max-width: 767px) {
	:root {
		--zxo-page: calc(100vw - 32px);
		--zxo-space: 4.5rem;
	}

	.entry-content h1,
	.elementor-widget-heading h1 {
		font-size: clamp(2.55rem, 14vw, 4.25rem);
	}

	.entry-content h2,
	.elementor-widget-heading h2 {
		font-size: clamp(2rem, 10vw, 3rem);
	}

	.elementor-column,
	.e-con {
		min-width: 0;
	}

	.entry-content p,
	.elementor-widget-text-editor {
		font-size: 1rem;
		line-height: 1.58;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	* {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

