/**
 * A catalogue card's title, on one line.
 *
 * The card in a homepage block is 209px wide and gives its title 178.9px of
 * that — the same 179px the button has, and for the same reason: the block is a
 * four-column flex row with a 15px gutter on either side. The catalogue holds 366
 * products per language and 295 *distinct* names among them — 71 products share
 * a name with another, «Protezione Civile» alone belonging to eleven — and
 * width is a property of the name rather than of the product, so what is
 * counted here is names. Seven of the 295 are wider than the box at the card's
 * own 12px/24px 600 uppercase Montserrat:
 *
 *   Copripantaloni bicolore Alta Visibilità   282.6px
 *   Giubbino Softshell Alta Visibilità        241.2px
 *   Corpetto bicolore Alta Visibilità         238.1px
 *   Giaccone bicolore Alta Visibilità         236.0px
 *   Bomber bicolore Alta Visibilità           226.4px
 *   Amsterdam Ripstop Warm                    185.9px
 *   Multipro Giove Rainwear                   182.4px
 *
 * Eight products of the 366 carry one of those seven — «Giaccone bicolore Alta
 * Visibilità» is two of them — so 24 cards across the three languages. Each
 * took a second line, and that is what this rule is about. The
 * card itself was never the problem: the row is `display: flex`, so all four
 * cards were already the same 435px tall whatever their titles did. What broke
 * was everything *below* the title — on the one card with two lines, the price
 * and the button sat 24px lower than on its three neighbours, and a row of
 * buttons at two different heights is what the client reported on 2026-08-27.
 *
 * Two ways to level that row, and the client tried both:
 *
 * - Reserve the second line always (`min-height: 48px` on the title). Nothing
 *   is cut and every card lines up, at the cost of 24px of white space under
 *   the other 288 names, which do not need it. Rejected — «смотрится не очень».
 * - Refuse the second line, which is this file. Nothing grows, every card lines
 *   up, and seven of the catalogue's names end in an ellipsis.
 *
 * Truncating the *string* — the first idea, at some character count — was
 * measured and dropped before either: in uppercase Montserrat, length and width
 * are barely related. «T-Shirt manica corta» is 20 characters and fits at
 * 149px; «Bomber bicolore Alta Visibilità» is 31 and does not, at 226px. A
 * limit low enough to save the widest would cut dozens of names that were never
 * too wide, and it would cut them mid-word, which is exactly what
 * `text-overflow` exists not to do. It would also have to be cut once per
 * language for no gain: these names are the supplier's Italian and are
 * identical across all three copies of a product (13 «Alta Visibilità» products
 * in each of he, en, ru), so unlike the button's wording this was never a
 * Russian-only symptom.
 *
 * What the ellipsis costs is small and known: the seven names differ in their
 * *first* word — Giaccone, Corpetto, Bomber, Copripantaloni — so the tail that
 * goes is the shared qualifier, not what tells them apart. The full name stays
 * in the markup: it is only visually clipped, so search engines, the browser's
 * own find, and a screen reader all still get it whole, and the product page
 * prints it in full.
 *
 * The declarations are copied from the theme's own `.product-item.short-title
 * .product-title a` rule (style.css, inside `@media (max-width: 767px)`), which
 * does this same thing on phones. That rule is not a rival but a hazard: every
 * card on this shop carries `short-title` — the theme prints it on all of them
 * — so below 767px it outranks anything weaker and would have taken `plaintext`
 * away again, putting the Hebrew phone storefront back to «… BICOLORE ALTA
 * VISIBILITÀ». That is what fixes the weight of the selector below: naming the
 * card's style class makes it (0,3,1), exactly the theme's own, and this file
 * is enqueued after `kute-boutique`, so at equal weight the later rule is the
 * one that lands — at any width, phone included.
 *
 * `style-01` is also the only card this shop draws. Every storefront surface
 * was counted on 2026-08-27 — `/`, `/ru/`, `/ru/shop/`, `/popular/`, `/sale/`,
 * `/outlet/` and a product page's related row — and each renders
 * `product-item style-01` and nothing else; `related.php`, `up-sells.php` and
 * `cross-sells.php` name that style outright. Naming it is what keeps the rule
 * off two layouts the theme still ships and this shop does not use, both of
 * which would be damaged by it: `style-02` positions the title over the picture
 * in a fixed-height flex column that expects it to wrap (style.css:12552), and
 * `style-11`/`list` is the same story. They are dormant rather than dead —
 * `[ovic_products style="style-02"]` is registered by the toolkit and would
 * render today — so the narrower selector is the whole guard against a layout
 * nobody would think to re-test.
 *
 * The one property here that is not the theme's is `unicode-bidi: plaintext`,
 * and it is what makes the clipping usable in Hebrew. `text-overflow` cuts at
 * the *logical* end of the line, and on the Hebrew storefront the page is
 * `dir="rtl"`, so the logical end of a Latin name is its **left** side: the
 * first version of this rule rendered «Giaccone bicolore Alta Visibilità» as
 * «… BICOLORE ALTA VISIBILITÀ», throwing away precisely the word that tells the
 * seven apart. `plaintext` gives each name its own base direction, taken from
 * its first strong character, so a Latin name is laid out and cut as LTR text
 * inside the RTL page — measured on /: «Giaccone» sits at 0–66px, inside the
 * 179px box, and «Visibilità» at 181–236px, outside it. It is written as a
 * property rather than a `[dir="rtl"]` override on purpose: a Hebrew name, if
 * the client ever translates one, then keeps its own RTL reading and loses its
 * own tail, which a hard `direction: ltr` would not have allowed.
 *
 * Deliberately not scoped to the homepage. `text-overflow` only shows itself
 * when the text actually overflows, so a wider card is untouched — at 1440px
 * the Shop archive gives a title 270px and clips nothing but Copripantaloni —
 * and the same card markup renders in /popular/, /sale/, /outlet/ and the
 * related row, each of which narrows at some window width.
 *
 * The quick-view modal is **not** among them, and it is worth saying so because
 * the modal does re-render other product markup: YITH calls
 * `woocommerce_template_single_title`, so the name in it is the product page's
 * own `h1.product_title`, not a card's `.product-title a`. Nothing here
 * reaches it, and a name shown in full there is correct rather than a bug.
 */

.product-item.style-01 .product-title a {
    display: inline-block;
    vertical-align: top;
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    unicode-bidi: plaintext;
}
