/* MEIMX design-system components for the ocStore / Deals storefront.
 * Source: ZIP 1 design system (tokens, atlas compositions) measured at 1440 / 390 px.
 * Fonts are the agreed OFL substitutes DM Sans / Source Serif 4 (see fonts/meimx/).
 * Loaded after Deals all.css and meimx-redesign.css; components use the mx- prefix.
 */

.meimx-site {
  --mx-font: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --mx-serif: "Source Serif 4", Georgia, serif;
  --mx-page-pad: clamp(16px, 4vw, 64px);
  --mx-section-gap: clamp(48px, 6vw, 86.4px);
  --mx-grid-gap: clamp(16px, 1.5vw, 24px);
  --mx-h1: clamp(40px, 5.5vw, 79.2px);
  --mx-h1-card: clamp(40px, 5vw, 72px);
  --mx-h2: clamp(28px, 3vw, 43.2px);
  --mx-h2-panel: clamp(30px, 3.4vw, 48.96px);
  --mx-h3: clamp(22px, 1.8vw, 25.92px);
  --mx-lead: clamp(17px, 1.4vw, 20px);
  --mx-r-2xl: 40px;
  background: var(--mx-ivory);
}

/* Layout */
.mx-container { width: 100%; max-width: 1440px; margin: 0 auto; padding-left: var(--mx-page-pad); padding-right: var(--mx-page-pad); }
.mx-section { padding-top: var(--mx-section-gap); }
.mx-section:last-child { padding-bottom: var(--mx-section-gap); }
.mx-page { padding-bottom: var(--mx-section-gap); }
.mx-page > .mx-section:first-child { padding-top: clamp(20px, 6vw, 86.4px); }
.mx-stack > * + * { margin-top: 16px; }
.mx-grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--mx-grid-gap); }
.mx-grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--mx-grid-gap); }
.mx-grid-4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--mx-grid-gap); }
@media (max-width: 991.98px) { .mx-grid-3, .mx-grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767.98px) { .mx-grid-2, .mx-grid-3, .mx-grid-4 { grid-template-columns: minmax(0, 1fr); } }
.mx-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

/* Type */
.meimx-site :is(.mx-h1, .mx-h1-card, .mx-h2, .mx-h2-panel, .mx-h3, .mx-h4) { font-family: var(--mx-font); font-weight: 400; color: var(--mx-green-4); margin: 0; text-wrap: balance; }
.meimx-site .mx-h1 { font-size: var(--mx-h1); line-height: 1.02; letter-spacing: -.02em; }
.meimx-site .mx-h1-card { font-size: var(--mx-h1-card); line-height: 1.02; letter-spacing: -.02em; }
.meimx-site .mx-h2 { font-size: var(--mx-h2); line-height: 1.1; letter-spacing: -.02em; }
.meimx-site .mx-h2-panel { font-size: var(--mx-h2-panel); line-height: 1.05; letter-spacing: -.02em; }
.meimx-site .mx-h3 { font-size: var(--mx-h3); line-height: 1.2; letter-spacing: -.01em; }
.meimx-site .mx-h4 { font-size: clamp(20px, 1.53vw, 22px); line-height: 1.25; letter-spacing: -.01em; }
.mx-serif { font-family: var(--mx-serif); font-style: italic; font-weight: 300; letter-spacing: -.01em; }
.mx-eyebrow { display: block; margin: 0 0 16px; font-size: 13px; line-height: 1.2; letter-spacing: .12em; text-transform: uppercase; color: var(--mx-green-3); }
.mx-lead { font-size: var(--mx-lead); line-height: 1.5; max-width: 560px; margin: 20px 0 0; color: var(--mx-green-4); }
.mx-muted { color: var(--mx-muted); }
.mx-sub { font-size: 17px; line-height: 1.5; color: var(--mx-muted); margin: 10px 0 0; max-width: 560px; }
.mx-section-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 24px; margin-bottom: 24px; }
.mx-section-head > * { min-width: 0; }
.mx-section-head .mx-h2 { margin: 0; }
.mx-text-link { color: var(--mx-green-3); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; font-size: 16px; }

/* Buttons: rectangular CTAs (8px) and pill navigation are separate families. */
.meimx-site .mx-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 24px; border: 1px solid transparent; border-radius: 8px; font: 500 16px/1 var(--mx-font); letter-spacing: 0; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background-color .2s var(--mx-ease), color .2s var(--mx-ease), border-color .2s var(--mx-ease), transform .12s var(--mx-ease); }
.meimx-site .mx-btn:active { transform: scale(.98); }
.meimx-site .mx-btn:hover { opacity: 1; }
.meimx-site .mx-btn:focus-visible, .meimx-site .mx-pill:focus-visible, .meimx-site .mx-icon-btn:focus-visible { outline: 2px solid var(--mx-green-4); outline-offset: 3px; box-shadow: none; }
.meimx-site .mx-btn--lg { min-height: 56px; }
.meimx-site .mx-btn--block { width: 100%; }
.meimx-site .mx-btn--primary { background: var(--mx-green-4); color: #fff; }
.meimx-site .mx-btn--primary:hover { background: #173845; color: #fff; }
.meimx-site .mx-btn--outline { background: transparent; border-color: var(--mx-green-4); color: var(--mx-green-4); }
.meimx-site .mx-btn--outline:hover { background: var(--mx-mint); color: var(--mx-green-4); }
.meimx-site .mx-btn--light { background: #fff; color: var(--mx-green-4); }
.meimx-site .mx-btn[disabled], .meimx-site .mx-btn.is-disabled { background: var(--mx-border); border-color: var(--mx-border); color: var(--mx-muted-2); cursor: not-allowed; transform: none; }
.mx-btn .mx-arrow { flex: none; width: 20px; height: 20px; }
.meimx-site .mx-pill { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 20px; border: 1px solid transparent; border-radius: 999px; background: transparent; color: var(--mx-muted); font: 400 16px/1 var(--mx-font); text-decoration: none; cursor: pointer; }
.meimx-site .mx-pill[aria-pressed="true"], .meimx-site .mx-pill[aria-current="page"], .meimx-site .mx-pill.is-active { background: var(--mx-mint); border-color: var(--mx-mint-2); color: var(--mx-green-4); }
.meimx-site .mx-pill:hover { color: var(--mx-green-4); opacity: 1; }
.mx-tag { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border: 1px solid var(--mx-green-3); border-radius: 999px; font-size: 14px; line-height: 1; color: var(--mx-green-3); background: transparent; }
.mx-tag--soft { border-color: var(--mx-mint-2); background: var(--mx-mint); color: var(--mx-green-3); }
.mx-tags { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.meimx-site .mx-icon-btn { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 48px; height: 48px; padding: 0; border: 1px solid var(--mx-border); border-radius: 50%; background: #fff; color: var(--mx-green-4); cursor: pointer; }

/* Surfaces */
.mx-card { background: #fff; border-radius: 24px; padding: 32px; box-shadow: var(--mx-shadow-card); }
.mx-panel { border-radius: var(--mx-r-2xl); padding: clamp(24px, 3.9vw, 56px); background: var(--mx-mint); }
.mx-panel--white { background: #fff; }
.mx-panel--cream { background: var(--mx-cream); }
.mx-panel--mint-2 { background: var(--mx-mint-2); }
.mx-media { display: block; width: 100%; height: auto; border-radius: 32px; object-fit: cover; }
.mx-hairline { border: 0; border-top: 1px solid var(--mx-border); margin: 0; opacity: 1; }

/* Page hero: text-only and split variants */
.mx-hero-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 530px); align-items: center; gap: clamp(24px, 4vw, 56px); padding: clamp(24px, 4.4vw, 64px); background: #fff; border-radius: var(--mx-r-2xl); }
.mx-hero-split--mint { background: var(--mx-mint); }
.mx-hero-split .mx-media { aspect-ratio: 4 / 3; }
@media (max-width: 991.98px) { .mx-hero-split { grid-template-columns: minmax(0, 1fr); } }
.mx-breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 24px; padding: 0; list-style: none; font-size: 14px; color: var(--mx-muted); }
.mx-breadcrumbs li + li::before { content: ""; display: inline-block; width: 6px; height: 6px; margin-right: 8px; border-right: 1px solid currentColor; border-top: 1px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.mx-breadcrumbs a { color: var(--mx-green-4); text-decoration: none; }
.mx-breadcrumbs [aria-current] { color: var(--mx-muted); }

/* Product grid and card (render, name, stock/tax line, hairline, price + CTA). */
.mx-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--mx-grid-gap); margin: 0; padding: 0; list-style: none; }
.mx-product-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1199.98px) { .mx-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 899.98px) { .mx-product-grid, .mx-product-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575.98px) { .mx-product-grid, .mx-product-grid--3 { grid-template-columns: minmax(0, 1fr); } }
.mx-product-card { position: relative; display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 32px; background: #fff; border-radius: 24px; box-shadow: var(--mx-shadow-card); isolation: isolate; }
.mx-product-card__media { display: flex; align-items: center; justify-content: center; aspect-ratio: 4 / 3; margin-bottom: 12px; overflow: hidden; border-radius: 16px; background: var(--mx-cream); }
.mx-product-card__media img { width: 75%; height: 100%; object-fit: cover; }
.meimx-site .mx-product-card__title { margin: 0; font: 400 var(--mx-h3)/1.2 var(--mx-font); letter-spacing: -.01em; color: var(--mx-green-4); }
.mx-product-card__link { color: inherit; text-decoration: none; }
.mx-product-card__link::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: 24px; }
.mx-product-card__link:hover { opacity: 1; color: var(--mx-green-3); }
.mx-product-card__link:focus-visible { outline: none; }
.mx-product-card__link:focus-visible::after { outline: 2px solid var(--mx-green-4); outline-offset: 2px; }
.mx-product-card__meta { margin: 0; font-size: 16px; line-height: 1.5; color: var(--mx-green-4); }
.mx-product-card__meta .is-out { color: var(--mx-coral); }
.mx-product-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 20px; border-top: 1px solid var(--mx-border); }
.mx-product-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: clamp(24px, 2vw, 28.8px); line-height: 1; color: var(--mx-green-4); white-space: nowrap; }
.mx-product-card__price s { font-size: 15px; color: var(--mx-muted); }
.mx-product-card__cta { position: relative; z-index: 2; }
.mx-product-card__badge { position: absolute; top: 44px; left: 44px; z-index: 2; }
.meimx-site .mx-product-card .mx-btn .button-text { font: inherit; }
.meimx-site .mx-product-card .mx-btn.added { background: var(--mx-green-3); }
@media (max-width: 575.98px) { .mx-product-card { padding: 32px; } .mx-product-card__foot { flex-wrap: nowrap; } }

/* Accordion (FAQ rows, research focus notes) */
.mx-accordion { border-top: 1px dashed var(--mx-border); }
.mx-accordion__item { border-bottom: 1px dashed var(--mx-border); }
.meimx-site .mx-accordion__trigger { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 0; border: 0; background: none; text-align: left; font: 400 clamp(18px, 1.6vw, 23.04px)/1.3 var(--mx-font); color: var(--mx-green-4); cursor: pointer; }
.meimx-site .mx-accordion__trigger:focus-visible { outline: 2px solid var(--mx-green-4); outline-offset: 2px; }
.mx-accordion__trigger::after { content: ""; flex: none; width: 18px; height: 18px; background: var(--mx-green-4); border-radius: 2px; transition: transform .2s var(--mx-ease); }
.mx-accordion__trigger[aria-expanded="true"]::after { transform: rotate(45deg) scale(.8); }
.mx-accordion__panel { padding: 0 0 24px; font-size: 16px; line-height: 1.55; color: var(--mx-green-4); }
.mx-accordion__panel[hidden] { display: none; }
.mx-accordion__panel > :last-child { margin-bottom: 0; }

/* Forms */
.mx-field { display: grid; gap: 8px; margin: 0 0 20px; }
.mx-label { font-size: 16px; line-height: 1.3; color: var(--mx-green-4); }
.meimx-site .mx-input { width: 100%; min-height: 56px; padding: 14px 18px; border: 1px solid var(--mx-border); border-radius: 8px; background: #fff; font: 400 16px/1.4 var(--mx-font); color: var(--mx-green-4); box-shadow: none; }
.meimx-site textarea.mx-input { min-height: 120px; resize: vertical; }
.meimx-site .mx-input:focus { outline: none; border-color: var(--mx-green-4); box-shadow: var(--mx-focus); }
.meimx-site .mx-input[aria-invalid="true"] { border-color: var(--mx-coral); }
.mx-field-error { font-size: 14px; color: #B3261E; margin: 0; }
.mx-help { font-size: 14px; color: var(--mx-muted); margin: 0; }
.mx-search-field { position: relative; display: block; }
.mx-search-field svg { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); color: var(--mx-muted); pointer-events: none; }
.meimx-site .mx-search-field .mx-input { padding-left: 52px; border-radius: 999px; }
.mx-alert { display: flex; gap: 12px; align-items: flex-start; padding: 16px 20px; border-radius: 12px; background: var(--mx-mint); color: var(--mx-green-4); font-size: 15px; }
.mx-alert--error { background: #FDECEB; color: #8C1D18; }

/* Pagination (round) */
.mx-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 40px 0 0; padding: 0; list-style: none; }
.mx-pagination a, .mx-pagination span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 8px; border-radius: 50%; color: var(--mx-green-4); text-decoration: none; font-size: 16px; }
.mx-pagination .is-current { background: var(--mx-green-4); color: #fff; }
.mx-pagination .is-nav { background: var(--mx-mint-2); }
.mx-pagination .is-disabled { background: var(--mx-mint); color: var(--mx-muted-2); }

/* Shared section: How ordering works (3 photo steps) */
.mx-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); margin: 32px 0 0; padding: 0; list-style: none; }
.mx-steps__media { position: relative; }
.mx-steps__media img { aspect-ratio: 4 / 3; }
.mx-steps__badge { position: absolute; top: 12px; left: 12px; padding: 6px 12px; border-radius: 999px; background: rgba(255, 255, 255, .8); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--mx-green-4); }
.meimx-site .mx-steps h3 { margin: 22px 0 10px; font-size: clamp(20px, 1.7vw, 24.48px); line-height: 1.25; font-weight: 400; }
.mx-steps p { margin: 0; font-size: 16px; line-height: 1.55; }
@media (max-width: 767.98px) { .mx-steps { grid-template-columns: minmax(0, 1fr); gap: 32px; } }

/* Shared section: Why order from MEIMX (4 icon cards) */
.mx-why { margin-top: 32px; }
.mx-why .mx-card { padding: 32px; }
.mx-why svg { display: block; width: 36px; height: 36px; margin-bottom: 20px; color: var(--mx-green-3); }
.meimx-site .mx-why h3 { margin: 0 0 10px; font-size: clamp(20px, 1.53vw, 22px); line-height: 1.25; font-weight: 400; }
.mx-why p { margin: 0; font-size: 16px; line-height: 1.55; }

/* Shared section: FAQ block (heading left, accordion right) */
.mx-faq { display: grid; grid-template-columns: minmax(0, 462px) minmax(0, 1fr); gap: clamp(24px, 4vw, 58px); }
.mx-faq__aside .mx-sub { margin: 12px 0 20px; font-size: 16px; }
@media (max-width: 991.98px) { .mx-faq { grid-template-columns: minmax(0, 1fr); } }

/* Shared section: Final CTA */
.mx-cta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 532px); align-items: center; gap: clamp(24px, 4vw, 64px); padding: clamp(32px, 5vw, 72px); border-radius: var(--mx-r-2xl); background: var(--mx-mint); }
.mx-cta .mx-media { aspect-ratio: 16 / 10; }
.mx-cta p { margin: 16px 0 28px; font-size: 17px; line-height: 1.5; max-width: 460px; }
.mx-actions { display: flex; flex-wrap: wrap; gap: 12px; }
@media (max-width: 991.98px) { .mx-cta { grid-template-columns: minmax(0, 1fr); } }

/* Shared footer */
.mx-footer { margin-top: clamp(48px, 6vw, 96px); background: linear-gradient(180deg, #146464 0%, #1F4855 55%, #151833 100%); border-radius: 40px 40px 0 0; color: #fff; }
.mx-footer-top { display: grid; grid-template-columns: 1.1fr 1fr 1fr 1fr; gap: 32px; padding-top: 72px; padding-bottom: 56px; }
.meimx-site .mx-footer .mx-footer-logo { display: inline-block; margin: 0 0 22px; font: 300 clamp(26px, 2.2vw, 31.68px)/1 var(--mx-font); letter-spacing: .38em; text-transform: uppercase; color: #fff; }
.mx-footer-brand p { margin: 0; max-width: 280px; font-size: 15px; line-height: 1.6; color: rgba(255, 255, 255, .82); }
.meimx-site .mx-footer-title { margin: 6px 0 18px; font: 400 13px/1.2 var(--mx-font); letter-spacing: .12em; text-transform: uppercase; color: rgba(255, 255, 255, .72); }
.mx-footer-col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.meimx-site .mx-footer a { color: #fff; text-decoration: none; font-size: 15px; line-height: 1.4; }
.meimx-site .mx-footer a:hover { opacity: .8; }
.meimx-site .mx-footer a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
.meimx-site .mx-footer .mx-footer-phone { font-size: 18px; }
.mx-footer-socials { display: flex !important; gap: 10px !important; margin-top: 18px !important; }
.mx-footer-socials a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 50%; }
.mx-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .14); }
.mx-footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 24px; padding-bottom: 24px; }
.mx-footer-bottom p { margin: 0; font-size: 14px; color: rgba(255, 255, 255, .82); }
.mx-footer-payments { display: flex; align-items: center; gap: 8px; padding: 4px 14px; border-radius: 999px; background: #fff; }
.mx-footer-payment img { display: block; width: 50px; height: 30px; object-fit: contain; }
@media (max-width: 991.98px) { .mx-footer-top { grid-template-columns: 1fr 1fr; } .mx-footer-brand { grid-column: 1 / -1; } }
@media (max-width: 575.98px) { .mx-footer-top { grid-template-columns: minmax(0, 1fr); padding-top: 48px; } .mx-footer-bottom-inner { flex-direction: column; align-items: flex-start; } }

/* Retired Deals chrome: bottom mobile bar, fixed contact bubble and the theme switch. */
.ds-mobile-bottom-nav, #ds_fixed_contact_button, #ds_fixed_contact_substrate, .ds-theme-switcher { display: none !important; }
body.meimx-site { padding-bottom: 0 !important; }

/* Catalogue hub / research focus */
.mx-category-hero .mx-hero-split .mx-lead { margin-top: 20px; }
.mx-filter { display: grid; gap: 18px; margin: 0 0 24px; padding: 28px; }
.mx-filter__focuses { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin: 0; padding: 0; border: 0; min-width: 0; }
.mx-check { display: inline-flex; align-items: center; gap: 10px; min-height: 40px; font-size: 16px; color: var(--mx-green-3); cursor: pointer; }
.meimx-site .mx-check input { appearance: none; width: 20px; height: 20px; margin: 0; border: 1px solid var(--mx-border); border-radius: 4px; background: #fff; display: grid; place-content: center; cursor: pointer; }
.meimx-site .mx-check input:checked { background: var(--mx-green-4); border-color: var(--mx-green-4); }
.meimx-site .mx-check input:checked::after { content: ""; width: 10px; height: 6px; border: 2px solid #fff; border-top: 0; border-right: 0; transform: rotate(-45deg) translate(1px, -1px); }
.meimx-site .mx-check input:focus-visible { outline: 2px solid var(--mx-green-4); outline-offset: 2px; }
.meimx-site .mx-filter__clear { border: 0; background: none; padding: 0; cursor: pointer; }
.mx-listing-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0 0 18px; }
.mx-listing-count { margin: 0; font-size: 14px; color: var(--mx-muted); }
.mx-sort { display: inline-flex; align-items: center; gap: 10px; font-size: 14px; color: var(--mx-muted); }
.meimx-site .mx-select { min-height: 40px; padding: 0 36px 0 14px; border: 1px solid var(--mx-border); border-radius: 8px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%231F4855' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 14px center; appearance: none; font: 400 15px/1 var(--mx-font); color: var(--mx-green-4); }
.mx-product-grid > li[hidden] { display: none; }
.mx-empty { display: grid; justify-items: start; gap: 16px; }
.mx-empty p { margin: 0; font-size: 18px; }
.mx-focus-list { display: grid; grid-template-columns: minmax(0, 476px) minmax(0, 1fr); gap: clamp(24px, 4vw, 58px); }
.mx-focus-list dl { margin: 0; border-top: 1px dashed var(--mx-border); }
.mx-focus-list dl > div { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 24px; padding: 22px 0; border-bottom: 1px dashed var(--mx-border); }
.mx-focus-list dt { font-weight: 400; font-size: 18px; }
.mx-focus-list dt a { color: var(--mx-green-4); text-decoration: none; }
.mx-focus-list dd { margin: 0; font-size: 15px; line-height: 1.55; color: var(--mx-muted); }
@media (max-width: 991.98px) { .mx-focus-list { grid-template-columns: minmax(0, 1fr); } .mx-focus-list dl > div { grid-template-columns: minmax(0, 1fr); gap: 8px; } }
.mx-focus-pills { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--mx-grid-gap); margin: 24px 0 0; padding: 0; list-style: none; }
.meimx-site .mx-focus-pill { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 16px 24px; border-radius: 24px; background: var(--mx-mint); color: var(--mx-green-4); text-decoration: none; font-size: 18px; }
.mx-focus-pill__count { font-size: 14px; color: var(--mx-green-3); }
/* Native OpenCart pagination markup inside the design-system wrapper. */
.mx-pagination-wrap .pagination { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 40px 0 0; padding: 0; list-style: none; }
.mx-pagination-wrap .page-item .page-link, .mx-pagination-wrap .pagination li > a, .mx-pagination-wrap .pagination li > span { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 8px; border: 0; border-radius: 50% !important; background: transparent; color: var(--mx-green-4); font-size: 16px; text-decoration: none; box-shadow: none; }
.mx-pagination-wrap .pagination .active > a, .mx-pagination-wrap .pagination .active > span, .mx-pagination-wrap .page-item.active .page-link { background: var(--mx-green-4); color: #fff; }
@media (max-width: 575.98px) { .mx-listing-bar { flex-direction: column; align-items: flex-start; } .mx-filter { padding: 20px; } }

/* Minimal shell for focused task screens (login, registration, password reset, product finder). */
.mx-minimal-header { background: #fff; border-bottom: 1px solid var(--mx-border); }
.mx-minimal-header__inner { display: flex; align-items: center; justify-content: space-between; min-height: 64px; }
.mx-minimal-header__logo img { display: block; width: 116px; height: 25px; object-fit: contain; }
.meimx-site .mx-minimal-header__back { display: inline-flex; align-items: center; gap: 8px; font-size: 16px; color: var(--mx-green-3); text-decoration: none; }

/* Stats strip (live catalogue figures) */
.mx-stats .mx-eyebrow { margin-bottom: 20px; }
.mx-stats__list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--mx-grid-gap); margin: 0; }
.mx-stats__item { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 14px; padding-bottom: 16px; border-bottom: 1px dashed var(--mx-border); }
.mx-stats__item dd { margin: 0; font-size: clamp(40px, 4.4vw, 63px); line-height: 1; letter-spacing: -.02em; color: var(--mx-green-4); }
.mx-stats__item dt { font-weight: 400; font-size: 15px; color: var(--mx-green-3); }
@media (max-width: 767.98px) { .mx-stats__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Information table (brand column highlighted, hairline rows) */
.mx-compare__wrap { margin-top: 28px; overflow-x: auto; }
.mx-compare__table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 15px; }
.mx-compare__table th, .mx-compare__table td { padding: 18px 20px; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--mx-border); font-weight: 400; color: var(--mx-green-4); }
.mx-compare__table thead th { border-bottom: 0; font-size: 18px; padding-top: 22px; }
.mx-compare__table tbody th { padding-left: 0; width: 34%; }
.mx-compare__table .is-brand { width: 26%; background: var(--mx-mint); color: var(--mx-green-3); }
.mx-compare__table thead .is-brand { border-radius: 24px 24px 0 0; }
.mx-compare__table tbody tr:last-child .is-brand { border-radius: 0 0 24px 24px; }
.mx-compare__table td:last-child { color: var(--mx-muted); }
@media (max-width: 575.98px) { .mx-compare__table th, .mx-compare__table td { padding: 14px 10px; font-size: 14px; } .mx-compare__table tbody th { width: 44%; } .mx-compare__table .is-brand { width: 18%; text-align: center; } }

/* Narrow cards (4-up at 1200-1440): keep price + CTA inside the card instead of overhanging it as the mockup does. */
.mx-product-card { container-type: inline-size; }
.mx-product-card__foot { flex-wrap: wrap; row-gap: 12px; }
@container (max-width: 330px) {
  .mx-product-card__foot { gap: 12px; }
  .meimx-site .mx-product-card .mx-product-card__cta { padding: 0 16px; }
  .mx-product-card .mx-product-card__cta .mx-arrow { display: none; }
}
@container (max-width: 250px) {
  .mx-product-card .mx-product-card__cta { flex: 1 1 100%; }
}
/* Bootstrap gives <legend> float + width:100%; keep the hidden legend truly 1px. */
.meimx-site legend.mx-visually-hidden { display: block; float: none; width: 1px !important; max-width: 1px; clip-path: inset(50%); }

/* Language trigger (account panel) and "Choose your language" dialog */
.meimx-site .mx-lang { width: 100%; }
.meimx-site .mx-lang-trigger { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--mx-border); border-radius: 12px; background: #fff; color: var(--mx-green-4); font: 400 15px/1.3 var(--mx-font); text-align: left; cursor: pointer; }
.meimx-site .mx-lang-trigger:hover { background: var(--mx-mint); }
.meimx-site .mx-lang-trigger:focus-visible { outline: 2px solid var(--mx-green-4); outline-offset: 2px; }
.mx-lang-trigger__label { color: var(--mx-muted); }
.mx-lang-trigger__value { margin-left: auto; font-weight: 500; }
.mx-lang-trigger__chevron { flex: none; color: var(--mx-muted); }
.mx-lang-dialog { width: min(960px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); margin: auto; padding: 40px; border: 0; border-radius: 32px; background: #fff; color: var(--mx-green-4); box-shadow: var(--mx-shadow-float); overflow: auto; font-family: var(--mx-font); }
.mx-lang-dialog::backdrop { background: rgba(21, 24, 51, .45); }
.mx-lang-dialog[open] { animation: mx-lang-in .2s var(--mx-ease); }
@keyframes mx-lang-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .mx-lang-dialog[open] { animation: none; } }
.mx-lang-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 28px; }
.meimx-site .mx-lang-dialog__title, .mx-lang-dialog__title { margin: 0; font: 400 clamp(26px, 2.6vw, 36px)/1.1 var(--mx-font); letter-spacing: -.02em; color: var(--mx-green-4); }
.mx-lang-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 0; }
.mx-lang-option { position: relative; display: grid; gap: 4px; padding: 16px 48px 16px 20px; border: 1px solid transparent; border-radius: 16px; background: transparent; color: var(--mx-green-4); font-family: var(--mx-font); text-align: left; cursor: pointer; transition: background-color .2s var(--mx-ease); }
.mx-lang-option:hover { background: var(--mx-ivory); }
.mx-lang-option:focus-visible { outline: 2px solid var(--mx-green-4); outline-offset: 2px; }
.mx-lang-option[aria-current] { background: var(--mx-mint); border-color: var(--mx-mint-2); }
.mx-lang-option__native { font-size: 18px; line-height: 1.3; }
.mx-lang-option__english { font-size: 15px; line-height: 1.3; color: var(--mx-muted); }
.mx-lang-option__check { position: absolute; top: 18px; right: 18px; color: var(--mx-green-3); }
@media (max-width: 767.98px) { .mx-lang-dialog { padding: 24px 16px; border-radius: 24px; } .mx-lang-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 479.98px) { .mx-lang-grid { grid-template-columns: minmax(0, 1fr); } }

/* Tonal refinement: calmer layering instead of flat white on cream.
 * Page, panels and cards sit on distinct but close tones, edges are hairlines, text has three clear tiers
 * (heading → body → secondary) and display type is lighter. Contrast stays at WCAG AA. */
body.meimx-site {
  --mx-ivory: #F6F3EE;
  --mx-cream: #EEE8DF;
  --mx-border: #D3DBDA;
  --mx-hair: rgba(31, 72, 85, .09);
  --mx-text-2: #3E5E6A;
  --mx-shadow-card: 0 1px 2px rgba(31, 72, 85, .05), 0 10px 28px -16px rgba(31, 72, 85, .16);
  background: var(--mx-ivory);
}
.meimx-site :is(.mx-card, .mx-product-card, .mx-hero-split:not(.mx-hero-split--mint), .mx-panel--white, .mx-compare__wrap, .mx-lang-dialog) { border: 1px solid var(--mx-hair); }
.meimx-site :is(.mx-hero-split--mint, .mx-cta, .mx-panel) { border: 1px solid rgba(20, 100, 100, .10); }
.meimx-site .ds-header { background: rgba(255, 255, 255, .92) !important; border-bottom: 1px solid var(--mx-hair); backdrop-filter: none; box-shadow: 0 1px 0 rgba(255, 255, 255, .8) inset; }
.meimx-site .mx-product-card__media { background: var(--mx-cream); border: 1px solid var(--mx-hair); }
.meimx-site :is(.mx-lead, .mx-sub, .mx-product-card__meta, .mx-accordion__panel, .mx-why p, .mx-steps p, .mx-explore__text) { color: var(--mx-text-2); }
.meimx-site .mx-product-card__foot, .meimx-site .mx-hairline { border-top-color: var(--mx-hair); }
.meimx-site .mx-accordion, .meimx-site .mx-accordion__item, .meimx-site .mx-focus-list dl, .meimx-site .mx-focus-list dl > div { border-color: var(--mx-hair); }
.meimx-site :is(.mx-h1, .mx-h1-card) { font-weight: 350; letter-spacing: -.025em; }
.meimx-site :is(.mx-h2, .mx-h2-panel) { font-weight: 360; }
.meimx-site :is(.mx-h3, .mx-h4, .mx-product-card__title) { font-weight: 400; }
.meimx-site .mx-btn { font-weight: 500; letter-spacing: .005em; }
.meimx-site .mx-btn--primary { background: linear-gradient(180deg, #25596A 0%, #1F4855 100%); box-shadow: 0 1px 0 rgba(255, 255, 255, .12) inset, 0 6px 14px -8px rgba(31, 72, 85, .6); }
.meimx-site .mx-btn--primary:hover { background: linear-gradient(180deg, #1F4E5F 0%, #1A3F4B 100%); }
.meimx-site .mx-btn--outline { border-color: rgba(31, 72, 85, .55); }
.meimx-site :is(.mx-input, .mx-select) { border-color: var(--mx-border); background: #fff; box-shadow: 0 1px 0 rgba(31, 72, 85, .03) inset; }
.meimx-site .mx-pill, .meimx-site .meimx-home-categories a { border-color: var(--mx-border); }
.meimx-site .mx-pill[aria-pressed="true"], .meimx-site .mx-pill[aria-current="page"], .meimx-site .mx-pill.is-active { border-color: rgba(20, 100, 100, .25); }
.meimx-site .mx-eyebrow, .meimx-site .mx-footer-title { font-weight: 500; }
.meimx-site .mx-footer { box-shadow: 0 -1px 0 rgba(255, 255, 255, .06) inset; }
.meimx-site .meimx-slideshow-hero .ds-slideshow-item { background-color: #fff !important; border: 1px solid var(--mx-hair); box-shadow: var(--mx-shadow-card); }
.meimx-site .mx-product-card__meta .is-out { color: #B3261E; }
.meimx-site .mx-stack-card--cream .mx-stack-card__meta, .meimx-site .mx-stack-card--cream .mx-stack-card__note, .meimx-site .mx-stack-card:not(.mx-stack-card--mint):not(.mx-stack-card--mint-2) :is(.mx-stack-card__meta, .mx-stack-card__note) { color: var(--mx-text-2); }
