/* manuka-luxury — self-hosted webfonts and the site's weight policy
 *
 * Two families, and for Lato exactly two weights: 400 for text, 600 for
 * controls. Nothing else is loaded, so the second half of this file rewrites
 * every rule that used to ask for 500 or 700 onto one of those two. Leaving
 * them out would work too - the browser picks the nearest weight - but it would
 * be an invisible decision, and it would differ between engines. Each override
 * below names the rule it is answering, measured with CDP on the live site.
 *
 *   Lato — Google serves exactly one real Lato file, version 1.104
 *   "Western+Polish", which has no č ė į ų ū, no Latvian letters and no
 *   Cyrillic at all, so those fell through to Times on every page. Lato 2.015
 *   from latofonts.com carries all of them and has a real Semibold.
 *
 *   Cormorant Garamond — one variable font, wght axis clamped to 400-700. Same
 *   three weights on screen as the three static files it replaced, 37 KB
 *   lighter for a Lithuanian visitor, and metrically identical to what Google
 *   served (measured: 0.00 / -0.01 / 0.00 % advance difference).
 *
 * Subsets are cut so each file's cmap stays inside the unicode-range declared
 * for it. latin-ext is Latin Extended-A plus diacritic and currency marks:
 * every non-ASCII character rendered anywhere on the live site was collected
 * first and none sits above U+017F.
 *
 * Licences: both families are SIL Open Font License 1.1, copies in fonts/.
 * Build: build-fonts.py, checked by verify-fonts.py.
 */

/* ---------- Lato 400 ---------------------------------------------------- */
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(fonts/lato-400-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(fonts/lato-400-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-017F, U+02C7, U+02D8-02DB, U+02DD, U+0304, U+0308, U+0329, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113;
}
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url(fonts/lato-400-cyrillic.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* ---------- Lato 600 ---------------------------------------------------- */
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url(fonts/lato-600-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url(fonts/lato-600-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-017F, U+02C7, U+02D8-02DB, U+02DD, U+0304, U+0308, U+0329, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113;
}
@font-face {
	font-family: 'Lato';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url(fonts/lato-600-cyrillic.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* ---------- Cormorant Garamond, variable 400-700 ------------------------ */
@font-face {
	font-family: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url(fonts/cormorant-garamond-var-latin.woff2) format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2190-2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url(fonts/cormorant-garamond-var-latin-ext.woff2) format('woff2');
	unicode-range: U+0100-017F, U+02C7, U+02D8-02DB, U+02DD, U+0304, U+0308, U+0329, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113;
}
@font-face {
	font-family: 'Cormorant Garamond';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url(fonts/cormorant-garamond-var-cyrillic.woff2) format('woff2');
	unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

/* ======================================================================== *
 * Weight policy: Lato exists at 400 and 600, so every 500 and 700 is named
 * here and sent to one of them. Cormorant Garamond is untouched by this
 * section - it is variable across 400-700 and headings keep their 700.
 * ======================================================================== */

/* Astra's product stock line and <strong> were the only 700 on the site.
   Semibold carries the same emphasis at this size without a second file. */
b,
strong,
.woocommerce-js div.product p.ast-stock-detail .ast-stock-avail,
.woocommerce-js div.product p.ast-stock-detail .ast-stock-label {
	font-weight: 600 !important;
}

/* The consent banner is the largest block of Lato 500 on the site: its buttons,
   title and category headers. They are controls, so they follow the site's
   other controls to 600 rather than dropping to body weight. */
.cmplz-cookiebanner .cmplz-title,
.cmplz-cookiebanner .cmplz-buttons .cmplz-btn,
.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-category-title,
.cmplz-cookiebanner .cmplz-categories .cmplz-category .cmplz-category-header .cmplz-always-active,
.cmplz-cookiebanner .cmplz-category-toggle {
	font-weight: 600 !important;
}

/* Review form labels are labels: same treatment as other controls. */
.woocommerce-js #reviews .comment-form-comment label,
.woocommerce-js #reviews .comment-form-rating label,
.woocommerce-js .comment-reply-title {
	font-weight: 600 !important;
}

/* The product meta line is secondary text, not a control, so it goes the other
   way - to body weight. At 12px a semibold SKU competes with the price. */
.woocommerce-js div.product .product_meta > span {
	font-weight: 400 !important;
}

/* ======================================================================== *
 * Layout reservations that have to apply site-wide, which luxury.css cannot
 * do: it is enqueued on shop templates only.
 * ======================================================================== */

/* LiteSpeed swaps the logo src for a 1x1 GIF while lazy-loading. `aspect-ratio:
   auto 120 / 85` prefers a *known* natural ratio over the width/height
   attributes, so once that 1x1 placeholder has decoded the browser believes the
   logo is square and draws it 120px tall instead of 85. The header is then 35px
   too tall until the real file lands, and the whole page moves when it does.
   A ratio without `auto` cannot be overridden by the placeholder. */
.custom-logo,
.site-logo-img img,
.ast-site-identity img.custom-logo {
	aspect-ratio: 120 / 85 !important;
	height: auto !important;
	object-fit: contain !important;
}
