/* Shared token aliases resolve to theme.json presets. */
:root {
	/* Colours. */
	--secondary-ultra-dark: var(--wp--preset--color--secondary-ultra-dark);
	--secondary-dark: var(--wp--preset--color--secondary-dark);
	--secondary-light: var(--wp--preset--color--secondary-light);
	--primary-ultra-dark: var(--wp--preset--color--primary-ultra-dark);
	--primary-dark: var(--wp--preset--color--primary-dark);
	--black: var(--wp--preset--color--black);
	--neutral-ultra-dark: var(--wp--preset--color--neutral-ultra-dark);
	--neutral-dark: var(--wp--preset--color--neutral-dark);
	--accent-dark: var(--wp--preset--color--accent-dark);
	--neutral: var(--wp--preset--color--neutral);
	--accent-ultra-dark: var(--wp--preset--color--accent-ultra-dark);
	--accent: var(--wp--preset--color--accent);
	--accent-ultra-light: var(--wp--preset--color--accent-ultra-light);
	--neutral-ultra-light: var(--wp--preset--color--neutral-ultra-light);
	--primary-light: var(--wp--preset--color--primary-light);
	--neutral-light: var(--wp--preset--color--neutral-light);
	--secondary: var(--wp--preset--color--secondary);
	--white: var(--wp--preset--color--white);
	--primary: var(--wp--preset--color--primary);
	--accent-light: var(--wp--preset--color--accent-light);
	--secondary-ultra-light: var(--wp--preset--color--secondary-ultra-light);
	--primary-ultra-light: var(--wp--preset--color--primary-ultra-light);
	--primary-semi-light: var(--wp--preset--color--primary-semi-light);
	--primary-semi-dark: var(--wp--preset--color--primary-semi-dark);
	--secondary-semi-light: var(--wp--preset--color--secondary-semi-light);
	--secondary-semi-dark: var(--wp--preset--color--secondary-semi-dark);
	--accent-semi-light: var(--wp--preset--color--accent-semi-light);
	--accent-semi-dark: var(--wp--preset--color--accent-semi-dark);
	--law-accent: var(--wp--preset--color--law-accent);
	--law-accent-light: var(--wp--preset--color--law-accent-light);
	--law-accent-semi-dark: var(--wp--preset--color--law-accent-semi-dark);
	--family-accent: var(--wp--preset--color--family-accent);
	--barrister-accent: var(--wp--preset--color--barrister-accent);
	--expert-accent: var(--wp--preset--color--expert-accent);
	--barrister-accent-light: var(--wp--preset--color--barrister-accent-light);
	--barrister-accent-semi-dark: var(--wp--preset--color--barrister-accent-semi-dark);
	--expert-accent-light: var(--wp--preset--color--expert-accent-light);
	--expert-accent-semi-dark: var(--wp--preset--color--expert-accent-semi-dark);
	--family-accent-light: var(--wp--preset--color--family-accent-light);
	--family-accent-semi-dark: var(--wp--preset--color--family-accent-semi-dark);
	--law-accent-ultra-light: var(--wp--preset--color--law-accent-ultra-light);
	--barrister-accent-ultra-light: var(--wp--preset--color--barrister-accent-ultra-light);
	--family-accent-ultra-light: var(--wp--preset--color--family-accent-ultra-light);
	--expert-accent-utra-light: var(--wp--preset--color--expert-accent-utra-light);

	/* Spacing. */
	--space-xxs: var(--wp--preset--spacing--xxs);
	--space-xs: var(--wp--preset--spacing--xs);
	--space-s: var(--wp--preset--spacing--s);
	--space-m: var(--wp--preset--spacing--m);
	--space-l: var(--wp--preset--spacing--l);
	--space-xl: var(--wp--preset--spacing--xl);
	--space-xxl: var(--wp--preset--spacing--xxl);

	/* Typography and fonts. */
	--text-xxs: var(--wp--preset--font-size--text-xxs);
	--text-xs: var(--wp--preset--font-size--text-xs);
	--text-s: var(--wp--preset--font-size--text-s);
	--text-m: var(--wp--preset--font-size--text-m);
	--text-l: var(--wp--preset--font-size--text-l);
	--text-xl: var(--wp--preset--font-size--text-xl);
	--text-xxl: var(--wp--preset--font-size--text-xxl);
	--font-body: var(--wp--preset--font-family--body);
	--font-heading: var(--wp--preset--font-family--heading);
	--font-decorative: var(--wp--preset--font-family--decorative);

	/* Radius. */
	--radius-s: var(--wp--custom--border--radius--small);
	--radius-m: var(--wp--custom--border--radius--medium);
	--radius-l: var(--wp--custom--border--radius--large);
	--radius-xl: var(--wp--custom--border--radius--x-large);

	/* Layout spacing aliases. */
	--grid-gap: var(--space-s);
	--column-gap: var(--space-l);
	--container-gap: var(--space-l);
	--section-gutter: var(--space-m);
	--section-padding: var(--wp--preset--spacing--section-padding);

	/* WordPress layout and interaction values used by the theme. */
	--content-width: var(--wp--style--global--content-size);
	--wide-width: var(--wp--style--global--wide-size);
	--box-shadow-s: var(--wp--preset--shadow--small);
	--box-shadow-m: var(--wp--preset--shadow--medium);
	--transition: var(--wp--custom--transition--standard);
}

@media (max-width: 767px) {
	:root { --section-gutter: max(16px, var(--space-xs)); }
}

a { transition: color var(--transition); }
a:hover { color: var(--primary-dark); }

@keyframes ohso-fade-in-up {
	from { opacity: 0; transform: translateY(var(--space-s)); }
	to { opacity: 1; transform: translateY(0); }
}
@keyframes ohso-fade-in-left {
	from { opacity: 0; transform: translateX(calc(var(--space-s) * -1)); }
	to { opacity: 1; transform: translateX(0); }
}
@keyframes ohso-fade-in-right {
	from { opacity: 0; transform: translateX(var(--space-s)); }
	to { opacity: 1; transform: translateX(0); }
}

.fade-in-up { animation: ohso-fade-in-up 0.5s ease-out both; }
.fade-in-left { animation: ohso-fade-in-left 0.5s ease-out both; }
.fade-in-right { animation: ohso-fade-in-right 0.5s ease-out both; }

.link-expand { position: relative; }
.link-expand > a::after { position: absolute; inset: 0; content: ''; }

@media (prefers-reduced-motion: reduce) {
	.fade-in-up, .fade-in-left, .fade-in-right { animation: none; }
}
