/*
 * Söluturn standards: type, headings, buttons, chips.
 * Adopted 2026-10-23 (soluturn-dev/standards/standards.html). Loaded last.
 *
 * Every value comes from the brand tokens (design-system/brand-tokens).
 * The !important flags beat older component rules and WooCommerce
 * defaults that also use !important; remove them as those rules are
 * deleted from style.css and checkout.css.
 */

/* =========================================================================
 * Type styles
 * ========================================================================= */
.sol-display-xl, .sol-display-l, .sol-display-m, .sol-title-l, .sol-title-m, .sol-title-s,
.sol-deck, .sol-body-m, .sol-body-s, .sol-kicker, .sol-micro {
	font-family: var(--font-family-sans);
}
.sol-display-xl { font: var(--type-display-x-large-extrabold); font-stretch: var(--type-display-x-large-width); letter-spacing: var(--type-display-x-large-tracking); }
.sol-display-l  { font: var(--type-display-large-extrabold); font-stretch: var(--type-display-large-width); letter-spacing: var(--type-display-large-tracking); }
.sol-display-m  { font: var(--type-display-medium-extrabold); font-stretch: var(--type-display-medium-width); letter-spacing: var(--type-display-medium-tracking); }
.sol-title-l    { font: var(--type-title-large-bold); font-stretch: var(--type-title-large-width); letter-spacing: var(--type-title-large-tracking); }
.sol-title-m    { font: var(--type-title-medium-bold); letter-spacing: var(--type-title-medium-tracking); }
.sol-title-s    { font: var(--type-title-small-semibold); }
.sol-deck       { font: var(--type-body-large-regular); color: var(--fg-default-subtle); }
.sol-body-m     { font: var(--type-body-medium-regular); }
.sol-body-s     { font: var(--type-body-small-regular); }
.sol-kicker     { font: var(--type-micro-large-semibold); letter-spacing: var(--type-micro-large-tracking); text-transform: uppercase; color: var(--fg-primary); }
.sol-micro      { font: var(--type-micro-medium-semibold); letter-spacing: var(--type-micro-medium-tracking); text-transform: uppercase; }

/* =========================================================================
 * Headings
 * h1 Display M (Display L on posts and case studies), h2 Title L,
 * h3 Title M, h4 Title S, h5-h6 Kicker. Sizes, weights and tracking come
 * from theme.json; width (condensing) is CSS-only.
 * ========================================================================= */
h1, .wp-block-post-title, .wp-block-query-title, .product_title {
	font-stretch: var(--type-display-medium-width);
}
h2 { font-stretch: var(--type-title-large-width); }

h1.wp-block-post-title, h1.wp-block-query-title, h1.product_title,
.woocommerce-products-header__title, .soluturn-cart-shell h1, .woocommerce-account h1, .error404 h1 {
	font-size: var(--type-display-medium-size) !important;
	line-height: var(--type-display-medium-line-height) !important;
	font-weight: 800 !important;
	letter-spacing: var(--type-display-medium-tracking) !important;
	font-stretch: var(--type-display-medium-width) !important;
}

body.single-post h1.wp-block-post-title,
body.single-post .soluturn-editorial-hero h1,
body.single-portfolio h1 {
	font-size: var(--type-display-large-size) !important;
	line-height: var(--type-display-large-line-height) !important;
	font-weight: 800 !important;
	letter-spacing: var(--type-display-large-tracking) !important;
	font-stretch: var(--type-display-large-width) !important;
}

/* Archive titles are page titles: Display M. */
.soluturn-editorial-archive__title {
	font-size: var(--type-display-medium-size) !important;
	line-height: var(--type-display-medium-line-height) !important;
	font-weight: 800 !important;
	letter-spacing: var(--type-display-medium-tracking) !important;
	font-stretch: var(--type-display-medium-width) !important;
}

/* Section heads: Title L. */
.soluturn-home-rail__heading, .soluturn-discovery__title, .soluturn-blog-lead__title, .soluturn-reviews__title {
	font: var(--type-title-large-bold) !important;
	letter-spacing: var(--type-title-large-tracking) !important;
	font-stretch: var(--type-title-large-width) !important;
}

/* Panels: Title M. */
.soluturn-summary-card__title, #order_review_heading, .woocommerce-billing-fields > h3, .woocommerce-shipping-fields > h3 {
	font: var(--type-title-medium-bold) !important;
	letter-spacing: var(--type-title-medium-tracking) !important;
	text-transform: none !important;
}

/* Card and list-item titles are Title S whatever their tag. */
.soluturn-blog-sidebar-item__title, .soluturn-support-card h3, .soluturn-cart-item__title,
.soluturn-blog-card__title, .soluturn-blog-grid-card__title, .soluturn-portfolio-card__name {
	font: var(--type-title-small-semibold) !important;
	letter-spacing: 0 !important;
	font-stretch: 100% !important;
}

/* Product tile names: Body S, medium. Tiles sit four to five across, so
 * the name stays small and the image leads. */
.soluturn-tile__name, .wc-block-grid__product-title, .woocommerce-loop-product__title {
	font: var(--type-body-small-medium) !important;
	letter-spacing: 0 !important;
	font-stretch: 100% !important;
}

/* Labels that read as kickers. */
.soluturn-footer__heading, .soluturn-discovery__eyebrow {
	font: var(--type-micro-large-semibold) !important;
	letter-spacing: var(--type-micro-large-tracking) !important;
	text-transform: uppercase !important;
}

/* =========================================================================
 * Buttons
 * Transact (buying only, purple) · Primary (ink) · Secondary (outline) ·
 * Ghost (40 x 40 icon). Sizes: M 40px (default), L 48px. 8px corners,
 * weight 500, sentence case.
 * ========================================================================= */

/* --- Shared shape (M) --- */
:is(.wp-element-button, .wp-block-button__link, .button, button.button, input[type="submit"],
    .wc-block-components-button:not(.is-link), .soluturn-footer__newsletter-btn, .soluturn-reviews__see-more,
    .soluturn-portfolio-banner__cta):not(.wp-block-search__button-only):not(.soluturn-qty-btn):not(.soluturn-swatch) {
	align-items: center;
	border-radius: 8px !important;
	box-sizing: border-box;
	font-family: var(--font-family-sans) !important;
	font-size: var(--type-body-small-size) !important;
	font-stretch: 100%;
	font-weight: 500 !important;
	gap: 8px;
	justify-content: center;
	letter-spacing: 0 !important;
	line-height: var(--type-body-small-line-height) !important;
	min-height: 40px;
	padding: 9px 16px !important;
	text-transform: none !important;
	white-space: nowrap;
}

/* --- L (48px): buying actions and the main action of account / empty cart --- */
:is(.single_add_to_cart_button, .checkout-button, #place_order, .wc-block-components-checkout-place-order-button,
    .woocommerce-cart .wc-backward, .woocommerce-form-login__submit, .woocommerce-form-register__submit) {
	font-size: var(--type-body-medium-size) !important;
	line-height: var(--type-body-medium-line-height) !important;
	min-height: 48px !important;
	padding: 11px 24px !important;
}

/* --- Primary (ink): the default --- */
:is(.wp-element-button, .wp-block-button__link, .button, input[type="submit"], .wc-block-components-button:not(.is-link),
    .soluturn-footer__newsletter-btn, .soluturn-portfolio-banner__cta):not(.has-accent-purple-background-color) {
	background-color: var(--bg-default-emphasis) !important;
	border: 1px solid transparent !important;
	box-shadow: var(--soluturn-button-shadow-rest);
	color: var(--fg-default-onEmphasis) !important;
}
:is(.wp-element-button, .wp-block-button__link, .button, input[type="submit"], .wc-block-components-button:not(.is-link),
    .soluturn-footer__newsletter-btn, .soluturn-portfolio-banner__cta):not(.has-accent-purple-background-color):hover {
	background-color: var(--bg-states-default-emphasis-hover) !important;
	color: var(--fg-default-onEmphasis) !important;
}
:is(.wp-element-button, .wp-block-button__link, .button, input[type="submit"], .wc-block-components-button:not(.is-link),
    .soluturn-footer__newsletter-btn, .soluturn-portfolio-banner__cta):not(.has-accent-purple-background-color):active {
	background-color: var(--bg-states-default-emphasis-active) !important;
}

/* --- Transact (purple): buying only --- */
:is(.has-accent-purple-background-color.wp-element-button, .has-accent-purple-background-color.wp-block-button__link,
    .single_add_to_cart_button, .checkout-button, #place_order, .wc-block-components-checkout-place-order-button,
    .wc-block-cart__submit-button, .soluturn-cart-btn) {
	background-color: var(--bg-primary-emphasis) !important;
	border: 1px solid transparent !important;
	box-shadow: var(--soluturn-button-shadow-rest);
	color: var(--fg-primary-onEmphasis) !important;
}
:is(.has-accent-purple-background-color.wp-element-button, .has-accent-purple-background-color.wp-block-button__link,
    .single_add_to_cart_button, .checkout-button, #place_order, .wc-block-components-checkout-place-order-button,
    .wc-block-cart__submit-button, .soluturn-cart-btn):hover {
	background-color: var(--bg-states-primary-emphasis-hover) !important;
	color: var(--fg-primary-onEmphasis) !important;
}
:is(.has-accent-purple-background-color.wp-element-button, .has-accent-purple-background-color.wp-block-button__link,
    .single_add_to_cart_button, .checkout-button, #place_order, .wc-block-components-checkout-place-order-button,
    .wc-block-cart__submit-button, .soluturn-cart-btn):active {
	background-color: var(--bg-states-primary-emphasis-active) !important;
}

/* --- Secondary (outline) --- */
:is(.soluturn-reviews__see-more, .soluturn-cart-actions__coupon .button, button[name="update_cart"],
    .is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline) {
	background-color: transparent !important;
	border: 1px solid var(--border-default-strong) !important;
	box-shadow: none !important;
	color: var(--fg-default) !important;
}
:is(.soluturn-reviews__see-more, .soluturn-cart-actions__coupon .button, button[name="update_cart"],
    .is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline):hover {
	background-color: var(--bg-states-default-hover) !important;
	color: var(--fg-default) !important;
}
:is(.soluturn-reviews__see-more, .soluturn-cart-actions__coupon .button, button[name="update_cart"],
    .is-style-outline > .wp-block-button__link, .wp-block-button__link.is-style-outline):active {
	background-color: var(--bg-states-default-active) !important;
}

/* --- Ghost (icon, 40 x 40) --- */
:is(.soluturn-classic-nav__hamburger, .soluturn-qty-btn) {
	align-items: center;
	background-color: transparent !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	color: var(--fg-default) !important;
	height: 40px !important;
	justify-content: center;
	min-width: 40px !important;
	padding: 0 !important;
}
:is(.soluturn-classic-nav__hamburger, .soluturn-qty-btn):hover { background-color: var(--bg-states-default-hover) !important; }
:is(.soluturn-classic-nav__hamburger, .soluturn-qty-btn):active { background-color: var(--bg-states-default-active) !important; }
/* Gallery arrows stay round over images, at the ghost size. */
.soluturn-tile__arrow { height: 40px !important; width: 40px !important; }

/* --- Focus and disabled, all variants --- */
:is(.wp-element-button, .wp-block-button__link, .button, input[type="submit"], .wc-block-components-button, .soluturn-cart-btn,
    .soluturn-footer__newsletter-btn, .soluturn-reviews__see-more, .soluturn-portfolio-banner__cta,
    .soluturn-classic-nav__hamburger, .soluturn-qty-btn, .soluturn-tile__arrow, .soluturn-swatch, .soluturn-discovery__option):focus-visible {
	outline: 2px solid var(--border-focus-primary) !important;
	outline-offset: 2px !important;
}
:is(.wp-element-button, .wp-block-button__link, .button, input[type="submit"], .wc-block-components-button):is(:disabled, .disabled, [aria-disabled="true"]) {
	background-color: var(--bg-disabled) !important;
	border-color: transparent !important;
	box-shadow: none !important;
	color: var(--fg-disabled) !important;
	cursor: not-allowed;
}

/* Disabled beats Transact (e.g. Add to cart before a size is chosen). */
:is(.single_add_to_cart_button, .checkout-button, #place_order, .wc-block-components-checkout-place-order-button,
    .has-accent-purple-background-color.wp-element-button):is(:disabled, .disabled, [aria-disabled="true"]) {
	background-color: var(--bg-disabled) !important;
	box-shadow: none !important;
	color: var(--fg-disabled) !important;
	opacity: 1 !important;
}

@media (max-width: 699px) {
	.single_add_to_cart_button, .soluturn-summary-card__checkout .checkout-button, #place_order { width: 100%; }
}

/* =========================================================================
 * Chips: size swatches and quiz options. 40px, fully rounded, 1px border;
 * selected fills ink.
 * ========================================================================= */
:is(.soluturn-swatch, .soluturn-discovery__option) {
	align-items: center;
	background-color: var(--bg-default) !important;
	border: 1px solid var(--border-default) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	color: var(--fg-default) !important;
	font: var(--type-body-small-medium) !important;
	justify-content: center;
	min-height: 40px !important;
	padding: 0 16px !important;
}
:is(.soluturn-swatch, .soluturn-discovery__option):hover { border-color: var(--border-default-strong) !important; }
:is(.soluturn-swatch--active, .soluturn-discovery__option.is-selected, .soluturn-swatch[aria-pressed="true"]) {
	background-color: var(--bg-default-emphasis) !important;
	border-color: transparent !important;
	color: var(--fg-default-onEmphasis) !important;
}

@media (prefers-reduced-motion: reduce) {
	:is(.wp-element-button, .wp-block-button__link, .button, .soluturn-swatch, .soluturn-discovery__option) { transition: none !important; }
}

/* =========================================================================
 * Notices: "added to cart", info and error banners (block and classic
 * markup). One quiet surface: an 8% tint, a 1px border at 24%, a small
 * icon, regular text on the left and a light outline action on the right.
 * Success and info are purple; errors are the same shape in red.
 * ========================================================================= */
.woocommerce-notices-wrapper:not(:empty) { margin-bottom: var(--wp--preset--spacing--50); }

:is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error, .soluturn-banner) {
	--notice-ink: var(--fg-primary);
	--notice-wash: var(--pallete-alpha-purple-8);
	--notice-line: var(--pallete-alpha-purple-24);
	--notice-chip: var(--pallete-alpha-purple-16);
	align-items: center !important;
	background: var(--notice-wash) !important;
	border: 1px solid var(--notice-line) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	color: var(--fg-default) !important;
	display: flex !important;
	flex-direction: row !important;
	gap: 16px !important;
	line-height: var(--type-body-small-line-height);
	margin: 0 0 var(--wp--preset--spacing--50) !important;
	padding: 16px 24px !important;
	text-align: left !important;
	width: 100%;
}
:is(.wc-block-components-notice-banner.is-error, .woocommerce-error, .soluturn-banner--error) {
	--notice-ink: var(--fg-danger);
	--notice-wash: color-mix(in srgb, var(--pallete-red-700) 6%, transparent);
	--notice-line: color-mix(in srgb, var(--pallete-red-700) 24%, transparent);
	--notice-chip: color-mix(in srgb, var(--pallete-red-700) 14%, transparent);
}

/* Icon: a small check in a tinted circle. */
.wc-block-components-notice-banner > svg {
	background: var(--notice-chip) !important;
	border-radius: 50%;
	box-sizing: content-box;
	display: block !important;
	fill: var(--notice-ink) !important;
	flex: none;
	height: 20px !important;
	padding: 6px;
	width: 20px !important;
}

/* Message: regular Body S, left aligned; the action sits on the right. */
:is(.wc-block-components-notice-banner__content, .woocommerce-message, .woocommerce-info, .woocommerce-error) {
	align-items: center;
	color: var(--fg-default) !important;
	column-gap: 24px;
	flex: 1;
	flex-wrap: wrap;
	font: var(--type-body-small-regular) !important;
	row-gap: 12px;
}
/* Text and links flow as one paragraph; only a notice with an action
 * button splits into message (left) and action (right). */
.wc-block-components-notice-banner__content,
:is(.woocommerce-message, .woocommerce-info, .woocommerce-error):not(:has(> .button)) { display: block !important; }
.wc-block-components-notice-banner__content:has(> .button) { display: flex !important; }
:is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error) :is(p, li) {
	font: var(--type-body-small-regular) !important;
	margin: 0;
}
:is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error) a:not(.button) {
	color: var(--notice-ink) !important;
	font-weight: 500 !important;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* Action ("View cart", "Continue shopping"): light outline in the notice colour. */
body :is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error) .button.button {
	background: transparent !important;
	border: 1px solid var(--notice-line) !important;
	box-shadow: none !important;
	color: var(--notice-ink) !important;
	float: none !important;
	margin: 0 0 0 auto !important;
	opacity: 1 !important;
	order: 2;
	text-decoration: none !important;
}
body :is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error) .button.button:hover {
	background: var(--notice-chip) !important;
	color: var(--notice-ink) !important;
}
body :is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error) .button.button:active {
	background: var(--notice-line) !important;
}

@media (max-width: 699px) {
	:is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error, .soluturn-banner) {
		align-items: flex-start !important;
		padding: 16px !important;
	}
	body :is(.wc-block-components-notice-banner, .woocommerce-message, .woocommerce-info, .woocommerce-error) .button.button {
		margin: 0 !important;
	}
}

/* =========================================================================
 * Draft 2: inputs, links, cards, prices, badges (2026-10-23)
 * ========================================================================= */

/* --- Inputs: 40px like an M button, 8px corners, one border colour --- */
:is(input:is([type="text"], [type="email"], [type="search"], [type="tel"], [type="number"], [type="password"], [type="url"], :not([type])),
    select, textarea, .input-text, .wp-block-search__input, .select2-container--default .select2-selection--single):not(.qty) {
	background-color: var(--bg-default) !important;
	border: 1px solid var(--border-default-strong) !important;
	border-radius: 8px !important;
	box-shadow: none !important;
	box-sizing: border-box;
	color: var(--fg-default) !important;
	font: var(--type-body-small-regular) !important;
	min-height: 40px !important;
	padding: 9px 12px !important;
	transition: border-color .16s ease, box-shadow .16s ease;
}
:is(input:is([type="text"], [type="email"], [type="search"], [type="tel"], [type="number"], [type="password"], [type="url"], :not([type])):not(.qty), select:not([multiple]), input.input-text:not(.qty)) { height: 40px !important; }
textarea { height: auto !important; min-height: 120px !important; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 20px !important; padding: 0 !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 38px !important; }
select:not([multiple]) {
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2212%22 height=%2212%22 viewBox=%220 0 12 12%22%3E%3Cpath d=%22M2.5 4.5 6 8l3.5-3.5%22 fill=%22none%22 stroke=%22%23282737%22 stroke-width=%221.5%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22/%3E%3C/svg%3E") !important;
	background-position: right 12px center !important;
	background-repeat: no-repeat !important;
	padding-right: 36px !important;
}
:is(input, select, textarea, .input-text)::placeholder { color: var(--fg-default-muted) !important; opacity: 1; }
:is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), select, textarea, .input-text):hover:not(:focus):not(:disabled) {
	border-color: var(--fg-default-subtle) !important;
}
:is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), select, textarea, .input-text, .wp-block-search__input):focus,
.select2-container--focus .select2-selection--single, .select2-container--open .select2-selection--single {
	border-color: var(--border-focus-primary) !important;
	box-shadow: 0 0 0 3px var(--pallete-alpha-purple-24) !important;
	outline: none !important;
}
:is(.woocommerce-invalid, .has-error) :is(input, select, textarea, .select2-selection),
:is(input, select, textarea)[aria-invalid="true"] {
	border-color: var(--border-danger) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--pallete-red-700) 18%, transparent) !important;
}
:is(input, select, textarea):disabled { background-color: var(--bg-disabled) !important; color: var(--fg-disabled) !important; cursor: not-allowed; }
/* Autofill keeps the field white (browsers paint it blue otherwise). */
:is(input, select, textarea):-webkit-autofill {
	-webkit-box-shadow: 0 0 0 40px var(--bg-default) inset !important;
	-webkit-text-fill-color: var(--fg-default) !important;
}
:is(input, select, textarea):-webkit-autofill:focus {
	-webkit-box-shadow: 0 0 0 40px var(--bg-default) inset, 0 0 0 3px var(--pallete-alpha-purple-24) !important;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--bg-primary-emphasis); height: 16px; width: 16px; }
/* Labels and field messages. */
:is(.woocommerce form .form-row label, .wc-block-components-text-input label, .soluturn-pdp__info .variations label, .woocommerce-form-row label, form > p > label) {
	color: var(--fg-default) !important;
	font: var(--type-body-small-medium) !important;
}
.checkout-inline-error-message, .woocommerce-form-row .woocommerce-error { color: var(--fg-danger) !important; font: var(--type-micro-large-regular) !important; }
/* Quantity group: one bordered control, same corners as the inputs. */
.soluturn-qty-wrap { border: 1px solid var(--border-default-strong) !important; border-radius: 8px !important; }
.soluturn-qty-wrap .qty { border: 0 !important; box-shadow: none !important; color: var(--fg-default) !important; font: var(--type-body-small-medium) !important; }
@media (max-width: 699px) {
	/* 16px stops iOS zooming into a focused field. */
	:is(input:not([type="submit"]):not([type="checkbox"]):not([type="radio"]), select, textarea, .input-text, .wp-block-search__input) { font-size: 16px !important; }
}
/* Search: input and button sit flush at 40px. */
.wp-block-search__button { min-height: 40px !important; height: 40px !important; }

/* --- Links --- */
/* In running text: ink, soft purple underline; purple on hover. */
:is(.entry-content, .wp-block-post-content, .soluturn-editorial-content, .woocommerce-product-details__short-description,
    .wc-tab, .soluturn-accordion__content, .woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper,
    .woocommerce-MyAccount-content, .soluturn-cs-section) :is(p, blockquote, figcaption, td, .wp-block-list > li) > a:not(.button):not(.wp-element-button):not(.wp-block-button__link) {
	color: var(--fg-default) !important;
	text-decoration: underline !important;
	text-decoration-color: var(--pallete-alpha-purple-40) !important;
	text-decoration-thickness: 1px !important;
	text-underline-offset: 3px !important;
	transition: color .16s ease, text-decoration-color .16s ease;
}
:is(.entry-content, .wp-block-post-content, .soluturn-editorial-content, .woocommerce-product-details__short-description,
    .wc-tab, .soluturn-accordion__content, .woocommerce-privacy-policy-text, .woocommerce-terms-and-conditions-wrapper,
    .woocommerce-MyAccount-content, .soluturn-cs-section) :is(p, blockquote, figcaption, td, .wp-block-list > li) > a:not(.button):not(.wp-element-button):not(.wp-block-button__link):hover {
	color: var(--fg-primary) !important;
	text-decoration-color: currentColor !important;
}
/* Navigation and footer: no underline; purple on hover. */
.soluturn-footer__links a, .soluturn-footer__bottom a { color: var(--fg-default-subtle) !important; text-decoration: none !important; }
.woocommerce-MyAccount-navigation a { color: var(--fg-default-subtle) !important; font: var(--type-body-small-medium) !important; text-decoration: none !important; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--fg-primary) !important; }
:is(.soluturn-footer__links a, .soluturn-footer__bottom a, .woocommerce-MyAccount-navigation a, .soluturn-tile__name a,
    .soluturn-blog-grid-card a, .soluturn-blog-sidebar-item a, .soluturn-blog-lead a, .soluturn-portfolio-card a):hover {
	color: var(--fg-primary) !important;
}
/* Titles that are links read as titles. */
:is(.soluturn-tile__name, .soluturn-blog-grid-card__title, .soluturn-blog-sidebar-item__title, .soluturn-blog-lead__title, .soluturn-portfolio-card__name) a {
	color: inherit !important;
	text-decoration: none !important;
}
/* Text actions: Remove, Clear, Back, Reset. */
:is(.woocommerce-cart-form .remove, .soluturn-pdp__info .reset_variations, .soluturn-discovery__reset, .soluturn-discovery__back, .soluturn-discovery-results__clear) {
	color: var(--fg-default-subtle) !important;
	font: var(--type-body-small-medium) !important;
	text-decoration: none !important;
}
:is(.woocommerce-cart-form .remove, .soluturn-pdp__info .reset_variations, .soluturn-discovery__reset, .soluturn-discovery__back, .soluturn-discovery-results__clear):hover { color: var(--fg-primary) !important; }
/* Pagination: 40px squares; the current page fills ink. */
:is(.soluturn-editorial-pagination, .soluturn-product-grid__pagination, .woocommerce-pagination) :is(a, span).page-numbers,
:is(.soluturn-editorial-pagination, .soluturn-product-grid__pagination) > :is(a, span) {
	align-items: center;
	border: 1px solid transparent !important;
	border-radius: 8px !important;
	color: var(--fg-default) !important;
	display: inline-flex;
	font: var(--type-body-small-medium) !important;
	justify-content: center;
	min-height: 40px;
	min-width: 40px;
	padding: 0 12px !important;
	text-decoration: none !important;
}
:is(.soluturn-editorial-pagination, .soluturn-product-grid__pagination, .woocommerce-pagination) a:hover { background: var(--bg-states-default-hover) !important; }
:is(.soluturn-editorial-pagination, .soluturn-product-grid__pagination, .woocommerce-pagination) .current {
	background: var(--bg-default-emphasis) !important;
	color: var(--fg-default-onEmphasis) !important;
}
:where(a):focus-visible { outline: 2px solid var(--border-focus-primary); outline-offset: 2px; border-radius: 2px; }

/* --- Cards --- */
/* Panels: summary, support and account boxes. */
:is(.soluturn-summary-card, .soluturn-support-card, .woocommerce-MyAccount-content .woocommerce-Address, .woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register) {
	background: var(--bg-default) !important;
	border: 1px solid var(--border-default) !important;
	border-radius: 12px !important;
	box-shadow: none !important;
	padding: 24px !important;
}
@media (max-width: 699px) {
	:is(.soluturn-summary-card, .soluturn-support-card, .woocommerce-MyAccount-content .woocommerce-Address, .woocommerce-account .woocommerce-form-login, .woocommerce-account .woocommerce-form-register) { padding: 16px !important; }
}
/* Editorial cards: one hairline rule on top, no box. */
:is(.soluturn-blog-grid-card, .soluturn-blog-sidebar-item) {
	background: transparent !important;
	border: 0 !important;
	border-top: 1px solid var(--border-default) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 16px 0 0 !important;
}

/* --- Prices --- */
.soluturn-tile__price, .soluturn-tile__price .amount { color: var(--fg-default-subtle) !important; font: var(--type-body-small-regular) !important; }
:is(.soluturn-pdp__info .price, .soluturn-pdp__info .woocommerce-variation-price .price) {
	color: var(--fg-default) !important;
	font: var(--type-title-small-semibold) !important;
}
:is(.order-total, .wc-block-components-totals-footer-item) .amount { font: var(--type-title-small-semibold) !important; color: var(--fg-default) !important; }
.price del, .price del .amount { color: var(--fg-default-muted) !important; font-weight: 400 !important; text-decoration: line-through; }
.price ins { text-decoration: none; }

/* --- Badges: Micro type in a pill --- */
:is(.soluturn-tile__badge, .onsale, .wc-block-components-product-sale-badge, .soluturn-portfolio-card__type) {
	background: var(--bg-default) !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: var(--fg-default) !important;
	font: var(--type-micro-medium-semibold) !important;
	letter-spacing: var(--type-micro-medium-tracking) !important;
	line-height: 14px !important;
	min-height: 0 !important;
	min-width: 0 !important;
	padding: 4px 8px !important;
	text-transform: uppercase !important;
}
:is(.onsale, .wc-block-components-product-sale-badge) { background: var(--bg-primary-emphasis) !important; color: var(--fg-primary-onEmphasis) !important; }

/* Corner scale: 4 small (thumbnails, bars), 8 controls, 12 surfaces
 * (panels, notices, dropdowns), 999 pills, 50% round icons. */

/* Linked titles keep the title colour (cart line items too). */
.soluturn-cart-item__title a { color: inherit !important; text-decoration: none !important; }
.soluturn-cart-item__title a:hover { color: var(--fg-primary) !important; }
/* Support card copy is Body S, email included. */
.soluturn-support-card :is(p, a, li) { font: var(--type-body-small-regular) !important; }

/* Blog meta ("Design Leadership · 8 min read"): WordPress's auto-formatting
 * puts a <br> between the spans, which broke span + span. */
:is(.soluturn-blog-lead__meta, .soluturn-blog-grid-card__meta, .soluturn-blog-sidebar-item__meta) br { display: none; }
:is(.soluturn-blog-lead__meta, .soluturn-blog-grid-card__meta, .soluturn-blog-sidebar-item__meta) span ~ span::before {
	content: "\00b7";
	margin: 0 6px;
}

/* Order summary CTA stack: pay-later message, then the button, then any
 * express-pay buttons; each on its own row, 12px apart. WooPayments puts
 * its Affirm/Afterpay frame in #payment-method-message, which used to
 * overlap the button. Empty wallet containers no longer reserve space. */
.soluturn-summary-card__checkout {
	display: flex !important;
	flex-direction: column;
	gap: 12px;
}
.soluturn-summary-card__checkout #payment-method-message {
	height: auto !important;   /* WooPayments sets height: var(--wc-bnpl-height), unset on our cart */
	padding: 0 !important;
	margin: 0 !important;
	order: -1;
	overflow: visible !important;
	position: relative !important;
}
.soluturn-summary-card__checkout #payment-method-message:empty { display: none; }
.soluturn-summary-card__checkout #payment-method-message iframe { display: block; position: static !important; }
.soluturn-summary-card__checkout .checkout-button { margin: 0 !important; }
.soluturn-summary-card__checkout :is(.ppc-button-wrapper, .wcpay-express-checkout-wrapper):not(:has(iframe, button, [role="button"])) { display: none !important; }
