/*
 * Wulfy's Site Enhancements 1.68.111 / 1.68.113: product title line fit -- see assets/product-title-fit.js.
 * These rules only match markup that script builds (.wla-pt*) or classes it sets on <html>, so without
 * JS nothing changes.
 * A fitted title never wraps on its own: its line breaks are the <br>s the script shows, and the
 * " |" before each of those breaks is hidden, so no line starts or ends with a separator.
 */
.wla-pt {
	white-space: nowrap;
}
.wla-pt .wla-pt-j:not(.is-cut) > br,
.wla-pt .wla-pt-j.is-cut > .wla-pt-p,
.wla-pt.wla-pt-off .wla-pt-j > br {
	display: none;
}
/* Fallback (a single word wider than the line): ordinary wrapping, every separator shown. */
.wla-pt.wla-pt-off {
	white-space: normal;
}
.wla-pt.wla-pt-off .wla-pt-j > .wla-pt-p {
	display: inline;
}
/* A spaced dash stays glued to the word before it (a line may end with "word —", never start with
 * "—"), also in the fallback: the gap before the dash and the dash itself never wrap. So does a
 * brand ("Magpul | PMAG", "Henry Repeating Arms") while it fits the line (.is-g, set by the script). */
.wla-pt.wla-pt-off .wla-pt-dg,
.wla-pt.wla-pt-off .wla-pt-g.is-g {
	white-space: nowrap;
}
/*
 * Product list widget whose text column is too narrow for a title without a lone word (the
 * script adds .wla-pt-stack to that list only): thumbnail above the title, full-width text.
 */
ul.product_list_widget.wla-pt-stack li {
	padding-left: 0;
}
ul.product_list_widget.wla-pt-stack li > a > img {
	position: static;
	display: block;
	margin: 0 0 6px;
}
/*
 * First paint. Fitting re-flows title lines and moves card prices (levelling), so while JS is on
 * (html.wla-pt-js, from an inline flag at the top of <head>) the titles and card prices stay
 * invisible (their space is kept, so nothing shifts) until the script's first pass with the final
 * fonts adds html.wla-pt-done (the script runs as soon as the page body is parsed). Hard cap: the
 * inline flag adds html.wla-pt-cap 0.15s after the first contentful paint whatever state the script
 * is in (slow, blocked or failed). Backstop if even that never runs: shown 1s after first styled.
 * Browsers without :is() ignore this rule.
 */
html.wla-pt-js:not(.wla-pt-done):not(.wla-pt-cap) :is(h1.product_title, .product-quick-view-container h1, .product-small .name.product-title > a, .woocommerce-loop-product__title > a, ul.product_list_widget li > a > .product-title, .product-small .price-wrapper) {
	visibility: hidden;
	animation: wla-pt-reveal 0s 1s forwards;
}
@keyframes wla-pt-reveal {
	to {
		visibility: visible;
	}
}

/* 1.68.153: a visible pipe never sits at a line edge (set by the script). */
.wla-pt .wla-pt-j > .wla-pt-p.wla-pt-x {
	display: none;
}

/* 1.68.156: break gap at a taken zero-width cut, CSS only (not in textContent); collapsible, so it adds no width at the line end. */
.wla-pt .wla-pt-j.is-cut > .wla-pt-zs::after {content:' '}
