/* Design: ported verbatim from the jm-ui-v2 mu-plugin of
   online-medicijnen-bestellen.com (assets/ui-v2.css). Only the rationale
   comments were translated from Russian to English; no selector, property or
   value was changed. The part above the "deferred" marker comment is the critical
   CSS the original inlines into <head>. */
/* Critical layout: this section is also emitted in the document head. */
body.jm-ui-v2{--ui-bg:#f5f7fb;--ui-ink:#1d2433;--ui-muted:#566073;--ui-line:#dce1e9;margin:0;background:var(--ui-bg);color:var(--ui-ink);font:16px/1.5 JMNunito,JMNunitoFallback,Nunito,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
.jm-ui-v2 *,.jm-ui-v2 *::before,.jm-ui-v2 *::after{box-sizing:border-box}
.jm-ui-v2 button,.jm-ui-v2 input,.jm-ui-v2 select,.jm-ui-v2 textarea{margin:0;line-height:inherit;text-transform:none}
.jm-ui-v2 [hidden]{display:none!important}
.jm-ui-v2 legend{padding:0}
.jm-ui-v2 svg,.jm-ui-v2 img{vertical-align:middle}
.jm-ui-v2 a{color:var(--ui-link);text-decoration:none}
.jm-ui-v2 button,.jm-ui-v2 input,.jm-ui-v2 select,.jm-ui-v2 textarea{font:inherit}
.jm-ui-v2 button,.jm-ui-v2 summary,.jm-ui-v2 input:not([type=hidden]),.jm-ui-v2 select{min-height:44px}
.jm-ui-v2 button,.jm-ui-v2 summary{cursor:pointer}
.jm-ui-v2 input,.jm-ui-v2 select,.jm-ui-v2 textarea{max-width:100%;border:1px solid #858d9b;border-radius:9px;background:#fff;color:var(--ui-ink);padding:9px}
.jm-ui-v2 input[type=number]{width:76px}
.jm-ui-v2 h1{font-size:26px;line-height:1.2;font-weight:700;margin:18px 0 14px;color:var(--ui-ink)}
.jm-ui-v2 h2{font-size:19px;line-height:1.3;font-weight:700;margin:22px 0 12px;color:var(--ui-ink)}
.jm-ui-v2 h3{font-size:16px;line-height:1.3;margin:8px 0;font-weight:700;color:var(--ui-ink)}
.jm-ui-v2 p{margin:0 0 12px}
.jm-ui-v2 img{max-width:100%;height:auto}
.jm-ui-v2 .ui-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:8px;padding:8px 14px;background:#fff;border-bottom:1px solid var(--ui-line);min-height:61px}
.jm-ui-v2 .ui-logo{margin-right:auto;display:flex;align-items:center;min-width:0;max-width:160px;height:44px;font-weight:700}
.jm-ui-v2 .ui-logo img{width:auto;height:auto;max-width:160px;max-height:38px;object-fit:contain}
.jm-ui-v2 .ui-header summary{display:flex;align-items:center;justify-content:center;min-width:44px;list-style:none;font-size:24px}
.jm-ui-v2 .ui-header summary::-webkit-details-marker{display:none}
.jm-ui-v2 .ui-cart-link{position:relative;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:24px}
.jm-ui-v2 .ui-cart-count{position:absolute;top:0;right:0;min-width:18px;padding:0 4px;border-radius:12px;background:var(--ui-brand);color:var(--ui-on-brand);font-size:12px;text-align:center}
.jm-ui-v2 .ui-cart-label{display:none}
.jm-ui-v2 .ui-mini{display:none}
.jm-ui-v2 .ui-popover{position:absolute;right:14px;top:100%;width:min(420px,calc(100vw - 28px));max-height:70vh;overflow:auto;background:#fff;border:1px solid var(--ui-line);border-radius:12px;padding:16px;box-shadow:0 10px 28px #1824381a}
.jm-ui-v2 .ui-main{max-width:1120px;margin:auto;padding:0 14px}
/* Above-the-fold USP strip: pills with icons, as in the approved layout.
   It lives in the critical styles because it is on the first screen: without a
   ready layout the row would wrap and shift everything below it. */
.jm-ui-v2 .ui-usp{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px;padding:0}
.jm-ui-v2 .ui-usp div{flex:0 0 auto;display:flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--ui-line);border-radius:999px;padding:8px 13px;font-size:13px;font-weight:600;white-space:nowrap;line-height:18px;min-height:36px}
.jm-ui-v2 .ui-usp svg{width:18px;height:18px;flex:0 0 18px;color:#0b6f4d}
@media (min-width:900px){.jm-ui-v2 .ui-usp{gap:10px;margin:14px 0 6px}.jm-ui-v2 .ui-usp div{font-size:14px;padding:10px 16px;min-height:40px}}
.jm-ui-v2 .ui-card{background:#fff;border:1px solid var(--ui-line);border-radius:14px;padding:14px;margin:12px 0}
.jm-ui-v2 .ui-card h2:first-child{margin-top:0}
/* Home hero: a light card in a faint brand tint, not a slab flooded with the
   brand colour. On red shops (aptekatop100.pl) a full-width solid block was
   overbearing (owner, 23.09). The colour stays on the search button and accents. */
.jm-ui-v2 .ui-hero{background:var(--ui-badge);color:var(--ui-ink);border:1px solid var(--ui-line);border-radius:16px;padding:20px 18px;margin:14px 0 12px}
.jm-ui-v2 .ui-hero h1{margin:0 0 8px;font-size:25px;color:inherit}
.jm-ui-v2 .ui-hero p{margin:0 0 14px;font-size:15px;color:var(--ui-muted)}
.jm-ui-v2 .ui-hero a{color:var(--ui-link);text-decoration:underline}
.jm-ui-v2 .ui-hero .ui-search{margin:0;background:#fff;border:1px solid var(--ui-line);border-radius:12px;padding:6px 6px 6px 14px;align-items:center}
.jm-ui-v2 .ui-hero .ui-search input[type=search]{border:0;padding:0;min-height:40px;background:none}
.jm-ui-v2 .ui-hero .ui-button{min-height:44px;border-radius:9px}
.jm-ui-v2 .ui-search{display:flex;gap:8px;margin:12px 0}
.jm-ui-v2 .ui-search input[type=search]{min-width:0;width:100%;flex:1}
.jm-ui-v2 .ui-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;min-width:44px;border:0;border-radius:12px;background:var(--ui-brand);color:var(--ui-on-brand);padding:12px 16px;font-weight:700;text-decoration:none;line-height:1.3;text-align:center}
.jm-ui-v2 .ui-product-hero{display:flex;align-items:center;gap:16px;min-height:134px}
.jm-ui-v2 .ui-product-hero img{width:104px;height:104px;object-fit:contain;flex:0 0 104px;border:0;border-radius:10px;background:#f2f5fa;padding:6px}
.jm-ui-v2 .ui-price,.jm-ui-v2 .ui-buy-price{font-size:21px;font-weight:700}
.jm-ui-v2 .ui-attribute{border:0;padding:0;margin:18px 0;min-width:0}
/* Group labels as in the layout: quiet, 14/600; the pack-saving hint at normal weight. */
.jm-ui-v2 .ui-attribute legend{font-size:14px;font-weight:600;color:var(--ui-muted);margin-bottom:10px;float:none;width:auto}
.jm-ui-v2 .ui-legend-hint{font-weight:400;color:var(--ui-muted)}
.jm-ui-v2 .ui-options{display:flex;flex-wrap:wrap;gap:8px}
.jm-ui-v2 .ui-attribute[data-pack="1"] .ui-options{display:flex;flex-direction:column;gap:8px}
.jm-ui-v2 .ui-dose,.jm-ui-v2 .ui-pack{border:1px solid #858d9b;background:#fff;color:var(--ui-ink);border-radius:12px}
/* Dosages wrap onto rows: nowrap with seven dosages (Viagra on aptekatop100.pl)
   pushed the row past the column edge. Buttons stretch across the row. */
.jm-ui-v2 .ui-attribute[data-pack="0"] .ui-options{display:flex;flex-wrap:wrap;gap:8px}
/* Dosage buttons wrap onto rows instead of shrinking: Viagra on aptekatop100.pl
   has seven dosages, and flex:1 1 0 with min-width:0 broke "100mg" into "10 / 0m / g". */
body.jm-ui-v2 button.ui-dose{display:block;flex:1 1 auto;min-width:64px;width:auto;min-height:44px;margin:0;padding:10px 12px;font-weight:700;text-align:center;white-space:normal;overflow-wrap:normal}
body.jm-ui-v2 button.ui-pack{display:flex;flex-direction:row;position:relative;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;height:auto;min-height:82px;margin:0;padding:13px 14px;text-align:left;white-space:normal;line-height:20px;border-width:1px}
.jm-ui-v2 .ui-pack-left,.jm-ui-v2 .ui-pack-right{display:flex;flex:0 1 auto;flex-direction:column;justify-content:flex-start;align-self:flex-start;gap:4px;min-width:0;height:auto;margin:0;padding:0}
.jm-ui-v2 .ui-pack-left{align-items:flex-start}
.jm-ui-v2 .ui-pack-right{align-items:flex-end;margin-left:auto;text-align:right;flex-shrink:0}
.jm-ui-v2 .ui-pack-count,.jm-ui-v2 .ui-pack-price{display:block;margin:0;padding:0;font-size:16px;line-height:20px;font-weight:700;white-space:nowrap}
.jm-ui-v2 .ui-pack-unit,.jm-ui-v2 .ui-pack-base{display:block;margin:0;padding:0;font-size:13px;line-height:18px;color:var(--ui-muted);font-weight:400;white-space:nowrap}
.jm-ui-v2 .ui-pack-saving{display:block;margin:0;padding:0;font-size:12px;line-height:18px;color:#0b6f4d;font-weight:700}
.jm-ui-v2 .ui-pack-badge{position:absolute;top:-10px;left:12px;padding:2px 8px;border-radius:999px;background:#0b6f4d;color:#fff;font-size:11px;font-weight:700;line-height:16px}
/* The selected option is marked with ONE border. Previously a box-shadow ring sat
   on top of the border, adding up to a solid 3-4px band - measured on the live site
   23.09: dosage 2px+2px, pack 1px+2px. The owner called that outline too heavy.
   The border is compensated with padding so selecting an option does not change the
   button size and shifts nothing. */
.jm-ui-v2 .ui-pack[aria-pressed=true],.jm-ui-v2 .ui-dose[aria-pressed=true]{border-color:var(--ui-brand);box-shadow:none}
.jm-ui-v2 [aria-pressed=true]{border:2px solid var(--ui-brand);background:var(--ui-badge);padding:9px 13px}
body.jm-ui-v2 button.ui-pack[aria-pressed=true]{border-width:2px;padding:12px 13px}
/* The selected item's 2px border is compensated with padding: the button width does
   not change and rows do not reflow (Codex review). */
body.jm-ui-v2 button.ui-dose[aria-pressed=true]{border-width:2px;padding:9px 11px}
.jm-ui-js .jm-ui-v2 .ui-select{position:absolute;clip-path:inset(50%);width:1px;height:1px;min-height:0;padding:0;border:0;overflow:hidden}
.jm-ui-v2 .ui-select:focus{position:static;clip-path:none;width:auto;height:auto;min-height:44px;padding:9px;border:1px solid}
.jm-ui-v2 .ui-buybar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-top:1px solid var(--ui-line);padding:10px 14px calc(10px + env(safe-area-inset-bottom));box-shadow:0 -6px 20px #141e3c14;min-height:84px}
.jm-ui-v2 .ui-buybar .ui-button{flex-shrink:0;max-width:58%}
.jm-ui-v2.ui-route-single-product,.jm-ui-v2.ui-route-cart{padding-bottom:calc(112px + env(safe-area-inset-bottom))}
.jm-ui-v2 .ui-buy-price{line-height:1.2}
.jm-ui-v2 .ui-buy-price del{display:block;font-size:13px;color:var(--ui-muted);font-weight:400}
.jm-ui-v2 .ui-unit{font-size:12px;color:var(--ui-muted)}
.jm-ui-v2 .ui-categories,.jm-ui-v2 .ui-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.jm-ui-v2 .ui-product-card,.jm-ui-v2 .ui-categories a{background:#fff;border:1px solid var(--ui-line);border-radius:14px;padding:12px;color:var(--ui-ink)}
/* Tiles keep equal height with names of different length: the button is pinned to the bottom. */
.jm-ui-v2 .ui-product-card{display:flex;flex-direction:column}
.jm-ui-v2 .ui-product-card .ui-card-action{margin-top:auto}
/* Category names in the base text colour: ten coloured tiles in a row were noisy. */
.jm-ui-v2 .ui-categories a{min-height:64px;display:flex;align-items:center;color:var(--ui-ink);font-weight:700}
.jm-ui-v2 .ui-product-card img{width:100%;height:120px;object-fit:contain;border:0;border-radius:9px;background:#f2f5fa;padding:6px}
.jm-ui-v2 .ui-product-card .ui-price{font-size:17px}
.jm-ui-v2 .ui-card-action{display:block;border-radius:9px;padding:10px 4px;margin-top:10px;text-align:center;background:#f1f4f8;color:var(--ui-link);font-weight:700}
.jm-ui-v2 .ui-muted{color:var(--ui-muted);font-size:13px}
.jm-ui-v2 .ui-crumbs{display:flex;align-items:center;gap:7px;font-size:13px;line-height:20px;margin:10px 0 2px;color:var(--ui-muted);overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.jm-ui-v2 .ui-crumbs::-webkit-scrollbar{display:none}
.jm-ui-v2 .ui-crumbs a{color:var(--ui-muted)}
.jm-ui-v2 .ui-crumb-sep{color:#b9c0cd}
.jm-ui-v2 .ui-crumb:last-child{color:var(--ui-ink);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.jm-ui-v2 .ui-col-buy{display:contents}
.jm-ui-v2 .ui-sortbar{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:2px 0 12px;border-bottom:1px solid var(--ui-line);overflow-x:auto;white-space:nowrap;scrollbar-width:none}
.jm-ui-v2 .ui-sortbar::-webkit-scrollbar{display:none}
.jm-ui-v2 .ui-sortbar a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:40px;padding:8px 14px;border:1px solid var(--ui-line);border-radius:999px;background:#fff;color:var(--ui-muted);font-size:14px;font-weight:700}
.jm-ui-v2 .ui-sortbar a[aria-current=true]{background:var(--ui-brand);border-color:var(--ui-brand);color:var(--ui-on-brand)}
.jm-ui-v2 .ui-sortbar .woocommerce-result-count{flex:0 0 auto;margin:0 0 0 auto;padding-left:10px;font-size:13px}
.jm-ui-v2 .ui-more{display:none;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:6px;padding:12px;border:1px solid var(--ui-line);border-radius:10px;background:#fff;color:var(--ui-link);font-weight:700}
.jm-ui-js .jm-ui-v2 .ui-more{display:flex}
.jm-ui-js .jm-ui-v2 .ui-desc-rest{display:none}
.jm-ui-js .jm-ui-v2 .ui-desc-rest.is-open{display:block}
.jm-ui-v2 .ui-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.jm-ui-v2 .ui-top form{margin-left:auto}
.jm-ui-v2 .ui-clear{border:0;background:none;color:var(--ui-muted);text-decoration:underline;padding:8px}
.jm-ui-v2 .ui-cart-item{display:flex;gap:12px;position:relative;padding:16px 0;border-bottom:1px solid var(--ui-line)}
.jm-ui-v2 .woocommerce-cart-form>.ui-button[name=update_cart]{margin-top:16px}
.jm-ui-v2 .woocommerce-cart-form .ui-coupon{margin-top:16px}
.jm-ui-v2 .ui-cart-item>img{width:64px;height:64px;object-fit:contain;flex:0 0 64px;border:0;border-radius:9px;background:#f2f5fa;padding:4px}
.jm-ui-v2 .ui-cart-info{min-width:0;flex:1}
.jm-ui-v2 .ui-cart-info h2{font-size:16px;margin:0 36px 6px 0}
.jm-ui-v2 .ui-remove{position:absolute;right:0;top:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;font-size:26px}
.jm-ui-v2 .ui-quantity{display:inline-flex;align-items:center;max-width:100%;margin:6px 0}
.jm-ui-v2 .ui-quantity button{min-width:44px;border:1px solid #858d9b;background:#fff;border-radius:8px;color:var(--ui-ink)}
.jm-ui-v2 .ui-quantity input{width:58px;text-align:center}
.jm-ui-v2 .ui-line-total{display:block;font-size:18px}
.jm-ui-v2 .ui-sr,.jm-ui-v2 .ui-skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(min-width:800px){
.jm-ui-v2 .ui-header{padding-left:max(20px,calc((100vw - 1092px)/2));padding-right:max(20px,calc((100vw - 1092px)/2));gap:18px}
.jm-ui-v2 .ui-mini{display:block}
.jm-ui-v2 .ui-mini summary{font-size:15px}
.jm-ui-v2 h1{font-size:34px}
.jm-ui-v2 .ui-products{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.jm-ui-v2 .ui-categories{grid-template-columns:repeat(5,minmax(0,1fr))}
.jm-ui-v2 .ui-product-card img{height:150px}
.jm-ui-v2 .ui-cart-layout{display:grid;grid-template-columns:1.7fr 1fr;gap:24px;align-items:start}
.jm-ui-v2 .ui-buybar{position:static;border:1px solid var(--ui-line);border-radius:14px;margin:18px 0;padding:14px}
.jm-ui-v2.ui-route-single-product,.jm-ui-v2.ui-route-cart{padding-bottom:0}
.jm-ui-v2 .ui-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);column-gap:40px;align-items:center;padding:34px 38px;margin:22px 0 16px}
.jm-ui-v2 .ui-hero>*{grid-column:1}
.jm-ui-v2 .ui-hero h1{font-size:34px;margin:0 0 10px}
.jm-ui-v2 .ui-hero p{font-size:17px;margin:0}
.jm-ui-v2 .ui-hero>.ui-search{grid-column:2;grid-row:1/span 99;align-self:center;padding:8px 8px 8px 18px}
.jm-ui-v2 .ui-product{display:grid;grid-template-columns:minmax(0,1fr) 360px;column-gap:32px;align-items:start}
.jm-ui-v2 .ui-product>*{grid-column:1;min-width:0}
.jm-ui-v2 .ui-product>h1{grid-column:1/-1}
.jm-ui-v2 .ui-product>.ui-col-buy{display:flex;flex-direction:column;grid-column:2;grid-row:2/span 50;position:sticky;top:76px;max-height:calc(100vh - 92px);overflow:auto;background:#fff;border:1px solid var(--ui-line);border-radius:14px;padding:18px}
.jm-ui-v2 .ui-col-buy .ui-purchase{display:flex;flex-direction:column;margin:0}
.jm-ui-v2 .ui-col-buy .ui-buybar,.jm-ui-v2 .ui-totals .ui-buybar{order:-1;position:static;border:0;border-bottom:1px solid var(--ui-line);border-radius:0;box-shadow:none;margin:0 0 6px;padding:0 0 14px;min-height:0}
.jm-ui-v2 .ui-col-buy .ui-attribute{margin:14px 0 0}
.jm-ui-v2 .ui-product-hero img{width:180px;height:180px;flex-basis:180px;padding:10px}
.jm-ui-v2 .ui-totals{position:sticky;top:76px;display:flex;flex-direction:column}
.jm-ui-v2 .ui-totals .cart_totals,.jm-ui-v2 .ui-totals .wc-proceed-to-checkout{display:contents}
.jm-ui-v2 .ui-totals table,.jm-ui-v2 .ui-totals .shop_table{width:100%}
}
:root:not(.jm-ui-js) .jm-ui-v2 .ui-options{display:none}
/* Only the two Bootstrap utilities used by the SET C fragment, scoped to that fragment. */
.jm-ui-v2 .ui-popover .d-flex{display:flex}
.jm-ui-v2 .ui-popover .align-items-end{align-items:flex-end}
.jm-ui-v2 .ui-popover .smart-cart-box{position:relative;width:100%;font-size:16px;line-height:1.4}
.jm-ui-v2 .ui-popover .list-menu{list-style:none;margin:0 0 10px;padding:0}
.jm-ui-v2 .ui-popover .amount-data{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}
.jm-ui-v2 .ui-popover .total-price{font-weight:700;white-space:nowrap}
.jm-ui-v2 .ui-popover .button,.jm-ui-v2 .ui-popover .btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;background:var(--ui-brand);color:var(--ui-on-brand);border-radius:10px;font-weight:700}
/* WooCommerce notices: our own card without the core icon (it is absolutely
   positioned and overlapped the text) and without the focus ring - WooCommerce moves
   focus to the notice after an item is removed, and a thick blue frame was drawn
   around it. */
.jm-ui-v2 .woocommerce-error,.jm-ui-v2 .woocommerce-message,.jm-ui-v2 .woocommerce-info{position:relative;list-style:none;margin:12px 0;padding:12px 16px;background:#fff;border:1px solid var(--ui-line);border-radius:10px;font-size:15px;line-height:1.45;color:var(--ui-ink)}
.jm-ui-v2 .woocommerce-error::before,.jm-ui-v2 .woocommerce-message::before,.jm-ui-v2 .woocommerce-info::before{display:none}
.jm-ui-v2 .woocommerce-error:focus,.jm-ui-v2 .woocommerce-message:focus,.jm-ui-v2 .woocommerce-info:focus,.jm-ui-v2 .woocommerce-error:focus-visible,.jm-ui-v2 .woocommerce-message:focus-visible,.jm-ui-v2 .woocommerce-info:focus-visible{outline:none}
.jm-ui-v2 .woocommerce-message{border-left:4px solid #0d8a5f}
.jm-ui-v2 .woocommerce-error{border-left:4px solid #c0392b}
.jm-ui-v2 .woocommerce-message a,.jm-ui-v2 .woocommerce-info a{font-weight:700}
.jm-ui-v2 .woocommerce-message .restore-item{margin-left:4px}
.jm-ui-v2 .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.jm-ui-v2 .ui-totals table{border-collapse:collapse;width:100%;font-size:14px}
.jm-ui-v2 .ui-totals th,.jm-ui-v2 .ui-totals td{padding:8px;border-bottom:1px solid var(--ui-line);text-align:left}
.jm-ui-v2 .ui-totals ul{list-style:none;padding:0;margin:0}
.jm-ui-v2 .ui-totals input[type=radio]{min-height:0;width:auto}
@media(max-width:799px){
/* The sticky buy/total bar at the bottom of the screen covered the trust block under
   the cart and the last packs in the product card (apotekhagalunds.com audit, 390):
   bottom padding. */
.jm-ui-v2.ui-route-cart .ui-main,.jm-ui-v2.ui-route-single-product .ui-main{padding-bottom:96px}
.jm-ui-v2.ui-route-single-product .ui-crumbs{margin:8px 0;line-height:20px}
.jm-ui-v2.ui-route-single-product h1{margin:10px 0;font-size:24px;line-height:28px}
.jm-ui-v2 .ui-product-hero{min-height:100px;padding:10px;margin:8px 0;gap:12px}
.jm-ui-v2 .ui-product-hero img{width:104px;height:104px;flex-basis:104px}
.jm-ui-v2 .ui-product-hero .ui-price{font-size:17px;line-height:22px}
.jm-ui-v2 .ui-attribute{margin:12px 0}
.jm-ui-v2 .ui-attribute legend{font-size:14px;line-height:22px;margin-bottom:8px}
}
/* moved out of the deferred part: layout rules must arrive immediately, otherwise
   blocks change height after load and the page jumps (shift 0.178) */
.jm-ui-v2 .ui-trust{display:grid;grid-template-columns:1fr 1fr;gap:14px;font-size:13px}
/* Trust block inside the product card header: on phones and mid-size screens it sits
   under the photo and price behind a rule; from 1000px it becomes the right column,
   where there would otherwise be empty space. The layout is in the critical part so
   the header does not jump. */
.jm-ui-v2 .ui-product-hero{flex-wrap:wrap}
.jm-ui-v2 .ui-product-hero>.ui-trust-inline{flex:1 1 100%;margin-top:4px;padding-top:12px;border-top:1px solid var(--ui-line)}
/* On phones the delivery-and-payment block inside the card is hidden - owner's
   decision 23.09: it filled the screen between the price and the pack selector and
   gave nothing in return. */
@media(max-width:799px){.jm-ui-v2 .ui-product-hero>.ui-trust-inline{display:none}}
@media(min-width:1000px){
.jm-ui-v2 .ui-product-hero{flex-wrap:nowrap}
.jm-ui-v2 .ui-product-hero>div:not(.ui-trust){flex:1 1 auto;min-width:0}
/* The trust column is narrow (icons 3+2) so dosages and the price have room. */
.jm-ui-v2 .ui-product-hero>.ui-trust-inline{flex:0 0 240px;margin:0 0 0 auto;padding:4px 0 4px 20px;border-top:0;border-left:1px solid var(--ui-line);grid-template-columns:1fr;gap:12px;align-self:center}
.jm-ui-v2 .ui-product-hero>.ui-trust-inline .ui-pays{max-width:170px}
}
.jm-ui-v2 .ui-expert{display:flex;gap:12px;align-items:flex-start}
.jm-ui-v2 .ui-footer-grid{display:grid;gap:20px;max-width:1120px;margin:auto}
.jm-ui-v2 .ui-pays{display:flex;flex-wrap:wrap;gap:8px}
.jm-ui-v2 .ui-ships{display:grid;gap:9px}
.jm-ui-v2 .ui-ship{display:flex;align-items:flex-start;gap:9px;font-size:14px;color:#3c4457}
.jm-ui-v2 .ui-coupon{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}
.jm-ui-v2 .ui-pagination{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.jm-ui-v2 .ui-catalog-tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
/* Three columns only on wide screens. When these rules were moved from the deferred
   styles into the critical ones the media wrapper was lost, and the footer stayed
   three-column on phones - on every page of the site. */
@media(min-width:800px){.jm-ui-v2 .ui-footer-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 40px}}
/* "Why us": one grid as in the layout - one column on phones, two from 800px. Cards
   inside the grid carry no margin of their own, otherwise the card margin was added
   on top of the gap. */
.jm-ui-v2 .ui-benefits{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 12px}
.jm-ui-v2 .ui-benefits>.ui-card{display:flex;gap:12px;align-items:flex-start;margin:0}
.jm-ui-v2 .ui-benefits>.ui-card>svg{width:22px;height:22px;flex:0 0 22px;color:var(--ui-brand);margin-top:2px}
.jm-ui-v2 .ui-benefits>.ui-card>div{min-width:0}
.jm-ui-v2 .ui-benefits b{display:block;font-size:15px;line-height:1.3;margin-bottom:3px}
.jm-ui-v2 .ui-benefits span{display:block;font-size:13.5px;line-height:1.45;color:var(--ui-muted)}
@media(min-width:800px){.jm-ui-v2 .ui-benefits{grid-template-columns:1fr 1fr;gap:12px}.jm-ui-v2 .ui-benefits>.ui-card{padding:18px}.jm-ui-v2 .ui-benefits>.ui-card>svg{width:24px;height:24px;flex-basis:24px}.jm-ui-v2 .ui-benefits b{font-size:16px;margin-bottom:5px}}
/* The free-shipping bar is the first block of the cart, so its layout must arrive
   with the very first paint. */
/* A threshold not yet reached shows a neutral bar in the brand colour; it turns green
   only once free shipping is actually reached. */
.jm-ui-v2 .ui-ship-free{display:flex;gap:10px;align-items:flex-start;background:var(--ui-badge);border:1px solid var(--ui-line);border-radius:12px;padding:11px 13px;margin:0 0 12px}
.jm-ui-v2 .ui-ship-free svg{width:20px;height:20px;flex:0 0 20px;color:var(--ui-link);margin-top:2px}
.jm-ui-v2 .ui-ship-free>div{flex:1;min-width:0}
.jm-ui-v2 .ui-ship-free b{display:block;font-size:14px;color:var(--ui-link)}
.jm-ui-v2 .ui-ship-free.is-reached{background:#e9f7f1;border-color:#cceade}
.jm-ui-v2 .ui-ship-free.is-reached svg,.jm-ui-v2 .ui-ship-free.is-reached b{color:#0b6f4d}
/* Only the explanatory line itself, not everything: wc_price() prints the price in
   nested spans, and a blanket display:block broke "172,19 EUR" into three lines. */
.jm-ui-v2 .ui-ship-free>div>span{display:block;font-size:13px;color:var(--ui-muted)}
.jm-ui-v2 .ui-ship-free.is-reached>div>span{color:#3d6b5c}
.jm-ui-v2 .ui-ship-free .woocommerce-Price-amount{display:inline;white-space:nowrap}
.jm-ui-v2 .ui-ship-bar{height:5px;background:#d6dde8;border-radius:99px;margin-top:7px;overflow:hidden}
.jm-ui-v2 .ui-ship-bar i{display:block;height:100%;background:var(--ui-brand)}
.jm-ui-v2 .ui-ship-free.is-reached .ui-ship-bar{background:#cceade}
.jm-ui-v2 .ui-ship-free.is-reached .ui-ship-bar i{background:#0d8a5f}
.jm-ui-v2 .ui-variant{display:inline-block;margin-top:5px;font-size:12px;font-weight:600;color:var(--ui-link);background:var(--ui-badge);border-radius:999px;padding:3px 9px}
/* Card header: the "from" label, the dosage list, the stock mark and section
   navigation. All above the fold - the layout is needed immediately. */
.jm-ui-v2 .ui-from{font-size:13px;font-weight:600;color:var(--ui-muted)}
.jm-ui-v2 .ui-doses-hint{margin:0 0 4px;font-size:13px;color:var(--ui-muted)}
.jm-ui-v2 .ui-stock{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;padding:3px 10px;border-radius:999px;background:#e9f7f1;color:#0b6f4d;font-size:13px;font-weight:700}
.jm-ui-v2 .ui-stock svg{width:14px;height:14px;flex:0 0 14px}
/* One scrollable row rather than a grid: section headings are long, and ten wrapped
   chips took up half the screen. */
.jm-ui-v2 .ui-anchors{display:flex;flex-wrap:nowrap;gap:8px;margin:14px 0 4px;overflow-x:auto;white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.jm-ui-v2 .ui-anchors::-webkit-scrollbar{display:none}
/* The right edge of the chip row fades out: without it the last label was cut at the
   boundary ("...av Viagr", apotekhagalunds.com, 1440). */
.jm-ui-v2 .ui-anchors{padding-right:32px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 40px),transparent)}
.jm-ui-v2 .ui-anchors a{flex:0 0 auto;display:inline-flex;align-items:center;min-height:36px;padding:7px 13px;border:1px solid var(--ui-line);border-radius:999px;background:#fff;color:var(--ui-link);font-size:13px;font-weight:700;text-decoration:none}
.jm-ui-v2 .ui-description details{scroll-margin-top:76px}
/* After an add-to-cart WooCommerce inserts a third link into the buy bar ("view
   cart"). On a narrow screen three blocks do not fit in a row and the text was clipped
   by the edge - the owner sent a screenshot. The link is redundant: the counter and the
   way to the cart are in the header, and in the layout the bar is a price and one
   button. */
.jm-ui-v2 .ui-buybar .added_to_cart{display:none}
/* The price shrinks first; the button takes the remainder and keeps its label from
   being clipped. */
.jm-ui-v2 .ui-buybar>div:first-child{flex:0 1 auto;min-width:0}
.jm-ui-v2 .ui-buybar .ui-buy{flex:1 1 auto;min-width:0}
/* deferred */
.jm-ui-v2 :focus-visible{outline:3px solid var(--ui-link);outline-offset:3px}
/* The option buttons already carry a 2px border: the keyboard ring is thinner and
   closer, otherwise there would be two heavy outlines. */
.jm-ui-v2 .ui-pack:focus-visible,.jm-ui-v2 .ui-dose:focus-visible{outline-width:2px;outline-offset:2px}
.jm-ui-v2 button:disabled{cursor:not-allowed;border-style:dashed;background:#e7e9ed;color:#555c68}
/* Only the value label, not any span: this rule came later with the same specificity
   as .ui-pays{display:flex} and overrode it - the payment marks in the trust block
   stacked into a column and the card stretched with empty space. */
.jm-ui-v2 .ui-trust b,.jm-ui-v2 .ui-trust>div>span:not(.ui-pays){display:block}
.jm-ui-v2 .ui-trust .ui-pays{margin-top:4px}
.jm-ui-v2 .ui-trust span{color:var(--ui-muted)}
.jm-ui-v2 .ui-expert img{width:46px;height:46px;object-fit:cover;border-radius:50%}
.jm-ui-v2 .ui-expert h3{margin-top:0}
.jm-ui-v2 .ui-expert p{font-size:14px}
.jm-ui-v2 .ui-footer{margin-top:26px;padding:20px 14px 24px;background:#fff;border-top:1px solid var(--ui-line);font-size:13px;color:var(--ui-muted)}
.jm-ui-v2 .ui-foot-h-sub{margin-top:18px}
.jm-ui-v2 .ui-foot-h{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted);margin-bottom:6px}
.jm-ui-v2 .ui-foot-contact p{margin:0 0 6px}
.jm-ui-v2 .ui-pay svg{display:block;width:48px;height:30px;border:1px solid var(--ui-line);border-radius:5px}
.jm-ui-v2 .ui-pay-text{display:inline-flex;align-items:center;height:30px;padding:0 9px;border:1px solid var(--ui-line);border-radius:5px;background:#fff;font-size:11px;font-weight:700}
.jm-ui-v2 .ui-ship svg{flex:0 0 20px;width:20px;height:20px;margin-top:2px;color:var(--ui-brand)}
.jm-ui-v2 .ui-foot-legal{max-width:1120px;margin:18px auto 0;padding-top:14px;border-top:1px solid var(--ui-line);font-size:12px;text-align:center}
.jm-ui-v2 .ui-desc{margin-top:22px;padding:16px;background:#fff;border:1px solid var(--ui-line);border-radius:14px}
.jm-ui-v2 .ui-desc h2:first-child,.jm-ui-v2 .ui-desc-intro>:first-child{margin-top:0}
.jm-ui-v2 .ui-desc-intro{position:relative}
.jm-ui-v2 .ui-desc-intro.ui-fade::after{content:"";position:absolute;left:0;right:0;bottom:0;height:64px;background:linear-gradient(rgba(255,255,255,0),#fff);pointer-events:none}
.jm-ui-v2 .ui-more svg{transition:transform .15s}
.jm-ui-v2 .ui-more[aria-expanded=true] svg{transform:rotate(180deg)}
.jm-ui-v2 .ui-footer ul,.jm-ui-v2 .ui-menu ul{list-style:none;padding:0;margin:0}
.jm-ui-v2 .ui-footer a,.jm-ui-v2 .ui-menu a{display:inline-flex;align-items:center;min-height:44px}
.jm-ui-v2 .ui-menu ul ul{padding-left:16px}
.jm-ui-v2 .ui-back{display:block;text-align:center;padding:14px;font-weight:600;min-height:44px}
/* JM-DESC 3.2.0 (2026-10-06): the description is one even list. Every disclosure (an H2
   section and an H3 subsection) is the same row: dark bold heading, an arrow on the right,
   one thin rule above. Previously two styles mixed, double rules and the browser's own
   marker looked broken (owner, 06.10, novaapotheek.com). Ported from jm-ui-v2 3.2.0/3.2.1. */
.jm-ui-v2 .ui-description h2.ui-sec{margin:24px 0 0;padding:0 0 6px;border:0;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-muted);scroll-margin-top:76px}
.jm-ui-v2 .ui-description h2.ui-sec:first-child{margin-top:0}
.jm-ui-v2 .ui-description details{margin:0;padding:0;border:0;border-top:1px solid var(--ui-line);scroll-margin-top:76px}
.jm-ui-v2 .ui-description>details:first-child,.jm-ui-v2 .ui-description h2.ui-sec+details{border-top:0}
.jm-ui-v2 .ui-description summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;list-style:none;font-size:16px;font-weight:700;line-height:1.35;color:var(--ui-ink)}
.jm-ui-v2 .ui-description summary::-webkit-details-marker{display:none}
.jm-ui-v2 .ui-description summary::after{content:"";flex:0 0 9px;width:9px;height:9px;margin-right:4px;border-right:2px solid var(--ui-muted);border-bottom:2px solid var(--ui-muted);transform:translateY(-3px) rotate(45deg);transition:transform .2s}
.jm-ui-v2 .ui-description details[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.jm-ui-v2 .ui-description summary>h2.ui-sec{display:inline;margin:0;padding:0;font:inherit;letter-spacing:normal;text-transform:none;color:inherit}
.jm-ui-v2 .ui-description details>*:not(summary){margin:0 0 12px}
.jm-ui-v2 .ui-description details[open]{padding-bottom:4px}
/* JM-DESC 3.2.1 (2026-10-06): every row is closed; subsections live inside their section,
   also closed rows, slightly indented and smaller. */
.jm-ui-v2 .ui-description details.ui-sub-details{margin-left:14px;border-top:1px solid var(--ui-line)}
.jm-ui-v2 .ui-description details.ui-sub-details>summary{padding:12px 0;font-size:15px;font-weight:600}
.jm-ui-v2 .ui-description details.ui-sub-details:last-child{margin-bottom:6px}
/* Laravel port: the original H3 element is moved into its summary (heading semantics and
   attributes kept), styled exactly like the WordPress summary text. */
.jm-ui-v2 .ui-description summary>h3.ui-sub{display:inline;margin:0;padding:0;font:inherit;letter-spacing:normal;text-transform:none;color:inherit}
/* Any anchor inside the description lands below the sticky header. */
.jm-ui-v2 .ui-description [id]{scroll-margin-top:76px}
.jm-ui-v2 .ui-faq{border-bottom:1px solid var(--ui-line);padding:8px 0}
.jm-ui-v2 .ui-faq summary{font-weight:700;padding:10px 0;color:var(--ui-link)}
.jm-ui-v2 .ui-faq>div{margin:10px 0}
.jm-ui-v2 .ui-description>:last-child{margin-bottom:0}
/* break-word, not anywhere: anywhere broke words in table headers mid-word
   ("Toimitusai-ka") even though the table scrolls sideways anyway. */
.jm-ui-v2 .ui-description,.jm-ui-v2 .ui-page{overflow-wrap:break-word}
/* Inner pages (terms, policies, about). The content arrives from the editor as it is:
   in "Terms" and "Policies" the subheadings are <h4><strong>...</strong></h4> with a
   <br/> before and after each. We bring those headings to the look of section
   subheadings, hide the spacer breaks next to headings and cap the line width. */
.jm-ui-v2 .ui-page{max-width:880px;font-size:16px;line-height:1.55}
.jm-ui-v2 .ui-main>article.ui-page{margin-left:auto;margin-right:auto}
.jm-ui-v2 .ui-page p{margin:0 0 12px}
.jm-ui-v2 .ui-page h2,.jm-ui-v2 .ui-page h3,.jm-ui-v2 .ui-page h4,.jm-ui-v2 .ui-page h5{margin:26px 0 10px;color:var(--ui-ink);line-height:1.3}
.jm-ui-v2 .ui-page h2{font-size:22px}
.jm-ui-v2 .ui-page h3{font-size:19px}
.jm-ui-v2 .ui-page h4,.jm-ui-v2 .ui-page h5{font-size:18px}
.jm-ui-v2 .ui-page h1+*,.jm-ui-v2 .ui-page h1+div>:first-child{margin-top:6px}
.jm-ui-v2 .ui-page :is(h2,h3,h4,h5) strong{font-weight:inherit}
.jm-ui-v2 .ui-page :is(h2,h3,h4,h5)+br,.jm-ui-v2 .ui-page br:has(+h2,+h3,+h4,+h5),.jm-ui-v2 .ui-page p+br{display:none}
.jm-ui-v2 .ui-page ul,.jm-ui-v2 .ui-page ol{margin:0 0 12px;padding-left:22px}
.jm-ui-v2 table{width:100%;font-size:14px;border-collapse:collapse}
.jm-ui-v2 th,.jm-ui-v2 td{padding:8px;border-bottom:1px solid var(--ui-line);text-align:left}
/* On phones the table scrolls sideways; on wide screens it is an ordinary full-width
   table. */
.jm-ui-v2 .ui-description table{display:block;overflow-x:auto}
@media(min-width:800px){.jm-ui-v2 .ui-description table{display:table}}
.jm-ui-v2 .ui-description th{white-space:nowrap;color:var(--ui-muted);font-weight:600}
@media(min-width:800px){.jm-ui-v2 .ui-description p,.jm-ui-v2 .ui-description li{max-width:74ch}}
.jm-ui-v2 .ui-coupon label{width:100%}
.jm-ui-v2 .ui-coupon input{min-width:0;width:50%;flex:1}
.jm-ui-v2 .ui-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;background:#fff;border:1px solid var(--ui-line);border-radius:8px}
.jm-ui-v2 .ui-pagination .current{background:var(--ui-brand);color:var(--ui-on-brand)}
.jm-ui-v2 .ui-status{margin:10px 0;font-weight:600}
.jm-ui-v2 .ui-totals .cart_totals{float:none;width:100%}
.jm-ui-v2 .ui-popover .smart-cart-ordered{position:static;display:block;visibility:visible;opacity:1;transform:none;width:100%;height:auto;max-height:none;box-shadow:none}
.jm-ui-v2 .ui-popover .smart-cart{display:none}
.jm-ui-v2 #mobile-cart-container{display:none}
.jm-ui-v2 .ui-popover .cart{width:100%;margin:0}
.jm-ui-v2 .ui-popover img{max-width:64px}
.jm-ui-v2 .ui-cart-info dl{font-size:13px;color:var(--ui-muted);margin:4px 0}
.jm-ui-v2 .ui-cart-info dt,.jm-ui-v2 .ui-cart-info dd{display:inline;margin-right:6px}
@media(min-width:800px){
.jm-ui-v2 .ui-footer{padding:28px 32px 30px}
.jm-ui-v2 .ui-desc{margin-top:28px;padding:26px 30px}
.jm-ui-v2 .ui-more{max-width:320px;margin:10px auto 0}
.jm-ui-v2 .ui-sortbar a{font-size:15px;padding:10px 16px}
}
/* Pointer-only affordances: a touch tap must not leave an element stuck highlighted. */
@media(hover:hover){
.jm-ui-v2 a,.jm-ui-v2 button{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .15s}
.jm-ui-v2 .ui-button:not(:disabled):hover{background:var(--ui-brand-dark)}
.jm-ui-v2 .ui-product-card:hover{border-color:var(--ui-brand);box-shadow:0 6px 18px #141e3c14;transform:translateY(-2px)}
.jm-ui-v2 .ui-product-card:hover .ui-card-action{background:var(--ui-brand);color:var(--ui-on-brand)}
.jm-ui-v2 .ui-categories a:hover{border-color:var(--ui-brand)}
.jm-ui-v2 .ui-pack:not(:disabled):hover,.jm-ui-v2 .ui-dose:not(:disabled):hover{border-color:var(--ui-brand)}
.jm-ui-v2 .ui-sortbar a:hover:not([aria-current=true]){border-color:var(--ui-brand);color:var(--ui-link)}
.jm-ui-v2 .ui-crumbs a:hover,.jm-ui-v2 .ui-footer a:hover,.jm-ui-v2 .ui-back:hover,.jm-ui-v2 .ui-cart-info h2 a:hover{text-decoration:underline}
.jm-ui-v2 .ui-more:hover{border-color:var(--ui-brand);background:var(--ui-badge)}
.jm-ui-v2 .ui-quantity button:not(:disabled):hover,.jm-ui-v2 .ui-remove:hover{background:var(--ui-badge);color:var(--ui-link)}
.jm-ui-v2 .ui-clear:hover{color:#e23c3c}
.jm-ui-v2 .ui-pagination .page-numbers:not(.current):hover{border-color:var(--ui-brand)}
.jm-ui-v2 button:disabled:hover{background:#e7e9ed;transform:none;box-shadow:none}
}
@media(prefers-reduced-motion:reduce){.jm-ui-v2 *{scroll-behavior:auto;transition:none;animation:none}}

/* Label of the quantity field: the layout has none, but without it a screen reader
   cannot say what the field is. Hidden visually, kept for reading aloud. */
.jm-ui-v2 .ui-cart-info>label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.jm-ui-v2 .ui-anchors a:hover{border-color:var(--ui-brand);background:var(--ui-badge)}

/* The "show more" button for lists with a hidden tail: it only makes sense with
   scripting, so it is revealed by the same class the markup sets. */
.jm-ui-v2 .ui-more.is-shown{display:flex}
.jm-ui-v2 .ui-categories a[hidden]{display:none}
/* JM-SHIPDAYS 2026-10-06: two delivery lines in the trust block */
.jm-ui-v2 .ui-trust .ui-ship-line{display:block;white-space:nowrap}
.jm-ui-v2 .ui-trust>div.ui-trust-ship{grid-column:1/-1}
.jm-ui-v2 .ui-trust-inline>div.ui-trust-ship{grid-column:auto}
/* JM-FOOTER 2026-10-06: compact mobile footer — collapsible menus, two-column links, tighter rows */
.jm-ui-v2 .ui-foot-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:44px;margin:0}
.jm-ui-v2 .ui-foot-acc>summary::-webkit-details-marker{display:none}
.jm-ui-v2 .ui-foot-acc>summary::after{content:"";flex:none;width:8px;height:8px;margin-right:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .15s}
.jm-ui-v2 .ui-foot-acc[open]>summary::after{transform:translateY(2px) rotate(225deg)}
@media(max-width:799px){
.jm-ui-v2 .ui-footer-grid{gap:0}
.jm-ui-v2 .ui-foot-col{border-bottom:1px solid var(--ui-line)}
.jm-ui-v2 .ui-foot-contact{border-bottom:0;padding-top:14px}
.jm-ui-v2 .ui-foot-contact p{margin:0 0 2px}
.jm-ui-v2 .ui-foot-contact a{min-height:32px}
.jm-ui-v2 .ui-foot-contact .ui-foot-h-sub{margin-top:12px}
.jm-ui-v2 .ui-foot-acc ul{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;padding-bottom:10px}
.jm-ui-v2 .ui-foot-acc a{min-height:36px;font-size:14px}
.jm-ui-v2 .ui-foot-acc li{margin:0;padding:0}
}
@media(min-width:800px){.jm-ui-v2 .ui-foot-acc>summary{pointer-events:none;min-height:0;margin-bottom:6px}.jm-ui-v2 .ui-foot-acc>summary::after{display:none}}
/* JM-ZOOM 3.3.0 (2026-10-07): product photo - a button with a magnifier; the large photo in a <dialog>, loaded on press. */
.jm-ui-v2 .ui-zoom{position:relative;flex:0 0 auto;display:block;margin:0;padding:0;border:0;background:none;line-height:0;cursor:zoom-in;min-height:0}
.jm-ui-v2 .ui-zoom-icon{position:absolute;right:4px;bottom:4px;display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.94);color:var(--ui-ink);box-shadow:0 1px 4px rgba(0,0,0,.2);pointer-events:none}
.ui-lightbox{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:0;border:0;background:rgba(15,20,30,.92)}
.ui-lightbox::backdrop{background:rgba(15,20,30,.6)}
.ui-lightbox .ui-lb-scroll{width:100%;height:100%;overflow:auto;display:flex;align-items:center;justify-content:center}
.ui-lightbox img{display:block;max-width:min(100%,900px);max-height:100%;width:auto;height:auto;margin:auto;background:#fff;border-radius:8px;cursor:zoom-in}
.ui-lightbox.is-zoomed .ui-lb-scroll{display:block}
.ui-lightbox.is-zoomed img{max-width:none;max-height:none;width:200%;cursor:zoom-out;border-radius:0}
@media(min-width:800px){.ui-lightbox.is-zoomed img{width:1300px}}
.ui-lightbox .ui-lb-close{position:fixed;top:12px;right:12px;z-index:1;width:44px;height:44px;min-height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.95);color:#111;font-size:28px;line-height:44px;cursor:pointer}
