/*
Theme Name: Logan Storefront
Description: Logan Peptides storefront (working brand), block theme. Reference build: layout, colors, spacing, typography and storefront interactions follow the public MediKart demo (Spade Themes), implemented independently with WordPress and WooCommerce blocks; no MediKart code, scripts, images or text are used. Presentation only: business rules live in the logan-qualification plugin and the must-use plugins. Global colors, fonts, sizes and spacing are in theme.json (Appearance > Editor > Styles); this file styles components.
Version: 0.7.41
Requires at least: 7.0
Requires PHP: 8.3
Author: Logan Peptides
License: Proprietary
Text Domain: logan-storefront
WC requires at least: 11.0
*/

/* ==========================================================================
   Tokens: aliases of the theme.json presets, so Global Styles edits apply here too.
   Values measured on the reference demo: docs/MEDIKART-REFERENCE-MAP.md
   ========================================================================== */
:root, .editor-styles-wrapper {
	--mk-text: var(--wp--preset--color--contrast, #211916);
	--mk-primary: var(--wp--preset--color--primary, #09090B);
	--mk-white: var(--wp--preset--color--base, #FFFFFF);
	--mk-gray-200: var(--wp--preset--color--light, #F5F5F5);
	--mk-gray-500: var(--wp--preset--color--border, #D6D6D6);
	--mk-muted: var(--wp--preset--color--muted, #5C5552);
	--mk-tint: var(--wp--preset--color--tint, #EFF3FF);
	--mk-sale: var(--wp--preset--color--sale, #B80F0A);
	--mk-star: var(--wp--preset--color--star, #F7B538);
	--mk-info: var(--wp--preset--color--info, #1E3ED9);
	--mk-success: var(--wp--preset--color--success, #157347);
	--mk-warning: var(--wp--preset--color--warning, #7A5300);
	--mk-error: var(--wp--preset--color--sale, #B80F0A);
	--mk-error-bg: #FFE6E8;
	--mk-info-bg: #EFF3FF;
	--mk-success-bg: #E3FFF2;
	--mk-warning-bg: #FFFAEC;
	--mk-sans: var(--wp--preset--font-family--dm-sans);
	--mk-serif: var(--wp--preset--font-family--dm-serif-display);
	--mk-gap: 32px;
	--mk-card-image: #D9DFEC;
}

/* ==========================================================================
   Base
   ========================================================================== */
body { overflow-wrap: break-word; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
:focus { outline: none; }
:focus-visible { outline: 2px solid var(--mk-primary); outline-offset: 2px; }
.lp-visually-hidden, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.mk-main { margin-block-start: 0 !important; }
.wp-site-blocks > * + * { margin-block-start: 0; }

/* ==========================================================================
   Buttons, links, forms
   ========================================================================== */
.button, button.button, .wp-element-button, .wp-block-button__link, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .single_add_to_cart_button,
.wc-block-components-button:not(.is-link), .wc-block-components-product-button__button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 12px 24px; border: 1px solid var(--mk-primary); border-radius: 0;
	background: var(--mk-primary); color: var(--mk-white); font-family: var(--mk-sans); font-size: 18px; font-weight: 500; line-height: 1.6;
	text-decoration: none; cursor: pointer; transition: background-color .15s ease, color .15s ease;
}
.button:hover, .wp-element-button:hover, .wp-block-button__link:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.wc-block-components-button:not(.is-link):hover, .wc-block-components-product-button__button:hover { background: #2B2B30; border-color: #2B2B30; color: var(--mk-white); }
.wp-block-button.is-style-outline > .wp-block-button__link, .mk-button--outline, .woocommerce a.button.mk-button--outline {
	background: transparent; color: var(--mk-primary); border: 2px solid var(--mk-primary);
}
.wp-block-button.is-style-outline > .wp-block-button__link:hover, .mk-button--outline:hover { background: var(--mk-primary); color: var(--mk-white); }
.mk-button--white .wp-block-button__link { background: var(--mk-white); color: var(--mk-primary); border-color: var(--mk-white); }
.mk-button--white .wp-block-button__link:hover { background: var(--mk-gray-200); color: var(--mk-primary); }
.mk-button--block { display: flex; width: 100%; min-height: 56px; box-sizing: border-box; }
.mk-view-all a, .mk-view-all { font-size: 18px; font-weight: 600; color: var(--mk-primary); text-decoration: underline; margin: 0; }
.mk-actions { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 24px; }

label { font-size: 16px; font-weight: 500; color: var(--mk-text); }
.required { color: var(--mk-sale); text-decoration: none; border: 0; }
input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="number"], input[type="url"],
select, textarea {
	min-height: 48px; padding: 10px 14px; border: 1px solid var(--mk-gray-500); border-radius: 0;
	background: var(--mk-white); color: var(--mk-text); font: inherit; max-width: 100%;
}
textarea { min-height: 120px; resize: vertical; width: 100%; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--mk-primary); outline-offset: 0; border-color: var(--mk-primary); }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"], .has-error input, .has-error select { border-color: var(--mk-error); box-shadow: 0 0 0 1px var(--mk-error); }
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; accent-color: var(--mk-primary); }
fieldset { border: 1px solid var(--mk-gray-500); padding: 16px; margin: 0 0 24px; }
legend { font-weight: 600; padding: 0 6px; }
.lp-field-error, .logan-field-error { display: block; color: var(--mk-error); font-size: 14px; font-weight: 600; margin-top: 6px; }
.lp-hint, .logan-hint { display: block; color: var(--mk-muted); font-size: 14px; margin-top: 4px; font-weight: 400; }
.logan-radio { display: flex; gap: 10px; align-items: center; font-weight: 400; padding: 4px 0; }
.woocommerce form .form-row label, .woocommerce-page form .form-row label { display: block; margin-bottom: 8px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select, .woocommerce form .form-row textarea { width: 100%; }

/* Search (shop sidebar, search results, 404) */
.wp-block-search__inside-wrapper { border: 1px solid var(--mk-gray-500); padding: 0 !important; }
.wp-block-search__input { border: 0 !important; min-height: 44px; font-size: 14px; }
.wp-block-search__button { margin: 0 !important; min-height: 44px; padding: 8px 16px; font-size: 14px; }
.mk-search { margin-bottom: 32px; }

/* ==========================================================================
   Top bar (single DEMO / environment indicator, in the reference's announcement-bar slot)
   ========================================================================== */

/* ==========================================================================
   Header
   ========================================================================== */
.mk-header { margin: 0 !important; background: var(--mk-white); position: relative; z-index: 50; }
.mk-nav .wp-block-navigation-item__content { color: var(--mk-text); text-decoration: none; padding: 4px 0; }
.mk-nav .wp-block-navigation-item__content:hover, .mk-nav .current-menu-item > .wp-block-navigation-item__content { text-decoration: underline; text-underline-offset: 6px; }
.mk-header__icons { align-items: center; }
.mk-header__icons .wc-block-customer-account__account-icon, .mk-header__icons .wc-block-mini-cart__icon { width: 24px; height: 24px; }
.mk-header__icons .wc-block-customer-account a { padding: 0; display: flex; color: var(--mk-primary); }
.mk-header__icons .wc-block-mini-cart__button { padding: 0; color: var(--mk-primary); }
.mk-header .wc-block-customer-account__avatar { display: none; } /* local avatars are stripped by the block's HTML filter; the reference shows the line icon */
.mk-status { text-decoration: none; }
.wc-block-mini-cart__badge { background: var(--mk-primary) !important; color: var(--mk-white) !important; }
@media (max-width: 781px) { .mk-header__status { display: none; } }

/* ==========================================================================
   Title band + breadcrumbs (shop, category, cart, checkout, account, pages)
   ========================================================================== */
.mk-titleband { margin-block-start: 0 !important; }
.mk-titleband h1, .mk-titleband .wp-block-query-title, .mk-titleband .wp-block-post-title { margin: 0; font-size: 32px; line-height: 1.1; }
.mk-titleband p { margin: 0; }
.woocommerce-breadcrumb, .mk-breadcrumb, .woocommerce .woocommerce-breadcrumb { font-size: 16px; font-style: italic; color: var(--mk-text) !important; margin: 0; }
.woocommerce-breadcrumb a, .mk-breadcrumb a, .woocommerce .woocommerce-breadcrumb a { color: var(--mk-text) !important; text-decoration: underline; }

/* ==========================================================================
   Product cards (product collections: home sections, shop, related)
   ========================================================================== */
.wc-block-product-template.wc-block-product-template__responsive, .wc-block-product-template.is-flex-container {
	grid-template-columns: repeat(var(--mk-cols, 4), minmax(0, 1fr)) !important; gap: var(--mk-gap) !important;
}
.wc-block-product-template.columns-2 { --mk-cols: 2; }
.wc-block-product-template.columns-3 { --mk-cols: 3; }
.wc-block-product-template.columns-4 { --mk-cols: 4; }
@media (max-width: 781px) { .wc-block-product-template[class*="columns-"] { --mk-cols: 2; } }
@media (max-width: 599px) { .wc-block-product-template[class*="columns-"] { --mk-cols: 1; } }
.wc-block-product { display: flex; flex-direction: column; margin: 0 !important; }
.wc-block-product .wc-block-components-product-image { background: var(--mk-card-image); margin: 0 0 16px !important; }
.wc-block-product .wc-block-components-product-image img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.wc-block-product .wp-block-post-title { font-size: 20px; line-height: 1.2; margin: 0 0 8px !important; }
.wc-block-product .wp-block-post-title a { color: var(--mk-primary); text-decoration: none; }
.wc-block-product .wc-block-components-product-price { font-size: 20px; font-weight: 600; margin: 0 0 6px !important; color: var(--mk-text); }
.wc-block-components-product-price del { color: var(--mk-muted); font-weight: 400; margin-right: 6px; }
.wc-block-components-product-price ins { text-decoration: none; }
.wc-block-product .wc-block-components-product-rating { margin: 0 0 12px !important; }
.wc-block-components-product-rating__stars::before, .star-rating::before { color: var(--mk-gray-500); }
.wc-block-components-product-rating__stars span::before, .star-rating span::before { color: var(--mk-star); }
.wc-block-product .wp-block-woocommerce-product-button { margin-top: auto !important; }
.wc-block-product .wc-block-components-product-button__button { width: 100%; }
.wc-block-components-product-sale-badge { background: var(--mk-sale) !important; color: var(--mk-white) !important; border: 0 !important; border-radius: 0 !important; font-size: 14px !important; font-weight: 500; text-transform: uppercase; padding: 2px 8px !important; margin: 8px !important; }
.wc-block-product .wc-block-components-product-stock-indicator { font-size: 14px; }

/* ==========================================================================
   Home sections (Home page content: Pages > Home)
   ========================================================================== */
.mk-home__content > * + * { margin-block-start: 0; }
.mk-section { padding-block: 40px; }
.mk-section-head { margin-bottom: 24px !important; align-items: center; }
.mk-section-head h2 { margin: 0; }
.mk-section-note { color: var(--mk-muted); font-size: 14px; margin-top: 4px !important; margin-bottom: 0 !important; }
.mk-band > .mk-section-note, .mk-section > .mk-section-note { text-align: center; margin-bottom: 32px !important; }
.mk-band { background: var(--mk-tint); padding-block: 64px; }
.mk-band h2 { text-align: center; }
/* Hero (Cover block) */
.mk-hero.wp-block-cover { min-height: 650px; padding: 0 !important; }
/* Core sets the inner container of a cover with a custom content position to width:auto; the reference card sits in the wide (1284px) area. */
.mk-hero.wp-block-cover.has-custom-content-position > .wp-block-cover__inner-container { width: 100% !important; }
.mk-hero__card { background: var(--mk-white); padding: 40px; max-width: 630px; }
.mk-hero__card h1 { font-size: var(--wp--preset--font-size--huge); color: #000; margin: 0 0 16px; }
.mk-hero__card p { color: #000; margin: 0 0 24px; }
/* Features strip */
.mk-features { padding-block: 40px; }
.mk-features > .mk-features__grid { max-width: var(--wp--style--global--wide-size, 1284px) !important; }
.mk-features__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--mk-gap); }
.mk-features__item { display: flex; align-items: center; gap: 16px; }
.mk-features__item svg { width: 64px; height: 64px; flex: 0 0 64px; }
.mk-features__item h2 { font-size: 18px; margin: 0 0 4px; line-height: 1.2; }
.mk-features__item p { margin: 0; font-size: 16px; color: #000; }
@media (max-width: 1023px) { .mk-features__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .mk-features__grid { grid-template-columns: 1fr; gap: 24px; width: fit-content; margin-inline: auto; } }
/* Tiles and banners (Cover blocks) */
.mk-tiles { gap: var(--mk-gap) !important; }
.mk-tile.wp-block-cover { aspect-ratio: 3 / 4 !important; min-height: 0 !important; height: auto; padding: 32px !important; align-items: flex-end; }
.mk-tile.wp-block-cover.has-custom-content-position > .wp-block-cover__inner-container { width: 100% !important; }
.mk-tile h2, .mk-tile h3 { font-size: 32px; color: var(--mk-primary); margin: 0 0 16px; }
.mk-banners { gap: var(--mk-gap) !important; }
.mk-banners > .wp-block-column { display: flex; flex-direction: column; gap: var(--mk-gap); }
.mk-banner.wp-block-cover { padding: 32px !important; align-items: flex-start; margin: 0 !important; }
.mk-banner.wp-block-cover.has-custom-content-position > .wp-block-cover__inner-container { width: 100% !important; }
.mk-banner--tall.wp-block-cover { min-height: 700px !important; }
.mk-banner:not(.mk-banner--tall).wp-block-cover { min-height: 334px !important; }
.mk-banner h2 { max-width: 420px; margin: 0 0 12px; }
.mk-banner p { max-width: 380px; color: #000; }
.mk-chip, .wp-block-cover .mk-chip { display: inline-block; background: var(--mk-primary); color: var(--mk-white) !important; font-size: 14px; font-weight: 600; text-transform: uppercase; padding: 2px 10px; margin: 0 0 16px !important; }
@media (max-width: 781px) { .mk-banner--tall.wp-block-cover { min-height: 480px !important; } }
/* Testimonials placeholder */
.mk-reviews { gap: var(--mk-gap) !important; }
.mk-review { background: var(--mk-white); padding: 32px; text-align: center; height: 100%; }
.mk-review p { font-style: italic; color: var(--mk-muted); }
.mk-review__who { font-style: normal !important; font-size: 14px; }
/* Articles (Query Loop) */
.mk-articles .wp-block-post-template { gap: var(--mk-gap); }
.mk-articles .wp-block-post-featured-image { margin: 0 0 12px; background: var(--mk-gray-200); }
.mk-articles .wp-block-post-featured-image img { aspect-ratio: 16 / 9; object-fit: cover; }
.mk-articles .wp-block-post-date { font-size: 14px; color: var(--mk-muted); }
.mk-articles .wp-block-post-title { font-size: 18px; margin: 4px 0 8px; }
.mk-articles .wp-block-post-title a { text-decoration: none; color: var(--mk-primary); }
.mk-articles .wp-block-post-excerpt { font-size: 14px; }
.mk-articles .wp-block-post-excerpt__more-link { font-weight: 600; text-decoration: underline; color: var(--mk-primary); }
@media (max-width: 1023px) { .mk-articles .wp-block-post-template.is-layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 599px) { .mk-articles .wp-block-post-template.is-layout-grid { grid-template-columns: 1fr; } }
/* Shop by Category (labeled round images): 8 in a row from 782px; stacked full-width circles below, as in the reference */
.mk-categories { gap: 24px !important; }
.mk-categories .wp-block-column { text-align: center; min-width: 0; }
.mk-categories figure { margin: 0 auto 12px; width: 100%; max-width: 140px; }
.mk-categories figure img { width: 100%; height: auto; aspect-ratio: 1; border-radius: 50%; object-fit: cover; background: var(--mk-white); }
.mk-categories p { margin: 0; font-size: 16px; }
.mk-categories a { color: var(--mk-primary); }
@media (max-width: 781px) {
	.wp-block-columns.mk-categories, .wp-block-columns.mk-categories.is-not-stacked-on-mobile { flex-wrap: wrap !important; }
	.mk-categories > .wp-block-column { flex: 0 0 100% !important; }
	.mk-categories figure { max-width: 358px; }
}

/* ==========================================================================
   Shop archive: sidebar filters + grid (WooCommerce blocks)
   ========================================================================== */
.mk-shop__sidebar { min-width: 0; }
.mk-shop__main { min-width: 0; }
.mk-filters .mk-filter-heading, .mk-filters h3 { font-family: var(--mk-serif); font-size: 16px; text-transform: uppercase; margin: 0 0 10px; }
.mk-filters .wc-block-product-filters__overlay-content > * + * { margin-top: 32px; }
.mk-filters .wc-block-product-filter-checkbox-list__label { font-size: 14px; }
.mk-filters .wc-block-product-filter-checkbox-list__items { gap: 6px; }
.mk-filters .wc-block-product-filter-price-slider input[type="text"] { min-height: 40px; width: 72px; font-size: 14px; }
.mk-filters .wc-block-product-filter-removable-chips__item { border-radius: 0 !important; }
.mk-filters .wc-block-product-filter-clear-button .wp-block-button__link { min-height: 36px; padding: 4px 14px; font-size: 14px; }
.wc-block-product-filters__open-overlay { border: 1px solid var(--mk-gray-500) !important; padding: 8px 14px !important; min-height: 44px; }
.wc-block-product-filters__apply { width: 100%; }
.mk-shop-toolbar { margin-bottom: 24px !important; align-items: center; }
/* category introduction, then the catalog-preview note: core's term-description sets p margins to 0 */
.mk-shop__main .wp-block-term-description p + p { margin-top: .75em; }
.mk-shop-toolbar .woocommerce-result-count { margin: 0; font-size: 14px; }
.mk-shop-toolbar .woocommerce-ordering { margin: 0; }
.mk-shop-toolbar select.orderby { min-height: 40px; font-size: 14px; padding: 6px 12px; }
.wp-block-query-pagination { margin-top: 48px !important; gap: 8px; }
.wp-block-query-pagination .page-numbers { display: inline-flex; min-width: 40px; height: 40px; align-items: center; justify-content: center; text-decoration: none; color: var(--mk-text); }
.wp-block-query-pagination .page-numbers.current { background: var(--mk-primary); color: var(--mk-white); }
.wp-block-query-pagination a { text-decoration: none; color: var(--mk-text); }
@media (max-width: 781px) { .mk-shop.wp-block-columns { flex-wrap: wrap !important; } .mk-shop__sidebar { flex-basis: 100% !important; } }

/* ==========================================================================
   Product detail (WooCommerce single-product blocks)
   ========================================================================== */
.mk-product { align-items: flex-start !important; }
.mk-product__media { position: sticky; top: 24px; }
.mk-product__media .mk-breadcrumb { margin-bottom: 16px !important; }
.mk-product__summary > * { margin-block: 0 16px !important; }
.mk-product__summary .wp-block-post-title { font-size: 32px; }
.mk-product__summary .wc-block-components-product-price, .mk-product__summary .wp-block-woocommerce-product-price { font-size: 20px; font-weight: 600; }
.mk-product__summary .wc-block-components-product-rating__link, .mk-product__summary .woocommerce-review-link { font-style: italic; text-decoration: underline; color: var(--mk-text); font-size: 14px; }
.mk-product__summary .wp-block-post-excerpt__excerpt { margin: 0; }
.stock { display: inline-block; font-size: 14px; padding: 4px 12px; margin: 0 0 16px; background: var(--mk-success-bg); color: var(--mk-success); }
.stock.out-of-stock { background: var(--mk-error-bg); color: var(--mk-error); }
.stock.available-on-backorder { background: var(--mk-warning-bg); color: var(--mk-warning); }
.wc-block-add-to-cart-form form.cart { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.wc-block-add-to-cart-form form.cart:not(.grouped_form) .quantity { width: 100%; max-width: none; display: flex; border: 1px solid var(--mk-gray-500); margin: 0 !important; }
.wc-block-add-to-cart-form .quantity input.qty { flex: 1 1 auto; border: 0 !important; text-align: center; min-height: 54px; font-size: 18px; -moz-appearance: textfield; }
.wc-block-add-to-cart-form .quantity input.qty::-webkit-outer-spin-button, .wc-block-add-to-cart-form .quantity input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.wc-block-components-quantity-selector__button { background: none !important; border: 0 !important; width: 56px; font-size: 22px; color: var(--mk-text) !important; cursor: pointer; }
.wc-block-add-to-cart-form .single_add_to_cart_button { width: 100%; min-height: 56px; }
/* Variable products (reference): label left, compact select right; compact stepper + button in one row. */
.wc-block-add-to-cart-form table.variations { width: auto; border-collapse: collapse; }
.wc-block-add-to-cart-form table.variations th, .wc-block-add-to-cart-form table.variations td { display: table-cell; padding: 0 0 12px; vertical-align: middle; }
.wc-block-add-to-cart-form table.variations th.label { padding-right: 16px; font-size: 14px; font-weight: 400; }
.wc-block-add-to-cart-form table.variations th.label label { font-size: 14px; font-weight: 400; margin: 0; }
.wc-block-add-to-cart-form table.variations select { width: auto; min-width: 180px; height: auto; min-height: 40px; line-height: 1.4; padding: 6px 12px; font-size: 14px; }
.wc-block-add-to-cart-form .variations_form .woocommerce-variation-add-to-cart { display: flex; flex-direction: row; flex-wrap: wrap; gap: 12px; align-items: stretch; }
.wc-block-add-to-cart-form .variations_form .quantity { width: auto !important; flex: 0 0 140px; }
.wc-block-add-to-cart-form .variations_form .quantity input.qty { min-height: 44px; }
.wc-block-add-to-cart-form .variations_form .single_add_to_cart_button { width: auto; min-height: 46px; flex: 0 0 auto; }
.wc-block-add-to-cart-form .reset_variations { font-size: 14px; }
.wc-block-add-to-cart-form .woocommerce-variation-price { font-size: 20px; font-weight: 600; margin-bottom: 8px; }
.wc-block-add-to-cart-form .group_table { width: 100%; border-collapse: collapse; }
.wc-block-add-to-cart-form .group_table td { padding: 8px 6px; border-bottom: 1px solid var(--mk-gray-500); vertical-align: middle; }
.wc-block-add-to-cart-form .group_table .quantity { width: 140px; }
.mk-purchase-access { display: grid; gap: 16px; margin-top: 8px; }
.mk-purchase-access .logan-notice { margin: 0; }
.mk-purchase-access .mk-cart-cta { margin: 0; }
.mk-product__meta { font-size: 14px; }
.mk-product__meta .wp-block-post-terms__prefix { text-transform: uppercase; font-weight: 500; }
.mk-product__meta a { color: var(--mk-text); text-decoration: none; }
/* Product details accordion (core Accordion inside WooCommerce Product Details) */
.mk-details { border-top: 1px solid var(--mk-gray-500); }
.mk-details .wp-block-accordion-item { border-bottom: 1px solid var(--mk-gray-500); }
.mk-details .wp-block-accordion-heading { margin: 0; font-size: 20px; }
.mk-details .wp-block-accordion-heading__toggle { width: 100%; display: flex; justify-content: space-between; align-items: center; background: none; border: 0; padding: 18px 0; font-family: var(--mk-serif); font-weight: 700; font-size: 18px; color: var(--mk-primary); cursor: pointer; text-align: left; }
.mk-details .wp-block-accordion-panel { padding: 0 0 24px; }
.mk-details .wp-block-accordion-panel h3 { font-size: 20px; }
.mk-details table { width: 100%; border-collapse: collapse; }
.mk-details table th, .mk-details table td { text-align: left; padding: 8px 12px 8px 0; border-bottom: 1px solid var(--mk-gray-500); }
.mk-placeholder-note { display: inline-block; background: var(--mk-warning-bg); color: var(--mk-warning); font-size: 13px; font-weight: 600; padding: 1px 8px; margin-bottom: 8px; }
/* Reviews */
.wp-block-woocommerce-product-reviews-title { font-size: 20px; }
.wp-block-woocommerce-product-review-template { list-style: none; padding: 0; margin: 0 0 24px; }
.wp-block-woocommerce-product-review-template > li { border-bottom: 1px solid var(--mk-gray-500); padding: 16px 0; }
.wp-block-woocommerce-product-review-author-name { font-weight: 600; }
.wp-block-woocommerce-product-review-date { font-size: 14px; color: var(--mk-muted); }
.wp-block-woocommerce-product-review-date a { color: var(--mk-muted); }
.wp-block-woocommerce-product-review-form .comment-reply-title { font-family: var(--mk-serif); font-weight: 700; font-size: 20px; display: block; margin-bottom: 8px; }
.wp-block-woocommerce-product-review-form .comment-form-rating .stars button { color: var(--mk-star); }
.wp-block-woocommerce-product-review-form input[type="text"], .wp-block-woocommerce-product-review-form input[type="email"] { width: 100%; }
/* Related */
.mk-related { margin-top: 24px !important; }
.mk-related__title { font-size: var(--wp--preset--font-size--xx-large); margin-bottom: 32px !important; }
/* Gallery (WooCommerce Product Gallery block) */
.wc-block-product-gallery-large-image { background: var(--mk-card-image); }
.wc-block-product-gallery-thumbnails__thumbnail { background: var(--mk-card-image); }
.wc-block-product-gallery-thumbnails__thumbnail__image--is-active { outline: 1px solid var(--mk-primary); }
.wc-block-next-previous-buttons__button { background: var(--mk-white) !important; border-radius: 0 !important; }
@media (max-width: 781px) { .mk-product__media { position: static; } }

/* ==========================================================================
   Notices (plugin + WooCommerce), qualification status, steps
   ========================================================================== */
.logan-notice, .lp-notice, .woocommerce-error, .woocommerce-message, .woocommerce-info, .woocommerce-notice {
	list-style: none; margin: 0 0 24px; padding: 12px 16px; border: 0; border-left: 4px solid currentColor; background: var(--mk-info-bg); color: var(--mk-text);
}
.woocommerce-error::before, .woocommerce-message::before, .woocommerce-info::before { display: none !important; content: none !important; }
.woocommerce-error li, .woocommerce-message li, .woocommerce-info li { margin: 0; }
.logan-notice-info, .lp-notice--info, .woocommerce-info { background: var(--mk-info-bg); border-left-color: var(--mk-info); }
.logan-notice-success, .lp-notice--success, .woocommerce-message { background: var(--mk-success-bg); border-left-color: var(--mk-success); }
.logan-notice-error, .lp-notice--error, .woocommerce-error { background: var(--mk-error-bg); border-left-color: var(--mk-error); }
.lp-notice--payment { background: var(--mk-warning-bg); border-left-color: var(--mk-warning); }
.woocommerce-message .button, .woocommerce-info .button { min-height: 36px; padding: 4px 14px; font-size: 15px; float: right; margin-left: 12px; }
.logan-purchase-notice a, .lp-notice a { font-weight: 600; }
.lp-commerce-notices { margin-bottom: 8px; }
.lp-badge, .logan-badge { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; font-size: 13px; font-weight: 600; line-height: 1.5; white-space: nowrap; background: var(--mk-info-bg); color: var(--mk-info); }
.lp-badge--pending, .logan-status-pending .logan-badge { background: var(--mk-warning-bg); color: var(--mk-warning); }
.lp-badge--approved, .logan-status-approved .logan-badge { background: var(--mk-success-bg); color: var(--mk-success); }
.lp-badge--rejected, .logan-status-rejected .logan-badge, .lp-badge--revoked, .logan-status-revoked .logan-badge { background: var(--mk-error-bg); color: var(--mk-error); }
.logan-status { display: grid; gap: 6px; border: 1px solid var(--mk-gray-500); padding: 16px; margin: 0 0 24px; }
.logan-status strong { font-size: 13px; text-transform: uppercase; letter-spacing: .06em; }
.logan-status p { margin: 0; }
.logan-qual { max-width: 1000px; }
.logan-form p { margin-bottom: 24px; }
.logan-form input[type="text"], .logan-form select, .logan-form textarea { width: 100%; max-width: 640px; box-sizing: border-box; }
.logan-summary { display: grid; grid-template-columns: minmax(140px, max-content) 1fr; gap: 8px 24px; }
.logan-summary dt { font-weight: 600; }
.logan-summary dd { margin: 0; }
.lp-steps, .logan-steps { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 12px; counter-reset: lp-step; }
.lp-steps li, .logan-steps li { counter-increment: lp-step; position: relative; padding-left: 44px; min-height: 32px; display: flex; align-items: center; }
.lp-steps li::before, .logan-steps li::before { content: counter(lp-step); position: absolute; left: 0; top: 0; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--mk-primary); font-weight: 700; font-size: 14px; }
.logan-steps { display: flex; flex-wrap: wrap; gap: 12px 32px; }
.logan-steps li.is-done::before { content: "\2713"; background: var(--mk-primary); color: var(--mk-white); }
.logan-steps li.is-current { font-weight: 700; }
.logan-steps li.is-current::before { background: var(--mk-primary); color: var(--mk-white); }
.lp-empty { padding: 32px; border: 1px solid var(--mk-gray-500); text-align: center; }
.mk-box { border: 1px solid var(--mk-gray-500); padding: 24px; }
.lp-next-steps { margin-top: 32px; }
.lp-next-steps h2 { font-size: 24px; }

/* ==========================================================================
   Account, sign-in / register
   ========================================================================== */
.u-columns.col2-set, .woocommerce .col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--mk-gap); width: 100%; }
.u-columns.col2-set::before, .u-columns.col2-set::after, .woocommerce .col2-set::before, .woocommerce .col2-set::after { display: none; }
.u-columns .u-column1, .u-columns .u-column2, .woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { width: auto !important; float: none !important; }
.u-columns h2 { font-size: 24px; }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--mk-gray-500); padding: 16px; margin: 0; border-radius: 0; }
.woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce form.login .button, .woocommerce form.register .button { text-transform: uppercase; }
.woocommerce-form-login__rememberme { display: inline-flex; gap: 8px; align-items: center; font-weight: 400; margin: 8px 0 16px; }
.woocommerce-LostPassword a { text-decoration: underline; font-size: 18px; }
.woocommerce-privacy-policy-text { font-size: 14px; }
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: var(--mk-gap); }
.woocommerce-account .woocommerce::before, .woocommerce-account .woocommerce::after { display: none !important; content: none !important; }
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-account:not(.logged-in) .woocommerce { display: block; max-width: 1000px; margin-inline: auto; }
.woocommerce-MyAccount-navigation { width: auto !important; float: none !important; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; border: 1px solid var(--mk-gray-500); }
.woocommerce-MyAccount-navigation li + li { border-top: 1px solid var(--mk-gray-500); }
.woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; color: var(--mk-text); text-decoration: none; }
.woocommerce-MyAccount-navigation .is-active a { background: var(--mk-primary); color: var(--mk-white); }
.woocommerce-MyAccount-content { width: auto !important; float: none !important; min-width: 0; }
table.shop_table { width: 100%; border-collapse: collapse; border: 1px solid var(--mk-gray-500); }
table.shop_table th, table.shop_table td { padding: 12px 14px; border-bottom: 1px solid var(--mk-gray-500); text-align: left; }
.woocommerce-password-strength, .password-input { width: 100%; }
@media (max-width: 781px) { .u-columns.col2-set, .woocommerce .col2-set { grid-template-columns: 1fr; } .woocommerce-account .woocommerce { grid-template-columns: 1fr; } }

/* ==========================================================================
   Cart, checkout, mini cart (WooCommerce blocks)
   ========================================================================== */
.wp-block-woocommerce-empty-cart-block .wp-block-heading, .wc-block-cart__empty-cart__title { font-family: var(--mk-serif); font-size: 40px; text-align: center; }
.wp-block-woocommerce-empty-cart-block .wc-block-cart__empty-cart__title::before { display: none !important; }
.wp-block-woocommerce-cart h2, .wp-block-woocommerce-checkout h2, .wc-block-components-title { font-family: var(--mk-serif); font-weight: 700; color: var(--mk-primary); }
.wc-block-components-product-name { color: var(--mk-primary); font-weight: 600; }
.wc-block-components-notice-banner { border-radius: 0 !important; }
.wc-block-mini-cart__drawer .wc-block-mini-cart__title { font-family: var(--mk-serif); font-weight: 700; }
.wc-block-mini-cart__drawer .wc-block-components-button, .wc-block-mini-cart__shopping-button { border-radius: 0 !important; }
.wc-block-components-drawer__screen-overlay { z-index: 100000; }
.wp-block-separator.is-style-dots::before { color: var(--mk-muted); }

/* ==========================================================================
   Footer
   ========================================================================== */
.mk-footer { margin-block-start: 0 !important; }
.mk-footer h4 { font-family: var(--mk-serif); font-size: 16px; text-transform: uppercase; margin: 0; letter-spacing: .01em; }
.mk-footer p { margin: 0; }
.mk-footer .wp-block-site-title a { color: var(--mk-white); }
.mk-footer__brand p { max-width: 480px; margin-top: 16px; }
.mk-footer__col { display: flex; flex-direction: column; gap: 32px; }
.mk-footer__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 14px; }
.mk-footer__links a { color: var(--mk-white); text-decoration: none; }
.mk-footer__links a:hover { text-decoration: underline; }
.mk-na { color: #D6D3D1; }
.mk-na__note { color: #A8A29E; font-size: 12px; white-space: nowrap; }
.mk-footer__app { border: 1px solid #3a3a3d; padding: 12px 16px; font-size: 14px; color: #D6D3D1; }
.mk-footer__bottom { font-size: 14px; }
@media (max-width: 1023px) { .mk-footer__columns { flex-wrap: wrap !important; } .mk-footer__brand { flex-basis: 100% !important; } .mk-footer__spacer { display: none; } .mk-footer__col { flex-basis: calc(33.33% - 24px) !important; } }
@media (max-width: 599px) { .mk-footer__col { flex-basis: 100% !important; } }

/* ==========================================================================
   Pages with reference layouts (About, Contact, placeholders)
   ========================================================================== */
.mk-placeholder-banner { background: var(--mk-warning-bg); color: var(--mk-warning); padding: 12px 16px; border-left: 4px solid var(--mk-warning); font-size: 15px; }
.logan-editor-placeholder { display: inline-block; padding: 4px 10px; border: 1px dashed var(--mk-gray-500); font-size: 13px; color: var(--mk-muted); }
.mk-center { text-align: center; }
.mk-team__avatar { width: 140px; height: 140px; border-radius: 50%; background: var(--mk-gray-200); border: 1px solid var(--mk-gray-500); margin: 0 auto 16px !important; }

/* Rating stars: reference colors (filled #F7B538 on light-gray empty stars) */
.wc-block-components-product-rating__stars, .wc-block-product-review-rating__stars, .star-rating { color: var(--mk-gray-500) !important; }
.wc-block-components-product-rating__stars span, .wc-block-components-product-rating__stars span::before,
.wc-block-product-review-rating__stars span, .wc-block-product-review-rating__stars span::before,
.star-rating span, .star-rating span::before { color: var(--mk-star) !important; }
.wc-block-components-product-rating__stars::before, .wc-block-product-review-rating__stars::before, .star-rating::before { color: var(--mk-gray-500) !important; }
/* The reference's sidebar rating filter uses black stars (cards use yellow). */
.mk-filters .wc-block-product-filter-checkbox-list__stars svg, .mk-filters .wc-block-product-filter-checkbox-list__stars { color: var(--mk-primary); fill: var(--mk-primary); }
.wc-block-add-to-cart-form .group_table .button, .wc-block-add-to-cart-form .group_table .wp-element-button { min-height: 36px; padding: 6px 12px; font-size: 14px; white-space: nowrap; }
.wc-block-add-to-cart-form .group_table .woocommerce-grouped-product-list-item__label a { color: var(--mk-text); }

/* Title band: breadcrumbs share the wide alignment of the title (the block has no align setting). */
.mk-titleband > .wp-block-woocommerce-breadcrumbs, .mk-titleband > .woocommerce-breadcrumb { max-width: var(--wp--style--global--wide-size, 1284px) !important; margin-left: auto !important; margin-right: auto !important; width: 100%; }
/* Account and qualification pages: the reference uses a ~1000px box instead of the 768px text width. */
.mk-page__body .wp-block-post-content > .woocommerce, .mk-page__body .wp-block-post-content > .logan-qual, .mk-page__body .wp-block-post-content > .logan-access { max-width: 1000px !important; }
.mk-blogband { text-align: center; }
.mk-blogband h1 { color: var(--mk-white); font-size: 40px !important; }
.mk-blogband p { color: var(--mk-white); max-width: 560px !important; margin-inline: auto !important; }
.mk-blog .wp-block-post-title { font-size: 20px; }
.mk-blog .wp-block-post-excerpt__more-link { font-style: italic; }
.wc-block-mini-cart__drawer .wc-block-components-drawer__close { background: var(--mk-gray-200) !important; border: 0 !important; width: 44px; height: 44px; top: 24px !important; right: 24px !important; display: flex; align-items: center; justify-content: center; }

/* ==========================================================================
   Catalog preview V1: brand, catalog states, specification options and table
   ========================================================================== */
/* Price and availability */
.lp-price-pending { font-weight: 600; color: var(--mk-primary); }
/* price and status always on two lines, so cards in a row line up */
.wc-block-components-product-price:has(.lp-status) { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.has-text-align-center .wc-block-components-product-price:has(.lp-status), .wc-block-components-product-price.has-text-align-center:has(.lp-status), .wc-block-product .wc-block-components-product-price:has(.lp-status) { align-items: center; }
.stock.lp-availability-pending { background: var(--mk-gray-200); color: var(--mk-muted); }

/* Status chips: confirmed / reference / pending / extended */
.lp-status { display: inline-block; font-size: 12px; font-weight: 600; line-height: 1.5; padding: 1px 8px; border-radius: 999px; white-space: nowrap; vertical-align: middle; background: var(--mk-info-bg); color: var(--mk-info); }
.lp-status--confirmed { background: var(--mk-success-bg); color: var(--mk-success); }
.lp-status--pending { background: var(--mk-warning-bg); color: var(--mk-warning); }
.lp-status--extended { background: var(--mk-white); color: var(--mk-primary); border: 1px solid #BFD3C8; }

/* Product page: specification options panel (in the add-to-cart slot) */
.lp-catalog-panel { margin: 0 0 24px; }
.lp-catalog-panel__title { font-weight: 600; margin: 0 0 10px; }
.lp-catalog-panel__title span { font-weight: 400; font-size: 14px; color: var(--mk-muted); }
.lp-spec-options { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.lp-spec-option { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--mk-gray-500); padding: 6px 10px; font-size: 15px; background: var(--mk-white); }
.lp-pending-box { border: 1px dashed var(--mk-muted); padding: 10px 14px; margin: 0 0 16px; font-weight: 600; color: var(--mk-muted); }
.lp-preview-notice { background: var(--mk-tint); padding: 12px 16px; margin: 0; font-size: 15px; }

/* Product page: specification table (Additional Information) */
.lp-specs__table, .lp-specs__options { width: 100%; border-collapse: collapse; margin: 0 0 16px; font-size: 15px; }
.lp-specs__table th, .lp-specs__table td, .lp-specs__options th, .lp-specs__options td { border: 1px solid var(--mk-gray-500); padding: 8px 12px; text-align: left; vertical-align: top; }
.lp-specs__table th { width: 34%; font-weight: 600; background: var(--mk-gray-200); }
.lp-specs__options thead th { background: var(--mk-gray-200); font-weight: 600; }
.lp-specs__scroll { overflow-x: auto; }
.lp-specs__heading { font-size: 18px; margin: 24px 0 4px; }
.lp-specs__note { color: var(--mk-muted); font-size: 14px; margin: 0 0 10px; }
.lp-specs__pending { columns: 2; column-gap: 32px; margin: 0 0 8px; padding-left: 20px; }
.lp-specs__table code { font-size: 13px; word-break: break-all; }
@media (max-width: 600px) { .lp-specs__pending { columns: 1; } .lp-specs__table th { width: 40%; } }

/* Shop sidebar: price note instead of a price filter */
.lp-filter-note { color: var(--mk-muted); margin-top: 24px !important; }

/* Home: status legend (in the reference's review-card slot) and five category entries */
.lp-legend p:first-child { margin: 0 0 12px; }
.lp-legend .lp-status { font-size: 14px; padding: 3px 12px; }
.mk-categories.wp-block-columns { flex-wrap: nowrap; }
@media (max-width: 1024px) and (min-width: 782px) { .mk-categories.wp-block-columns { flex-wrap: wrap !important; justify-content: center; } .mk-categories > .wp-block-column { flex: 0 0 calc(33.333% - 24px) !important; } }

/* About / Contact */
.mk-pagehero.wp-block-cover h1 { color: #000; }
.mk-about__logo { max-width: 480px; margin: 0 auto !important; }

/* ==========================================================================
   Brand system (2026-10-25): warm white, deep emerald, charcoal, champagne
   Drawn from the approved artwork "Polished LOGAN PEPTIDES with DNA accents".
   Colors are theme.json presets (Appearance > Editor > Styles > Colors); the
   aliases below keep the older component rules above on the same palette.
   ========================================================================== */
:root, .editor-styles-wrapper {
	--lp-canvas: var(--wp--preset--color--canvas, #FAF7F2);
	--lp-emerald-dark: var(--wp--preset--color--primary-dark, #08362B);
	--lp-ink: var(--wp--preset--color--ink, #0F1F1A);
	--lp-gold: var(--wp--preset--color--accent, #C5A27C);
	--lp-gold-text: var(--wp--preset--color--accent-text, #8B6A45);
	--mk-info: var(--wp--preset--color--primary, #0D4A3B);
	--mk-info-bg: var(--wp--preset--color--tint, #EAF1EC);
	--mk-success: #1E5E44;
	--mk-success-bg: #E3EFE7;
	--mk-warning: #7A5A14;
	--mk-warning-bg: #F6EFDF;
	--mk-card-image: #F3EEE6;
	--mk-gap: 28px;
	--lp-radius: 6px;
	--lp-radius-card: 10px;
	--lp-shadow: 0 1px 2px rgba(15, 31, 26, .04), 0 8px 24px rgba(15, 31, 26, .07);
}
body { background: var(--lp-canvas); }
a { text-underline-offset: 3px; }
h1, h2, h3, h4, h5, h6 { color: var(--mk-text); }

/* Buttons: emerald, rounded 6px; outline and white variants */
.button, button.button, .wp-element-button, .wp-block-button__link, input[type="submit"],
.woocommerce a.button, .woocommerce button.button, .wc-block-components-button:not(.is-link), .wc-block-components-product-button__button {
	min-height: 46px; padding: 11px 22px; border-radius: var(--lp-radius); font-size: 16px; font-weight: 600;
	background: var(--mk-primary); border-color: var(--mk-primary);
}
.button:hover, .wp-element-button:hover, .wp-block-button__link:hover, .woocommerce a.button:hover, .woocommerce button.button:hover,
.wc-block-components-button:not(.is-link):hover, .wc-block-components-product-button__button:hover { background: var(--lp-emerald-dark); border-color: var(--lp-emerald-dark); }
.wp-block-button.is-style-outline > .wp-block-button__link, .mk-button--outline { border-width: 1.5px; background: transparent; color: var(--mk-primary); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover, .mk-button--outline:hover { background: var(--mk-primary); color: var(--mk-white); }
.mk-button--white .wp-block-button__link { background: var(--mk-white); color: var(--mk-primary); border-color: var(--mk-white); }
.mk-button--white .wp-block-button__link:hover { background: var(--lp-canvas); color: var(--lp-emerald-dark); border-color: var(--lp-canvas); }
input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="number"], input[type="url"], select, textarea { border-radius: var(--lp-radius); border-color: #D6CDBE; }
.mk-view-all a, .mk-view-all { font-size: 15px; color: var(--mk-primary); text-underline-offset: 5px; }


/* Header: compact wordmark, charcoal navigation, champagne active rule */
.mk-header { background: var(--lp-canvas); border-bottom: 1px solid var(--mk-gray-500); }
.mk-header .wp-block-site-logo img { width: 126px; height: auto; display: block; border-radius: 3px; } /* compact wordmark, 2.62 : 1, cut from the approved artwork */
.mk-header .wp-block-site-logo a { display: block; }
.mk-nav .wp-block-navigation-item__content { font-size: 15px; font-weight: 500; color: var(--mk-text); }
.mk-nav .wp-block-navigation-item__content:hover, .mk-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--mk-primary); text-decoration: underline; text-decoration-color: var(--lp-gold); text-decoration-thickness: 2px; text-underline-offset: 8px; }
.mk-header__icons .wc-block-customer-account a, .mk-header__icons .wc-block-mini-cart__button { color: var(--mk-text); }
@media (max-width: 1100px) { .mk-header .wp-block-site-logo img { width: 112px; } }
@media (max-width: 600px) {
	.mk-header.wp-block-group { padding-top: 10px !important; padding-bottom: 10px !important; }
	.mk-header .wp-block-site-logo img { width: 100px; }
	.mk-header .wp-block-site-logo { flex-shrink: 0; }
	.mk-header .mk-header__end { gap: 14px !important; }
	.mk-header .mk-header__icons { gap: 12px !important; }
}

/* Title bands and breadcrumbs */
.mk-titleband h1, .mk-titleband .wp-block-query-title, .mk-titleband .wp-block-post-title { font-size: 36px; }
.woocommerce-breadcrumb, .mk-breadcrumb, .woocommerce .woocommerce-breadcrumb { font-size: 14px; font-style: normal; color: var(--mk-muted) !important; }
.woocommerce-breadcrumb a, .mk-breadcrumb a, .woocommerce .woocommerce-breadcrumb a { color: var(--mk-muted) !important; text-underline-offset: 3px; }

/* Product cards: white surface, warm border, 10px radius; text inset 16px */
.wc-block-product { background: var(--mk-white); border: 1px solid var(--mk-gray-500); border-radius: var(--lp-radius-card); overflow: hidden; padding-bottom: 16px; transition: box-shadow .2s ease, border-color .2s ease; }
.wc-block-product:hover { box-shadow: var(--lp-shadow); border-color: #D6CDBE; }
.wc-block-product .wc-block-components-product-image { margin: 0 0 14px !important; }
.wc-block-product > :not(.wc-block-components-product-image) { padding-inline: 16px; }
.wc-block-product .wp-block-post-title { font-size: 18px; line-height: 1.25; margin: 0 0 8px !important; }
.wc-block-product .wp-block-post-title a { color: var(--mk-text); }
.wc-block-product .wp-block-post-title a:hover { color: var(--mk-primary); }
.wc-block-product .wc-block-components-product-price { font-size: 15px; margin: 0 0 14px !important; }
.lp-price-pending { color: var(--mk-text); }
.wc-block-product .wc-block-components-product-button__button { min-height: 42px; font-size: 15px; }

/* Status chips (confirmed / reference / pending / extended) */
.lp-status { padding: 2px 9px; border: 1px solid transparent; font-size: 12px; letter-spacing: .01em; }
.lp-status--confirmed { background: #E3EFE7; color: #1E5E44; }
.lp-status--reference { background: #F4ECE1; color: #6E5333; }
.lp-status--pending { background: #EEEBE5; color: #5B605C; }
.lp-status--extended { background: var(--mk-white); color: var(--mk-primary); border-color: #BFD3C8; }
.stock.lp-availability-pending { border-radius: 999px; background: #EEEBE5; color: #5B605C; font-size: 13px; padding: 3px 12px; }

/* Shop: sidebar, filters, toolbar, pagination */
.mk-shop__sidebar .mk-search .wp-block-search__inside-wrapper { border-radius: var(--lp-radius); overflow: hidden; border-color: #D6CDBE; background: var(--mk-white); }
.mk-shop__sidebar .wp-block-search__button { border-radius: 0; }
.mk-filters .mk-filter-heading, .mk-filters h3 { font-family: var(--mk-sans); font-size: 12px; font-weight: 700; letter-spacing: .1em; color: var(--mk-text); }
.mk-filters .wc-block-product-filters__overlay-content > * + * { margin-top: 0; padding-top: 22px; margin-block-start: 22px; border-top: 1px solid var(--mk-gray-500); }
.mk-filters .wc-block-product-filter-checkbox-list__label { font-size: 14px; color: var(--mk-text); }
.mk-filters .wc-block-product-filter-removable-chips__item { border-radius: 999px !important; border-color: #BFD3C8 !important; background: var(--mk-tint) !important; }
.lp-filter-note { font-size: 13px !important; border-left: 2px solid var(--lp-gold); padding-left: 10px; }
.wc-block-product-filters__open-overlay { border-radius: var(--lp-radius); background: var(--mk-white) !important; }
.mk-shop-toolbar select.orderby, .mk-shop-toolbar select { border-radius: var(--lp-radius); }
.wp-block-query-pagination .page-numbers { border-radius: var(--lp-radius); }
.wp-block-query-pagination a.page-numbers:hover { background: var(--mk-gray-200); }
.wp-block-query-pagination .page-numbers.current { background: var(--mk-primary); }

/* Product page */
.mk-product__summary .wp-block-post-title { font-size: 38px; line-height: 1.12; }
.wc-block-product-gallery-large-image, .wc-block-product-gallery-thumbnails__thumbnail { border-radius: var(--lp-radius-card); overflow: hidden; }
.wc-block-product-gallery-thumbnails__thumbnail__image--is-active { outline: 2px solid var(--mk-primary); }
.lp-spec-option { border-radius: var(--lp-radius); border-color: #D6CDBE; }
.lp-pending-box { border-radius: var(--lp-radius); }
.lp-preview-notice { background: var(--mk-tint); border-left: 3px solid var(--mk-primary); border-radius: var(--lp-radius); color: var(--mk-text); }
.mk-details .wp-block-accordion-heading__toggle { font-weight: 400; font-size: 20px; color: var(--mk-text); }
.lp-specs__table th, .lp-specs__options thead th { background: #F6F2EB; }
.lp-specs__table th, .lp-specs__table td, .lp-specs__options th, .lp-specs__options td { border-color: var(--mk-gray-500); }

/* Notices, qualification and account */
.logan-notice, .lp-notice, .woocommerce-error, .woocommerce-message, .woocommerce-info, .woocommerce-notice { border-radius: var(--lp-radius); }
.logan-notice-info, .lp-notice--info, .woocommerce-info { background: var(--mk-tint); border-left-color: var(--mk-primary); }
.logan-status, .mk-box, .lp-empty, .woocommerce form.login, .woocommerce form.register { background: var(--mk-white); border-color: var(--mk-gray-500); border-radius: var(--lp-radius-card); }
.lp-steps li::before, .logan-steps li::before { border-radius: 50%; border-color: var(--mk-primary); color: var(--mk-primary); }
.logan-steps li.is-done::before, .logan-steps li.is-current::before { color: var(--mk-white); }
.lp-badge, .logan-badge { border-radius: 999px; }
.woocommerce-MyAccount-navigation ul { border-radius: var(--lp-radius-card); overflow: hidden; background: var(--mk-white); }

/* Home: hero on the warm off-white background (text only; the artwork stays in the navigation bar) */
.mk-statement { display: flex; align-items: center; gap: 12px; margin: 0 0 20px !important; font-size: 12px; font-weight: 700; letter-spacing: .24em; text-transform: uppercase; color: var(--lp-gold-text); }
.mk-statement::before { content: ""; flex: 0 0 32px; height: 1px; background: var(--lp-gold); }
.mk-hero-plain.wp-block-group { background: var(--lp-canvas); padding-block: 60px 64px !important; text-align: center; }
.mk-hero-plain__content { margin-inline: auto; }
.mk-hero-plain .mk-statement { justify-content: center; margin-bottom: 20px !important; }
.mk-hero-plain .mk-statement::after { content: ""; flex: 0 0 32px; height: 1px; background: var(--lp-gold); }
.mk-hero-plain h1 { margin: 0 auto 22px; max-width: 17ch; text-wrap: balance; font-size: clamp(42px, 4.6vw, 64px); line-height: 1.06; color: var(--mk-text); }
.mk-hero-plain .mk-hero__lede { max-width: 540px; margin: 0 auto 30px !important; font-size: 18px; line-height: 1.6; color: #3E4441; }
.mk-hero-plain .wp-block-buttons { justify-content: center; gap: 12px; }
@media (max-width: 781px) {
	.mk-hero-plain.wp-block-group { padding-block: 40px 44px !important; }
	.mk-hero-plain h1 { font-size: 36px; }
	.mk-hero-plain .mk-hero__lede { font-size: 16px; margin-bottom: 28px !important; }
	.mk-hero-plain .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.mk-hero-plain .wp-block-button, .mk-hero-plain .wp-block-button__link { width: 100%; }
}

/* Home: sections below the fold */
.mk-section { padding-block: 56px; }
.mk-section-head h2, .mk-band h2, .mk-related__title { font-size: clamp(30px, 2.6vw, 38px); }
.mk-section-note { color: var(--mk-muted); }
.mk-features { padding-block: 36px; }
.mk-features__item svg g { stroke: var(--mk-primary); }
.mk-features__item svg circle { fill: var(--mk-white); }
.mk-features__item h2 { font-size: 19px; font-weight: 400; }
.mk-features__item p { color: var(--mk-muted); font-size: 15px; }
.mk-tile.wp-block-cover, .mk-banner.wp-block-cover { border-radius: var(--lp-radius-card); overflow: hidden; }
.mk-tile h2, .mk-tile h3, .mk-banner h2 { color: var(--mk-text); font-weight: 400; }
.mk-banner p { color: #3E4441; }
.mk-chip, .wp-block-cover .mk-chip { border-radius: 999px; background: var(--mk-primary); font-size: 12px; letter-spacing: .08em; padding: 3px 12px; }
.mk-band:not(.has-background) { background: transparent; }
.mk-review { background: var(--mk-white); border: 1px solid var(--mk-gray-500); border-radius: var(--lp-radius-card); }
.mk-review p { font-style: normal; color: var(--mk-muted); }
.mk-categories figure img { border: 1px solid var(--mk-gray-500); }
.mk-categories a { color: var(--mk-text); font-weight: 500; text-decoration: none; }
.mk-categories a:hover { color: var(--mk-primary); text-decoration: underline; }

/* Footer (2026-10-26): the approved artwork's own background behind a compact row.
   assets/img/logan-footer-art-left.png and -right.png (scripts/catalog/build_footer_background.py) are the
   artwork with its lettering removed, scaled uniformly to the footer height (216 px on desktop): on the left
   the complete helix and its particles, the warm gold light at the lower left and the left bokeh; on the right
   the rose light at the upper right and the right bokeh. They lie over the emerald of the artwork's calm middle.
   On desktop the left art is 165 px tall (scale .764), from the top to the rule above the bottom row, fading out
   toward it, so the copyright and payment line stay on plain emerald; the rose light uses the same scale. The left layer is anchored to
   the content: the helix rises from just above the copyright, beside the wordmark, to its upper right, inside
   the 328 px brand column, so no link sits on it. The wordmark stays the separate transparent
   image, upper left.
   The decoration is a pseudo-element behind the content; container units (cqw) give it the content position. */
.mk-footer.wp-block-group {
	--fa-k: .764;       /* art height / 216 px: 165 px, down to the rule above the bottom row */
	--fa-dx: 170px;     /* the art's origin from the content's left edge (its continuation lies to the left of that):
	                       the helix then clears the wordmark at every height and ends 324 px from the content edge */
	--fa-kr: .764;      /* the right layer (rose light, right bokeh) at the same scale: its streak stays beyond the content */
	--fa-fade: 148px;   /* the art fades out from here (the gold light lies in its lowest rows) ... */
	--fa-end: 165px;    /* ... to its lower edge (the rule above the bottom row) */
	position: relative;
	isolation: isolate;
	container-type: inline-size;
	box-sizing: border-box;
	min-height: 216px;
	background-color: #0B4B3D;
	background-image: linear-gradient(180deg, #2F6B58 0%, #1F5E4C 25%, #1E5546 50%, #0B4B3D 75%, #0A4538 100%);
}
.mk-footer.wp-block-group::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	/* the right layer first (on top): the left layer's long fade-out must not cover the rose light */
	background-image: url("assets/img/logan-footer-art-right.png"), url("assets/img/logan-footer-art-left.png");
	background-repeat: no-repeat;
	background-size: auto calc(216px * var(--fa-kr)), auto calc(216px * var(--fa-k));
	/* content left = 16 px padding + (content width - wide row) / 2; the left image starts 194 px (x k) before its art
	   (that part is the original's helix-free upper-left background, beneath the wordmark) */
	background-position: 100% 0, calc(16px + (100cqw - min(var(--wp--style--global--wide-size, 1320px), 100cqw)) / 2 + var(--fa-dx) - 194px * var(--fa-k)) 0;
	-webkit-mask-image: linear-gradient(180deg, #000 0, #000 var(--fa-fade), transparent var(--fa-end));
	mask-image: linear-gradient(180deg, #000 0, #000 var(--fa-fade), transparent var(--fa-end));
}
.mk-footer__columns { column-gap: 28px !important; row-gap: 20px !important; margin-bottom: 0 !important; justify-content: space-between; }
/* two columns (since 2026-10-28, theme 0.7.11: the Catalog column is gone, its five categories are in the
   header's Shop menu): the wordmark on the left, Company & Support on the right (space-between), its six links
   in a grid of three columns x two rows (About / Contact, Qualification / Documentation, Privacy Policy /
   Terms & Conditions), each column as wide as its longest entry. The selectors outrank core's equal-width
   column rule */
.mk-footer .mk-footer__columns > .wp-block-column.mk-footer__brand { flex: 0 0 328px !important; }
.mk-footer .mk-footer__columns > .wp-block-column.mk-footer__col--company { flex: 0 0 auto !important; }
/* Transparent wordmark (RGBA): no rectangle, border or badge. aspect-ratio reserves its space. */
.mk-footer__logo { margin: 0 !important; }
.mk-footer__logo img { width: 208px; height: auto; aspect-ratio: 789 / 253; display: block; }
.mk-footer__logo a { display: inline-block; }
/* heading size restored to 16 px (theme 0.7.24): the size it had until theme 0.5.1, before the 0.6.0 brand redesign reduced it to 12 px
   (snapshot history); family, weight, tracking and colour as since 0.6.0. The links stay 14 px, as in every saved version */
.mk-footer h4 { font-family: var(--mk-sans); font-size: 16px; font-weight: 700; letter-spacing: .14em; line-height: 1.3; color: #FAEEDB !important; margin: 0; }
.mk-footer__group { gap: 9px !important; }
.mk-footer__links { gap: 4px; font-size: 14px; line-height: 1.5; }
.mk-footer__links a { color: #FFFFFF; }
.mk-footer__links a:hover { color: #FAEEDB; text-decoration: underline; }
/* theme 0.7.21: three evenly spaced columns (About / Contact, Qualification / Documentation, Privacy Policy / Terms &
   Conditions), each as wide as the longest label (1fr columns in a section sized to its content), rows aligned; every
   label on one line at its 14 px size */
.mk-footer__links--grid { display: grid; grid-auto-flow: column; grid-template-rows: repeat(2, auto); grid-auto-columns: minmax(max-content, 1fr); column-gap: 40px; row-gap: 4px; }
.mk-footer__links--grid a { white-space: nowrap; }
.mk-footer__links li { overflow-wrap: normal; word-break: normal; }
/* Placeholders: secondary but readable, every item listed and editable */
.mk-na { color: #EEF5F1; }
.mk-na__note { color: #E4EFE9; font-size: 12px; font-style: italic; }
.mk-footer__bottom { border-top-color: rgba(250, 238, 219, .32) !important; row-gap: 4px; column-gap: 24px; }
.mk-footer__bottom p { color: #E9F1EC; margin: 0; }
/* the Payment methods line: 14 px (theme 0.7.21; set here rather than by the x-small preset), wording unchanged */
.mk-footer .mk-footer__bottom .mk-footer__payments { font-size: 14px !important; }
/* Company & Support as one section (theme 0.7.22): the heading and the grid take the section's full width, so
   "COMPANY & SUPPORT" is centred over the three columns (two on phones); the links stay left-aligned in their columns */
.mk-footer .mk-footer__col--company .mk-footer__group { align-items: stretch !important; }
.mk-footer .mk-footer__col--company h4 { text-align: center; }
/* Desktop footer (1260 px and wider; theme 0.7.25, image replaced in 0.7.26, 0.7.27, 0.7.29, 0.7.32, 0.7.33, 0.7.34 and
   0.7.39): one image, Joseph's Logan-Footer-Logo-Down10-3840x526-v12.png (0.7.39; it supersedes v11 of 0.7.34, v10 of 0.7.33, v9 of 0.7.32
   and the earlier ones, all kept in assets; v8 was not applied), copied unchanged, across the whole footer including the copyright row, at
   its own 3840 : 526 proportions over the full width (263 px tall at 1920, no repetition, recoloring or distortion),
   with no art layer (::before), gradient, mask or separate bottom block. v12 differs from v11 only in the lettering,
   20 source px (10 units) lower; v11 had moved it to the header wordmark's position; the helix and background are
   unchanged. Positions measured in the v12 image (in 1920 x 263 units, so they scale with the width): LOGAN PEPTIDES
   lettering x 47.5-299, y 40.5-124 (v11: y 30.5-114, LOGAN 30.5-80,
   PEPTIDES 96-114; midpoint of the whole wordmark 72.25); the helix's lowest strands end at about y 178. Phones and tablets keep the earlier footer */
@media (min-width: 1260px) {
	.mk-footer.wp-block-group {
		aspect-ratio: 3840 / 526;
		height: auto;
		min-height: 0;
		padding-top: max(0px, calc(100% * 30.5 / 1920 - 3.99px)) !important; /* 0.7.34: the visible top of COMPANY & SUPPORT
		   level with LOGAN's top in v11 (y 30.5 of 263; kept in 0.7.39, when v12 lowered the logo by 10 units; padding % refers to the width, 1920 units = the full width); 3 px = the
		   heading's line box top to its capitals' top (16 px, line height 1.3). Measured at 1920 and 1260. 0.7.40: 3.99 px
		   at the heading's 19.2 px (3.6 px scaled, plus 0.39 px from the rounded font ascent; measured), so the capitals stay at y 30.5 */
		padding-bottom: 0 !important;
		background: #003329 url("assets/img/Logan-Footer-Logo-Down10-3840x526-v12.png") no-repeat 0 0 / 100% 100%;
	}
	.mk-footer.wp-block-group::before { content: none; display: none; }
	/* the lettering is part of the image: the footer wordmark stays as the Home link (with its alt text) over it
	   (v12: x 38-308, y 39-125.6 of 1920 x 263, at the wordmark's own 789 : 253 proportions, around the lettering's
	   x 47.5-299, y 40.5-124; 10 units lower than for v11), but is not drawn, so the lettering is not doubled */
	.mk-footer.wp-block-group .mk-footer__logo { position: absolute; left: calc(100% * 38 / 1920); top: calc(100% * 39 / 263); width: calc(100% * 270 / 1920); margin: 0 !important; z-index: 1; }
	.mk-footer.wp-block-group .mk-footer__logo a { display: block; width: 100%; }
	.mk-footer.wp-block-group .mk-footer__logo img { width: 100% !important; height: auto; opacity: 0; } /* !important: the block sets width 208 px inline */
	.mk-footer .mk-footer__columns > .wp-block-column.mk-footer__col--company { position: static; top: auto; }
	/* 0.7.34: the heading, the first link row and the last link row placed separately (font sizes and column positions
	   unchanged). k = the footer width / 1920 = (100cqw + the group's 2 x 16 px side padding) / 1920 (the group is the
	   size container). First row: the visible centre of About / Qualification / Privacy Policy at the wordmark's midpoint
	   (72.25k): 72.25k - (30.5k - 3 px) - 31.79 px (the line box top to the heading's capitals plus the heading's capitals
	   to the first row's visible centre with no gap) = 41.75k - 28.79 px (negative near 1260 px: the line boxes
	   overlap, the visible text does not). Last row: its visible bottom 5 px above the divider, where it was in 0.7.33
	   (263k - 38.19 px): 263k - 38.19 - 72.25k - 26 px (the first row's visible centre to the last row's visible
	   bottom with no row gap) = 190.75k - 64.19 px between the rows */
	.mk-footer .mk-footer__col--company .mk-footer__group { gap: 0 !important; }
	.mk-footer .mk-footer__col--company .mk-footer__links--grid { margin-top: calc((100cqw + 32px) * 41.75 / 1920 - 10.450px); row-gap: calc((100cqw + 32px) * 190.75 / 1920 - 93.382px); } /* 0.7.35 and 0.7.36: the first row 8 px lower in all (margin +8 px, row gap -8 px; the last row stays); 0.7.37: the last row 5 px higher (row gap -5 px); 0.7.38: the first row 15 px lower again (margin +15 px, row gap -15 px); 0.7.40: margin -5.658 px and row gap -4.687 px
	   for the 120 % fonts below (the heading's line box 4.16 px taller, the links' line boxes 4.2 px taller, the text lower in
	   them; values measured at 1920 and 1260, the font ascent being rounded to whole pixels), so the heading's capitals top,
	   the first row's visible centre and the last row's visible bottom stay exactly where they were; 0.7.41: margin +0.998 px
	   and row gap +3.495 px for the links at 15.12 px (their line boxes 2.52 px shorter; measured), anchors again unchanged */
	/* 0.7.40 (Joseph, 2026-11-10): the COMPANY & SUPPORT heading and its six links at exactly 120 % of their size
	   (16 -> 19.2 px, 14 -> 16.8 px), desktop footer only; family, weight, colours, line heights (1.3 / 1.5) and the
	   layout unchanged; tablets and phones keep 16 / 14 px. 0.7.41 (Joseph, 2026-11-10): the six links 10 % smaller,
	   16.8 -> 15.12 px (16.8 x 0.9); the heading stays 19.2 px */
	.mk-footer .mk-footer__col--company h4 { font-size: 19.2px; }
	.mk-footer .mk-footer__col--company .mk-footer__links { font-size: 15.12px; }
	/* the bottom row (divider, copyright, Payment methods) 6 px above the footer's lower edge, below the helix's lowest
	   strands (v9 to v12: about y 178 of 263) at every desktop width. The divider runs across the full footer width, 24 px from each
	   side (the 0.7.27 indentation past the helix is gone), and the copyright starts 24 px from the left. The right
	   padding keeps the Payment methods line ending under Company & Support's right edge (that section's 40 px margin
	   inside the content width, less the row's 24 px inset). 8 px above the text and a 1.3 line height (font size
	   unchanged) */
	.mk-footer.wp-block-group > .mk-footer__bottom { position: absolute; top: auto; bottom: 6px; left: 24px; right: 24px; width: auto; max-width: none !important; margin: 0 !important; padding-top: 8px !important; padding-right: calc(max(16px, (100% - var(--wp--style--global--wide-size, 1320px)) / 2) + 40px - 24px) !important; }
	.mk-footer.wp-block-group > .mk-footer__bottom p { line-height: 1.3; }
}
/* desktop footer (1260 px and wider, where Company & Support is the right-hand section): 40 px clearance on its right;
   the bottom row is inset by the same 40 px on the right, so the Payment methods line ends exactly under the section's
   right edge while the divider (the bottom row's top border) keeps its full length */
@media (min-width: 1260px) {
	.mk-footer .mk-footer__columns > .wp-block-column.mk-footer__col--company { margin-right: 40px !important; }
	.mk-footer .mk-footer__bottom { padding-right: 40px !important; }
}
/* Narrower: the wordmark and the art on their own row (the art at the top, its lower edge faded), the link
   columns below, natural height */
@media (max-width: 1259px) {
	.mk-footer.wp-block-group { --fa-k: .88; --fa-kr: 1; --fa-dx: 148px; --fa-fade: 148px; --fa-end: 190px; min-height: 0; } /* 190 px = 216 x .88 */
	.mk-footer__columns { flex-wrap: wrap !important; }
	.mk-footer .mk-footer__columns > .wp-block-column.mk-footer__brand { flex-basis: 100% !important; min-height: 150px; }
	.mk-footer .mk-footer__columns { justify-content: flex-start; }
}
@media (max-width: 599px) {
	.mk-footer.wp-block-group { padding-top: 28px !important; }
	.mk-footer .mk-footer__columns > .wp-block-column.mk-footer__col { flex-basis: 100% !important; }
	.mk-footer__links--grid { grid-template-rows: repeat(3, auto); grid-auto-columns: minmax(0, 1fr); column-gap: 24px; } /* two equal columns x three rows across the width */
	.mk-footer__bottom { flex-direction: column; align-items: flex-start !important; }
}

/* Qualification page for signed-out visitors: the plugin's single message as a card with a clear next step */
.logan-qual-application > p:only-child { max-width: 640px; margin: 16px auto; padding: 32px; background: var(--mk-white); border: 1px solid var(--mk-gray-500); border-radius: var(--lp-radius-card); text-align: center; }
.logan-qual-application > p:only-child a { display: block; width: fit-content; margin: 18px auto 0; padding: 11px 22px; border-radius: var(--lp-radius); background: var(--mk-primary); color: var(--mk-white); font-weight: 600; text-decoration: none; }
.logan-qual-application > p:only-child a:hover { background: var(--lp-emerald-dark); }

/* Shop on narrow screens: tighter sidebar rhythm above the results */
@media (max-width: 781px) {
	.mk-shop.wp-block-columns { padding-top: 24px !important; row-gap: 20px !important; }
	.mk-search { margin-bottom: 14px; }
	.lp-filter-note { margin-top: 14px !important; }
}

/* ==========================================================================
   Navigation bar (2026-10-25, revised for visual review). The removed preview notice's height
   (33 px desktop, 31 px phones) is added to the bar, and the wordmark scales by the same ratio
   (new height / previous height); the wordmark is the separate transparent Site Logo image.
   1240 px and wider: the bar has the 1920 : 153 proportions of Joseph's finished image (2026-10-26, theme 0.7.7):
   setsbrand/Logan-Nav-FooterStyle-1920x153.png, copied unchanged to assets/img/, fills it edge to edge.
   It contains the lettering, so the Site Logo is only the (undrawn) home link there.
   Below 1240 px the separate transparent wordmark is drawn as before, in the upper-left corner (28 px from
   the left, 22 px from the top); the menu group spans the full bar width, ends 28 px from the right
   edge and is centred on the wordmark's middle line, followed by the account and cart icons.
   1280 px and wider: the full inline menu in Source Serif 4 Regular, 20 px at 1280, 22 px at 1440, 26 px at 1920,
   interpolated; gaps and icons scale with it. 1240-1279 px: the same bar with the menu button. Below 1240 px: a
   matching emerald bar with the wordmark in the
   upper-left corner, the menu button and the icons (core switches to the menu button at 600 px;
   extended below). There is no sticky header in this theme;
   the dropdowns and the mobile menu overlay follow the same colors.
   ========================================================================== */
.mk-header.wp-block-group {
	background: linear-gradient(180deg, #02523D 0%, #01432F 100%);
	border-bottom: 0;
	padding: 20px 24px 16px !important; /* 20 + 63 (wordmark) + 16 = 99 px = former 66 + 33 */
}
.mk-header.wp-block-group > .alignwide { max-width: none !important; width: 100%; }
.mk-header .wp-block-site-logo img { width: 198px; height: auto; border-radius: 0; } /* transparent wordmark, 3.12 : 1; 132 px x 99 / 66 */
@media (max-width: 600px) {
	.mk-header.wp-block-group { padding: 22px 24px 24px !important; } /* 22 + 49 + 24 = 95 px = former 64 + 31 */
	.mk-header .wp-block-site-logo img { width: 154px; } /* 104 px x 95 / 64 */
}
@media (min-width: 1240px) {
	.mk-header.wp-block-group {
		box-sizing: border-box;
		/* the bar takes the image's own 1920 : 153 proportions across the full available width (2026-10-26, theme
		   0.7.6; replaces the former width / 16 + 33 px height), so Joseph's finished navigation image
		   (theme 0.7.14: Logan-Nav-Smaller-Wordmark-1920x153.png, Joseph's finished image with the smaller LOGAN
		   PEPTIDES lettering, copied unchanged; before: Logan-Nav-FooterStyle-1920x153.png) fills it exactly, edge to
		   edge: no cropping, stretching or bands. #082C1F only shows while the image loads */
		width: 100%;
		height: auto;
		min-height: 0;
		max-height: none;
		aspect-ratio: 1920 / 153;
		padding: 0 !important;
		background: #082C1F url("assets/img/Logan-Nav-Smaller-Wordmark-1920x153.png") no-repeat 0 0 / 100% 100%;
		/* the bar's control scale follows the viewport: 20 px at 1280, 22 px at 1440, 26 px at 1920, linear between
		   them (1.25vw + 4 px, then .8333vw + 10 px from 1440), held at 26 px above 1920; the icons, their gaps and
		   the row position keep their proportions to it (the six shopping links have their own size, --lp-link-fs) */
		--lp-nav-fs: clamp(20px, 1.25vw + 4px, 22px);
		--lp-nav-end-gap: calc(var(--lp-nav-fs) * 1.2);   /* 31 px */
		--lp-nav-icon-gap: calc(var(--lp-nav-fs) * .7);   /* 18 px */
		--lp-ui-s: 1.13; /* theme 0.7.18 (+13 %; the limit is 1240 px, 10.5 px spare): the one shared desktop scale (labels, icons, cart circle) against 0.7.16, measured by tests/visual/nav-scale-fit.mjs */
		--lp-nav-icon: calc(var(--lp-nav-fs) * 1.4 * var(--lp-ui-s)); /* 0.7.16: fs x 1.4 */
	}
	/* full bar width; the menu row (links, account, cart) is centred on the visible PEPTIDES lettering of the image
	   (theme 0.7.16: its rows 96-112 of 153, centre 104.5; before, the LOGAN line at row 52). The image fills the bar
	   at 100% 100% with the bar's own 1920 : 153 ratio, so the line lies at 104.5 / 1920 of the bar width at every
	   width (padding percentages refer to the bar width), minus half the row band (--lp-row-h: the account link,
	   icon + 16 px).
	   Every control is centred in the row, so their centres share the line: the labels' capital-letter band, the
	   cart's emerald circle; the account icon's outline sits slightly low in its link and is lifted below */
	.mk-header.wp-block-group { --lp-row-h: calc(var(--lp-nav-icon) + 16px); }
	.mk-header.wp-block-group > .alignwide { margin: 0 !important; padding: calc(100% * 104.5 / 1920 - var(--lp-row-h) / 2) 28px 0; }
	.mk-header .mk-header__end { height: var(--lp-row-h); align-items: center; }
	/* the lettering is part of the image here: the Site Logo stays as the home link (with its alt text) over the
	   image's LOGAN PEPTIDES (lettering x 47-299, y 29-112 of 1920 x 153; the link x 39-307, y 28-114), but is not
	   drawn, so the lettering is not doubled */
	.mk-header.wp-block-group .wp-block-site-logo { position: absolute; left: calc(100% * 39 / 1920); top: calc(100% * 28 / 153); width: calc(100% * 268 / 1920); margin: 0; }
	.mk-header.wp-block-group .wp-block-site-logo img { opacity: 0; }
	.mk-header.wp-block-group .wp-block-site-logo a, .mk-header.wp-block-group .wp-block-site-logo img { display: block; width: 100%; }
	.mk-header .mk-header__end { gap: var(--lp-nav-end-gap) !important; }
	.mk-header .mk-header__icons { gap: var(--lp-nav-icon-gap) !important; }
	.mk-header .mk-header__icons .wc-block-customer-account__account-icon, .mk-header .mk-header__icons .wc-block-mini-cart__icon { width: var(--lp-nav-icon); height: var(--lp-nav-icon); }
	/* the icons end near the ribbon's pink streak: a soft dark halo keeps them distinct; no overlay on the artwork */
	.mk-header .mk-header__icons svg { filter: drop-shadow(0 0 3px rgba(0, 30, 22, .95)) drop-shadow(0 0 9px rgba(0, 30, 22, .95)) drop-shadow(0 0 18px rgba(0, 30, 22, .9)); }
}
/* Header shopping links (theme 0.7.13): six top-level links, always visible - All Products and the five categories.
   No toggle, dropdown, menu button or overlay (overlayMenu "never"). Source Serif 4 Regular (below).
   1240 px and wider: one row on the navigation image, right-aligned before the account and cart icons, which keep
   their sizes. --lp-link-fs and the icons are the 0.7.16 sizes (labels 16 / 19 / 22 px at 1240 / 1440 / 1920, linear
   between, held above; icons 1.4 x --lp-nav-fs) times ONE shared scale, --lp-ui-s (theme 0.7.18; the largest that
   keeps the single row clear of the DNA at every desktop width, signed out and with the longest qualification
   status chip, with a spacing margin); the gaps follow the label size. The row always stays one line, starting right
   of the DNA (its bright strands end at x 492 of 1920 = 25.6 % of the bar width; the row starts at 28 % or later).
   The line height stays at the 0.7.13 value (1.5 x the size + 2 px). On the bar (theme 0.7.16) the row is centred on
   the PEPTIDES lettering (see the bar rules above) and the text sits centred in its link. Below 1240 px the text sits
   4 px lower in its box (4 px moved from the bottom padding to the top) and its label a further 4 px (0.7.15), so the
   click areas, rows and header heights there are as in 0.7.13.
   Below 1240 px: the logo, account and cart in the upper row, the six links in rows underneath (one row from
   900 px, three columns from 601 px, two columns on phones); the header grows to fit them. */
.mk-header.wp-block-group { --lp-link-fs: calc(15px * 1.3); } /* 19.5 px (theme 0.7.17: x1.30, was 15) */
@media (min-width: 1240px) {
	.mk-header.wp-block-group { --lp-link-fs: calc(clamp(16px, 1.5vw - 2.6px, 19px) * var(--lp-ui-s)); } /* 0.7.16 sizes x the shared scale */
	.mk-header .mk-nav .wp-block-navigation__container { flex-wrap: nowrap; gap: var(--lp-link-fs) !important; }
	/* on the navigation image: a soft dark halo, as the icons have, keeps the letters clear of the light bokeh (no overlay on the artwork) */
	.mk-header .mk-nav .wp-block-navigation-item__content { text-shadow: 0 0 3px rgba(0, 30, 22, .9), 0 0 8px rgba(0, 30, 22, .75); }
	/* the account icon's drawn outline sits .026 x its size below the centre of its link: the link (with its click
	   area and focus ring) is lifted by that much, so the outline's centre is on the PEPTIDES line as well */
	.mk-header .mk-header__icons .wp-block-woocommerce-customer-account a { position: relative; top: calc(var(--lp-nav-icon) * -.026); }
}
@media (min-width: 1440px) {
	.mk-header.wp-block-group { --lp-nav-fs: clamp(22px, 5vw / 6 + 10px, 26px); --lp-link-fs: calc(clamp(19px, .625vw + 10px, 22px) * var(--lp-ui-s)); } /* 0.7.16 sizes x the shared scale */
}
/* theme 0.7.28: seven links (Accessories added, to Supplies & Accessories); the label text is exactly 85 % of the
   earlier size at every breakpoint (--lp-link-fs x .85). Only the font size changes: the line height, gaps, cell
   padding (click areas), underline and vertical centring still follow --lp-link-fs, so the link boxes and rows stay as
   they were */
.mk-header .mk-nav .wp-block-navigation-item__content { font-size: calc(var(--lp-link-fs) * .85); line-height: calc((var(--lp-link-fs) + 2px) * 1.5); letter-spacing: .01em; white-space: nowrap; }
.mk-header .mk-nav .wp-block-navigation-item__content.wp-block-navigation-item__content:hover, .mk-header .mk-nav .current-menu-item > .wp-block-navigation-item__content.wp-block-navigation-item__content { text-decoration-thickness: max(2px, calc(var(--lp-link-fs) * .1)); text-underline-offset: calc(var(--lp-link-fs) * .35); }
/* theme 0.7.15: below 1240 px the label text a further 4 px lower inside its link (8 px below 0.7.13 in all). It is
   offset on the label itself, so the link box - click area, focus ring - the rows and the header stay as they are.
   On the bar the row is aligned to the PEPTIDES lettering instead (0.7.16) */
@media (max-width: 1239px) {
	.mk-header .mk-nav .wp-block-navigation-item__label { position: relative; top: 4px; }
}
/* a signed-in customer's qualification status: shown at every width from 782 px (since 0.7.17; in 0.7.13-0.7.16 it
   was left out at 1240-1679 px). On the bar (1240 px and wider) it is no longer part of the menu row - in the row the
   longest chip (Qualification revoked) leaves no room for the six links clear of the DNA below about 1555 px even at
   the 0.7.16 sizes - but sits right-aligned just above the account and cart icons, in the bar's free upper area (top
   relative to the bar height: the PEPTIDES line at 104.5 / 153, minus half the row band, minus 32 px) */
@media (min-width: 1240px) {
	.mk-header .mk-header__icons .mk-header__status { position: absolute; right: 28px; top: calc(100% * 104.5 / 153 - var(--lp-row-h) / 2 - 32px); margin: 0; }
}
/* the six labels moved right toward the account icon (theme 0.7.19, Joseph's annotated reference, about 25 px at
   1920 px; replaces the 0.7.18 +2 px offset): the gap between the menu and the icons is 4 px at every desktop width
   (was 1.2 x the bar's control size, 24-31 px). The icons are anchored at the right, so the whole menu moves - click
   areas, focus rings and the spacing between the labels with it - by 25 px at 1920, 20 px at 1440 and 18 px at
   1240-1280 (the shift shrinks with the narrower gap there); the account link's own 8 px side padding keeps about
   18-21 px of clear space before the drawn icon. Icons, chip, logo and background stay where they are */
@media (min-width: 1240px) {
	.mk-header .mk-header__end { gap: 4px !important; }
}
/* icons beside the larger wordmark, below the ribbon bar */
@media (max-width: 1239px) {
	.mk-header .mk-header__icons .wc-block-customer-account__account-icon, .mk-header .mk-header__icons .wc-block-mini-cart__icon { width: calc(32px * 1.3); height: calc(32px * 1.3); } /* 41.6 px (x1.30, was 32) */
	/* upper row: logo and icons; the links below, across the full width */
	.mk-header.wp-block-group > .alignwide { flex-wrap: wrap !important; row-gap: 14px; }
	.mk-header .mk-header__end { display: contents; }
	.mk-header nav.mk-nav { order: 1; flex: 0 0 100%; padding-top: 6px; border-top: 1px solid rgba(220, 194, 157, .28); } /* nav only: core also puts mk-nav on the list inside */
	.mk-header .mk-nav .wp-block-navigation__container { flex-wrap: wrap; justify-content: flex-start; gap: 0 28px !important; }
	.mk-header .mk-nav .wp-block-navigation-item__content { display: block; padding: 12px 0 4px !important; } /* 41 px tall tap targets; was 8px 0 */
}
/* 601-959 px: three columns x two rows (theme 0.7.17: from 960 px the x1.30 links fit one row, about 852 px wide;
   before, 900 px); phones: two columns x three rows; each link a full-width cell */
@media (max-width: 959px) {
	.mk-header nav.mk-nav { padding-top: 12px; }
	.mk-header .mk-nav .wp-block-navigation__container { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px !important; }
	.mk-header .mk-nav .wp-block-navigation-item { display: block; }
	.mk-header .mk-nav .wp-block-navigation-item__content { padding: 14px 8px 6px !important; text-align: center; border: 1px solid rgba(220, 194, 157, .3); border-radius: 8px; background: rgba(250, 247, 242, .05); }
}
@media (max-width: 600px) {
	.mk-header.wp-block-group { --lp-link-fs: calc(14px * 1.3); padding-bottom: 16px !important; } /* 18.2 px (x1.30, was 14) */
	.mk-header .mk-header__icons .wc-block-customer-account__account-icon, .mk-header .mk-header__icons .wc-block-mini-cart__icon { width: calc(28px * 1.3); height: calc(28px * 1.3); } /* 36.4 px (x1.30, was 28) */
	/* the x1.30 labels (Lyophilized Vials is the longest) fit the two columns with narrower cell padding and gaps */
	.mk-header .mk-nav .wp-block-navigation__container { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px !important; }
	.mk-header .mk-nav .wp-block-navigation-item__content { padding-left: 4px !important; padding-right: 4px !important; }
}
@media (max-width: 380px) {
	.mk-header.wp-block-group { padding-left: 14px !important; padding-right: 14px !important; } /* 0.7.17: 14 px (was 18) for the x1.30 labels */
}
/* navigation labels: Source Serif 4 Regular (400), hosted in the theme (assets/fonts) */
.mk-header .mk-nav { font-family: var(--wp--preset--font-family--source-serif-4); font-weight: 400; }
.mk-header .mk-nav .wp-block-navigation-item__content { font-weight: 400; }
.mk-header .wp-block-site-logo a:focus-visible { outline-color: #DCC29D; }
.mk-header .mk-nav, .mk-header .mk-header__icons { color: #FAF7F2; } /* core links inherit this colour */
.mk-header .mk-nav .wp-block-navigation-item__content.wp-block-navigation-item__content { color: #FAF7F2; }
.mk-header .mk-nav .wp-block-navigation-item__content.wp-block-navigation-item__content:hover, .mk-header .mk-nav .current-menu-item > .wp-block-navigation-item__content.wp-block-navigation-item__content { color: #F3E2C4; text-decoration: underline; text-decoration-color: #DCC29D; text-decoration-thickness: 2px; text-underline-offset: 8px; }
/* account, cart, menu button */
.mk-header .mk-header__icons a, .mk-header .mk-header__icons button { color: #FAF7F2 !important; }
.mk-header .mk-header__icons a:hover, .mk-header .mk-header__icons button:hover { color: #F3E2C4 !important; }
.wc-block-mini-cart__badge { background: #DCC29D !important; color: #0F1F1A !important; }
/* keyboard focus on the dark bar: champagne ring */
.mk-header :focus-visible { outline: 2px solid #DCC29D !important; outline-offset: 3px; }

/* ==========================================================================
   Visual fixes (2026-10-28, theme 0.7.10)
   ========================================================================== */
/* About, Contact and Documentation hero (.mk-pagehero is used only on these three pages): the packaging
   illustration (catalog-page-hero.png, 1920 x 600) is drawn across its whole canvas, so there is no free
   area for the title. The title gets its own band at the top of the hero, on the illustration's own flat
   background (#EAF0EC), and the illustration follows below it, unchanged (not redrawn, blurred or hidden):
   from 782 px the whole artwork, scaled to fit the width and at most 440 px tall (very wide screens show the
   same flat background beside it); below 782 px the middle of the artwork at 240 px tall, its full height,
   cropped at the sides as before. */
.mk-pagehero.wp-block-cover { min-height: 0 !important; padding: 0 !important; flex-direction: column; align-items: stretch; justify-content: flex-start; background: #EAF0EC; }
.mk-pagehero.wp-block-cover > .wp-block-cover__inner-container { order: 0; box-sizing: border-box; padding: 48px 24px 16px; text-align: center; }
.mk-pagehero.wp-block-cover h1 { margin: 0 auto; text-wrap: balance; }
.mk-pagehero.wp-block-cover img.wp-block-cover__image-background { position: static; order: 1; display: block; width: 100%; height: auto; max-height: 440px; aspect-ratio: 1920 / 600; object-fit: contain; object-position: 50% 50%; }
@media (max-width: 781px) {
	.mk-pagehero.wp-block-cover > .wp-block-cover__inner-container { padding: 32px 16px 12px; }
	.mk-pagehero.wp-block-cover img.wp-block-cover__image-background { height: 240px; max-height: none; aspect-ratio: auto; object-fit: cover; }
}
/* Header cart (1240 px and wider): no background (theme 0.7.20, Joseph: the dark-emerald disc of 0.7.10-0.7.19 is
   removed - transparent, no box-shadow spread). The white icon, its size, position and click target are unchanged; the
   focus ring keeps its round shape (border-radius) and its offset (--lp-cart-disc, the former disc spread), so the
   keyboard indicator looks as before. Below 1240 px the cart never had a disc. */
@media (min-width: 1240px) {
	.mk-header .mk-header__icons .wc-block-mini-cart__button { --lp-cart-disc: calc(var(--lp-nav-icon) * .2); background: transparent; border-radius: 50%; box-shadow: none; }
	.mk-header .mk-header__icons .wc-block-mini-cart__button svg { filter: none; }
	.mk-header .mk-header__icons .wc-block-mini-cart__button:focus-visible { outline-offset: calc(var(--lp-cart-disc) + 2px); }
}

/* Shop sidebar (theme 0.7.30): category links and the Catalog status / Composition filters as plain links,
   rendered by the logan-catalog plugin in place of WooCommerce's interactive Product Filters block. Categories:
   the current one bold with a gold bar (aria-current="page"), its parent marked; filters: one choice each, shown
   as a radio-style dot (aria-current="true"). Phones and narrow tablets (sidebar above the products): the entries
   wrap as chips with 40 px tap targets */
.lp-filters { display: block; }
.lp-filters__group + .lp-filters__group, .lp-filters__active + .lp-filters__group { padding-top: 22px; margin-top: 22px; border-top: 1px solid var(--mk-gray-500); }
.lp-filters__active[hidden] { display: none; }
.lp-filters__active-title { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mk-text); }
.lp-filters__chips { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.lp-filters__chip { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 4px 12px; border: 1px solid #BFD3C8; border-radius: 999px; background: var(--mk-tint); color: var(--mk-text); font-size: 13px; text-decoration: none; }
.lp-filters__chip:hover { border-color: var(--mk-primary); }
.lp-filters__clear { font-size: 14px; font-weight: 600; color: var(--mk-primary); text-decoration: underline; text-underline-offset: 3px; }
.lp-filters__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.lp-filters__list--nested { margin: 2px 0 0 16px; }
.lp-filters__link { display: flex; align-items: baseline; gap: 6px; padding: 5px 0 5px 12px; border-left: 3px solid transparent; font-size: 14px; line-height: 1.35; color: var(--mk-text); text-decoration: none; }
.lp-filters__link:hover .lp-filters__label { text-decoration: underline; text-underline-offset: 3px; }
.lp-filters__count { color: var(--mk-muted); font-size: 13px; }
.lp-filters__link.is-current { border-left-color: var(--lp-gold); font-weight: 700; color: var(--mk-primary); }
.lp-filters__link.is-ancestor { font-weight: 600; }
.lp-filters__option { padding-left: 0; border-left: 0; align-items: center; }
.lp-filters__option::before { content: ""; flex: 0 0 14px; width: 14px; height: 14px; border: 1.5px solid #9AA8A2; border-radius: 50%; background: var(--mk-white); box-sizing: border-box; }
.lp-filters__option.is-selected { font-weight: 700; color: var(--mk-primary); }
.lp-filters__option.is-selected::before { border-color: var(--mk-primary); box-shadow: inset 0 0 0 3px var(--mk-white); background: var(--mk-primary); }
.lp-empty__clear { margin-top: 12px; }
@media (max-width: 781px) {
	.lp-filters__group + .lp-filters__group, .lp-filters__active + .lp-filters__group { padding-top: 16px; margin-top: 16px; }
	.lp-filters__list { display: flex; flex-wrap: wrap; gap: 6px; }
	.lp-filters__list > li { display: contents; }
	.lp-filters__list--nested { display: contents; }
	.lp-filters__link, .lp-filters__option { min-height: 40px; align-items: center; padding: 6px 12px; border: 1px solid var(--mk-gray-500); border-radius: 999px; background: var(--mk-white); }
	.lp-filters__link.is-current, .lp-filters__option.is-selected { border-color: var(--mk-primary); background: var(--mk-tint); }
	.lp-filters__link.is-ancestor { font-weight: 400; }
}

/* Product page: one specification option can be selected (theme 0.7.31; native radio buttons outside any form, no
   price, stock or cart). The selected option is outlined and its values are shown under the options; the first is
   selected on load. Browsers without :has() show every option's values */
.lp-spec-select { border: 0; margin: 0 0 16px; padding: 0; min-width: 0; }
.lp-spec-select > legend { padding: 0; }
.lp-spec-select .lp-spec-options { margin-bottom: 12px; }
.lp-spec-select .lp-spec-option { cursor: pointer; min-height: 40px; }
.lp-spec-option__input { flex: 0 0 auto; width: 16px; height: 16px; margin: 0; accent-color: var(--mk-primary); }
.lp-spec-option:has(.lp-spec-option__input:checked) { border-color: var(--mk-primary); background: var(--mk-tint); box-shadow: inset 0 0 0 1px var(--mk-primary); }
.lp-spec-option:has(.lp-spec-option__input:focus-visible) { outline: 2px solid var(--mk-primary); outline-offset: 2px; }
.lp-spec-detail { display: none; grid-template-columns: max-content minmax(0, 1fr); gap: 4px 16px; margin: 0; padding: 12px 14px; border: 1px solid var(--mk-gray-500); border-radius: var(--lp-radius); background: var(--mk-white); font-size: 14px; }
.lp-spec-detail dt { color: var(--mk-muted); }
.lp-spec-detail dd { margin: 0; overflow-wrap: anywhere; }
.lp-spec-select:has(.lp-spec-option__input[value="0"]:checked) .lp-spec-detail[data-lp-opt="0"],
.lp-spec-select:has(.lp-spec-option__input[value="1"]:checked) .lp-spec-detail[data-lp-opt="1"],
.lp-spec-select:has(.lp-spec-option__input[value="2"]:checked) .lp-spec-detail[data-lp-opt="2"],
.lp-spec-select:has(.lp-spec-option__input[value="3"]:checked) .lp-spec-detail[data-lp-opt="3"],
.lp-spec-select:has(.lp-spec-option__input[value="4"]:checked) .lp-spec-detail[data-lp-opt="4"],
.lp-spec-select:has(.lp-spec-option__input[value="5"]:checked) .lp-spec-detail[data-lp-opt="5"],
.lp-spec-select:has(.lp-spec-option__input[value="6"]:checked) .lp-spec-detail[data-lp-opt="6"],
.lp-spec-select:has(.lp-spec-option__input[value="7"]:checked) .lp-spec-detail[data-lp-opt="7"],
.lp-spec-select:has(.lp-spec-option__input[value="8"]:checked) .lp-spec-detail[data-lp-opt="8"],
.lp-spec-select:has(.lp-spec-option__input[value="9"]:checked) .lp-spec-detail[data-lp-opt="9"],
.lp-spec-select:has(.lp-spec-option__input[value="10"]:checked) .lp-spec-detail[data-lp-opt="10"],
.lp-spec-select:has(.lp-spec-option__input[value="11"]:checked) .lp-spec-detail[data-lp-opt="11"] { display: grid; }
@supports not selector(:has(*)) { .lp-spec-detail { display: grid; margin-bottom: 8px; } }
