/* ============================================================================
   MedX storefront — green medical ecommerce theme (matches brand mockup)
   Loads after style.css / pages.css. Body font Inter, headings Poppins.
   ============================================================================ */
:root{
  --g:        #16a34a;   /* brand green */
  --g-h:      #128a3f;
  --g-deep:   #0c7a37;
  --g-dark:   #0b1f14;   /* footer */
  --g-tint:   #eaf7ef;   /* light green wash */
  --g-tint-2: #f3faf5;
  --lime:     #6cbf3f;
  --ink:      #111827;
  --ink-2:    #4b5563;
  --ink-3:    #6b7280;
  --line:     #e7ebee;
  --card:     #ffffff;
  --radius:   14px;
  --shadow:   0 1px 2px rgba(17,24,39,.04), 0 10px 30px rgba(17,24,39,.06);
  --shadow-h: 0 10px 24px rgba(22,163,74,.14), 0 20px 44px rgba(17,24,39,.10);
}
.inner-page{ background:#fff; }
body{ font-family:var(--font); color:var(--ink); }
.mx-wrap{ max-width:1280px; margin-inline:auto; padding-inline:clamp(14px,3vw,28px); }
.mx-h, .mx-hero h1, .mx-sec-title{ font-family:var(--font-head); }

/* ---------- brand logo ---------- */
.mxlogo{ display:inline-flex; align-items:center; gap:1px; line-height:1; }
.mxlogo-text{ font-family:var(--font-head); font-weight:800; font-size:calc(var(--mxlogo-h,34px)*.82); letter-spacing:-.03em; color:#15171c; }
.mxlogo[data-tone="light"] .mxlogo-text{ color:#fff; }
.mxlogo-x{ height:var(--mxlogo-h,34px); width:auto; margin-left:-2px; }
.mxlogo--img{ display:inline-flex; align-items:center; }
.mxlogo--img img{ height:100%; width:auto; max-width:180px; object-fit:contain; display:block; }

/* ============================ TOP UTILITY BAR ============================ */
.mx-topbar{ background:#f7faf8; border-bottom:1px solid var(--line); font-size:12.5px; color:var(--ink-2); }
.mx-topbar .mx-wrap{ display:flex; align-items:center; justify-content:space-between; height:38px; gap:18px; }
.mx-topbar-left{ display:flex; align-items:center; gap:22px; overflow:hidden; }
.mx-topbar-left span{ display:inline-flex; align-items:center; gap:7px; white-space:nowrap; font-weight:500; }
.mx-topbar-left svg{ color:var(--g); flex-shrink:0; }
.mx-topbar-right{ display:flex; align-items:center; gap:18px; }
.mx-topbar-right a{ color:var(--ink-2); font-weight:500; transition:.15s; }
.mx-topbar-right a:hover{ color:var(--g); }

/* ============================ HEADER ============================ */
.mx-header{ background:#fff; border-bottom:1px solid var(--line); }
.mx-header .mx-wrap{ display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:clamp(12px,2vw,26px); height:82px; }
.mx-header .mx-wrap > a:first-child{ justify-self:start; }
.mx-search-group{ display:flex; align-items:center; gap:10px; width:100%; max-width:880px; margin:0 auto; }
.mx-search{ flex:1; display:flex; align-items:center; background:#fff; border:1.6px solid #e2e7ea; border-radius:11px; overflow:hidden; transition:.18s; }
.mx-search:focus-within{ border-color:var(--g); box-shadow:0 0 0 4px rgba(22,163,74,.1); }
.mx-search input{ flex:1; border:0; outline:0; padding:13px 4px 13px 16px; font-size:14.5px; font-family:inherit; color:var(--ink); background:transparent; }
.mx-search button{ display:grid; place-items:center; background:transparent; color:var(--ink-3); padding:0 14px; align-self:stretch; transition:.15s; }
.mx-search button:hover{ color:var(--g); }
.mx-wa-order{ flex-shrink:0; display:inline-flex; align-items:center; gap:8px; background:#fff; color:#25d366; font-weight:600; font-size:13.5px; padding:12px 16px; border:1.6px solid #e2e7ea; border-radius:11px; white-space:nowrap; transition:.18s; }
.mx-wa-order:hover{ background:#f0fbf4; border-color:#25d366; }
.mx-wa-order svg{ flex-shrink:0; }
.mx-header-actions{ display:flex; align-items:center; gap:clamp(14px,2vw,26px); justify-self:end; }
.mx-haction{ display:flex; align-items:center; gap:9px; color:var(--ink); }
.mx-haction:hover{ color:var(--g); }
.mx-haction svg{ color:#374151; }
.mx-haction:hover svg{ color:var(--g); }
.mx-haction-txt{ display:flex; flex-direction:column; line-height:1.15; }
.mx-haction-txt small{ font-size:11.5px; color:var(--ink-3); }
.mx-haction-txt b{ font-size:13.5px; font-weight:650; }
.mx-cart{ position:relative; }
.mx-cart-badge{ position:absolute; top:-7px; right:-9px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--g); color:#fff; font-size:11px; font-weight:700; display:grid; place-items:center; }

/* ============================ NAV ============================ */
.mx-nav{ position:sticky; top:0; z-index:800; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 2px 14px rgba(17,24,39,.04); }
.mx-nav .mx-wrap{ display:flex; align-items:center; gap:18px; height:58px; }
.mx-allcat{ display:inline-flex; align-items:center; gap:10px; background:var(--g); color:#fff; font-weight:600; font-size:14px; padding:11px 18px; border-radius:10px; flex-shrink:0; }
.mx-allcat:hover{ background:var(--g-h); }
.mx-navlinks{ display:flex; align-items:center; gap:4px; }
.mx-navlink{ font-size:14.5px; font-weight:550; color:#374151; padding:9px 14px; border-radius:8px; position:relative; transition:.15s; }
.mx-navlink:hover{ color:var(--g); }
.mx-navlink.is-active{ color:var(--g); font-weight:650; }
.mx-navlink.is-active::after{ content:""; position:absolute; left:14px; right:14px; bottom:2px; height:2.5px; border-radius:2px; background:var(--g); }
.mx-expert{ margin-left:auto; display:inline-flex; align-items:center; gap:8px; background:#15171c; color:#fff; font-weight:600; font-size:14px; padding:11px 20px; border-radius:999px; flex-shrink:0; }
.mx-expert:hover{ background:#000; }

/* All-categories dropdown */
.mx-catmenu-wrap{ position:relative; }
.mx-catmenu{ position:absolute; top:calc(100% + 10px); left:0; width:300px; background:#fff; border:1px solid var(--line); border-radius:14px; box-shadow:var(--shadow-h); padding:8px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:.18s; z-index:60; max-height:70vh; overflow:auto; }
.mx-catmenu.is-open{ opacity:1; visibility:visible; transform:none; }
.mx-catmenu a{ display:flex; align-items:center; justify-content:space-between; padding:10px 13px; border-radius:9px; font-size:13.5px; font-weight:550; color:var(--ink); }
.mx-catmenu a:hover{ background:var(--g-tint); color:var(--g-deep); }
.mx-catmenu a span{ font-size:11.5px; color:var(--ink-3); }

/* ============================ HERO ============================ */
.mx-hero{ position:relative; overflow:hidden; background:linear-gradient(180deg,#fbfdfb,#eef7f1); }
.mx-hero .mx-wrap{ display:grid; grid-template-columns:1.02fr .98fr; gap:30px; align-items:center; padding:clamp(28px,4vw,56px) clamp(14px,3vw,28px); }
.mx-hero-badge{ display:inline-flex; align-items:center; gap:8px; background:var(--g-tint); color:var(--g-deep); font-weight:650; font-size:12px; letter-spacing:.06em; text-transform:uppercase; padding:7px 14px; border-radius:999px; }
.mx-hero h1{ font-size:clamp(32px,4.6vw,52px); line-height:1.08; letter-spacing:-.02em; font-weight:800; color:#15202b; margin:18px 0 0; }
.mx-hero h1 .g{ color:var(--g); }
.mx-hero-lead{ font-size:clamp(14.5px,1.4vw,16px); color:var(--ink-2); margin:16px 0 0; max-width:480px; line-height:1.6; }
.mx-hero-stats{ display:flex; gap:clamp(14px,2.4vw,34px); margin:26px 0 0; }
.mx-stat{ display:flex; align-items:center; gap:11px; }
.mx-stat-ic{ width:42px; height:42px; border-radius:12px; background:var(--g-tint); color:var(--g-deep); display:grid; place-items:center; flex-shrink:0; }
.mx-stat b{ display:block; font-family:var(--font-head); font-size:19px; font-weight:800; color:var(--ink); line-height:1; }
.mx-stat small{ font-size:11.5px; color:var(--ink-3); }
.mx-hero-cta{ display:flex; flex-wrap:wrap; gap:13px; margin-top:28px; }
.mx-btn{ display:inline-flex; align-items:center; gap:9px; font-weight:600; font-size:14.5px; padding:13px 24px; border-radius:11px; transition:.18s; cursor:pointer; }
.mx-btn--g{ background:var(--g); color:#fff; box-shadow:0 10px 22px rgba(22,163,74,.26); }
.mx-btn--g:hover{ background:var(--g-h); transform:translateY(-1px); }
.mx-btn--ghost{ background:#fff; color:var(--ink); border:1.6px solid #d7dee2; }
.mx-btn--ghost:hover{ border-color:var(--g); color:var(--g-deep); }
/* hero art */
.mx-hero-art{ position:relative; min-height:300px; display:grid; place-items:center; }
.mx-hero-circle{ position:absolute; inset:0; margin:auto; width:min(420px,90%); aspect-ratio:1/1; border-radius:50%;
  background:radial-gradient(circle at 50% 45%, #d7f0de 0%, #bfe7c9 45%, #a9dcb6 100%); }
.mx-hero-circle::after{ content:"med"; position:absolute; inset:0; display:grid; place-items:center; font-family:var(--font-head); font-weight:800; font-size:62px; color:rgba(13,122,55,.10); letter-spacing:-.04em; }
.mx-hero-collage{ position:relative; display:grid; grid-template-columns:1fr 1fr; gap:14px; width:min(440px,96%); }
.mx-hero-tile{ background:#fff; border:1px solid var(--line); border-radius:18px; padding:14px; box-shadow:var(--shadow); display:grid; place-items:center; aspect-ratio:1/1; }
.mx-hero-tile:first-child{ grid-row:span 2; aspect-ratio:auto; }
.mx-hero-tile img{ width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }

/* ============================ FULL-WIDTH HERO BANNER SLIDER ============================ */
.mx-hslider{ position:relative; display:grid; width:100%; background:#eef3f1; overflow:hidden; }
.mx-hslide{ grid-area:1/1; opacity:0; transition:opacity .6s ease; pointer-events:none; }
.mx-hslide.is-active{ opacity:1; pointer-events:auto; }
.mx-hslide img{ width:100%; height:auto; display:block; }
.mx-hslider--contained{ border-radius:18px; box-shadow:var(--shadow); }
.mx-hslider-arrow{ position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,.9); color:#15171c; display:grid; place-items:center; box-shadow:0 4px 14px rgba(0,0,0,.15); transition:.18s; }
.mx-hslider-arrow:hover{ background:#fff; color:var(--g); }
.mx-hslider-arrow--prev{ left:6px; }
.mx-hslider-arrow--next{ right:6px; }
.mx-hslider-dots{ position:absolute; bottom:16px; left:0; right:0; z-index:3; display:flex; justify-content:center; gap:8px; }
.mx-hslider-dot{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.6); border:1.5px solid rgba(0,0,0,.1); transition:.2s; }
.mx-hslider-dot.is-active{ background:var(--g); width:26px; border-radius:6px; }

/* ---- slider controls reveal on hover (hover-capable devices only) ---- */
@media (hover: hover){
  .mx-hslider-arrow{ opacity:0; }
  .mx-hslider-dots{ opacity:0; transition:opacity .25s ease; }
  .mx-hslider:hover .mx-hslider-arrow,
  .mx-hslider:hover .mx-hslider-dots{ opacity:1; }
  .mx-wrap .ps-nav-btns{ opacity:0; transition:opacity .25s ease; }
  .mx-wrap .products-section:hover .ps-nav-btns{ opacity:1; }
  .mx-testi-wrap:hover .ps-nav-btns{ opacity:1; }
}
@media (max-width:640px){
  .mx-hslider-arrow{ width:36px; height:36px; }
  .mx-hslider-arrow--prev{ left:4px; } .mx-hslider-arrow--next{ right:4px; }
}

/* ============================ SECTION SHELL ============================ */
.mx-sec{ padding:clamp(34px,4.4vw,60px) 0; }
.mx-sec--tint{ background:var(--g-tint-2); }
/* product slider section — no extra vertical padding, default (white) background */
.mx-prodsec{ padding-block:0; background:transparent; }
.mx-sec-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:clamp(18px,2.4vw,28px); }
.mx-sec-title{ font-size:clamp(22px,3vw,33px); font-weight:800; letter-spacing:-.025em; color:#0f1a16; margin:0; line-height:1.14; }
.mx-sec-title .g{ position:relative; color:var(--g); white-space:nowrap; }
.mx-sec-title .g::after{ content:""; position:absolute; left:0; right:0; bottom:-5px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--g),var(--lime)); }
.mx-sec-sub{ font-size:13.5px; color:var(--ink-3); margin:8px 0 0; }
.mx-sec-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-size:12px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--g); margin:0 0 10px; }
.mx-sec-eyebrow::before{ content:""; width:20px; height:2px; border-radius:2px; background:linear-gradient(90deg,var(--g),var(--lime)); }
.mx-link{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--g); white-space:nowrap; }
.mx-link:hover{ color:var(--g-deep); gap:9px; }

/* ============================ CATEGORY GRID ============================ */
.mx-cats{ display:grid; grid-template-columns:repeat(8,1fr); gap:14px; }
.mx-cat{ background:#fff; border:1.4px solid var(--line); border-radius:var(--radius); padding:18px 10px; display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center; transition:.2s; }
.mx-cat:hover{ border-color:var(--g); box-shadow:var(--shadow-h); transform:translateY(-4px); }
.mx-cat-ic{ width:52px; height:52px; display:grid; place-items:center; color:var(--g); }
.mx-cat:hover .mx-cat-ic{ color:var(--g-deep); }
.mx-cat-name{ font-size:12.5px; font-weight:600; color:var(--ink); line-height:1.25; }

/* ============================ PRODUCT CARD (restyle shared .product-card) ============================ */
.products-section{ background:transparent; }
.product-card{ background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; transition:.22s ease; display:flex; flex-direction:column; }
.product-card:hover{ box-shadow:var(--shadow-h); transform:translateY(-3px); border-color:#d3e6da; }
.product-img-wrap{ position:relative; background:linear-gradient(160deg,#f8fbfa,#eef4f1); padding:18px; aspect-ratio:1/1; display:grid; place-items:center; }
.product-img{ max-width:100%; max-height:100%; object-fit:contain; mix-blend-mode:multiply; transition:transform .3s ease; }
.product-card:hover .product-img{ transform:scale(1.05); }
.pc-wish{ position:absolute; top:10px; right:10px; width:32px; height:32px; border-radius:50%; background:#fff; border:1px solid var(--line); color:#9aa3ab; display:grid; place-items:center; box-shadow:var(--shadow); transition:.15s; }
.pc-wish:hover,.pc-wish.is-active{ color:#ef4444; border-color:#fca5a5; }
.product-info{ padding:13px 14px 15px; display:flex; flex-direction:column; gap:6px; flex:1; }
.product-rating{ display:flex; align-items:center; gap:5px; font-size:11.5px; }
.product-rating .stars{ color:#f6a609; letter-spacing:1px; }
.product-rating .review-count{ color:var(--ink-3); }
.product-name{ font-size:13.5px; font-weight:400; line-height:1.4; color:var(--ink); margin:0; min-height:2.8em; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.product-name a{ color:inherit; }
.product-name a:hover{ color:var(--g); }
.product-slogan{ display:none; }
.product-price-row{ display:flex; align-items:baseline; gap:8px; margin-top:auto; padding-top:4px; }
.price-sale{ font-size:16px; font-weight:600; color:var(--ink); }
.price-original{ font-size:12px; color:var(--ink-3); text-decoration:line-through; }
.price-off{ font-size:10.5px; font-weight:600; color:var(--g); background:var(--g-tint); padding:2px 6px; border-radius:5px; }
.product-cta{ display:inline-flex; align-items:center; justify-content:center; gap:7px; background:var(--g); color:#fff; font-weight:500; font-size:13px; padding:10px; border-radius:9px; margin-top:8px; transition:.15s; }
.product-cta:hover{ background:var(--g-h); }
.product-cta--notify{ background:#15171c; }
.product-viewdetails{ text-align:center; font-size:12px; font-weight:500; color:var(--ink-3); padding:7px 0 0; }
.product-viewdetails:hover{ color:var(--g); }
.soon-tag{ font-size:11.5px; font-weight:600; color:#b45309; background:#fff7ed; padding:4px 10px; border-radius:6px; }

/* ---- ProductRail (reused) restyle to match ---- */
.mx-wrap .products-section{ padding:0; }
.mx-wrap .products-container{ max-width:none; padding:0; margin:0; }
.mx-wrap .section-header--rail{ display:flex; align-items:flex-end; justify-content:space-between; gap:14px; margin-bottom:22px; }
.mx-wrap .ps-eyebrow{ font-size:13px; color:var(--ink-3); font-weight:500; margin:6px 0 0; order:2; }
.mx-wrap .section-heading{ font-family:var(--font-head); font-size:clamp(21px,2.8vw,30px); font-weight:800; color:var(--ink); letter-spacing:-.02em; margin:0; }
.mx-wrap .section-header--rail > div{ display:flex; flex-direction:column-reverse; }
.mx-wrap .ps-head-right{ display:flex; align-items:center; gap:14px; }
.mx-wrap .ps-viewall{ display:inline-flex; align-items:center; gap:6px; font-size:14px; font-weight:600; color:var(--g); }
.mx-wrap .ps-viewall:hover{ color:var(--g-deep); }
.mx-wrap .ps-nav-btns{ position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 6px; pointer-events:none; z-index:5; }
.mx-wrap .ps-btn{ pointer-events:auto; width:42px; height:42px; border-radius:50%; border:1px solid var(--line); background:rgba(255,255,255,.96); color:#15171c; display:grid; place-items:center; box-shadow:0 4px 14px rgba(0,0,0,.12); transition:.15s; }
.mx-wrap .ps-btn:hover{ background:#fff; color:var(--g); }
.mx-wrap .products-slider-wrap{ overflow:hidden; position:relative; }
.mx-wrap .products-track{ display:flex; flex-wrap:nowrap; gap:16px; transition:transform .45s cubic-bezier(.4,0,.2,1); }
.mx-wrap .products-track .product-card{ flex:0 0 calc((100% - 64px) / 5); width:calc((100% - 64px) / 5); }
@media (max-width:1100px){ .mx-wrap .products-track .product-card{ flex-basis:calc((100% - 48px) / 4); width:calc((100% - 48px) / 4); } }
@media (max-width:820px){ .mx-wrap .products-track .product-card{ flex-basis:calc((100% - 32px) / 3); width:calc((100% - 32px) / 3); } }
@media (max-width:560px){ .mx-wrap .products-track .product-card{ flex-basis:calc((100% - 16px) / 2); width:calc((100% - 16px) / 2); } }

/* ============================ FEATURE STRIP ============================ */
.mx-features{ display:grid; grid-template-columns:repeat(6,1fr); gap:10px; }
.mx-feat{ display:flex; align-items:center; gap:11px; padding:14px 12px; }
.mx-feat-ic{ width:42px; height:42px; border-radius:50%; background:var(--g-tint); color:var(--g-deep); display:grid; place-items:center; flex-shrink:0; }
.mx-feat b{ display:block; font-size:13px; font-weight:650; color:var(--ink); }
.mx-feat small{ font-size:11.5px; color:var(--ink-3); }

/* ============================ BRANDS ============================ */
.mx-brands{ background:#f4f7f5; border:1px solid var(--line); border-radius:18px; padding:22px clamp(16px,3vw,30px); }
.mx-brands-top{ font-size:14px; font-weight:700; color:var(--ink); margin:0 0 16px; }
.mx-brands-top .g{ color:var(--g); }
.mx-brand-row{ display:flex; flex-wrap:wrap; gap:12px; }
.mx-brand{ flex:1 1 150px; min-width:140px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px 14px; display:flex; align-items:center; justify-content:center; transition:.18s; }
.mx-brand:hover{ border-color:var(--g); box-shadow:var(--shadow); transform:translateY(-2px); }
.mx-brand b{ font-family:var(--font-head); font-size:16px; font-weight:700; color:#334155; letter-spacing:-.01em; }
.mx-brand:hover b{ color:var(--g-deep); }
/* dynamic brand logos grid — grayscale → colour on hover, clickable */
.mx-brand-logos{ display:grid; grid-template-columns:repeat(6,1fr); gap:14px; margin-top:6px; }
.mx-brand-logo{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:16px; display:grid; place-items:center; aspect-ratio:16/9; transition:.22s ease; }
.mx-brand-logo:hover{ border-color:var(--g); box-shadow:var(--shadow-h); transform:translateY(-3px); }
.mx-brand-logo img{ max-width:100%; max-height:46px; width:auto; object-fit:contain; opacity:1; transition:.22s ease; mix-blend-mode:multiply; }
.mx-brand-logo:hover img{ transform:scale(1.04); }
@media (max-width:1024px){ .mx-brand-logos{ grid-template-columns:repeat(4,1fr); } }
/* mobile: fixed 3 columns with tight padding so logos fill the small cards */
@media (max-width:640px){ .mx-brand-logos{ grid-template-columns:repeat(3,1fr); gap:8px; } .mx-brand-logo{ padding:7px; } .mx-brand-logo img{ max-height:38px; } }

/* ============================ WHY CHOOSE ============================ */
.mx-why{ background:var(--g-tint-2); }
.mx-why-grid{ display:grid; grid-template-columns:.85fr 2.15fr; gap:clamp(20px,3vw,40px); align-items:center; }
.mx-why-intro .e{ font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--g); }
.mx-why-intro h2{ font-family:var(--font-head); font-size:clamp(22px,2.6vw,30px); font-weight:800; color:var(--ink); margin:8px 0 12px; letter-spacing:-.02em; }
.mx-why-intro p{ font-size:14px; color:var(--ink-2); line-height:1.6; margin:0 0 20px; }
.mx-why-cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.mx-why-card{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:20px 18px; transition:.2s; }
.mx-why-card:hover{ box-shadow:var(--shadow-h); transform:translateY(-3px); }
.mx-why-ic{ width:46px; height:46px; border-radius:12px; background:var(--g-tint); color:var(--g-deep); display:grid; place-items:center; margin-bottom:14px; }
.mx-why-card h3{ font-family:var(--font-head); font-size:15.5px; font-weight:700; color:var(--ink); margin:0 0 7px; }
.mx-why-card p{ font-size:13px; color:var(--ink-3); line-height:1.55; margin:0; }

/* ============================ TESTIMONIALS ============================ */
.mx-testi-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
/* testimonial autoplay slider — 3 per row */
.mx-testi-wrap{ position:relative; overflow:hidden; }
.mx-testi-track{ display:flex; gap:24px; transition:transform .5s cubic-bezier(.4,0,.2,1); }
.mx-testi-track .mx-testi-card{ flex:0 0 calc((100% - 48px) / 3); }
@media (max-width:900px){ .mx-testi-track .mx-testi-card{ flex-basis:calc((100% - 24px) / 2); } }
@media (max-width:600px){ .mx-testi-track{ gap:16px; } .mx-testi-track .mx-testi-card{ flex-basis:100%; } }
.mx-testi-card{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px; box-shadow:var(--shadow); }
.mx-quote{ font-family:var(--font-head); font-size:40px; line-height:.6; color:var(--g); opacity:.5; }
.mx-testi-text{ font-size:14px; color:var(--ink-2); line-height:1.62; margin:10px 0 18px; }
.mx-testi-who{ display:flex; align-items:center; gap:12px; }
.mx-testi-av{ width:44px; height:44px; border-radius:50%; background:var(--g-tint); color:var(--g-deep); display:grid; place-items:center; font-weight:700; font-size:15px; font-family:var(--font-head); }
.mx-testi-who b{ display:block; font-size:14px; color:var(--ink); }
.mx-testi-who small{ font-size:12px; color:var(--ink-3); }

/* ============================ NEWSLETTER ============================ */
.mx-news{ position:relative; overflow:hidden; background:linear-gradient(120deg,var(--g-deep),#0a5c2c 70%,#06401f); color:#fff; }
.mx-news .mx-wrap{ display:grid; grid-template-columns:1.1fr 1.4fr; gap:24px; align-items:center; padding:clamp(28px,4vw,46px) clamp(14px,3vw,28px); }
.mx-news h2{ font-family:var(--font-head); font-size:clamp(21px,2.6vw,28px); font-weight:800; margin:0; }
.mx-news p{ font-size:14px; opacity:.9; margin:9px 0 0; max-width:420px; }
.mx-news-form{ display:flex; gap:0; background:#fff; border-radius:11px; overflow:hidden; max-width:520px; }
.mx-news-form input{ flex:1; border:0; outline:0; padding:15px 18px; font-size:14.5px; font-family:inherit; color:var(--ink); }
.mx-news-form button{ background:var(--g); color:#fff; font-weight:650; font-size:14.5px; padding:0 26px; }
.mx-news-form button:hover{ background:var(--g-h); }
.mx-news-perks{ display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:14px; font-size:12.5px; opacity:.92; }
.mx-news-perks span{ display:inline-flex; align-items:center; gap:6px; }

/* ============================ FOOTER ============================ */
.mx-footer{ background:var(--g-dark); color:#aeb8b1; }
.mx-footer::before{ content:""; display:block; height:3px; background:linear-gradient(90deg,var(--g),var(--lime),var(--g)); }
/* footer trust strip */
.mx-footer-trust{ border-bottom:1px solid rgba(255,255,255,.08); }
.mx-footer-trust .mx-wrap{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; padding-block:24px; }
.mx-ft-item{ display:flex; align-items:center; gap:13px; }
.mx-ft-ic{ width:42px; height:42px; border-radius:11px; background:rgba(108,191,63,.16); color:var(--lime); display:grid; place-items:center; flex-shrink:0; }
.mx-ft-item b{ display:block; font-size:13.5px; color:#fff; font-weight:650; line-height:1.2; }
.mx-ft-item small{ font-size:11.5px; color:#8b958d; }
@media (max-width:780px){ .mx-footer-trust .mx-wrap{ grid-template-columns:1fr 1fr; gap:14px; } }
@media (max-width:460px){ .mx-footer-trust .mx-wrap{ grid-template-columns:1fr; } }
.mx-footer-main{ display:grid; grid-template-columns:1.6fr 1fr 1.2fr 1.2fr 1.4fr; gap:clamp(20px,3vw,40px); padding:clamp(34px,4vw,56px) 0 30px; }
/* logo on dark footer — white badge so the dark wordmark stays visible */
.mx-footer-brand .mxlogo--img{ background:#fff; border-radius:11px; padding:9px 13px; box-shadow:0 3px 12px rgba(0,0,0,.22); }

/* ============================ LOGIN / AUTH — MedX green theme ============================ */
.auth2-page{ font-family:var(--font); }
.auth2-hero{ background:linear-gradient(155deg,#0e8c40 0%,#0b5f2c 52%,#073a1c 100%) !important; }
.auth2-hero-title{ font-family:var(--font-head); }
.auth2-hero-orb--1{ background:radial-gradient(circle, rgba(108,191,63,.55), transparent 66%) !important; }
.auth2-hero-orb--2{ background:radial-gradient(circle, rgba(22,163,74,.5), transparent 66%) !important; }
.auth2-cont, .auth2-cont.is-email, .auth2-btn{ background:var(--g) !important; }
.auth2-cont:hover, .auth2-btn:hover{ background:var(--g-h) !important; }
.auth2-title, .auth2-title--grad{ font-family:var(--font-head); }
.auth2-title--grad{ background:none !important; background-image:none !important; -webkit-background-clip:border-box !important; background-clip:border-box !important; -webkit-text-fill-color:var(--g-deep) !important; color:var(--g-deep) !important; animation:none !important; }
/* uploaded logo on the green hero — white badge so it stays visible */
.auth2-logo--hero .mxlogo--img{ background:#fff; border-radius:12px; padding:9px 14px; box-shadow:0 4px 14px rgba(0,0,0,.18); }
.auth2-link-sm, .auth2-switch a, .auth2-legal a{ color:var(--g) !important; }
.auth2-lock{ background:linear-gradient(140deg,var(--g) 0%,var(--g-deep) 100%) !important; color:#fff !important; }
.auth2-smart:focus-within, .auth2-smart.is-email:focus-within{ border-color:var(--g) !important; box-shadow:0 0 0 3px rgba(22,163,74,.14) !important; }
.auth2-cap-dot{ background:var(--g) !important; }
.auth2-quote-av{ width:40px; height:40px; border-radius:50%; background:rgba(255,255,255,.18); color:#fff; display:grid; place-items:center; font-weight:700; font-size:14px; flex-shrink:0; }
.mx-footer-brand p{ font-size:13px; line-height:1.65; margin:16px 0 18px; max-width:280px; }
.mx-footer-socials{ display:flex; gap:10px; }
.mx-footer-socials a{ width:36px; height:36px; border-radius:9px; background:rgba(255,255,255,.07); color:#cdd6cf; display:grid; place-items:center; transition:.15s; }
.mx-footer-socials a:hover{ background:var(--g); color:#fff; transform:translateY(-2px); }
.mx-footer-socials a{ transition:.18s ease; }
.mx-footer h4{ font-family:var(--font-head); font-size:14.5px; font-weight:650; color:#fff; margin:0 0 16px; }
.mx-footer ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px; }
.mx-footer ul a{ font-size:13px; color:#aeb8b1; transition:.15s; }
.mx-footer ul a:hover{ color:var(--lime); }
.mx-footer-contact li{ display:flex; gap:10px; font-size:13px; line-height:1.5; margin-bottom:13px; }
.mx-footer-contact svg{ color:var(--lime); flex-shrink:0; margin-top:2px; }
.mx-footer-contact a{ color:#aeb8b1; }
.mx-footer-bottom{ border-top:1px solid rgba(255,255,255,.08); padding:18px 0; display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.mx-footer-copy{ font-size:12.5px; color:#8b958d; }
.mx-pay{ display:flex; align-items:center; gap:8px; }
.mx-pay span{ background:#fff; color:#1f2937; font-size:10.5px; font-weight:700; padding:4px 8px; border-radius:5px; }

/* ---- mobile slide sheet ---- */
.mx-mobile-sheet{ position:fixed; inset:0; z-index:1200; background:rgba(15,23,20,.5); backdrop-filter:blur(2px); }
.mx-mobile-inner{ position:absolute; top:0; right:0; height:100%; width:min(340px,86%); background:#fff; box-shadow:-10px 0 40px rgba(0,0,0,.18); overflow-y:auto; padding-bottom:24px; animation:mxslide .22s ease; }
@keyframes mxslide{ from{ transform:translateX(100%); } to{ transform:none; } }
.mx-mobile-head{ display:flex; align-items:center; justify-content:space-between; padding:16px; border-bottom:1px solid var(--line); }
.mx-mobile-head button{ color:var(--ink-2); }
.mx-mobile-link{ display:block; padding:13px 18px; font-size:15px; font-weight:600; color:var(--ink); border-bottom:1px solid #f1f4f2; }
.mx-mobile-link--sm{ font-size:13.5px; font-weight:500; color:var(--ink-2); padding:10px 18px; }
.mx-mobile-link:hover{ color:var(--g); }
.mx-mobile-label{ font-size:11px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-3); padding:16px 18px 6px; margin:0; }

/* ============================ MOBILE / APP-LIKE ============================ */
.mx-hamb,.mx-mobile-only{ display:none; }
@media (max-width: 640px){ .mx-mobile-hide{ display:none; } }
@media (max-width: 1024px){
  .mx-cats{ grid-template-columns:repeat(4,1fr); }
  .mx-features{ grid-template-columns:repeat(3,1fr); }
  .mx-why-grid{ grid-template-columns:1fr; }
  .mx-why-cards{ grid-template-columns:repeat(2,1fr); }
  .mx-footer-main{ grid-template-columns:1fr 1fr 1fr; }
}
@media (max-width: 880px){
  .mx-topbar,.mx-navlinks,.mx-expert,.mx-haction-txt{ display:none; }
  .mx-hero .mx-wrap{ grid-template-columns:1fr; }
  .mx-hero-art{ order:-1; min-height:230px; }
  .mx-news .mx-wrap{ grid-template-columns:1fr; }
  .mx-testi-grid{ grid-template-columns:1fr; }
  .mx-hamb{ display:inline-grid; }
}
@media (max-width: 640px){
  /* app-like header */
  .mx-header .mx-wrap{ display:flex; height:auto; flex-wrap:wrap; padding-top:12px; padding-bottom:12px; gap:12px; }
  .mx-search-group{ order:3; flex-basis:100%; max-width:none; }
  .mx-wa-order span{ display:none; }
  .mx-wa-order{ padding:12px 13px; }
  .mx-header-actions{ gap:16px; margin-left:auto; } /* push icons to the far right; logo stays left */
  /* hide the whole nav bar on mobile — its only visible item was "All Categories";
     categories stay reachable via the hamburger menu + bottom nav */
  .mx-nav{ display:none; }
  .mx-sec{ padding:26px 0; }
  .mx-cats{ grid-template-columns:repeat(3,1fr); gap:10px; }
  .mx-cat{ padding:14px 6px; border-radius:16px; }
  .mx-cat-ic{ width:40px; height:40px; }
  .mx-cat-name{ font-size:11px; }
  button.product-cta{ font-size:13px; } /* slightly smaller Add to Cart text on mobile (beats pages.css `button.product-cta{font:inherit}` = 16px) */
  .mx-features{ grid-template-columns:repeat(2,1fr); gap:4px; }
  .mx-why-cards{ grid-template-columns:1fr; }
  .mx-footer-main{ grid-template-columns:1fr 1fr; gap:22px; }
  .mx-footer-contact-col{ grid-column:1 / -1; } /* Contact Us spans the full row on mobile */
  .mx-hero-stats{ gap:14px; }
  .mx-stat-ic{ width:36px; height:36px; }
  .mx-stat b{ font-size:16px; }
}

/* ============================ CART PAGE — MedX ============================ */
.mx-cart-skel{ min-height:60vh; }
.mx-cart-wrap{ max-width:1120px; margin:0 auto; padding:clamp(20px,3vw,36px) clamp(14px,3vw,20px) 64px; }
.mx-cart-head{ display:flex; align-items:baseline; gap:12px; margin-bottom:22px; }
.mx-cart-head h1{ font-family:var(--font-head); font-size:clamp(22px,3vw,28px); font-weight:800; color:var(--ink); margin:0; letter-spacing:-.02em; }
.mx-cart-head span{ font-size:14px; color:#7a8a83; }
.mx-cart-grid{ display:grid; grid-template-columns:1fr 360px; gap:26px; align-items:start; }
.mx-cart-items{ display:flex; flex-direction:column; gap:12px; }
.mx-cart-item{ display:flex; gap:14px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:16px; padding:14px; transition:.18s; }
.mx-cart-item:hover{ box-shadow:var(--shadow); }
.mx-cart-thumb{ flex-shrink:0; width:88px; height:88px; border-radius:12px; overflow:hidden; background:#f4f7f5; border:1px solid var(--line); display:block; }
.mx-cart-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.mx-cart-info{ flex:1; min-width:0; }
.mx-cart-name{ display:block; font-size:15px; font-weight:700; color:var(--ink); text-decoration:none; line-height:1.35; }
.mx-cart-name:hover{ color:var(--g); }
.mx-cart-unit{ color:var(--g-deep); font-weight:800; font-size:15px; margin-top:4px; }
.mx-cart-controls{ display:flex; align-items:center; gap:14px; margin-top:11px; flex-wrap:wrap; }
.mx-qty{ display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:9px; overflow:hidden; background:#f8faf9; }
.mx-qty button{ width:32px; height:32px; border:none; background:transparent; font-size:18px; font-weight:700; color:var(--ink); cursor:pointer; line-height:1; transition:.15s; }
.mx-qty button:hover{ background:var(--g); color:#fff; }
.mx-qty span{ min-width:36px; text-align:center; font-weight:700; font-size:14px; }
.mx-cart-remove{ display:inline-flex; align-items:center; gap:5px; background:none; border:none; color:#9aa7a0; font-size:13px; font-weight:600; cursor:pointer; padding:0; transition:.15s; }
.mx-cart-remove:hover{ color:#e23b3b; }
.mx-cart-linetotal{ font-weight:800; color:var(--ink); font-size:16px; white-space:nowrap; align-self:center; }
.mx-cart-continue{ display:inline-block; margin-top:6px; color:var(--g); font-weight:700; font-size:14px; text-decoration:none; }
.mx-cart-continue:hover{ text-decoration:underline; }
.mx-cart-summary{ align-self:start; position:sticky; top:16px; background:#fff; border:1px solid var(--line); border-radius:18px; padding:22px; box-shadow:0 14px 40px -28px rgba(20,40,30,.4); }
.mx-cart-summary h3{ font-family:var(--font-head); font-size:17px; font-weight:800; color:var(--ink); margin:0 0 16px; }
.mx-cart-freebar{ background:#eafaf0; border:1px solid #c9efd7; color:#15703a; font-size:12.5px; border-radius:11px; padding:11px 13px; margin-bottom:16px; }
.mx-cart-freebar p{ margin:0; }
.mx-cart-freetrack{ display:block; height:6px; border-radius:99px; background:#cdeed9; margin-top:9px; overflow:hidden; }
.mx-cart-freetrack i{ display:block; height:100%; background:var(--g); border-radius:99px; transition:width .4s ease; }
.mx-cart-row{ display:flex; justify-content:space-between; align-items:center; padding:6px 0; font-size:14px; color:#5b6b64; }
.mx-cart-row span:last-child{ font-weight:700; color:var(--ink); }
.mx-cart-free{ color:var(--g)!important; font-weight:800; }
.mx-cart-row--total{ border-top:1px solid var(--line); margin-top:8px; padding-top:14px; font-size:16px; color:var(--ink); font-weight:800; }
.mx-cart-row--total span:last-child{ font-size:20px; color:var(--g-deep); }
.mx-cart-checkout{ display:flex; align-items:center; justify-content:center; gap:7px; width:100%; margin-top:18px; background:var(--g); color:#fff; font-weight:800; font-size:15px; padding:15px; border-radius:12px; text-decoration:none; box-shadow:0 10px 24px -10px rgba(22,163,74,.55); transition:.18s; }
.mx-cart-checkout:hover{ background:var(--g-h); transform:translateY(-1px); }
.mx-cart-secure{ display:flex; align-items:center; justify-content:center; gap:6px; color:#9aa7a0; font-size:12px; margin:13px 0 0; }
.mx-cart-empty{ max-width:460px; margin:0 auto; padding:64px 20px; text-align:center; }
.mx-cart-empty-ic{ width:84px; height:84px; border-radius:50%; background:#eafaf0; color:var(--g); display:grid; place-items:center; margin:0 auto 20px; }
.mx-cart-empty-ic svg{ width:36px; height:36px; }
.mx-cart-empty h1{ font-family:var(--font-head); font-size:23px; font-weight:800; color:var(--ink); margin:0 0 8px; }
.mx-cart-empty p{ color:#6b7b73; margin:0 0 24px; line-height:1.6; }
.mx-cart-empty-btn{ display:inline-block; background:var(--g); color:#fff; font-weight:700; padding:13px 30px; border-radius:11px; text-decoration:none; transition:.18s; }
.mx-cart-empty-btn:hover{ background:var(--g-h); }
@media (max-width:860px){ .mx-cart-grid{ grid-template-columns:1fr; gap:18px; } .mx-cart-summary{ position:static; } }
@media (max-width:480px){ .mx-cart-thumb{ width:72px; height:72px; } .mx-cart-item{ padding:12px; gap:11px; } .mx-cart-linetotal{ font-size:15px; } .mx-cart-name{ font-size:14px; } }

/* ---- Checkout — green polish (re-theme orange leftovers in pages.css) ---- */
.co-place:hover:not(:disabled){ box-shadow:0 14px 28px -12px rgba(22,163,74,.55)!important; }
.contact-input:focus{ border-color:var(--g)!important; box-shadow:0 0 0 3px rgba(22,163,74,.13)!important; }
.co-pay.is-active{ border-color:var(--g)!important; background:#f3fbf6!important; }
.co-coupon-btn, .co-offer-btn{ background:var(--g)!important; }
/* Responsive fix: grid items + form inputs default to min-width:auto and won't
   shrink below the inputs' intrinsic width, forcing the page wider than the
   viewport on mobile (content gets clipped). Allow them to shrink. */
.co-grid > *{ min-width:0; }
.co-main, .co-summary{ min-width:0; }
.contact-field{ min-width:0; }
.contact-input, .contact-select, .contact-textarea{ min-width:0; }
@media (max-width:480px){ .co-row2{ flex-wrap:wrap; } .co-row2 .contact-field{ flex:1 1 100%; } }

/* ---- PDP description — clean bulleted list + sub-headings ---- */
.pdp-desc{ max-width:820px; }
.pdp-desc-head{ font-family:var(--font-head); font-size:15.5px; font-weight:700; color:var(--ink); margin:20px 0 9px; }
.pdp-desc-head:first-child{ margin-top:0; }
.pdp-desc-list{ list-style:none; margin:0 0 4px; padding:0; }
.pdp-desc-list li{ position:relative; padding-left:23px; font-size:15px; line-height:1.7; color:#4a4f59; margin-bottom:9px; }
.pdp-desc-list li::before{ content:""; position:absolute; left:5px; top:9px; width:7px; height:7px; border-radius:50%; background:var(--g); }
