/*
Theme Name: Typesee
Theme URI: https://typesee.xyz/
Author: Typesee
Description: Native block theme for the Typesee font foundry and WooCommerce store.
Version: 1.20.0
Requires at least: 6.8
Requires PHP: 7.4
Text Domain: typesee
*/

:root {
	--typesee-border: 1px solid var(--wp--preset--color--contrast);
	--typesee-transition: 180ms ease;
	--typesee-cinematic-tint: #1a0e0a;
	--typesee-cinematic-ink: #ffcfc4;
	--typesee-cinematic-line: #45201a;
	--typesee-cinematic-background:
		radial-gradient(ellipse at center, transparent 34%, color-mix(in srgb, var(--wp--preset--color--base) 56%, transparent) 100%),
		radial-gradient(ellipse 70% 58% at 8% 12%, color-mix(in srgb, var(--wp--preset--color--accent) 28%, transparent) 0%, transparent 64%),
		radial-gradient(ellipse 58% 50% at 88% 8%, color-mix(in srgb, var(--typesee-cinematic-ink) 12%, transparent) 0%, transparent 62%),
		linear-gradient(125deg, color-mix(in srgb, var(--wp--preset--color--accent) 14%, var(--wp--preset--color--base)) 0%, var(--typesee-cinematic-tint) 48%, var(--wp--preset--color--base) 100%);
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	text-rendering: optimizeLegibility;
}

/* Full-bleed sections butt together; each provides its own padding */
.wp-site-blocks > * {
	margin-block-start: 0;
}

/* Shared atmospheric treatment for full-bleed conversion sections. */
.typesee-cinematic-section,
.typesee-eula__notice {
	background-color: var(--typesee-cinematic-tint);
	background-image: var(--typesee-cinematic-background);
	background-repeat: no-repeat;
}

a,
button,
input,
select,
textarea {
	transition: color var(--typesee-transition), background-color var(--typesee-transition), border-color var(--typesee-transition), opacity var(--typesee-transition);
}

:where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

/* Sticky lives on the template-part wrapper: a sticky child can only stick
   within its parent, and the wrapper is exactly header-height. */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

.site-header {
	border-bottom: var(--typesee-border);
	background: color-mix(in srgb, var(--wp--preset--color--base) 88%, transparent);
	backdrop-filter: blur(16px) saturate(1.4);
	-webkit-backdrop-filter: blur(16px) saturate(1.4);
	transition: transform 240ms ease;
}

.site-header.is-hidden {
	transform: translateY(-100%);
}

/* backdrop-filter makes .site-header a containing block for fixed-position
   descendants, which traps the mobile nav overlay inside the header's own box
   instead of letting it cover the viewport. Drop it while the menu is open. */
.site-header:has(.wp-block-navigation__responsive-container.is-menu-open) {
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

@media (prefers-reduced-motion: reduce) {
	.site-header {
		transition: none;
	}
}

.site-header__inner {
	min-height: 76px;
	align-items: stretch;
}

/* Editorial grid: logo | nav | actions zones separated by full-height hairlines */
.site-header .brand-lockup {
	align-items: center;
	padding-right: clamp(1rem, 3vw, 2.5rem);
	border-right: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent);
}

.site-header__nav {
	align-items: center;
}

.site-header .brand-lockup .wp-block-site-logo img {
	width: min(180px, 40vw);
	filter: brightness(0) invert(1);
	transition: filter 240ms ease;
}

.site-header .brand-lockup .wp-block-site-logo a:is(:hover, :focus-visible) img {
	filter: brightness(0) saturate(100%) invert(25%) sepia(99%) saturate(4543%) hue-rotate(10deg) brightness(96%) contrast(106%);
}

/* Shrink + shadow as page scrolls (progressive enhancement, no JS) */
@supports (animation-timeline: scroll()) {
	.site-header {
		animation: typesee-header-condense both;
		animation-timeline: scroll();
		animation-range: 0 160px;
	}

	@keyframes typesee-header-condense {
		from {
			box-shadow: 0 0 0 rgba(0, 0, 0, 0);
		}

		to {
			box-shadow: 0 10px 30px -18px rgba(0, 0, 0, 0.65);
		}
	}

	.site-header__inner {
		animation: typesee-header-inner-condense both;
		animation-timeline: scroll();
		animation-range: 0 160px;
	}

	@keyframes typesee-header-inner-condense {
		from {
			min-height: 76px;
		}

		to {
			min-height: 60px;
		}
	}
}

.brand-lockup {
	min-width: min(260px, 45vw);
}

.brand-lockup .wp-block-site-logo img {
	width: min(250px, 42vw);
	height: auto;
}

.brand-lockup .wp-block-site-title {
	margin: 0;
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-style: italic;
	font-weight: 900;
	letter-spacing: -0.09em;
	line-height: 0.8;
	text-transform: uppercase;
}

.brand-lockup:has(.custom-logo) .wp-block-site-title {
	display: none;
}

.site-header__nav .wp-block-navigation__container {
	gap: clamp(1rem, 2.5vw, 2.25rem);
}

.site-header .wp-block-navigation-item__content {
	position: relative;
	padding-block: 0.55rem;
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Animated underline: slides in from left on hover, stays on current item */
.site-header .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: 0.2rem;
	height: 2px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-header .wp-block-navigation-item__content:hover::after,
.site-header .wp-block-navigation-item__content:focus-visible::after,
.site-header .current-menu-item > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}

.site-header .wp-block-navigation-item__content:hover,
.site-header .current-menu-item > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--accent);
}

/* Mobile overlay menu. Core ships it white with black text, which flips the whole
   theme the moment it opens on a black site. */
/* Selector mirrors core's own :not(.has-background) / :not(.has-text-color) rules,
   plus .site-header, so it outranks them instead of tying on specificity. */
.site-header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
	padding: 6px 1rem 2rem;
	background: var(--wp--preset--color--base);
}

.site-header .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open {
	color: var(--wp--preset--color--contrast);
}

.site-header .wp-block-navigation__responsive-container-close {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 32%, transparent);
	color: var(--wp--preset--color--contrast);
}

/* Clears the close button, which core absolutely-positions at the dialog's top. */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	gap: 0;
	align-items: stretch;
	width: 100%;
	margin-top: 3.5rem;
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
}

.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: block;
	width: 100%;
	padding-block: 1.1rem;
	font-size: 1.5rem;
	font-weight: 850;
	letter-spacing: -0.03em;
	text-align: left;
}

/* The desktop hover underline would span the full row width here and sit on top of
   the row divider. */
.site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
	display: none;
}

/* Account has its own slot in site-header__actions on desktop. */
.site-header .wp-block-navigation__responsive-container:not(.is-menu-open) .nav-overlay-only {
	display: none;
}

.site-header__actions {
	gap: 1.25rem;
	align-items: center;
	padding-left: clamp(1rem, 3vw, 2.5rem);
	border-left: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 20%, transparent);
}

.site-header__account a {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.site-header__account a:hover {
	color: var(--wp--preset--color--accent);
}

.site-header .wc-block-mini-cart__button {
	display: grid;
	width: 2.75rem;
	height: 2.75rem;
	padding: 0;
	place-items: center;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 32%, transparent);
	transition: color var(--typesee-transition), border-color var(--typesee-transition), background-color var(--typesee-transition), transform var(--typesee-transition);
}

.site-header .wc-block-mini-cart__button:hover {
	transform: translateY(-1px);
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--accent);
}

.site-header .wc-block-mini-cart__badge {
	top: -0.35rem;
	right: -0.35rem;
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 0.3rem;
	border: 2px solid var(--wp--preset--color--base);
	border-radius: 99px;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
	font-size: 0.62rem;
	font-weight: 900;
	line-height: 1rem;
}

.site-header__cart {
	align-items: center;
}

/* Mini-cart drawer keeps the purchase context visible without leaving the page. */
.wc-block-components-drawer__screen-overlay {
	background: color-mix(in srgb, var(--wp--preset--color--base) 68%, transparent);
	backdrop-filter: blur(12px) saturate(0.75);
	-webkit-backdrop-filter: blur(12px) saturate(0.75);
}

.wc-block-components-drawer,
.wc-block-mini-cart__drawer {
	width: min(30rem, 100vw) !important;
	max-width: min(30rem, 100vw) !important;
	background: var(--wp--preset--color--surface);
	border-left: var(--typesee-border);
	color: var(--wp--preset--color--contrast);
}

.wc-block-mini-cart__title {
	display: flex;
	gap: 1rem;
	align-items: baseline;
	margin: 0;
	padding: clamp(1.5rem, 4vw, 2.25rem) clamp(1rem, 4vw, 2.25rem) 1.5rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	font-size: clamp(1.7rem, 4vw, 2.6rem);
	font-weight: 850;
	letter-spacing: -0.05em;
	line-height: 0.95;
}

.wc-block-mini-cart__title .wp-block-woocommerce-mini-cart-title-items-counter-block {
	margin-left: auto;
	color: var(--wp--preset--color--accent);
	font-family: "Courier New", monospace;
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wc-block-mini-cart__drawer .wc-block-components-drawer__close {
	width: 3.5rem;
	height: 3.5rem;
	padding: 0;
	border: 0;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	border-left: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	border-radius: 0;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
}

.wc-block-mini-cart__drawer .wc-block-components-drawer__close:hover,
.wc-block-mini-cart__drawer .wc-block-components-drawer__close:focus-visible {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.wc-block-mini-cart__items {
	padding-inline: clamp(1rem, 4vw, 2.25rem);
}

.wc-block-mini-cart__drawer .wc-block-cart-items__header {
	display: none;
}

.wc-block-mini-cart__drawer .wc-block-cart-items__row {
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
}

.wc-block-mini-cart__drawer .wc-block-cart-items__row td {
	padding-top: 1.5rem !important;
	padding-bottom: 1.5rem !important;
}

.wc-block-mini-cart__drawer .wc-block-cart-item__image {
	width: 5.25rem;
	padding-right: 1rem !important;
}

.wc-block-mini-cart__drawer .wc-block-cart-item__image img {
	width: 4.5rem;
	height: 4.5rem;
	object-fit: cover;
	background: var(--wp--preset--color--base);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
}

.wc-block-mini-cart__drawer .wc-block-components-product-name {
	color: var(--wp--preset--color--contrast);
	font-size: 1.08rem;
	font-weight: 850;
	letter-spacing: -0.025em;
	line-height: 1.1;
	text-decoration: none;
}

.wc-block-mini-cart__drawer .wc-block-components-product-name:hover {
	color: var(--wp--preset--color--accent);
}

.wc-block-mini-cart__drawer .wc-block-cart-item__prices,
.wc-block-mini-cart__drawer .wc-block-components-product-metadata__description {
	display: none;
}

.wc-block-mini-cart__drawer .wc-block-components-product-details:not([hidden]) {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.25rem 0.75rem;
	margin: 0.8rem 0 0;
	padding: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.68rem;
	line-height: 1.35;
	list-style: none;
}

.wc-block-mini-cart__drawer .wc-block-components-product-details[hidden] {
	display: none !important;
}

.wc-block-mini-cart__drawer .wc-block-components-product-details li {
	display: contents;
}

.wc-block-mini-cart__drawer .wc-block-components-product-details__name {
	font-weight: 700;
}

.wc-block-mini-cart__drawer .wc-block-components-product-details__value {
	color: var(--wp--preset--color--contrast);
	text-align: right;
}

.wc-block-mini-cart__drawer .wc-block-cart-item__quantity {
	display: flex;
	gap: 0.85rem;
	align-items: center;
	margin-top: 1rem;
}

.wc-block-mini-cart__drawer .wc-block-components-quantity-selector {
	height: 2.25rem;
	margin: 0;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 0;
	background: var(--wp--preset--color--base);
}

.wc-block-mini-cart__drawer .wc-block-components-quantity-selector::after {
	display: none;
}

.wc-block-mini-cart__drawer .wc-block-components-quantity-selector__button {
	min-width: 2rem;
	color: var(--wp--preset--color--contrast);
}

.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link {
	display: inline-block !important;
	width: auto !important;
	margin: 0;
	padding: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-underline-offset: 0.22em;
	text-transform: uppercase;
}

.wc-block-mini-cart__drawer .wc-block-cart-item__remove-link:hover {
	color: var(--wp--preset--color--accent);
}

.wc-block-mini-cart__drawer .wc-block-cart-item__total {
	padding-left: 0.75rem !important;
	font-size: 0.88rem;
	font-weight: 850;
}

.wc-block-mini-cart__footer {
	padding: 1.25rem clamp(1rem, 4vw, 2.25rem) 1.5rem;
	border-top: var(--typesee-border);
	background: var(--wp--preset--color--surface);
}

.wc-block-mini-cart__footer-subtotal {
	display: flex;
	align-items: baseline;
	margin-bottom: 0.3rem;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wc-block-mini-cart__footer-subtotal .wc-block-components-totals-item__value {
	margin-left: auto;
	font-size: 1.5rem;
	font-weight: 900;
	letter-spacing: -0.04em;
}

.wc-block-mini-cart__footer .wc-block-components-totals-item__description {
	margin-bottom: 1rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.7rem;
}

.wc-block-mini-cart__footer-actions {
	gap: 0.75rem;
}

.wc-block-mini-cart__footer-actions .wc-block-components-button {
	min-height: 3.25rem;
	border-radius: 0;
	font-size: 0.72rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.wc-block-mini-cart__footer-cart {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 40%, transparent) !important;
	background: transparent !important;
	color: var(--wp--preset--color--contrast) !important;
}

.wc-block-mini-cart__footer-checkout {
	border-color: var(--wp--preset--color--accent) !important;
	background: var(--wp--preset--color--accent) !important;
	color: var(--wp--preset--color--contrast) !important;
}

.wc-block-mini-cart__footer-cart:hover,
.wc-block-mini-cart__footer-cart:focus-visible,
.wc-block-mini-cart__footer-checkout:hover,
.wc-block-mini-cart__footer-checkout:focus-visible {
	border-color: var(--wp--preset--color--contrast) !important;
	background: var(--wp--preset--color--contrast) !important;
	color: var(--wp--preset--color--base) !important;
}

/* Header CTA: filled pill, arrow nudges on hover */
.site-header__cta a {
	display: inline-flex;
	align-items: center;
	gap: 0.5em;
	padding: 0.65em 1.2em;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.site-header__cta a:hover,
.site-header__cta a:focus-visible {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.site-header__cta-arrow {
	display: inline-block;
	transition: transform var(--typesee-transition);
}

.site-header__cta a:hover .site-header__cta-arrow {
	transform: translateX(3px);
}

.typesee-hero {
	min-height: clamp(560px, 78vh, 840px);
	border-bottom: var(--typesee-border);
}

.typesee-hero__eyebrow,
.typesee-section__eyebrow {
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.typesee-hero__title {
	max-width: 12ch;
	margin: 0;
	font-size: clamp(4rem, 11vw, 10rem);
	font-weight: 900;
	letter-spacing: -0.075em;
	line-height: 0.8;
	text-wrap: balance;
}

.typesee-hero__copy {
	max-width: 38ch;
	font-size: clamp(1rem, 1.6vw, 1.35rem);
}

.typesee-marquee {
	overflow: hidden;
	border-block: var(--typesee-border);
	white-space: nowrap;
}

.typesee-marquee p {
	margin: 0;
	font-size: clamp(1.3rem, 3vw, 2.4rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	text-transform: uppercase;
}

.typesee-marquee__track {
	display: flex;
	width: max-content;
	animation: typesee-marquee 12s linear infinite;
	will-change: transform;
}

.typesee-marquee__group {
	flex: none;
}

@keyframes typesee-marquee {
	to {
		transform: translate3d(-25%, 0, 0);
	}
}

/* Hero entrance: masked line reveals, staggered */
.typesee-line {
	display: inline-block;
	overflow: hidden;
	vertical-align: bottom;
}

.typesee-line__inner {
	display: inline-block;
	transform: translateY(110%);
	animation: typesee-rise 800ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.typesee-line:nth-child(2) .typesee-line__inner {
	animation-delay: 120ms;
}

.typesee-hero__accent {
	font-style: italic;
	color: var(--wp--preset--color--accent);
}

.typesee-hero__eyebrow,
.typesee-hero__rotator-line,
.typesee-hero .typesee-hero__copy,
.typesee-hero .wp-block-buttons {
	opacity: 0;
	animation: typesee-fade-up 700ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.typesee-hero__rotator-line {
	animation-delay: 350ms;
}

.typesee-hero .typesee-hero__copy {
	animation-delay: 450ms;
}

.typesee-hero .wp-block-buttons {
	animation-delay: 550ms;
}

@keyframes typesee-rise {
	to {
		transform: translateY(0);
	}
}

@keyframes typesee-fade-up {
	from {
		opacity: 0;
		transform: translateY(1.25rem);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Hero rotating word */
.typesee-hero__rotator-line {
	margin: 0.75rem 0 0;
	font-size: clamp(1rem, 2vw, 1.5rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	text-transform: uppercase;
}

.typesee-rotator {
	display: inline-block;
	overflow: hidden;
	height: 1.2em;
	vertical-align: bottom;
}

.typesee-rotator__track {
	display: inline-flex;
	flex-direction: column;
	line-height: 1.2;
	animation: typesee-rotate-words 8s cubic-bezier(0.65, 0, 0.35, 1) infinite;
}

.typesee-rotator__track span {
	color: var(--wp--preset--color--accent);
}

@keyframes typesee-rotate-words {
	0%, 20% { transform: translateY(0); }
	25%, 45% { transform: translateY(-1.2em); }
	50%, 70% { transform: translateY(-2.4em); }
	75%, 95% { transform: translateY(-3.6em); }
	100% { transform: translateY(-4.8em); }
}

/* Scroll-triggered heading reveals (progressive enhancement) */
@supports (animation-timeline: view()) {
	.typesee-section .typesee-section__heading {
		animation: typesee-fade-up both;
		animation-timeline: view();
		animation-range: entry 5% entry 35%;
	}
}

.typesee-section {
	border-bottom: var(--typesee-border);
}

.typesee-section__heading {
	max-width: 16ch;
	font-size: clamp(2.4rem, 7vw, 6rem);
	font-weight: 850;
	letter-spacing: -0.06em;
	line-height: 0.9;
	text-wrap: balance;
}

.typesee-section__header {
	padding-bottom: 1.5rem;
	border-bottom: var(--typesee-border);
}

/* Latest releases — specimen-first cards: numbered plates, scan row, quiet meta */
.typesee-section__more a {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	text-decoration: none;
	border-bottom: 2px solid var(--wp--preset--color--contrast);
	padding-bottom: 0.25em;
}

.typesee-section__more a:hover,
.typesee-section__more a:focus-visible {
	color: var(--wp--preset--color--accent);
	border-bottom-color: var(--wp--preset--color--accent);
}

.typesee-product-grid ul {
	counter-reset: typesee-release;
	gap: clamp(1.25rem, 2.5vw, 2rem) !important;
}

.typesee-product-grid li {
	counter-increment: typesee-release;
}

.typesee-product-grid .wp-block-woocommerce-product-image {
	position: relative;
	overflow: hidden;
	border: var(--typesee-border);
}

.typesee-product-grid .wp-block-woocommerce-product-image::before {
	content: counter(typesee-release, decimal-leading-zero);
	position: absolute;
	top: 0.6rem;
	left: 0.75rem;
	z-index: 1;
	font-family: "Courier New", monospace;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--wp--preset--color--muted);
	pointer-events: none;
}

.typesee-product-grid .wp-block-woocommerce-product-image::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 3px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.typesee-product-grid li:hover .wp-block-woocommerce-product-image::after,
.typesee-product-grid li:focus-within .wp-block-woocommerce-product-image::after {
	transform: scaleX(1);
}

.typesee-product-grid .wp-block-woocommerce-product-image img {
	transition: transform 350ms ease;
}

.typesee-product-grid li:hover .wp-block-woocommerce-product-image img {
	transform: scale(1.03);
}

.typesee-product-card__row {
	align-items: baseline;
	gap: 1rem;
	margin-top: 0.9rem;
}

.typesee-product-card__name {
	margin: 0;
	font-size: clamp(1.05rem, 1.6vw, 1.3rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
}

.typesee-product-card__name a {
	text-decoration: none;
}

.typesee-product-card__name a:hover,
.typesee-product-grid li:hover .typesee-product-card__name a {
	color: var(--wp--preset--color--accent);
}

.typesee-product-grid .typesee-product-card__price {
	font-size: 0.82rem;
	font-weight: 700;
	white-space: nowrap;
}

.typesee-product-card__cat {
	margin-top: 0.35rem;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.typesee-product-card__cat a {
	color: inherit;
	text-decoration: none;
}

.typesee-product-card__cat a:hover {
	color: var(--wp--preset--color--accent);
}

.typesee-editorial-card {
	height: 100%;
	border: var(--typesee-border);
}

.typesee-editorial-card .wp-block-post-featured-image {
	margin: 0;
}

.typesee-editorial-card .wp-block-post-title a {
	text-decoration: none;
}

.typesee-editorial-card .wp-block-post-title a:hover {
	color: var(--wp--preset--color--accent);
}

/* Journal archive: paired cards with a full-width final story on odd pages */
.typesee-journal-archive-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 2vw, 2rem);
}

.typesee-journal-archive-grid > .wp-block-post {
	min-width: 0;
}

.typesee-journal-archive-grid .typesee-editorial-card > * {
	width: 100%;
	max-width: none;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) {
	grid-column: 1 / -1;
}

.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .typesee-editorial-card {
	display: grid;
	grid-template-columns: minmax(0, 1.2fr) minmax(18rem, 0.8fr);
}

.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .wp-block-post-featured-image {
	height: 100%;
	min-height: 24rem;
}

.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .wp-block-post-featured-image img {
	height: 100% !important;
	aspect-ratio: auto !important;
	object-fit: cover;
}

.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .typesee-editorial-card > .wp-block-group {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

@media (max-width: 781px) {
	.typesee-journal-archive-grid {
		grid-template-columns: minmax(0, 1fr) !important;
	}

	.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) {
		grid-column: auto;
	}

	.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .typesee-editorial-card {
		display: block;
	}

	.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .wp-block-post-featured-image {
		height: auto;
		min-height: 0;
	}

	.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .wp-block-post-featured-image img {
		height: auto !important;
		aspect-ratio: 4 / 3 !important;
	}

	.typesee-journal-archive-grid > .wp-block-post:last-child:nth-child(odd) .typesee-editorial-card > .wp-block-group {
		display: block;
	}
}

/* Homepage journal: compact editorial index */
.typesee-journal {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	background: linear-gradient(180deg, var(--wp--preset--color--base) 0%, #0a0a0a 100%);
}

.typesee-journal::before {
	content: none;
}

.typesee-journal .typesee-section__header {
	position: relative;
	align-items: flex-end;
	gap: 1.5rem;
	padding-bottom: clamp(1.25rem, 2vw, 1.75rem);
	border-bottom-color: color-mix(in srgb, var(--wp--preset--color--contrast) 24%, transparent);
}

.typesee-journal .typesee-section__header::after {
	content: "";
	position: absolute;
	bottom: -1px;
	left: 0;
	width: clamp(3rem, 5vw, 4.5rem);
	height: 2px;
	background: var(--wp--preset--color--accent);
}

.typesee-journal .typesee-section__eyebrow {
	margin: 0 0 0.65rem;
	color: var(--wp--preset--color--accent);
	letter-spacing: 0.18em;
}

.typesee-journal .typesee-section__eyebrow::before {
	content: none;
}

.typesee-journal .typesee-section__heading {
	max-width: 18ch;
	margin: 0;
	font-size: clamp(2.75rem, 5vw, 4.75rem);
	font-weight: 850;
	letter-spacing: -0.06em;
	line-height: 0.9;
	text-transform: none;
	text-shadow: none;
}

.typesee-journal .typesee-section__header > p:last-child {
	margin: 0 0 0.2rem;
}

.typesee-journal .typesee-section__header > p:last-child a {
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-decoration: none;
	text-transform: uppercase;
	border-bottom: 1px solid currentColor;
	padding-bottom: 0.35rem;
}

.typesee-journal .wp-block-query {
	margin-top: clamp(1.5rem, 2.5vw, 2.25rem);
}

.typesee-journal-grid {
	grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
	gap: clamp(1rem, 2vw, 1.75rem);
}

.typesee-journal-grid > .wp-block-post {
	grid-column: span 3;
}

.typesee-journal-grid > .wp-block-post:first-child {
	grid-column: span 6;
}

.typesee-journal-card {
	position: relative;
	height: 100%;
	padding-top: 0;
	border-top: 0;
}

.typesee-journal-card > :where(
	.wp-block-post-featured-image,
	.typesee-journal-card__meta,
	.typesee-journal-card__title,
	.typesee-journal-card__excerpt
) {
	width: 100%;
	max-width: none;
	margin-right: 0 !important;
	margin-left: 0 !important;
}

.typesee-journal-card .wp-block-post-featured-image {
	position: relative;
	height: clamp(13rem, 18vw, 18rem);
	margin: 0 0 1rem;
	overflow: hidden;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 25%, transparent);
	background: var(--wp--preset--color--surface);
}

.typesee-journal-card .wp-block-post-featured-image::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(180deg, transparent 52%, rgba(0, 0, 0, 0.56) 100%),
		radial-gradient(ellipse at center, transparent 48%, rgba(0, 0, 0, 0.4) 100%);
	box-shadow: inset 0 0 5rem rgba(0, 0, 0, 0.28);
	pointer-events: none;
}

.typesee-journal-card .wp-block-post-featured-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	filter: saturate(0.48) contrast(1.12) brightness(0.76);
	transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 500ms ease;
}

.typesee-journal-card .wp-block-post-featured-image:is(:hover, :focus-within) img {
	transform: scale(1.045);
	filter: saturate(1) contrast(1.06) brightness(0.92);
}

.typesee-journal-card__meta {
	gap: 0.6rem;
	margin-bottom: 0.5rem;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.typesee-journal-card__meta .wp-block-post-date,
.typesee-journal-card__meta .taxonomy-category {
	margin: 0;
	font-size: inherit;
	color: inherit;
}

.typesee-journal-card__meta .taxonomy-category a {
	color: inherit;
	text-decoration: none;
}

.typesee-journal-card__meta .taxonomy-category a:hover {
	color: var(--wp--preset--color--accent);
}

.typesee-journal-card__title {
	max-width: 30ch;
	margin: 0 0 0.5rem;
	font-size: clamp(1.25rem, 1.8vw, 1.75rem);
	font-weight: 850;
	letter-spacing: -0.045em;
	line-height: 1.05;
}

.typesee-journal-card__title a {
	text-decoration: none;
}

.typesee-journal-card__title a:hover {
	color: var(--wp--preset--color--accent);
}

.typesee-journal-grid > .wp-block-post:first-child .typesee-journal-card__title {
	font-size: clamp(1.65rem, 2.5vw, 2.5rem);
}

.typesee-journal-card__excerpt p {
	margin: 0;
}

.typesee-journal-card__excerpt {
	display: none;
}

@media (max-width: 1024px) {
	.typesee-journal-grid > .wp-block-post {
		grid-column: span 6;
	}

	.typesee-journal-grid > .wp-block-post:first-child {
		grid-column: 1 / -1;
	}

	.typesee-journal-grid > .wp-block-post:first-child .wp-block-post-featured-image {
		height: clamp(16rem, 38vw, 20rem);
	}
}

@media (max-width: 781px) {
	.typesee-journal .typesee-section__header {
		align-items: flex-start;
		gap: 1rem;
	}

	.typesee-journal .typesee-section__heading {
		font-size: clamp(2.5rem, 12vw, 4rem);
		line-height: 0.9;
	}

	.typesee-journal-grid > .wp-block-post,
	.typesee-journal-grid > .wp-block-post:first-child {
		grid-column: 1 / -1;
	}

	.typesee-journal-card .wp-block-post-featured-image,
	.typesee-journal-grid > .wp-block-post:first-child .wp-block-post-featured-image {
		height: auto;
		aspect-ratio: 3 / 2;
	}
}

/* Foundry title card */
.typesee-prop {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: 0 !important;
	border-bottom: 0;
	background:
		radial-gradient(ellipse at center, color-mix(in srgb, var(--wp--preset--color--contrast) 7%, transparent), transparent 62%),
		var(--wp--preset--color--base);
}

.typesee-prop::before {
	position: absolute;
	z-index: -1;
	top: 50%;
	left: 50%;
	color: color-mix(in srgb, var(--wp--preset--color--contrast) 4%, transparent);
	content: "TYPESEE";
	font-size: clamp(8rem, 24vw, 24rem);
	font-style: italic;
	font-weight: 900;
	letter-spacing: -0.1em;
	line-height: 0.7;
	white-space: nowrap;
	transform: translate(-52%, -50%);
}

.typesee-prop__frame {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: clamp(38rem, 76svh, 52rem);
	padding: clamp(2.5rem, 6vw, 6rem) clamp(1.5rem, 4vw, 4rem);
}

.typesee-prop__meta,
.typesee-prop__credits {
	width: 100%;
	margin: 0;
	font-family: "Courier New", monospace;
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.11em;
	line-height: 1.4;
	text-transform: uppercase;
}

.typesee-prop__meta {
	padding-bottom: 1rem;
}

.typesee-prop__meta p,
.typesee-prop__credits p {
	margin: 0;
}

.typesee-prop__meta .typesee-section__eyebrow {
	color: var(--wp--preset--color--accent);
}

.typesee-prop__timecode,
.typesee-prop__credits {
	color: var(--wp--preset--color--muted);
}

.typesee-prop__statement {
	width: 100%;
	max-width: none;
	margin: clamp(3rem, 8vh, 7rem) 0;
	text-align: center;
	text-wrap: balance;
}

.typesee-prop__lead {
	display: block;
	max-width: 17ch;
	margin-inline: auto;
	font-size: clamp(3.2rem, 7.8vw, 8rem);
	font-weight: 900;
	letter-spacing: -0.075em;
	line-height: 0.84;
	text-transform: uppercase;
}

.typesee-prop__lead > span {
	display: block;
}

.typesee-prop__tail {
	display: block;
	max-width: 34ch;
	margin: clamp(1.5rem, 3vw, 2.5rem) auto 0;
	color: var(--wp--preset--color--muted);
	font-size: clamp(1.1rem, 2vw, 1.8rem);
	font-weight: 500;
	letter-spacing: -0.025em;
	line-height: 1.25;
}

.typesee-prop__statement em {
	color: var(--wp--preset--color--accent);
	font-style: italic;
	font-weight: 800;
}

.typesee-prop__credits {
	padding-top: 1rem;
}

/* Scroll-driven title sequence: progressive enhancement, no runtime JS. */
@supports (animation-timeline: view()) {
	.typesee-prop {
		view-timeline-name: --typesee-prop;
		view-timeline-axis: block;
	}

	.typesee-prop::before {
		animation: typesee-prop-watermark linear both;
		animation-timeline: --typesee-prop;
		animation-range: entry 0% exit 100%;
	}

	.typesee-prop__lead > span {
		--typesee-prop-shift: -10vw;
		animation: typesee-prop-line-in linear both;
		animation-timeline: --typesee-prop;
		animation-range: entry 4% cover 30%;
	}

	.typesee-prop__lead > span:nth-child(2) {
		--typesee-prop-shift: 10vw;
		animation-range: entry 9% cover 36%;
	}

	.typesee-prop__lead > span:nth-child(3) {
		--typesee-prop-shift: -7vw;
		animation-range: entry 14% cover 42%;
	}

	.typesee-prop__tail {
		animation: typesee-prop-copy-in linear both;
		animation-timeline: --typesee-prop;
		animation-range: entry 22% cover 48%;
	}

	.typesee-prop__meta {
		animation: typesee-prop-meta-in linear both;
		animation-timeline: --typesee-prop;
		animation-range: entry 0% cover 24%;
	}

	.typesee-prop__credits {
		animation: typesee-prop-credits-in linear both;
		animation-timeline: --typesee-prop;
		animation-range: entry 28% cover 54%;
	}
}

@keyframes typesee-prop-line-in {
	from {
		opacity: 0;
		letter-spacing: 0.015em;
		transform: translate3d(var(--typesee-prop-shift), 2.5rem, 0) scaleY(0.62);
	}

	to {
		opacity: 1;
		letter-spacing: -0.075em;
		transform: translate3d(0, 0, 0) scaleY(1);
	}
}

@keyframes typesee-prop-copy-in {
	from {
		opacity: 0;
		transform: translateY(4rem);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes typesee-prop-meta-in {
	from {
		opacity: 0;
		transform: translateY(-1.5rem);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes typesee-prop-credits-in {
	from {
		opacity: 0;
		transform: translateY(1.5rem);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes typesee-prop-watermark {
	from {
		color: color-mix(in srgb, var(--wp--preset--color--contrast) 2%, transparent);
		transform: translate(-58%, -50%) scale(0.94);
	}

	to {
		color: color-mix(in srgb, var(--wp--preset--color--contrast) 6%, transparent);
		transform: translate(-46%, -50%) scale(1.06);
	}
}

@media (max-width: 600px) {
	.typesee-prop__frame {
		min-height: 38rem;
		padding: 2.25rem 1rem;
	}

	.typesee-prop__meta,
	.typesee-prop__credits {
		align-items: flex-start;
		gap: 0.75rem;
	}

	.typesee-prop__timecode,
	.typesee-prop__credits p:last-child {
		text-align: right;
	}
}

/* Category discovery pills */
.typesee-cats .wc-block-product-categories-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.typesee-cats .wc-block-product-categories-list li {
	margin: 0;
}

.typesee-cats .wc-block-product-categories-list a {
	display: inline-block;
	padding: 0.55em 1.3em;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 999px;
	font-size: clamp(0.95rem, 1.6vw, 1.25rem);
	font-weight: 700;
	letter-spacing: -0.01em;
	text-decoration: none;
}

.typesee-cats .wc-block-product-categories-list a:hover,
.typesee-cats .wc-block-product-categories-list a:focus-visible {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

/* Licensing reassurance band — accent tint family (one per page) */
.typesee-license-band {
	color: var(--typesee-cinematic-ink);
	border-bottom: 1px solid var(--typesee-cinematic-line);
}

.typesee-license-band .typesee-section__eyebrow,
.typesee-license-band h2,
.typesee-license-band a {
	color: var(--typesee-cinematic-ink);
}

.typesee-license-band a:hover {
	color: var(--wp--preset--color--accent);
}

.typesee-license-band__list {
	margin: 0 0 1.25rem;
	padding: 0;
	list-style: none;
}

.typesee-license-band__list li {
	padding: 0.75rem 0;
	border-bottom: 1px solid var(--typesee-cinematic-line);
	font-weight: 600;
}

.typesee-shop-header,
.typesee-page-header {
	border-bottom: var(--typesee-border);
}

.typesee-page-title {
	font-size: clamp(3.4rem, 10vw, 8rem);
	font-weight: 900;
	letter-spacing: -0.07em;
	line-height: 0.82;
	text-transform: uppercase;
}

/* Font License Agreement */
.typesee-eula-language {
	max-width: 1440px;
	margin-inline: auto;
}

.typesee-eula-language__switch {
	display: flex;
	justify-content: flex-end;
	margin: 0 0 clamp(2rem, 5vw, 4rem);
}

.typesee-eula-language__switch button {
	appearance: none;
	min-height: 2.75rem;
	padding: 0.7rem 1rem;
	background: transparent;
	border: 1px solid var(--wp--preset--color--line, #2e2e2c);
	border-radius: 0;
	color: var(--wp--preset--color--muted);
	cursor: pointer;
	font: inherit;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1;
	text-transform: uppercase;
}

.typesee-eula-language__switch button + button {
	border-left: 0;
}

.typesee-eula-language__switch button:hover {
	color: var(--wp--preset--color--contrast);
}

.typesee-eula-language__switch button:focus-visible {
	position: relative;
	z-index: 1;
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

.typesee-eula-language__switch button[aria-pressed="true"] {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.typesee-eula-language__panel[hidden] {
	display: none;
}

.typesee-eula {
	--eula-line: var(--wp--preset--color--line, #2e2e2c);
	max-width: 1440px;
	margin-inline: auto;
	color: var(--wp--preset--color--contrast);
}

.typesee-eula :where(section, nav) {
	scroll-margin-top: 7rem;
}

.typesee-eula__intro {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.48fr);
	grid-template-areas:
		"eyebrow meta"
		"lead meta";
	gap: clamp(2rem, 6vw, 7rem);
	align-items: end;
	padding-bottom: clamp(2.5rem, 6vw, 5rem);
}

.typesee-eula__intro > .typesee-eula__eyebrow {
	grid-area: eyebrow;
	align-self: end;
	margin-bottom: -1rem;
}

.typesee-eula__eyebrow {
	margin: 0 0 0.85rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	line-height: 1.3;
	text-transform: uppercase;
}

.typesee-eula__lead {
	grid-area: lead;
	max-width: 950px;
	margin: 0;
	font-size: clamp(1.8rem, 4.4vw, 4.4rem);
	font-weight: 800;
	letter-spacing: -0.055em;
	line-height: 0.98;
}

.typesee-eula__meta {
	grid-area: meta;
	display: grid;
	gap: 0;
	border-top: 1px solid var(--eula-line);
	font-size: 0.78rem;
}

.typesee-eula__meta span {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
	padding: 0.8rem 0;
	border-bottom: 1px solid var(--eula-line);
	color: var(--wp--preset--color--muted);
}

.typesee-eula__meta strong {
	color: var(--wp--preset--color--contrast);
	font-weight: 700;
}

.typesee-eula__notice {
	margin-inline: calc(clamp(1rem, 3vw, 2.5rem) * -1);
	padding: clamp(2rem, 5vw, 4rem) clamp(1rem, 3vw, 2.5rem);
	background-color: var(--typesee-cinematic-tint);
	border-block: 1px solid var(--typesee-cinematic-line);
	color: var(--typesee-cinematic-ink);
}

.typesee-eula__notice .typesee-eula__eyebrow,
.typesee-eula__notice h2 {
	color: var(--typesee-cinematic-ink);
}

.typesee-eula__notice h2 {
	max-width: 900px;
	margin: 0 0 1.25rem;
	font-size: clamp(2rem, 4.8vw, 4.7rem);
	letter-spacing: -0.06em;
	line-height: 0.92;
}

.typesee-eula__notice > p:last-child {
	max-width: 760px;
	margin: 0;
	font-size: clamp(1rem, 1.6vw, 1.25rem);
}

.typesee-eula__layout {
	display: grid;
	grid-template-columns: minmax(13rem, 0.28fr) minmax(0, 1fr);
	gap: clamp(2rem, 6vw, 7rem);
	padding-top: clamp(3rem, 7vw, 7rem);
}

.typesee-eula__toc {
	position: sticky;
	top: 7rem;
	align-self: start;
}

.typesee-eula__toc ol {
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--eula-line);
	list-style: none;
	counter-reset: eula-toc;
}

.typesee-eula__toc li {
	counter-increment: eula-toc;
	border-bottom: 1px solid var(--eula-line);
}

.typesee-eula__toc a {
	display: grid;
	grid-template-columns: 2rem 1fr;
	gap: 0.5rem;
	padding: 0.8rem 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem;
	font-weight: 700;
	text-decoration: none;
}

.typesee-eula__toc a::before {
	content: counter(eula-toc, decimal-leading-zero);
	color: var(--wp--preset--color--accent);
	font-family: "Courier New", monospace;
}

.typesee-eula__toc a:hover,
.typesee-eula__toc a:focus-visible {
	color: var(--wp--preset--color--contrast);
}

.typesee-eula__content {
	min-width: 0;
}

.typesee-eula__section {
	padding: 0 0 clamp(4rem, 8vw, 8rem);
}

.typesee-eula__section + .typesee-eula__section {
	padding-top: clamp(3rem, 6vw, 6rem);
	border-top: 1px solid var(--eula-line);
}

.typesee-eula__section > h2,
.typesee-eula__contact h2 {
	max-width: 980px;
	margin: 0 0 1.5rem;
	font-size: clamp(2.4rem, 5.5vw, 5.5rem);
	letter-spacing: -0.065em;
	line-height: 0.9;
}

.typesee-eula__section > h3,
.typesee-eula__section > p,
.typesee-eula__section > ul,
.typesee-eula__section-lead {
	max-width: 780px;
}

.typesee-eula__section > h3 {
	margin: 2.5rem 0 0.75rem;
	font-size: clamp(1.25rem, 2vw, 1.75rem);
	letter-spacing: -0.03em;
}

.typesee-eula__section > p,
.typesee-eula__section > ul,
.typesee-eula__section-lead,
.typesee-eula__license > p,
.typesee-eula__license > ul,
.typesee-eula__contact > p {
	font-size: clamp(0.98rem, 1.25vw, 1.08rem);
	line-height: 1.65;
}

.typesee-eula__section-lead {
	color: var(--wp--preset--color--muted);
}

.typesee-eula__cards {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	margin-top: 2.5rem;
	border-top: 1px solid var(--eula-line);
	border-left: 1px solid var(--eula-line);
}

.typesee-eula__card {
	display: grid;
	grid-column: span 2;
	grid-template-rows: auto auto 1fr;
	min-height: 12rem;
	padding: 1.25rem;
	border-right: 1px solid var(--eula-line);
	border-bottom: 1px solid var(--eula-line);
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease;
}

.typesee-eula__card[href="#eula-products"],
.typesee-eula__card[href="#eula-app"],
.typesee-eula__card[href="#eula-social"],
.typesee-eula__card[href="#eula-broadcast"],
.typesee-eula__card[href="#eula-id-products"],
.typesee-eula__card[href="#eula-id-app"],
.typesee-eula__card[href="#eula-id-social"],
.typesee-eula__card[href="#eula-id-broadcast"] {
	grid-column: span 3;
}

.typesee-eula__card:hover,
.typesee-eula__card:focus-visible {
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--accent);
}

.typesee-eula__card span {
	color: var(--wp--preset--color--accent);
	font: 700 0.72rem/1 "Courier New", monospace;
}

.typesee-eula__card strong {
	align-self: end;
	margin-top: 2rem;
	font-size: 1.2rem;
	letter-spacing: -0.03em;
	line-height: 1.05;
}

.typesee-eula__card small {
	align-self: end;
	margin-top: 0.75rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem;
	line-height: 1.4;
}

.typesee-eula__card.is-enterprise {
	grid-column: 1 / -1;
	min-height: 9rem;
	background: var(--wp--preset--color--surface);
	border-color: var(--wp--preset--color--accent);
}

.typesee-eula__card.is-demo {
	grid-column: 1 / -1;
	min-height: 8rem;
}

.typesee-eula__card.is-enterprise strong {
	font-size: clamp(1.35rem, 2.5vw, 2rem);
}

.typesee-eula__definitions {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 900px;
	margin: 2rem 0 0;
	border-top: 1px solid var(--eula-line);
	border-left: 1px solid var(--eula-line);
}

.typesee-eula__definitions > div {
	padding: 1.25rem;
	border-right: 1px solid var(--eula-line);
	border-bottom: 1px solid var(--eula-line);
}

.typesee-eula__definitions dt {
	margin-bottom: 0.55rem;
	font-size: 0.76rem;
	font-weight: 800;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.typesee-eula__definitions dd {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.88rem;
	line-height: 1.55;
}

.typesee-eula__license {
	max-width: 980px;
	padding: clamp(2.25rem, 4vw, 4rem) 0;
	border-top: 1px solid var(--eula-line);
}

.typesee-eula__license.is-enterprise {
	padding-inline: clamp(1.25rem, 3vw, 2.5rem);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--accent);
}

.typesee-eula__license:first-of-type {
	margin-top: 3.5rem;
}

.typesee-eula__license-heading {
	display: grid;
	grid-template-columns: 3rem 1fr;
	gap: 1rem;
	align-items: baseline;
	margin-bottom: 1.25rem;
}

.typesee-eula__license-heading span {
	color: var(--wp--preset--color--accent);
	font: 700 0.78rem/1 "Courier New", monospace;
}

.typesee-eula__license-heading h3 {
	margin: 0;
	font-size: clamp(1.7rem, 3.5vw, 3.2rem);
	letter-spacing: -0.055em;
	line-height: 0.95;
}

.typesee-eula__license > p,
.typesee-eula__license > ul {
	max-width: 760px;
	margin-left: 4rem;
}

.typesee-eula__license li,
.typesee-eula__section li {
	margin-bottom: 0.65rem;
}

.typesee-eula__separate {
	padding: 1rem 1.1rem;
	background: var(--wp--preset--color--surface);
	border-left: 2px solid var(--wp--preset--color--accent);
	color: var(--wp--preset--color--muted);
}

.typesee-eula code {
	padding: 0.1rem 0.28rem;
	background: var(--wp--preset--color--soft, #1c1c1a);
	font: 0.88em/1.4 "Courier New", monospace;
}

.typesee-eula__restriction-list {
	padding-left: 0;
	list-style: none;
	counter-reset: eula-restrictions;
}

.typesee-eula__restriction-list li {
	position: relative;
	padding: 1rem 0 1rem 3rem;
	border-top: 1px solid var(--eula-line);
	counter-increment: eula-restrictions;
}

.typesee-eula__restriction-list li::before {
	content: "×";
	position: absolute;
	left: 0;
	top: 0.75rem;
	color: var(--wp--preset--color--accent);
	font-size: 1.6rem;
	font-weight: 400;
}

.typesee-eula__contact {
	padding: clamp(2rem, 5vw, 5rem);
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--eula-line);
}

.typesee-eula__contact h2 {
	max-width: 760px;
}

.typesee-eula__contact > p {
	max-width: 700px;
}

.typesee-eula__button {
	display: inline-block;
	margin: 1rem 1rem 1rem 0;
	padding: 0.95rem 1.35rem;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--surface);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.typesee-eula__button:hover,
.typesee-eula__button:focus-visible {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.typesee-eula__fineprint {
	margin-top: 2rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem !important;
}

@media (max-width: 900px) {
	.typesee-eula__intro,
	.typesee-eula__layout {
		grid-template-columns: 1fr;
	}

	.typesee-eula__intro {
		grid-template-areas:
			"eyebrow"
			"lead"
			"meta";
		gap: 1.5rem;
	}

	.typesee-eula__intro > .typesee-eula__eyebrow {
		margin-bottom: -0.75rem;
	}

	.typesee-eula__toc {
		position: static;
	}

	.typesee-eula__toc ol {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		border-left: 1px solid var(--eula-line);
	}

	.typesee-eula__toc li {
		padding-inline: 0.9rem;
		border-right: 1px solid var(--eula-line);
	}
}

@media (max-width: 620px) {
	.page-id-548 .typesee-page-title {
		font-size: clamp(2.65rem, 15vw, 3.7rem);
		letter-spacing: -0.075em;
	}

	.typesee-eula__cards,
	.typesee-eula__definitions,
	.typesee-eula__toc ol {
		grid-template-columns: 1fr;
	}

	.typesee-eula__cards .typesee-eula__card {
		grid-column: 1 / -1;
		min-height: 9rem;
	}

	.typesee-eula__license > p,
	.typesee-eula__license > ul {
		margin-left: 0;
	}

	.typesee-eula__license-heading {
		grid-template-columns: 2rem 1fr;
	}

	.typesee-eula__contact {
		padding: 1.5rem;
	}

	.typesee-eula-language__switch {
		justify-content: stretch;
	}

	.typesee-eula-language__switch button {
		flex: 1;
	}
}

@media print {
	.site-header,
	.site-footer,
	.typesee-eula-language__switch,
	.typesee-eula__toc,
	.typesee-eula__button {
		display: none !important;
	}

	.typesee-eula,
	.typesee-eula__notice,
	.typesee-eula__contact {
		background: #fff !important;
		color: #000 !important;
	}

	.typesee-eula__layout {
		display: block;
	}

	.typesee-eula__section,
	.typesee-eula__license {
		break-inside: avoid-page;
	}
}

.typesee-product-main {
	align-items: flex-start;
}

.typesee-product-summary {
	position: sticky;
	top: 112px;
}

.typesee-product-summary > .wp-block-post-title {
	font-size: clamp(2.6rem, 6vw, 5.5rem);
	font-weight: 850;
	letter-spacing: -0.065em;
	line-height: 0.88;
}

.typesee-product-summary .wp-block-post-excerpt {
	font-size: 1rem;
}

.typesee-product-tester {
	border-top: var(--typesee-border);
}

.wp-block-woocommerce-product-meta .wp-block-group {
	align-items: flex-start;
	gap: 0.5rem;
	font-size: 0.78rem;
	line-height: 1.45;
}

/* Cart and checkout */
.typesee-commerce-page {
	--typesee-commerce-line: color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	--typesee-commerce-soft: color-mix(in srgb, var(--wp--preset--color--contrast) 5%, transparent);
	padding-top: clamp(2.5rem, 6vw, 5.5rem);
	padding-bottom: clamp(4rem, 8vw, 8rem);
}

.typesee-commerce-page > .wc-block-components-notices,
.typesee-commerce-page > .woocommerce-notices-wrapper {
	width: min(100%, var(--wp--style--global--wide-size));
	margin-inline: auto;
}

.typesee-commerce-header {
	gap: clamp(2rem, 5vw, 6rem);
	align-items: flex-end;
	padding-bottom: clamp(2rem, 5vw, 4rem);
	border-bottom: var(--typesee-border);
}

.typesee-commerce-header__copy {
	flex: 1 1 34rem;
	margin-inline: 0 !important;
}

.typesee-commerce-eyebrow {
	margin: 0 0 0.75rem;
	color: var(--wp--preset--color--accent);
	font-size: 0.68rem;
	font-weight: 850;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.typesee-commerce-title {
	margin: 0;
	font-size: clamp(3.5rem, 9vw, 7.5rem);
	font-weight: 900;
	letter-spacing: -0.075em;
	line-height: 0.82;
	text-transform: uppercase;
}

.typesee-commerce-lede {
	max-width: 48ch;
	margin: 1.25rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: clamp(0.95rem, 1.4vw, 1.15rem);
}

.typesee-commerce-steps {
	display: flex;
	flex: 1 1 25rem;
	justify-content: flex-end;
	margin-left: auto;
	border-block: 1px solid var(--typesee-commerce-line);
}

.typesee-commerce-steps :where(a, span) {
	position: relative;
	flex: 1;
	padding: 0.85rem clamp(0.75rem, 2vw, 1.25rem);
	color: var(--wp--preset--color--muted);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

.typesee-commerce-steps :where(a, span) + :where(a, span) {
	border-left: 1px solid var(--typesee-commerce-line);
}

.typesee-commerce-steps b {
	margin-right: 0.35rem;
	color: inherit;
	font-family: "Courier New", monospace;
	font-size: 0.62rem;
}

.typesee-commerce-steps .is-current {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.typesee-commerce-steps a:hover,
.typesee-commerce-steps a:focus-visible {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
}

.typesee-commerce-page > .wp-block-post-content {
	margin-top: clamp(2rem, 5vw, 4.5rem);
}

.typesee-commerce-page .wp-block-woocommerce-cart,
.typesee-commerce-page .wp-block-woocommerce-checkout {
	margin: 0;
	color: var(--wp--preset--color--contrast);
}

.typesee-commerce-page :where(.wc-block-cart__main, .wc-block-checkout__main) {
	padding-right: clamp(1.5rem, 4vw, 4rem);
}

.typesee-commerce-page :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
	padding-left: clamp(1.5rem, 4vw, 4rem);
	border-left: 1px solid var(--typesee-commerce-line);
}

.typesee-commerce-page :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) > div {
	position: static;
}

@media (min-width: 921px) {
	.typesee-commerce-page :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
		position: sticky !important;
		top: 6.5rem;
		align-self: flex-start;
	}

	.typesee-cart-page .wc-block-cart__submit-container--sticky {
		position: static !important;
		inset: auto !important;
		width: auto !important;
		box-shadow: none !important;
		transform: none !important;
	}
}

.typesee-commerce-page :where(.wc-block-cart-items__header, .wc-block-cart-items__row) {
	border-color: var(--typesee-commerce-line) !important;
}

.typesee-commerce-page .wc-block-cart-items__header {
	font-size: 0.66rem;
	font-weight: 850;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.typesee-commerce-page .wc-block-cart-items__row td {
	padding-top: 1.5rem !important;
	padding-bottom: 1.5rem !important;
}

.typesee-commerce-page .wc-block-cart-item__image img,
.typesee-commerce-page .wc-block-components-order-summary-item__image img {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--typesee-commerce-line);
}

.typesee-commerce-page .wc-block-components-product-name {
	color: var(--wp--preset--color--contrast);
	font-size: clamp(1rem, 1.5vw, 1.25rem);
	font-weight: 850;
	letter-spacing: -0.025em;
	line-height: 1.15;
	text-decoration: none;
}

.typesee-commerce-page .wc-block-components-product-name:hover {
	color: var(--wp--preset--color--accent);
}

.typesee-commerce-page :where(.wc-block-components-product-metadata, .wc-block-components-product-details) {
	margin-top: 0.65rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.72rem;
	line-height: 1.5;
}

.typesee-commerce-page .wc-block-components-product-details li {
	margin: 0.15rem 0;
}

.typesee-commerce-page .wc-block-cart-item__remove-link {
	padding: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: underline;
	text-underline-offset: 0.25em;
	text-transform: uppercase;
}

.typesee-commerce-page .wc-block-cart-item__remove-link:hover {
	color: var(--wp--preset--color--accent);
}

.typesee-commerce-page .wc-block-components-quantity-selector {
	height: 2.75rem;
	border: 1px solid var(--typesee-commerce-line);
	border-radius: 0;
	background: var(--wp--preset--color--base);
}

.typesee-commerce-page .wc-block-components-quantity-selector::after {
	display: none;
}

.typesee-commerce-page .wc-block-components-quantity-selector__button {
	min-width: 2.5rem;
	color: var(--wp--preset--color--contrast);
}

.typesee-commerce-page .wc-block-components-quantity-selector__button:hover {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--accent);
}

.typesee-commerce-page .wc-block-components-quantity-selector__input {
	color: var(--wp--preset--color--contrast);
}

.typesee-commerce-page :where(.wc-block-cart__totals-title, .wc-block-components-checkout-order-summary__title-text) {
	font-size: clamp(1.35rem, 2vw, 1.8rem);
	font-weight: 850;
	letter-spacing: -0.035em;
}

.typesee-commerce-page :where(.wc-block-components-totals-wrapper, .wc-block-components-panel, .wc-block-components-order-summary) {
	border-color: var(--typesee-commerce-line) !important;
}

.typesee-commerce-page .wc-block-components-totals-item {
	padding-block: 0.9rem;
}

.typesee-commerce-page .wc-block-components-totals-item__label {
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem;
	font-weight: 750;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.typesee-commerce-page .wc-block-components-totals-footer-item {
	padding-top: 1.25rem;
	border-top: var(--typesee-border);
}

.typesee-commerce-page .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: clamp(1.35rem, 2vw, 1.8rem);
	font-weight: 900;
	letter-spacing: -0.04em;
}

.typesee-commerce-page :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button) {
	min-height: 3.5rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-size: 0.75rem;
	font-weight: 900;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.typesee-commerce-page :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):hover,
.typesee-commerce-page :where(.wc-block-cart__submit-button, .wc-block-components-checkout-place-order-button):focus-visible {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.typesee-commerce-page .wc-block-components-panel__button {
	color: var(--wp--preset--color--contrast);
	font-size: 0.75rem;
	font-weight: 800;
}

.typesee-commerce-page :where(.wc-block-components-text-input input, .wc-block-components-combobox-control input, .wc-block-components-select select, .wc-block-components-textarea) {
	min-height: 3.35rem;
	border: 1px solid var(--typesee-commerce-line) !important;
	border-radius: 0 !important;
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--contrast) !important;
	box-shadow: none !important;
}

.typesee-commerce-page :where(.wc-block-components-text-input, .wc-block-components-combobox, .wc-block-components-select):focus-within {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.typesee-commerce-page :where(.wc-block-components-text-input label, .wc-block-components-combobox-control label, .wc-block-components-select label) {
	color: var(--wp--preset--color--muted) !important;
}

.typesee-commerce-page .wc-block-components-checkout-step {
	margin: 0;
	padding: 0 0 clamp(2rem, 4vw, 3.5rem);
}

.typesee-commerce-page .wc-block-components-checkout-step + .wc-block-components-checkout-step {
	padding-top: clamp(2rem, 4vw, 3.5rem);
	border-top: 1px solid var(--typesee-commerce-line);
}

.typesee-commerce-page .wc-block-components-checkout-step__heading {
	margin-bottom: 1.5rem;
}

.typesee-commerce-page .wc-block-components-checkout-step__title {
	font-size: clamp(1.45rem, 2.5vw, 2.15rem);
	font-weight: 850;
	letter-spacing: -0.04em;
}

.typesee-commerce-page .wc-block-components-checkout-step__description {
	color: var(--wp--preset--color--muted);
	font-size: 0.82rem;
}

.typesee-commerce-page .wc-block-components-radio-control__option {
	min-height: 3.75rem;
	border-color: var(--typesee-commerce-line) !important;
	background: transparent;
}

.typesee-commerce-page :where(.wc-block-components-radio-control__option--checked-option-highlighted, .wc-block-components-radio-control-accordion-option--checked-option-highlighted) {
	background: var(--typesee-commerce-soft) !important;
	box-shadow: inset 3px 0 0 var(--wp--preset--color--accent) !important;
}

.typesee-commerce-page .wc-block-components-checkbox__input {
	border-radius: 0;
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--accent);
}

/* ---- Cart as a license order sheet ---- */

/* Item names are specimens: big, editorial, rendered in their own typeface
   (family applied by specimen.js from the inlined @font-face). */
.typesee-cart-page .wc-block-components-product-name {
	display: inline-block;
	font-size: clamp(2.4rem, 5vw, 4.5rem);
	line-height: 1.05;
}

/* Column headers stay for screen readers, the visual sheet needs no grid header. */
.typesee-cart-page .wc-block-cart-items__header th {
	position: absolute;
	overflow: hidden;
	clip: rect(0 0 0 0);
	width: 1px;
	height: 1px;
	white-space: nowrap;
}

/* License lines as a spec list: label left, value right, hairline rows. */
.typesee-cart-page .wc-block-components-product-details {
	max-width: 30rem;
	margin-top: 1.1rem;
	border-top: 1px solid var(--typesee-commerce-line);
}

.typesee-cart-page .wc-block-components-product-details li {
	display: flex;
	gap: 2rem;
	justify-content: space-between;
	margin: 0;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--typesee-commerce-line);
}

.typesee-cart-page .wc-block-components-product-details__name {
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.typesee-cart-page .wc-block-components-product-details__value {
	color: var(--wp--preset--color--contrast);
	text-align: right;
}

/* License lines are locked to one seat configuration server-side, so the
   stepper is inert — the Remove link is the only real control. */
.typesee-cart-page .wc-block-cart-item__quantity .wc-block-components-quantity-selector,
.wc-block-mini-cart__drawer .wc-block-cart-item__quantity .wc-block-components-quantity-selector {
	display: none;
}

.typesee-cart-page .wc-block-cart-item__total .wc-block-components-product-price {
	font-family: "Courier New", monospace;
	font-size: 1.05rem;
	font-weight: 700;
}

/* Notices appear on every page (add-to-cart, coupon, errors), so the skin
   is global. Variant selectors are repeated to outrank Woo's per-type
   colored defaults (.is-success green, .is-info blue, .is-error red). */
.wc-block-components-notice-banner,
.wc-block-components-notice-banner.is-success,
.wc-block-components-notice-banner.is-info,
.wc-block-components-notice-banner.is-error,
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
	border-left: 3px solid var(--wp--preset--color--accent);
	border-radius: 0;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
}

.wc-block-components-notice-banner > svg,
.wc-block-components-notice-banner.is-success > svg,
.wc-block-components-notice-banner.is-info > svg,
.wc-block-components-notice-banner.is-error > svg {
	background-color: transparent;
	fill: var(--wp--preset--color--accent);
}

.wc-block-components-notice-banner__content {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	align-items: center;
	justify-content: space-between;
}

.wc-block-components-notice-banner .button.wc-forward {
	margin: 0;
	padding: 0.5rem 1rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 0;
	background: transparent;
	color: var(--wp--preset--color--contrast);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
}

.wc-block-components-notice-banner .button.wc-forward:hover,
.wc-block-components-notice-banner .button.wc-forward:focus-visible {
	border-color: var(--wp--preset--color--contrast);
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.typesee-commerce-page .wc-block-cart__empty-cart__title,
.typesee-commerce-page .wc-block-checkout-empty__title {
	margin-top: clamp(3rem, 8vw, 7rem);
	font-size: clamp(2.6rem, 7vw, 6rem);
	font-weight: 900;
	letter-spacing: -0.065em;
	line-height: 0.9;
}

.typesee-commerce-page .wp-block-woocommerce-empty-cart-block > .wp-block-separator {
	border-color: var(--typesee-commerce-line);
}

.typesee-commerce-assurance {
	gap: 0;
	margin-top: clamp(3rem, 7vw, 6rem);
	border-block: 1px solid var(--typesee-commerce-line);
}

.typesee-commerce-assurance > p {
	flex: 1 1 16rem;
	margin: 0;
	padding: 1.25rem clamp(1rem, 2vw, 1.5rem);
}

.typesee-commerce-assurance > p + p {
	border-left: 1px solid var(--typesee-commerce-line);
}

.typesee-commerce-assurance strong {
	font-size: 0.72rem;
	font-weight: 850;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.typesee-commerce-assurance span {
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem;
}

.typesee-commerce-assurance a {
	color: inherit;
	text-underline-offset: 0.2em;
}

/* Classic checkout is retained so the custom EULA validation keeps working. */
.typesee-checkout-page .woocommerce-form-coupon-toggle,
.typesee-checkout-page .woocommerce-form-login-toggle {
	margin-bottom: 1.5rem;
}

.typesee-checkout-page .woocommerce-form-coupon-toggle .woocommerce-info,
.typesee-checkout-page .woocommerce-form-login-toggle .woocommerce-info {
	margin: 0;
	padding: 1rem 1.25rem;
}

.typesee-checkout-page .entry-content > .woocommerce {
	display: flow-root;
	width: 100%;
	max-width: none !important;
}

.typesee-checkout-page form.checkout {
	display: grid;
	/* Row 1 hugs the "Your order" heading; row 2 absorbs the rest so the
	   heading and its panel stay glued together however tall the form gets. */
	grid-template-columns: minmax(0, 1.35fr) minmax(25rem, 0.82fr);
	grid-template-rows: auto 1fr;
	gap: 0 clamp(2.5rem, 4vw, 4rem);
	float: none !important;
	clear: both;
	width: 100% !important;
	max-width: none;
}

.typesee-checkout-page form.checkout > #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
}

.typesee-checkout-page form.checkout > #order_review_heading {
	grid-column: 2;
	grid-row: 1;
}

.typesee-checkout-page form.checkout > #order_review {
	grid-column: 2;
	grid-row: 2;
}

.typesee-checkout-page form.checkout > #order_review_heading {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	align-self: start;
	margin: 0;
	padding: 1.5rem;
	border: 1px solid var(--typesee-commerce-line);
	border-bottom: 0;
	background: var(--wp--preset--color--surface);
	font-size: clamp(1.35rem, 2vw, 1.8rem);
}

.typesee-checkout-page form.checkout > #order_review_heading::before {
	content: "03";
	color: var(--wp--preset--color--accent);
	font-family: "Courier New", monospace;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.typesee-checkout-page form.checkout > #order_review {
	position: sticky;
	top: 6.5rem;
	align-self: start;
	padding: 0 1.5rem 1.5rem;
	border: 1px solid var(--typesee-commerce-line);
	background: var(--wp--preset--color--surface);
}

.typesee-checkout-page form.checkout h3 {
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	letter-spacing: -0.04em;
}

.typesee-checkout-page form.checkout :where(.woocommerce-billing-fields > h3, .woocommerce-additional-fields > h3) {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin: 0 0 1.75rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--typesee-commerce-line);
}

.typesee-checkout-page form.checkout .woocommerce-billing-fields > h3::before,
.typesee-checkout-page form.checkout .woocommerce-additional-fields > h3::before {
	color: var(--wp--preset--color--accent);
	font-family: "Courier New", monospace;
	font-size: 0.65rem;
	font-weight: 800;
	letter-spacing: 0.08em;
}

.typesee-checkout-page form.checkout .woocommerce-billing-fields > h3::before {
	content: "01";
}

.typesee-checkout-page form.checkout .woocommerce-additional-fields > h3::before {
	content: "02";
}

.typesee-checkout-page form.checkout .woocommerce-additional-fields {
	margin-top: 3rem;
}

.typesee-checkout-page form.checkout .col-1,
.typesee-checkout-page form.checkout .col-2 {
	float: none;
	width: 100%;
}

.typesee-checkout-page form.checkout .form-row {
	margin: 0 0 1.4rem;
	padding: 0;
}

.typesee-checkout-page form.checkout :where(input.input-text, textarea, select, .select2-selection) {
	min-height: 3.65rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid var(--typesee-commerce-line) !important;
	border-radius: 0 !important;
	background: var(--wp--preset--color--surface) !important;
	color: var(--wp--preset--color--contrast) !important;
	box-shadow: none !important;
}

.typesee-checkout-page form.checkout textarea {
	min-height: 7rem;
}

.typesee-checkout-page form.checkout :where(input.input-text, textarea)::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.typesee-checkout-page form.checkout .select2-selection__rendered {
	color: var(--wp--preset--color--contrast) !important;
}

.typesee-checkout-page form.checkout :where(input.input-text, textarea, select):focus {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.typesee-checkout-page form.checkout label {
	display: inline-block;
	margin-bottom: 0.4rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.03em;
}

.typesee-checkout-page form.checkout table.shop_table {
	width: 100% !important;
	table-layout: fixed;
	border: 0;
	border-radius: 0;
}

.typesee-checkout-page form.checkout table.shop_table tfoot td {
	text-align: right;
}

.typesee-checkout-page form.checkout table.shop_table :where(th, td) {
	padding: 1rem 0;
	border-color: var(--typesee-commerce-line);
}

.typesee-checkout-page form.checkout table.shop_table .product-name {
	width: 72%;
	padding-right: 1rem;
}

.typesee-checkout-page form.checkout table.shop_table .product-total {
	width: 28%;
	text-align: right;
	vertical-align: top;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 0.25rem 0.75rem;
	margin: 0.75rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.7rem;
	line-height: 1.4;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation :where(dt, dd) {
	float: none;
	margin: 0;
	padding: 0;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation dt {
	font-weight: 700;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation dd {
	color: var(--wp--preset--color--contrast);
	text-align: right;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation p {
	margin: 0;
}

.typesee-checkout-page form.checkout .woocommerce-checkout-payment {
	border-radius: 0;
	background: transparent;
}

.typesee-checkout-page form.checkout .wc_payment_methods {
	margin-top: 0.5rem;
	border-color: var(--typesee-commerce-line);
}

.typesee-checkout-page form.checkout .wc_payment_method {
	padding-block: 0.75rem;
	border-top: 1px solid var(--typesee-commerce-line);
}

.typesee-checkout-page form.checkout .wc_payment_method > label {
	margin: 0;
	color: var(--wp--preset--color--contrast);
}

.typesee-checkout-page form.checkout .payment_box {
	margin: 0.75rem 0 0 !important;
	background: var(--wp--preset--color--base) !important;
	color: var(--wp--preset--color--muted) !important;
}

.typesee-checkout-page form.checkout .payment_box::before {
	border-bottom-color: var(--wp--preset--color--base) !important;
}

.typesee-checkout-page form.checkout #place_order {
	width: 100%;
	min-height: 3.5rem;
	float: none;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
}

.typesee-checkout-page form.checkout #place_order:hover,
.typesee-checkout-page form.checkout #place_order:focus-visible {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.typesee-checkout-page .typesee-eula-row {
	margin-top: 1rem !important;
	padding: 1rem !important;
	border: 1px solid var(--typesee-commerce-line);
	background: var(--wp--preset--color--base);
}

.typesee-checkout-page .typesee-eula-row label {
	display: flex !important;
	gap: 0.7rem;
	align-items: flex-start;
	margin: 0 !important;
	/* Undo the form-wide small-caps label treatment: this is reading text. */
	color: var(--wp--preset--color--contrast);
	font-size: 0.8rem;
	font-weight: 500;
	letter-spacing: 0;
	line-height: 1.55;
	text-transform: none;
}

.typesee-checkout-page .typesee-eula-row input {
	flex: none;
	width: 1rem;
	height: 1rem;
	margin: 0.2rem 0 0 !important;
	accent-color: var(--wp--preset--color--accent);
}

.typesee-checkout-page .typesee-eula-row .typesee-eula-text a {
	color: inherit;
	text-underline-offset: 0.22em;
}

.typesee-checkout-page .typesee-eula-row abbr.required {
	color: var(--wp--preset--color--accent);
	text-decoration: none;
	border: 0;
}

/* ---- Digital order form refinements ---- */

/* Order notes are disabled for font orders, so the review panel is step 02. */
.typesee-checkout-page form.checkout > #order_review_heading::before {
	content: "02";
}

/* Coupon/login prompts as quiet toggle rows, not alert banners. */
.typesee-checkout-page :where(.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle) .wc-block-components-notice-banner {
	padding: 0.85rem 0;
	border: 0;
	border-bottom: 1px dashed var(--typesee-commerce-line);
	background: transparent;
	color: var(--wp--preset--color--muted);
	font-size: 0.78rem;
}

.typesee-checkout-page :where(.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle) .wc-block-components-notice-banner > svg {
	display: none;
}

.typesee-checkout-page :where(.woocommerce-form-coupon-toggle, .woocommerce-form-login-toggle) a {
	color: var(--wp--preset--color--contrast);
	text-underline-offset: 0.22em;
}

/* Payment methods as selectable cards with a custom radio. */
.typesee-checkout-page form.checkout .wc_payment_methods {
	display: grid;
	gap: 0.6rem;
	border: 0;
}

.typesee-checkout-page form.checkout .wc_payment_method {
	position: relative;
	margin: 0;
	padding: 0;
	border: 1px solid var(--typesee-commerce-line);
	background: var(--wp--preset--color--base);
}

.typesee-checkout-page form.checkout .wc_payment_method:has(> input:checked) {
	border-color: var(--wp--preset--color--accent);
}

.typesee-checkout-page form.checkout .wc_payment_method > input.input-radio {
	position: absolute;
	top: 1.35rem;
	left: 1.1rem;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}

.typesee-checkout-page form.checkout .wc_payment_method > label {
	display: flex;
	gap: 0.8rem;
	align-items: center;
	margin: 0;
	padding: 1.05rem 1.1rem;
	color: var(--wp--preset--color--contrast);
	font-size: 0.8rem;
	font-weight: 850;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
}

.typesee-checkout-page form.checkout .wc_payment_method > label::before {
	content: "";
	flex: none;
	width: 1rem;
	height: 1rem;
	border: 1px solid var(--typesee-commerce-line);
	border-radius: 50%;
	background: var(--wp--preset--color--base);
	transition: border-color 120ms ease, background 120ms ease;
}

.typesee-checkout-page form.checkout .wc_payment_method > input:checked + label::before {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	box-shadow: inset 0 0 0 3px var(--wp--preset--color--base);
}

.typesee-checkout-page form.checkout .wc_payment_method > input:focus-visible + label::before {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.typesee-checkout-page form.checkout .wc_payment_method > label img {
	max-height: 16px;
	width: auto;
	margin-left: auto;
}

/* Gateway blurb as a quiet caption aligned with the label text. */
.typesee-checkout-page form.checkout .wc_payment_method .payment_box {
	margin: 0 !important;
	padding: 0 1.1rem 1rem 2.9rem;
	background: transparent !important;
	color: var(--wp--preset--color--muted) !important;
	font-size: 0.72rem;
	line-height: 1.55;
}

.typesee-checkout-page form.checkout .wc_payment_method .payment_box p {
	margin: 0;
}

.typesee-checkout-page form.checkout .wc_payment_method .payment_box::before {
	display: none !important;
}

.typesee-checkout-page .ppcp-messages:empty {
	display: none !important;
}

.typesee-checkout-page .woocommerce-privacy-policy-text p {
	margin: 1.5rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.72rem;
	line-height: 1.55;
}

/* The payment area is part of the same panel — kill Woo's nested box and
   default paddings so the panel reads as one column: items, totals,
   payment, privacy, EULA, button. */
.typesee-checkout-page form.checkout #payment {
	margin-top: 1.5rem;
	padding: 1.5rem 0 0;
	border-top: 1px solid var(--typesee-commerce-line);
	border-radius: 0;
	background: transparent !important;
}

.typesee-checkout-page form.checkout #payment ul.payment_methods {
	margin: 0;
	padding: 0 !important;
	border: 0;
	list-style: none;
}

.typesee-checkout-page form.checkout #payment div.form-row {
	margin: 0;
	padding: 0;
}

.typesee-checkout-page form.checkout #payment .place-order {
	margin-top: 1.25rem;
}

.typesee-checkout-page form.checkout #payment .typesee-eula-row {
	margin-top: 1.25rem !important;
}

/* Item names in the review table are specimens too. */
.typesee-checkout-page .typesee-specimen {
	display: inline-block;
	font-size: clamp(1.15rem, 1.8vw, 1.5rem);
	font-weight: 400;
	line-height: 1.1;
}

/* Order review reads as a sheet, not a spreadsheet: header for screen
   readers only, no "× 1" (licenses are single-seat), license lines stacked. */
.typesee-checkout-page form.checkout table.shop_table thead th {
	position: absolute;
	overflow: hidden;
	clip: rect(0 0 0 0);
	width: 1px;
	height: 1px;
	white-space: nowrap;
}

.typesee-checkout-page form.checkout table.shop_table .product-quantity {
	display: none;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation {
	display: block;
	margin: 0.85rem 0 0;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation dt {
	margin-top: 0.6rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.6rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.typesee-checkout-page form.checkout table.shop_table dl.variation dd {
	margin: 0.1rem 0 0;
	color: var(--wp--preset--color--contrast);
	font-size: 0.82rem;
	text-align: left;
}

.typesee-checkout-page form.checkout table.shop_table .product-total {
	font-family: "Courier New", monospace;
	font-weight: 700;
}

.typesee-checkout-page form.checkout table.shop_table tfoot th {
	color: var(--wp--preset--color--muted);
	font-size: 0.66rem;
	font-weight: 850;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.typesee-checkout-page form.checkout table.shop_table tfoot .order-total td {
	font-family: "Courier New", monospace;
	font-size: clamp(1.35rem, 2vw, 1.7rem);
	font-weight: 900;
	letter-spacing: -0.02em;
}

/* ---- Order received: "you own it now" ---- */

/* The status block's own heading is the page title. */
.typesee-received-page .wc-block-order-confirmation-status h1 {
	margin: 0;
	font-size: clamp(3.5rem, 9vw, 7.5rem);
	font-weight: 900;
	letter-spacing: -0.075em;
	line-height: 0.82;
	text-transform: uppercase;
}

.typesee-received-page .wc-block-order-confirmation-status p {
	max-width: 48ch;
	margin: 1.25rem 0 0;
	color: var(--wp--preset--color--muted);
	font-size: clamp(0.95rem, 1.4vw, 1.15rem);
}

.typesee-received-body {
	margin-top: clamp(2rem, 5vw, 4.5rem);
}

.typesee-received-body > * + * {
	margin-top: clamp(2.5rem, 5vw, 4rem);
}

.typesee-received-body h2.wp-block-heading {
	display: flex;
	gap: 0.75rem;
	align-items: center;
	margin: 0 0 1.25rem;
	padding-bottom: 0.9rem;
	border-bottom: 1px solid var(--typesee-commerce-line);
	font-size: clamp(1.35rem, 2vw, 1.8rem) !important;
	font-weight: 850;
	letter-spacing: -0.035em;
}

/* Order facts as a tile row; the order number leads. */
.typesee-received-page .wc-block-order-confirmation-summary-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 0;
	padding: 0;
	border: 1px solid var(--typesee-commerce-line);
	list-style: none;
}

.typesee-received-page .wc-block-order-confirmation-summary-list-item {
	display: block;
	flex: 1 1 11rem;
	margin: 0;
	padding: 1.1rem 1.25rem;
}

.typesee-received-page .wc-block-order-confirmation-summary-list-item + .wc-block-order-confirmation-summary-list-item {
	border-left: 1px solid var(--typesee-commerce-line);
}

.typesee-received-page .wc-block-order-confirmation-summary-list-item__key {
	display: block;
	color: var(--wp--preset--color--muted);
	font-size: 0.62rem;
	font-weight: 800;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.typesee-received-page .wc-block-order-confirmation-summary-list-item__value {
	display: block;
	margin-top: 0.35rem;
	font-family: "Courier New", monospace;
	font-size: 1.05rem;
	font-weight: 700;
}

.typesee-received-page .wc-block-order-confirmation-summary-list-item:first-child .wc-block-order-confirmation-summary-list-item__value {
	color: var(--wp--preset--color--accent);
}

/* Downloads are the product — table quiet, button loud. */
.typesee-received-page :where(.wc-block-order-confirmation-downloads__table, .wc-block-order-confirmation-totals__table) {
	border: 0;
	border-radius: 0;
}

.typesee-received-page :where(.wc-block-order-confirmation-downloads__table, .wc-block-order-confirmation-totals__table) :where(th, td) {
	padding: 1rem 1rem 1rem 0;
	border: 0;
	border-bottom: 1px solid var(--typesee-commerce-line);
}

.typesee-received-page :where(.wc-block-order-confirmation-downloads__table, .wc-block-order-confirmation-totals__table) thead th {
	color: var(--wp--preset--color--muted);
	font-size: 0.66rem;
	font-weight: 850;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.typesee-received-page .woocommerce-MyAccount-downloads-file {
	display: inline-block;
	padding: 0.65rem 1.4rem;
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--base);
	font-size: 0.72rem;
	font-weight: 900;
	letter-spacing: 0.1em;
	text-decoration: none;
	text-transform: uppercase;
}

.typesee-received-page .woocommerce-MyAccount-downloads-file:hover,
.typesee-received-page .woocommerce-MyAccount-downloads-file:focus-visible {
	border-color: var(--wp--preset--color--accent);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.typesee-received-page .typesee-specimen {
	display: inline-block;
	font-size: clamp(1.15rem, 1.8vw, 1.5rem);
	line-height: 1.1;
}

.typesee-received-page .typesee-specimen a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

/* ==========================================================================
   Site footer

   Three bands instead of five: a statement paired with link columns, the
   wordmark as the closing signoff, then a thin legal rail. Separation comes
   from vertical space and a single hairline above the wordmark rather than a
   rule between every band, so the type does the structuring.
   ========================================================================== */

.site-footer {
	--site-footer-hairline: color-mix(in srgb, var(--wp--preset--color--contrast) 14%, transparent);
	--site-footer-ease: cubic-bezier(0.32, 0.72, 0, 1);

	border-top: var(--typesee-border);
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

/* --- Statement and link columns ------------------------------------------ */

.site-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1.5fr);
	gap: clamp(2rem, 5vw, 4.5rem);
	padding-bottom: var(--wp--preset--spacing--40);
}

/*
 * Core's flow layout gives every child but the first a block margin, which in
 * a grid container pushes the later columns off the shared top line. The grid
 * gap already handles the spacing, so the margins go.
 */
.site-footer__top > *,
.site-footer__links > * {
	margin-block: 0;
}

/* Wide enough to break onto two lines, not three. */
.site-footer__headline {
	max-width: 19ch;
	margin: 0 0 0.6rem;
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	line-height: 1.05;
	text-wrap: balance;
}

.site-footer__statement .wp-block-site-tagline {
	max-width: 34ch;
	margin: 0;
	color: var(--wp--preset--color--muted);
}

/* --- Contact call to action ---------------------------------------------- */

.site-footer__cta {
	margin: clamp(1.1rem, 2.4vw, 1.6rem) 0 0;
}

.site-footer__cta a {
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	padding: 0.7rem 0.7rem 0.7rem 1.4rem;
	border: 1px solid var(--site-footer-hairline);
	color: var(--wp--preset--color--contrast);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
	transition: border-color 420ms var(--site-footer-ease),
		background-color 420ms var(--site-footer-ease);
}

/* Trailing glyph sits in its own square well, flush with the inner padding. */
.site-footer__cta-well {
	display: grid;
	place-items: center;
	width: 2rem;
	height: 2rem;
	background: color-mix(in srgb, var(--wp--preset--color--contrast) 10%, transparent);
	font-size: 0.85rem;
	transition: transform 420ms var(--site-footer-ease),
		background-color 420ms var(--site-footer-ease);
}

.site-footer__cta a:is(:hover, :focus-visible) {
	border-color: var(--wp--preset--color--accent);
	background-color: color-mix(in srgb, var(--wp--preset--color--accent) 12%, transparent);
	color: var(--wp--preset--color--contrast);
}

.site-footer__cta a:is(:hover, :focus-visible) .site-footer__cta-well {
	background-color: var(--wp--preset--color--accent);
	transform: translate(2px, -2px);
}

.site-footer__cta a:active {
	transform: scale(0.985);
}

/* --- Link columns --------------------------------------------------------- */

/*
 * The columns hang from the same top line as the headline, so the two halves
 * of the row start together instead of drifting.
 */
.site-footer__links {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(1.25rem, 3vw, 2.25rem);
	align-content: start;
	padding-top: 0.35rem;
}

.site-footer__column-title {
	margin: 0 0 0.85rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.site-footer__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 0.45rem;
}

.site-footer__list a {
	display: inline-block;
	color: var(--wp--preset--color--contrast);
	font-size: 0.95rem;
	text-decoration: none;
	transition: transform 420ms var(--site-footer-ease),
		color 420ms var(--site-footer-ease);
}

/* Hairline underline grows from the left instead of a default text-decoration. */
.site-footer__list a::after {
	content: "";
	display: block;
	height: 1px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform 420ms var(--site-footer-ease);
}

.site-footer__list a:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--accent);
	transform: translateX(4px);
}

.site-footer__list a:is(:hover, :focus-visible)::after {
	transform: scaleX(1);
}

/* --- Wordmark signoff ----------------------------------------------------- */

.site-footer__signoff {
	padding-block: clamp(1.5rem, 3.5vw, 2.5rem);
	border-top: 1px solid var(--site-footer-hairline);
	text-align: center;
}

.site-footer .site-footer__logo {
	margin: 0;
}

.site-footer .site-footer__logo img {
	width: min(520px, 74vw);
	height: auto;
	filter: brightness(0) invert(1);
	transition: filter 420ms var(--site-footer-ease);
}

.site-footer .site-footer__logo a:is(:hover, :focus-visible) img {
	filter: brightness(0) saturate(100%) invert(25%) sepia(99%) saturate(4543%) hue-rotate(10deg) brightness(96%) contrast(106%);
}

/*
 * The wordmark wipes up as the footer scrolls in. Scroll-driven so it needs
 * no JavaScript, and browsers without support simply show it in place.
 */
@supports (animation-timeline: view()) {
	@media (prefers-reduced-motion: no-preference) {
		.site-footer .site-footer__logo img {
			animation: site-footer-signoff linear both;
			animation-timeline: view();
			animation-range: entry 10% entry 85%;
		}
	}
}

@keyframes site-footer-signoff {
	from {
		opacity: 0;
		transform: translateY(2rem);
		clip-path: inset(0 0 100% 0);
	}
	to {
		opacity: 1;
		transform: none;
		clip-path: inset(0 0 0 0);
	}
}

/* --- Base rail ------------------------------------------------------------ */

.site-footer__base {
	gap: clamp(0.75rem, 3vw, 2rem);
	padding-top: var(--wp--preset--spacing--30);
	color: var(--wp--preset--color--muted);
}

.site-footer__base p {
	margin: 0;
}

/* Accepted payment marks: brand chips, sized down and quieted until hover. */
.typesee-payments {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.typesee-payments__mark {
	display: flex;
}

.typesee-payments img {
	display: block;
	width: auto;
	height: 22px;
	opacity: 0.6;
	transition: opacity 420ms var(--site-footer-ease, ease);
}

.typesee-payments:hover img,
.typesee-payments:focus-within img {
	opacity: 1;
}

@media (prefers-reduced-motion: reduce) {
	.typesee-payments img {
		transition: none;
	}
}

.site-footer a:hover {
	color: var(--wp--preset--color--accent);
}

@media (max-width: 860px) {
	.site-footer__top {
		grid-template-columns: 1fr;
	}

	.site-footer__links {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		padding-top: 0;
	}

	.site-footer__base {
		justify-content: flex-start;
	}
}

@media (max-width: 540px) {
	.site-footer__links {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem 1.5rem;
	}

	.site-footer__cta a {
		width: 100%;
		justify-content: space-between;
	}
}

@media (max-width: 920px) {
	.site-header__inner {
		min-height: 64px;
		align-items: center;
	}

	.site-header .brand-lockup {
		padding-right: 0;
		border-right: none;
	}

	.site-header__actions {
		padding-left: 0;
		border-left: none;
	}

	.site-header__nav {
		order: 3;
	}

	.typesee-product-summary {
		position: static;
	}

	.typesee-commerce-header {
		align-items: stretch;
	}

	.typesee-commerce-steps {
		flex-basis: 100%;
		margin-left: 0;
	}

	.typesee-checkout-page form.checkout {
		grid-template-columns: minmax(0, 1fr);
	}

	.typesee-checkout-page form.checkout > #customer_details,
	.typesee-checkout-page form.checkout > #order_review_heading,
	.typesee-checkout-page form.checkout > #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	.typesee-checkout-page form.checkout > #order_review_heading {
		margin-top: 2.5rem;
	}

	.typesee-checkout-page form.checkout > #order_review {
		position: static;
	}
}

@media (max-width: 600px) {
	.site-header__account,
	.site-header__cta {
		display: none;
	}

	.site-header__actions {
		gap: 0.5rem;
	}

	/* The scroll-condense keyframes pin min-height at 76px and outrank the 920px
	   rule, so phones never got the shorter bar. One fixed compact height instead. */
	.site-header__inner {
		gap: 0.5rem;
		min-height: 56px;
		animation: none;
	}

	/* Without this the flex row is brand | actions | nav under space-between, which
	   strands the hamburger 55px away from the cart. */
	.site-header .brand-lockup {
		flex: 1;
		min-width: 0;
	}

	.site-header .brand-lockup .wp-block-site-logo img {
		width: min(140px, 38vw);
	}

	.site-header .wp-block-navigation__responsive-container-open {
		display: grid;
		width: 2.75rem;
		height: 2.75rem;
		place-items: center;
		border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 32%, transparent);
		color: var(--wp--preset--color--contrast);
	}

	.typesee-hero {
		min-height: 520px;
	}

	.typesee-hero__title {
		font-size: clamp(3.5rem, 20vw, 6rem);
	}

	.typesee-page-title {
		font-size: clamp(3rem, 18vw, 5rem);
	}

	.typesee-commerce-page {
		padding-top: 2rem;
	}

	.typesee-commerce-header {
		gap: 1.75rem;
	}

	.typesee-commerce-title {
		font-size: clamp(3.2rem, 17vw, 5.2rem);
	}

	.typesee-commerce-lede {
		font-size: 0.9rem;
	}

	.typesee-commerce-steps :where(a, span) {
		padding: 0.75rem 0.4rem;
		font-size: 0.58rem;
		letter-spacing: 0.04em;
		text-align: center;
	}

	.typesee-commerce-steps b {
		display: block;
		margin: 0 0 0.1rem;
	}

	.typesee-commerce-page > .wp-block-post-content {
		margin-top: 2rem;
	}

	.typesee-commerce-page :where(.wc-block-cart__main, .wc-block-checkout__main) {
		padding-right: 0;
	}

	.typesee-commerce-page :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) {
		position: static !important;
		padding-top: 2rem;
		padding-left: 0;
		border-top: var(--typesee-border);
		border-left: 0;
	}

	.typesee-commerce-page :where(.wc-block-cart__sidebar, .wc-block-checkout__sidebar) > div {
		position: static;
	}

	.typesee-commerce-page .wc-block-cart-items__row td {
		padding-top: 1.25rem !important;
		padding-bottom: 1.25rem !important;
	}

	.typesee-commerce-assurance {
		display: block;
	}

	.typesee-commerce-assurance > p + p {
		border-top: 1px solid var(--typesee-commerce-line);
		border-left: 0;
	}

	.typesee-checkout-page form.checkout > #order_review_heading,
	.typesee-checkout-page form.checkout > #order_review {
		padding-inline: 1rem;
	}
}

/* ---- Contact: direct line to the foundry ---- */
.typesee-contact {
	display: grid;
	grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
	gap: clamp(2.5rem, 6vw, 7rem);
	align-items: start;
	padding-top: clamp(2.5rem, 6vw, 5rem);
}

.typesee-contact__eyebrow {
	margin: 0 0 1.1rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.32em;
	text-transform: uppercase;
}

.typesee-contact__lead {
	margin: 0;
	max-width: 26ch;
	font-size: clamp(1.35rem, 2.4vw, 2rem);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
}

.typesee-contact__meta {
	margin: clamp(2rem, 4vw, 3.5rem) 0 0;
}

.typesee-contact__meta-row {
	display: grid;
	grid-template-columns: minmax(7.5rem, 0.35fr) minmax(0, 1fr);
	gap: 1rem;
	padding: 1.1rem 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
}

.typesee-contact__meta-row:last-child {
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 18%, transparent);
}

.typesee-contact__meta dt {
	color: var(--wp--preset--color--muted);
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	line-height: 2;
}

.typesee-contact__meta dd {
	margin: 0;
	font-size: 0.95rem;
	font-weight: 600;
}

.typesee-contact__meta dd a {
	text-decoration: none;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 40%, transparent);
}

.typesee-contact__meta dd a:hover {
	color: var(--wp--preset--color--accent);
	border-bottom-color: var(--wp--preset--color--accent);
}

/* Jetpack form, restyled to the checkout field grammar */
.typesee-contact .wp-block-jetpack-contact-form-container {
	border: 0;
	padding: 0;
	background: none;
}

.typesee-contact .contact-form {
	display: grid;
	gap: 1.4rem;
}

.typesee-contact .grunion-field-wrap {
	display: grid;
	gap: 0.45rem;
}

.typesee-contact .grunion-field-label {
	color: var(--wp--preset--color--muted);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.typesee-contact .grunion-label-required {
	color: var(--wp--preset--color--accent);
	font-size: 0.85em;
}

.typesee-contact .contact-form :where(input[type="text"], input[type="email"], select, textarea) {
	width: 100%;
	min-height: 3.4rem;
	padding: 0.75rem 0.9rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 0;
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--contrast);
	font: inherit;
	font-size: 0.95rem;
}

.typesee-contact .contact-form textarea {
	min-height: 11rem;
	resize: vertical;
}

/* Jetpack styles the wrapper, not the select (select is border:0 !important) */
.typesee-contact .contact-form .contact-form__select-wrapper {
	display: block;
	padding: 0;
	min-height: 3.4rem;
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 22%, transparent);
	border-radius: 0;
	background-color: var(--wp--preset--color--surface);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%238f8f8a' stroke-width='1.5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.9rem center;
	color: var(--wp--preset--color--contrast);
}

.typesee-contact .contact-form .contact-form__select-wrapper .jetpack-field-dropdown__icon {
	display: none;
}

.typesee-contact .contact-form .contact-form__select-wrapper:hover {
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 45%, transparent);
}

.typesee-contact .contact-form .contact-form__select-wrapper:focus-within {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--contrast);
}

.typesee-contact .contact-form .contact-form__select-wrapper select {
	min-height: 3.4rem;
	padding: 0.75rem 2.4rem 0.75rem 0.9rem;
	font-size: 0.95rem;
}

.typesee-contact .contact-form :where(input, select, textarea):hover {
	border-color: color-mix(in srgb, var(--wp--preset--color--contrast) 45%, transparent);
}

.typesee-contact .contact-form :where(input, select, textarea):focus {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
	border-color: var(--wp--preset--color--contrast);
}

.typesee-contact .contact-form ::placeholder {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}

.typesee-contact .wp-block-jetpack-button {
	margin-top: 0.4rem;
}

.typesee-contact .contact-form button[type="submit"] {
	width: 100%;
	min-height: 3.4rem;
	padding: 0.9rem 1.4rem;
	border: 0;
	border-radius: 0;
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--surface);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
}

.typesee-contact .contact-form button[type="submit"]:hover {
	background: var(--wp--preset--color--accent);
	color: #ffffff;
}

.typesee-contact .contact-form button[type="submit"][aria-disabled="true"] {
	opacity: 0.55;
	cursor: default;
}

/* Field + submission errors stay near their source */
.typesee-contact .contact-form__input-error,
.typesee-contact .contact-form__error {
	color: var(--wp--preset--color--accent);
	font-size: 0.82rem;
}

.typesee-contact .contact-form__error {
	border: 1px solid var(--wp--preset--color--accent);
	padding: 0.75rem 0.9rem;
}

@media (max-width: 920px) {
	.typesee-contact {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.5rem;
	}

	.typesee-contact__lead {
		max-width: 34ch;
	}
}

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

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}

	.typesee-line__inner {
		transform: none;
	}

	.typesee-hero__eyebrow,
	.typesee-hero__rotator-line,
	.typesee-hero .typesee-hero__copy,
	.typesee-hero .wp-block-buttons {
		opacity: 1;
	}
}

/* My Account: dedicated page-my-account.html template. Split-screen only
   applies to the logged-out login view; once authenticated the same page
   shows the dashboard/orders/addresses endpoints, which stay single-column. */
body.woocommerce-account:not(.logged-in) .typesee-account-shell {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: stretch;
	min-height: 70vh;
}

body.woocommerce-account.logged-in .typesee-account-visual {
	display: none;
}

body.woocommerce-account:not(.logged-in) .typesee-account-visual {
	grid-column: 1;
	width: auto;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	padding-inline: clamp(1.5rem, 5vw, 5rem);
	padding-block: clamp(2.5rem, 5vw, 4.5rem);
	border-right: 1px solid var(--typesee-cinematic-line);
	background-color: var(--typesee-cinematic-tint);
	background-image: var(--typesee-cinematic-background);
}

.typesee-account-visual__eyebrow {
	margin: 0;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}

.typesee-account-visual__mark {
	font-size: clamp(3rem, 7vw, 6.5rem);
	font-weight: 800;
	line-height: 0.84;
	letter-spacing: -0.045em;
	text-transform: uppercase;
	margin: 0 0 1.5rem;
	color: var(--wp--preset--color--contrast);
}

.typesee-account-visual__mark em {
	color: var(--wp--preset--color--accent);
	font-style: normal;
}

.typesee-account-visual__body {
	margin-block: auto;
	padding-block: 2.5rem;
}

.typesee-account-visual__tagline {
	max-width: 32ch;
	margin: 0;
	color: var(--typesee-cinematic-ink);
	line-height: 1.5;
	opacity: 0.72;
}

.typesee-account-visual__specimen {
	margin: 0;
	padding-top: 1.5rem;
	border-top: 1px solid var(--typesee-cinematic-line);
	color: var(--typesee-cinematic-ink);
	font-size: clamp(0.9rem, 2.2vw, 1.4rem);
	letter-spacing: 0.22em;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
	opacity: 0.34;
}

.typesee-account-visual__meta {
	display: flex;
	gap: 1.5rem;
	margin: 1rem 0 0;
	color: var(--wp--preset--color--muted);
	font-family: "Courier New", monospace;
	font-size: 11px;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

body.woocommerce-account:not(.logged-in) .typesee-account-content {
	grid-column: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	padding-inline: clamp(1.5rem, 5vw, 5rem);
}

@media (max-width: 760px) {
	body.woocommerce-account:not(.logged-in) .typesee-account-shell {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	body.woocommerce-account:not(.logged-in) .typesee-account-visual {
		grid-column: 1;
		border-right: none;
		border-bottom: 1px solid var(--typesee-cinematic-line);
		padding-block: 2.25rem;
	}

	.typesee-account-visual__body {
		padding-block: 1.25rem 0;
	}

	.typesee-account-visual__mark {
		font-size: clamp(2.25rem, 12vw, 3.5rem);
		margin-bottom: 0.75rem;
	}

	.typesee-account-visual__specimen,
	.typesee-account-visual__meta {
		display: none;
	}

	body.woocommerce-account:not(.logged-in) .typesee-account-content {
		grid-column: 1;
	}
}

.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	max-width: 27rem;
	width: 100%;
	margin-inline: 0;
	padding: clamp(1.75rem, 3vw, 2.25rem);
	background: var(--wp--preset--color--surface);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
}

/* Custom auth frontend: theme override woocommerce/myaccount/form-login.php.
   Server-rendered tabs; account.js switches panels, no-JS shows both stacked. */
.typesee-auth {
	width: 100%;
	max-width: 27rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}

.typesee-auth__panel[hidden] {
	display: none;
}

.typesee-auth__heading {
	margin: 0;
	font-size: clamp(24px, 3vw, 30px);
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.05;
	text-transform: uppercase;
}

.typesee-auth__lede {
	margin: 0.5rem 0 1.25rem;
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	line-height: 1.55;
}

.typesee-auth__field {
	margin: 0 0 1.25rem;
}

.typesee-auth__pwd {
	position: relative;
	display: block;
}

.typesee-auth__pwd input.input-text {
	padding-right: 4.25rem;
}

.typesee-auth__pwd-toggle {
	position: absolute;
	top: 50%;
	right: 0.5rem;
	transform: translateY(-50%);
	background: none;
	border: none;
	padding: 0.35rem 0.5rem;
	color: var(--wp--preset--color--muted);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	cursor: pointer;
}

.typesee-auth__pwd-toggle:hover {
	color: var(--wp--preset--color--accent);
}

.typesee-auth__pwd-toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 1px;
}

.typesee-auth__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin: 0 0 1.25rem;
	padding-top: 1.25rem;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 12%, transparent);
}

.typesee-auth__lost {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.typesee-auth__lost:hover,
.typesee-auth__lost:focus-visible {
	color: var(--wp--preset--color--accent);
}

.typesee-auth__note {
	margin: 0 0 1.25rem;
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	line-height: 1.55;
}

.typesee-auth__submit {
	margin: 0;
}

/* Tab switcher shared with the auth panels. */
.typesee-account-tabs {
	display: flex;
	gap: 1.75rem;
	border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
}

.typesee-account-tab {
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	margin-bottom: -1px;
	padding: 0 0 0.65rem;
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	cursor: pointer;
}

.typesee-account-tab:hover {
	color: var(--wp--preset--color--contrast);
}

.typesee-account-tab[aria-selected="true"] {
	color: var(--wp--preset--color--contrast);
	border-bottom-color: var(--wp--preset--color--accent);
}

.typesee-account-tab:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.woocommerce-account .u-columns.woocommerce-Addresses {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	max-width: 920px;
	margin-inline: auto;
}

@media (min-width: 760px) {
	.woocommerce-account .u-columns.woocommerce-Addresses {
		grid-template-columns: 1fr 1fr;
	}
}

.woocommerce-account .woocommerce-form-login .form-row label,
.woocommerce-account .woocommerce-form-register .form-row label {
	display: block;
	margin-block-end: 0.4rem;
	color: var(--wp--preset--color--muted);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme,
.woocommerce-account .woocommerce-form-register .woocommerce-form__label-for-checkbox {
	font-size: 11px;
	letter-spacing: 0.08em;
}

.woocommerce-account .woocommerce-form-login input.input-text,
.woocommerce-account .woocommerce-form-register input.input-text {
	width: 100%;
	background: var(--wp--preset--color--base);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 24%, transparent);
	border-radius: 0;
	color: var(--wp--preset--color--contrast);
	font-size: 16px;
	line-height: 1.4;
	min-height: 46px;
	padding: 0.65rem 0.85rem;
	transition: border-color var(--typesee-transition), box-shadow var(--typesee-transition);
}

.woocommerce-account .woocommerce-form-login input.input-text:focus,
.woocommerce-account .woocommerce-form-register input.input-text:focus {
	border-color: var(--wp--preset--color--accent);
	box-shadow: 0 0 0 2px color-mix(in srgb, var(--wp--preset--color--accent) 28%, transparent);
	outline: none;
}

.woocommerce-account .woocommerce-form__input-checkbox {
	accent-color: var(--wp--preset--color--accent);
}

.woocommerce-account .woocommerce-form__input-checkbox:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 1px;
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__submit,
.woocommerce-account .woocommerce-form-register .woocommerce-form-register__submit,
.woocommerce-account .woocommerce-form-login .button,
.woocommerce-account .woocommerce-form-register .button {
	background: var(--wp--preset--color--contrast);
	color: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--contrast);
	border-radius: 0;
	font-size: 13px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: 0.75rem 1.25rem;
	min-height: 46px;
	width: 100%;
	transition: background-color var(--typesee-transition), border-color var(--typesee-transition), color var(--typesee-transition);
}

.woocommerce-account .woocommerce-form-login .button:focus-visible,
.woocommerce-account .woocommerce-form-register .button:focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}

.woocommerce-account .woocommerce-form-login .button:hover,
.woocommerce-account .woocommerce-form-register .button:hover,
.woocommerce-account .woocommerce-form-login .woocommerce-form-login__submit:hover,
.woocommerce-account .woocommerce-form-register .woocommerce-form-register__submit:hover {
	background: var(--wp--preset--color--accent);
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--contrast);
}

.woocommerce-account .woocommerce-form-login .woocommerce-form-login__rememberme {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.woocommerce-account .woocommerce-form-register .woocommerce-privacy-policy-text p {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	line-height: 1.55;
}

.woocommerce-account .woocommerce-form-register .woocommerce-privacy-policy-text a {
	color: var(--wp--preset--color--contrast);
}

.woocommerce-account .woocommerce-form-register .woocommerce-privacy-policy-text a:hover {
	color: var(--wp--preset--color--accent);
}

.woocommerce-account .woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-account .woocommerce-notices-wrapper .woocommerce-message {
	background: var(--wp--preset--color--surface);
	border: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
	border-left: 4px solid var(--wp--preset--color--accent);
	border-radius: 0;
	color: var(--wp--preset--color--contrast);
	list-style: none;
	max-width: 420px;
	margin-inline: auto;
	padding: 1rem 1.25rem;
}

/* Protected contact address ------------------------------------------------ */

.typesee-email {
	align-items: baseline;
	background: none;
	border: 0;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	gap: 0.5em;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 0.2em;
	transition: color var(--typesee-transition);
}

.typesee-email:hover,
.typesee-email:focus-visible {
	color: var(--wp--preset--color--accent);
}

.typesee-email__masked {
	filter: blur(4px);
	user-select: none;
}

.typesee-email__hint {
	font-size: 0.75em;
	letter-spacing: 0.08em;
	text-decoration: none;
	text-transform: uppercase;
	white-space: nowrap;
}

a.typesee-email.is-revealed {
	cursor: pointer;
	text-decoration: underline;
}

/* Contact form honeypot: offscreen rather than display:none, which bots skip. */

.typesee-form-guard {
	height: 0;
	left: -9999px;
	overflow: hidden;
	position: absolute;
	width: 0;
}

/* ==========================================================================
   Single post content

   The post frame keeps the site's wide width so it lines up with the header
   and footer, while running text holds a readable measure and sits flush
   left inside that frame. Images and figures use the full column, so the
   page reads wide without stretching prose to 140 characters a line.
   ========================================================================== */

.single-post .wp-block-post-content {
	--post-measure: 88ch;
	--post-ease: cubic-bezier(0.32, 0.72, 0, 1);

	font-size: clamp(1.0625rem, 0.55vw + 0.95rem, 1.3rem);
	line-height: 1.65;
}

/* Text blocks hold the measure; the auto margins core sets are overridden so
   the column starts at the same left edge as the figures. */
.single-post .wp-block-post-content > :is(p, ul, ol, h2, h3, h4, blockquote, .wp-block-quote) {
	max-width: var(--post-measure);
	margin-inline: 0 auto !important;
}

.single-post .wp-block-post-content > p {
	margin-block: 0 1.35em;
	text-wrap: pretty;
}

/* Opening paragraph carries the article in, so it gets a size of its own. */
.single-post .wp-block-post-content > p:first-of-type {
	font-size: clamp(1.25rem, 1vw + 1rem, 1.6rem);
	line-height: 1.45;
	margin-bottom: 1.8rem;
}

/* --- Headings ------------------------------------------------------------- */

/*
 * The rendered hierarchy was flat: h3 sat at 18px against 16px body with a
 * clipped line-height. Real steps between the levels, and more space above a
 * heading than below it so it binds to the text it introduces.
 */
.single-post .wp-block-post-content > h2 {
	margin-block: 3.25rem 0.9rem;
	font-size: clamp(1.75rem, 1.6vw + 1.2rem, 2.6rem);
	line-height: 1.08;
	letter-spacing: -0.02em;
}

.single-post .wp-block-post-content > h3 {
	margin-block: 2.75rem 0.75rem;
	font-size: clamp(1.35rem, 0.9vw + 1.05rem, 1.85rem);
	line-height: 1.18;
	letter-spacing: -0.015em;
}

.single-post .wp-block-post-content > h4 {
	margin-block: 2.25rem 0.6rem;
	font-size: clamp(1.1rem, 0.4vw + 1rem, 1.3rem);
	line-height: 1.3;
	letter-spacing: -0.01em;
}

.single-post .wp-block-post-content > :is(h2, h3, h4):first-child {
	margin-top: 0;
}

/* --- Lists ---------------------------------------------------------------- */

.single-post .wp-block-post-content > :is(ul, ol) {
	margin-block: 0 1.6rem;
	padding-left: 1.3em;
}

.single-post .wp-block-post-content > :is(ul, ol) li {
	margin-block: 0 0.55em;
	padding-left: 0.25em;
}

.single-post .wp-block-post-content > :is(ul, ol) li::marker {
	color: var(--wp--preset--color--accent);
}

/* --- Quotes --------------------------------------------------------------- */

.single-post .wp-block-post-content > blockquote,
.single-post .wp-block-post-content > .wp-block-quote {
	margin-block: 2.5rem;
	padding-left: 1.4rem;
	border-left: 2px solid var(--wp--preset--color--accent);
	font-size: clamp(1.15rem, 0.8vw + 0.95rem, 1.5rem);
	line-height: 1.4;
}

.single-post .wp-block-post-content > :is(blockquote, .wp-block-quote) cite {
	display: block;
	margin-top: 0.8rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	font-style: normal;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

/* --- Figures -------------------------------------------------------------- */

.single-post .wp-block-post-content > figure.wp-block-image {
	max-width: 100%;
	margin-block: 2.75rem;
}

/*
 * Portrait art (film posters, book covers) would otherwise run taller than
 * the viewport at full column width. Cap the height and let the figure size
 * itself from the image, aligned to the same left edge as the text.
 */
.single-post .wp-block-post-content > figure.wp-block-image img {
	max-height: 78vh;
	width: auto;
	margin-inline: 0;
}

.single-post .wp-block-post-content figcaption {
	max-width: var(--post-measure);
	margin-top: 0.8rem;
	color: var(--wp--preset--color--muted);
	font-size: 0.85rem;
	line-height: 1.5;
}

/* --- Inline text ---------------------------------------------------------- */

.single-post .wp-block-post-content a:not(.wp-block-button__link) {
	color: inherit;
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--accent);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.22em;
	transition: color 200ms var(--post-ease);
}

.single-post .wp-block-post-content a:not(.wp-block-button__link):is(:hover, :focus-visible) {
	color: var(--wp--preset--color--accent);
}

.single-post .wp-block-post-content strong {
	font-weight: 700;
}

.single-post .wp-block-post-content hr {
	max-width: var(--post-measure);
	margin-block: 3rem;
	margin-inline: 0 auto;
	border: 0;
	border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--contrast) 16%, transparent);
}

@media (max-width: 782px) {
	.single-post .wp-block-post-content > figure.wp-block-image img {
		width: 100%;
		max-height: none;
	}
}
