/* =====================================================================
   Mini Merry — storefront styles (Bootstrap 5.3 + custom)
   ===================================================================== */

:root {
  --mm-navy: #1B3A6B;
  --mm-ink: #24324A;
  --mm-muted: #6B778C;
  --mm-coral: #EF4F5A;
  --mm-coral-dark: #D93C48;
  --mm-teal: #20B2AA;
  --mm-blue: #2F7FD1;
  --mm-indigo: #3F4AA0;
  --mm-yellow: #FFCF3F;
  --mm-cream: #FFF6EC;
  --mm-line: #E8ECF2;
  --mm-sky: #EEF7FB;
  --mm-peach: #FDECDC;
  --mm-ice: #DDF0F6;
  --mm-butter: #FDF3D5;
  --mm-blush: #FBE4EE;
  --mm-lemon: #FFF4C9;
  --mm-lilac: #ECE7FA;
  --mm-radius: 14px;
  --mm-shadow: 0 6px 20px rgba(27, 58, 107, .08);
  --mm-font-display: 'Fredoka', 'Nunito', system-ui, sans-serif;
  --mm-font-body: 'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --bs-body-font-family: var(--mm-font-body);
  --bs-body-color: var(--mm-ink);
  --bs-link-color: var(--mm-blue);
  --bs-link-color-rgb: 47, 127, 209;
  --bs-primary: var(--mm-coral);
  --bs-primary-rgb: 239, 79, 90;
  --bs-border-color: var(--mm-line);
}

body { background: #fff; font-size: 15.5px; }
h1, h2, h3, h4, .mm-display { font-family: var(--mm-font-display); color: var(--mm-navy); font-weight: 600; }
a { text-decoration: none; }
a:hover { text-decoration: underline; }
img { max-width: 100%; }
.text-coral { color: var(--mm-coral) !important; }
.text-navy { color: var(--mm-navy) !important; }
.text-muted-mm { color: var(--mm-muted) !important; }
.bg-sky { background: var(--mm-sky); }
.bg-cream { background: var(--mm-cream); }
.section { padding: 2.25rem 0; }
.section-title { font-size: 1.6rem; margin: 0; }
.section-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.view-all { font-size: .9rem; font-weight: 700; color: var(--mm-blue); white-space: nowrap; }
.view-all i { transition: transform .2s; }
.view-all:hover i { transform: translateX(3px); }
.skip-link { position: absolute; left: -999px; top: 0; z-index: 2000; background: var(--mm-navy); color: #fff; padding: .5rem 1rem; }
.skip-link:focus { left: 1rem; }

/* ---------- Buttons ---------- */
.btn-coral {
  --bs-btn-bg: var(--mm-coral); --bs-btn-border-color: var(--mm-coral); --bs-btn-color: #fff;
  --bs-btn-hover-bg: var(--mm-coral-dark); --bs-btn-hover-border-color: var(--mm-coral-dark); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #C4313D; --bs-btn-active-border-color: #C4313D;
  --bs-btn-disabled-bg: #F4A3A9; --bs-btn-disabled-border-color: #F4A3A9;
  font-weight: 700;
}
.btn-outline-coral {
  --bs-btn-color: var(--mm-coral); --bs-btn-border-color: var(--mm-coral);
  --bs-btn-hover-bg: var(--mm-coral); --bs-btn-hover-border-color: var(--mm-coral); --bs-btn-hover-color: #fff;
  font-weight: 700;
}
.btn-navy {
  --bs-btn-bg: var(--mm-navy); --bs-btn-border-color: var(--mm-navy); --bs-btn-color: #fff;
  --bs-btn-hover-bg: #142D54; --bs-btn-hover-border-color: #142D54; --bs-btn-hover-color: #fff; font-weight: 700;
}
.btn-pill { border-radius: 999px; padding: .75rem 1.6rem; }
.btn:focus-visible, .form-control:focus, .form-select:focus { box-shadow: 0 0 0 .2rem rgba(239, 79, 90, .25); border-color: var(--mm-coral); }

/* ---------- Announcement bar ---------- */
.mm-announce { background: var(--mm-navy); color: #fff; font-size: .85rem; font-weight: 600; text-align: center; padding: .45rem 1rem; }
.mm-announce .msg { display: none; }
.mm-announce .msg.active { display: inline; animation: mmFade .5s; }
@keyframes mmFade { from { opacity: 0 } to { opacity: 1 } }

/* ---------- Header ---------- */
.mm-header { background: #fff; position: sticky; top: 0; z-index: 1020; box-shadow: 0 1px 0 var(--mm-line); }
.mm-header .top { padding-top: .7rem; padding-bottom: .4rem; }
.mm-logo { display: flex; align-items: center; gap: .55rem; color: inherit; }
.mm-logo:hover { text-decoration: none; }
.mm-logo img { width: 62px; height: 62px; }
.mm-logo .word { font-family: var(--mm-font-display); font-weight: 700; font-size: 2.35rem; line-height: .95; letter-spacing: -.5px; white-space: nowrap; }
.mm-logo .tag { white-space: nowrap; }
.mm-logo .word .mini { color: var(--mm-teal); }
.mm-logo .word .merry { color: var(--mm-coral); }
.mm-logo .tag { display: block; font-size: .92rem; color: var(--mm-ink); font-weight: 600; margin-top: .2rem; padding-left: .3rem; }

.mm-search { position: relative; max-width: 560px; }
.mm-search .form-control { border-radius: 999px; padding: .7rem 4rem .7rem 1.2rem; border: 1px solid #D8DEE8; background: #fff; }
.mm-search .btn { position: absolute; right: 0; top: 0; bottom: 0; border-radius: 0 999px 999px 0; width: 58px; background: var(--mm-indigo); color: #fff; border: 0; }
.mm-search .btn:hover { background: #333D8C; }
.mm-search .suggest { position: absolute; left: 0; right: 0; top: calc(100% + 6px); background: #fff; border: 1px solid var(--mm-line); border-radius: 12px; box-shadow: var(--mm-shadow); z-index: 1030; overflow: hidden; display: none; }
.mm-search .suggest a { display: flex; align-items: center; gap: .75rem; padding: .55rem .9rem; color: var(--mm-ink); }
.mm-search .suggest a:hover, .mm-search .suggest a.active { background: var(--mm-sky); text-decoration: none; }
.mm-search .suggest img { width: 40px; height: 40px; object-fit: contain; background: var(--mm-cream); border-radius: 8px; }

.mm-icons { display: flex; gap: 1.6rem; justify-content: flex-end; }
.mm-icon { position: relative; display: flex; flex-direction: column; align-items: center; color: var(--mm-ink); font-size: .78rem; font-weight: 600; }
.mm-icon:hover { color: var(--mm-coral); text-decoration: none; }
.mm-icon i { font-size: 1.45rem; line-height: 1.1; }
.mm-badge { position: absolute; top: -6px; right: -8px; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 999px; background: var(--mm-coral); color: #fff; font-size: .7rem; font-weight: 800; display: flex; align-items: center; justify-content: center; border: 2px solid #fff; }

.mm-nav { border-top: 0; }
.mm-nav .nav { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; justify-content: flex-start; }
/* centred when it fits, scrollable from the first item when it doesn't */
.mm-nav .nav-item:first-child { margin-left: auto; }
.mm-nav .nav-item:last-child { margin-right: auto; }
.mm-nav .nav::-webkit-scrollbar { display: none; }
.mm-nav .nav-link { color: var(--mm-ink); font-weight: 600; font-size: .95rem; padding: .7rem 1.25rem .8rem; white-space: nowrap; position: relative; }
.mm-nav .nav-link:hover { color: var(--mm-blue); text-decoration: none; }
.mm-nav .nav-link.active { color: var(--mm-blue); }
.mm-nav .nav-link.active::after { content: ''; position: absolute; left: 18%; right: 18%; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--mm-blue); }

/* ---------- Hero ---------- */
.mm-hero { position: relative; overflow: hidden; background: linear-gradient(90deg, #FFF3E2 0%, #FFF6EC 38%, #FDEBDD 100%); }
.mm-hero .hero-img { position: absolute; inset: 0 0 0 36%; }
.mm-hero .hero-img img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.mm-hero .hero-img::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, #FFF5EA 0%, rgba(255, 245, 234, 0) 28%); z-index: 1; }
.mm-hero .hero-copy { position: relative; z-index: 2; padding: 2.6rem 0 2.8rem; max-width: 640px; }
.mm-hero .eyebrow { color: var(--mm-coral); letter-spacing: .18em; font-weight: 700; font-size: .95rem; text-transform: uppercase; }
.mm-hero h1 { font-size: clamp(2.2rem, 4.2vw, 3.5rem); font-weight: 700; line-height: 1.05; margin: .5rem 0 1rem; color: var(--mm-navy); }
.mm-hero h1 .accent { color: var(--mm-coral); }
.mm-hero p.lead { font-size: 1.12rem; color: var(--mm-ink); max-width: 460px; }
.mm-hero .loc { font-size: .92rem; font-weight: 600; margin-top: 1.1rem; }
.mm-hero .doodle { position: absolute; z-index: 2; pointer-events: none; }
.mm-hero .doodle.left { left: -4px; top: 46%; }
.mm-splash {
  position: absolute; z-index: 3; right: 1.5%; top: 10%; width: 140px; height: 140px;
  background: var(--mm-yellow); border-radius: 46% 54% 42% 58% / 55% 44% 56% 45%;
  display: flex; flex-direction: column; align-items: center; justify-content: center; transform: rotate(-10deg);
  font-family: var(--mm-font-display); font-weight: 700; color: var(--mm-navy); font-size: 1.35rem; line-height: 1.05; text-align: center;
  box-shadow: 0 8px 22px rgba(255, 186, 0, .25);
}
.mm-splash i { color: var(--mm-navy); font-size: 1.2rem; margin-top: .2rem; }

@media (min-width: 992px) { .mm-hero h1 { white-space: nowrap; } }

/* ---------- Category tiles ---------- */
.cat-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.25rem; }
.cat-tile { text-align: center; color: var(--mm-ink); display: block; }
.cat-tile:hover { text-decoration: none; }
.cat-tile .art { aspect-ratio: 6 / 5; border-radius: 16px; display: flex; align-items: center; justify-content: center; transition: transform .2s, box-shadow .2s; overflow: hidden; }
.cat-tile .art img { width: 62%; height: 80%; object-fit: contain; filter: drop-shadow(0 6px 8px rgba(0, 0, 0, .08)); transition: transform .3s; }
.cat-tile:hover .art { transform: translateY(-3px); box-shadow: var(--mm-shadow); }
.cat-tile:hover .art img { transform: scale(1.06) rotate(-2deg); }
.cat-tile .name { display: block; margin-top: .65rem; font-weight: 700; font-size: 1rem; color: var(--mm-navy); }
.cat-tile .sub { display: block; font-size: .8rem; color: var(--mm-muted); }
.tone-0 { background: var(--mm-peach); } .tone-1 { background: var(--mm-ice); } .tone-2 { background: var(--mm-butter); }
.tone-3 { background: var(--mm-blush); } .tone-4 { background: var(--mm-lemon); } .tone-5 { background: var(--mm-lilac); }

/* ---------- Product card ---------- */
.product-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1rem; }
.product-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.product-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.p-card { position: relative; background: #fff; border: 1px solid var(--mm-line); border-radius: 12px; padding: .8rem; display: flex; flex-direction: column; transition: box-shadow .2s, transform .2s; }
.p-card:hover { box-shadow: var(--mm-shadow); transform: translateY(-2px); }
.p-card .thumb { display: block; aspect-ratio: 1; border-radius: 10px; background: #fff; overflow: hidden; margin-bottom: .6rem; }
.p-card .thumb img { width: 100%; height: 100%; object-fit: contain; padding: 4%; transition: transform .3s; }
.p-card:hover .thumb img { transform: scale(1.04); }
.p-card .name { font-weight: 700; font-size: .93rem; color: var(--mm-ink); line-height: 1.3; min-height: 2.6em; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.p-card .name:hover { color: var(--mm-coral); text-decoration: none; }
.p-card .meta { font-size: .76rem; color: var(--mm-muted); margin: .2rem 0 .35rem; }
.p-card .meta .sep { margin: 0 .35rem; color: #C5CCD8; }
.p-card .price { font-weight: 800; font-size: 1.1rem; color: var(--mm-ink); margin-bottom: .55rem; }
.p-card .price s { font-size: .82rem; color: var(--mm-muted); font-weight: 600; margin-left: .3rem; }
.p-card .btn-cart { margin-top: auto; border-radius: 8px; font-size: .86rem; padding: .5rem; }
.p-card .wish { position: absolute; top: .65rem; right: .65rem; z-index: 2; width: 34px; height: 34px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .92); color: var(--mm-muted); box-shadow: 0 2px 8px rgba(0, 0, 0, .08); }
.p-card .wish:hover, .p-card .wish.on { color: var(--mm-coral); }
.p-card .flag { position: absolute; top: .7rem; left: .7rem; z-index: 2; font-size: .7rem; font-weight: 800; padding: .2rem .5rem; border-radius: 6px; background: var(--mm-yellow); color: var(--mm-navy); }
.p-card .flag.out { background: #E9ECF1; color: var(--mm-muted); }
.rating { color: #F5A623; font-size: .8rem; }

/* skeleton loading */
.skel { background: linear-gradient(90deg, #F1F3F7 25%, #E7EAF0 50%, #F1F3F7 75%); background-size: 200% 100%; animation: skel 1.2s infinite; border-radius: 8px; }
@keyframes skel { from { background-position: 200% 0 } to { background-position: -200% 0 } }
.p-card.loading .thumb { background: none; }

/* ---------- Trust strip ---------- */
.mm-trust { background: var(--mm-sky); padding: 1.4rem 0; }
.trust-item { display: flex; align-items: center; gap: .9rem; padding: .4rem 1rem; }
.trust-item i { font-size: 2.1rem; }
.trust-item .t { font-weight: 800; color: var(--mm-navy); font-size: .95rem; }
.trust-item .s { font-size: .84rem; color: var(--mm-muted); }
.mm-trust .col + .col .trust-item { border-left: 1px solid #C9DDE8; }
.ic-blue { color: var(--mm-blue); } .ic-green { color: #2BA36B; } .ic-amber { color: #F2A516; } .ic-coral { color: var(--mm-coral); }

/* ---------- Info blocks ---------- */
.age-card, .info-card { border-radius: var(--mm-radius); padding: 1.4rem; height: 100%; display: block; color: var(--mm-ink); }
.age-card:hover { text-decoration: none; transform: translateY(-2px); box-shadow: var(--mm-shadow); }
.age-card { transition: transform .2s, box-shadow .2s; }
.age-card .big { font-family: var(--mm-font-display); font-size: 1.7rem; font-weight: 700; color: var(--mm-navy); }
.step { text-align: center; padding: 1rem; }
.step .num { width: 54px; height: 54px; border-radius: 50%; margin: 0 auto .7rem; display: flex; align-items: center; justify-content: center; font-family: var(--mm-font-display); font-size: 1.4rem; font-weight: 700; color: #fff; background: var(--mm-teal); }
.why-item { display: flex; gap: .9rem; }
.why-item i { font-size: 1.6rem; color: var(--mm-coral); flex: 0 0 auto; }
.promo-band { border-radius: 20px; background: linear-gradient(110deg, #FFE7EC 0%, #FFF3D9 100%); padding: 2rem; position: relative; overflow: hidden; }
.promo-band img { position: absolute; right: 2rem; bottom: -8px; width: 170px; }
.quick-answer { border-left: 4px solid var(--mm-teal); background: #F3FBFA; border-radius: 0 12px 12px 0; padding: 1rem 1.2rem; font-size: .95rem; }

/* ---------- FAQ accordion ---------- */
.mm-faq .accordion-item { border: 1px solid var(--mm-line); border-radius: 12px !important; margin-bottom: .6rem; overflow: hidden; }
.mm-faq .accordion-button { font-weight: 700; color: var(--mm-navy); background: #fff; }
.mm-faq .accordion-button:not(.collapsed) { background: var(--mm-sky); box-shadow: none; }
.mm-faq .accordion-button:focus { box-shadow: 0 0 0 .2rem rgba(47, 127, 209, .2); }

/* ---------- Page header / breadcrumb ---------- */
.page-hero { background: linear-gradient(90deg, #FFF3E2, #FDEBDD); padding: 2rem 0 1.6rem; }
.page-hero h1 { font-size: clamp(1.8rem, 3.4vw, 2.5rem); margin: 0; }
.page-hero p { max-width: 720px; margin: .5rem 0 0; }
.breadcrumb { font-size: .85rem; margin-bottom: .5rem; }
.breadcrumb a { color: var(--mm-muted); }
.prose h2 { font-size: 1.35rem; margin-top: 1.6rem; }
.prose table { width: 100%; max-width: 520px; border-collapse: collapse; margin: 1rem 0; font-size: .92rem; }
.prose th, .prose td { border: 1px solid var(--mm-line); padding: .5rem .75rem; }
.prose th { background: var(--mm-sky); color: var(--mm-navy); }

/* ---------- Shop page ---------- */
.filter-box { border: 1px solid var(--mm-line); border-radius: var(--mm-radius); padding: 1.1rem; position: sticky; top: 140px; }
.filter-box h6 { font-weight: 800; color: var(--mm-navy); font-size: .9rem; text-transform: uppercase; letter-spacing: .05em; margin: 1rem 0 .5rem; }
.filter-box h6:first-child { margin-top: 0; }
.chip { display: inline-flex; align-items: center; gap: .3rem; border: 1px solid #D8DEE8; border-radius: 999px; padding: .32rem .8rem; font-size: .84rem; font-weight: 600; color: var(--mm-ink); background: #fff; margin: 0 .3rem .4rem 0; cursor: pointer; }
.chip:hover { border-color: var(--mm-coral); color: var(--mm-coral); text-decoration: none; }
.chip.on { background: var(--mm-coral); border-color: var(--mm-coral); color: #fff; }
.empty-state { text-align: center; padding: 3rem 1rem; }
.empty-state img { width: 130px; opacity: .9; margin-bottom: 1rem; }

/* ---------- Product page ---------- */
.gallery-main { border: 1px solid var(--mm-line); border-radius: 18px; aspect-ratio: 1; display: flex; align-items: center; justify-content: center; background: #fff; overflow: hidden; }
.gallery-main img { width: 100%; height: 100%; object-fit: contain; padding: 6%; }
.gallery-thumbs { display: flex; gap: .6rem; margin-top: .8rem; flex-wrap: wrap; }
.gallery-thumbs button { width: 72px; height: 72px; border: 2px solid var(--mm-line); border-radius: 12px; background: #fff; padding: 4px; }
.gallery-thumbs button.on { border-color: var(--mm-coral); }
.gallery-thumbs img { width: 100%; height: 100%; object-fit: contain; }
.pd-title { font-size: clamp(1.6rem, 3vw, 2.2rem); margin-bottom: .35rem; }
.pd-price { font-size: 2rem; font-weight: 800; color: var(--mm-ink); }
.pd-price small { font-size: .82rem; font-weight: 600; color: var(--mm-muted); }
.pd-box { border: 1px solid var(--mm-line); border-radius: var(--mm-radius); padding: 1rem 1.1rem; }
.qty { display: inline-flex; align-items: center; border: 1px solid #D8DEE8; border-radius: 10px; overflow: hidden; }
.qty button { border: 0; background: #F5F7FA; width: 40px; height: 44px; font-size: 1.1rem; }
.qty input { width: 48px; border: 0; text-align: center; font-weight: 800; height: 44px; -moz-appearance: textfield; }
.qty input::-webkit-outer-spin-button, .qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty.sm button { width: 32px; height: 34px; } .qty.sm input { width: 38px; height: 34px; }
.variant-opt { border: 2px solid var(--mm-line); border-radius: 10px; padding: .4rem .9rem; font-weight: 700; background: #fff; margin: 0 .4rem .4rem 0; font-size: .88rem; }
.variant-opt.on { border-color: var(--mm-coral); color: var(--mm-coral); }
.variant-opt:disabled { opacity: .45; text-decoration: line-through; }
.love-list { list-style: none; padding: 0; margin: 0; }
.love-list li { padding: .25rem 0; }
.skill-pill { display: inline-block; background: var(--mm-sky); color: var(--mm-navy); border-radius: 999px; padding: .25rem .75rem; font-size: .8rem; font-weight: 700; margin: 0 .3rem .35rem 0; }
.warn { background: #FFF6E5; border: 1px solid #FFE0A3; color: #7A5200; border-radius: 10px; padding: .6rem .8rem; font-size: .88rem; }
.nav-tabs.mm-tabs { border-bottom: 2px solid var(--mm-line); }
.nav-tabs.mm-tabs .nav-link { border: 0; color: var(--mm-muted); font-weight: 700; padding: .75rem 1.1rem; }
.nav-tabs.mm-tabs .nav-link.active { color: var(--mm-coral); border-bottom: 3px solid var(--mm-coral); background: none; }
.spec-table th { width: 38%; color: var(--mm-muted); font-weight: 700; }
.sticky-buy { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; background: #fff; box-shadow: 0 -4px 18px rgba(0, 0, 0, .08); padding: .6rem 1rem; display: none; }

/* ---------- Cart / checkout ---------- */
.cart-line { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--mm-line); }
.cart-line img { width: 92px; height: 92px; object-fit: contain; border: 1px solid var(--mm-line); border-radius: 12px; background: #fff; padding: 4px; }
.summary-box { border: 1px solid var(--mm-line); border-radius: var(--mm-radius); padding: 1.2rem; position: sticky; top: 140px; }
.summary-row { display: flex; justify-content: space-between; padding: .3rem 0; }
.summary-row.total { border-top: 1px dashed #CFD6E2; margin-top: .4rem; padding-top: .7rem; font-weight: 800; font-size: 1.15rem; }
.free-bar { height: 8px; border-radius: 99px; background: #EEF1F5; overflow: hidden; }
.free-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--mm-teal), #5ED3A6); transition: width .4s; }
.checkout-step { border: 1px solid var(--mm-line); border-radius: var(--mm-radius); padding: 1.3rem; margin-bottom: 1rem; }
.checkout-step h2 { font-size: 1.2rem; display: flex; align-items: center; gap: .6rem; }
.checkout-step h2 .n { width: 30px; height: 30px; border-radius: 50%; background: var(--mm-teal); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: .95rem; }
.pay-opt { border: 2px solid var(--mm-line); border-radius: 12px; padding: .8rem 1rem; display: flex; align-items: center; gap: .8rem; margin-bottom: .6rem; cursor: pointer; }
.pay-opt.on { border-color: var(--mm-coral); background: #FFF6F6; }
.pay-opt.disabled { opacity: .55; cursor: not-allowed; }
.form-label { font-weight: 700; font-size: .88rem; }
.form-control, .form-select { border-radius: 10px; padding: .6rem .85rem; }
.success-badge { width: 90px; height: 90px; border-radius: 50%; background: #E3F7EE; color: #1E9E63; font-size: 3rem; display: flex; align-items: center; justify-content: center; margin: 0 auto 1rem; }
.timeline { list-style: none; padding: 0; margin: 0; }
.timeline li { position: relative; padding: 0 0 1rem 1.6rem; }
.timeline li::before { content: ''; position: absolute; left: 0; top: .35rem; width: 11px; height: 11px; border-radius: 50%; background: var(--mm-teal); }
.timeline li::after { content: ''; position: absolute; left: 5px; top: 1.1rem; bottom: 0; width: 1px; background: #CFE7E5; }
.timeline li:last-child::after { display: none; }

/* ---------- Newsletter + footer ---------- */
.mm-club { background: linear-gradient(110deg, #E8F7F6, #FFF1E2); border-radius: 22px; padding: 2rem; }
.mm-footer { background: #17325C; color: #C9D5E8; padding: 3rem 0 1.4rem; font-size: .92rem; margin-top: 0; }
.mm-footer h5 { color: #fff; font-size: 1rem; font-family: var(--mm-font-body); font-weight: 800; margin-bottom: .9rem; }
.mm-footer a { color: #C9D5E8; }
.mm-footer a:hover { color: #fff; }
.mm-footer ul { list-style: none; padding: 0; margin: 0; }
.mm-footer li { padding: .2rem 0; }
.mm-footer .brand .word { font-family: var(--mm-font-display); font-weight: 700; font-size: 1.8rem; }
.mm-footer .brand .mini { color: #5ED6CF; } .mm-footer .brand .merry { color: #FF7C85; }
.mm-footer .social a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, .1); display: inline-flex; align-items: center; justify-content: center; margin-right: .4rem; font-size: 1.1rem; }
.mm-footer .bottom { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 2rem; padding-top: 1.2rem; font-size: .82rem; }
.pay-icons span { display: inline-block; background: rgba(255, 255, 255, .1); border-radius: 6px; padding: .15rem .5rem; margin: 0 .25rem .3rem 0; font-size: .75rem; font-weight: 700; color: #fff; }
.wa-float { position: fixed; right: 18px; bottom: 18px; z-index: 1040; width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.7rem; box-shadow: 0 6px 18px rgba(37, 211, 102, .4); }
.wa-float:hover { color: #fff; transform: scale(1.06); text-decoration: none; }

/* toasts */
.mm-toast-wrap { position: fixed; top: 90px; right: 16px; z-index: 1090; display: flex; flex-direction: column; gap: .5rem; }
.mm-toast { background: var(--mm-navy); color: #fff; border-radius: 12px; padding: .75rem 1rem; box-shadow: var(--mm-shadow); font-weight: 600; font-size: .92rem; display: flex; align-items: center; gap: .6rem; animation: mmSlide .3s; max-width: 340px; }
.mm-toast.error { background: #B4232F; }
.mm-toast a { color: var(--mm-yellow); }
@keyframes mmSlide { from { transform: translateX(30px); opacity: 0 } to { transform: none; opacity: 1 } }

/* ---------- Responsive ---------- */
@media (max-width: 1199.98px) {
  .mm-nav .nav-link { padding-left: .8rem; padding-right: .8rem; font-size: .9rem; }
  .mm-logo .word { font-size: 1.9rem; }
  .mm-logo img { width: 52px; height: 52px; }
  .product-grid { grid-template-columns: repeat(4, 1fr); }
  .cat-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 991.98px) {
  /* phones & tablets: headline first, then the photo shown in full */
  .mm-hero { display: flex; flex-direction: column; }
  .mm-hero .container { order: 1; }
  .mm-hero .hero-copy { padding: 1.8rem 0 1.4rem; }
  .mm-hero .hero-img { position: relative; inset: auto; order: 2; aspect-ratio: 620 / 302; }
  .mm-hero .hero-img::before { display: none; }
  .mm-splash { width: 92px; height: 92px; font-size: .85rem; top: auto; bottom: 4%; right: 3%; }
  .mm-splash i { font-size: .9rem; }
  .product-grid, .product-grid.cols-4 { grid-template-columns: repeat(3, 1fr); }
  .mm-trust .col + .col .trust-item { border-left: 0; }
  .filter-box, .summary-box { position: static; }
}
@media (max-width: 767.98px) {
  body { font-size: 15px; }
  .mm-logo img { width: 44px; height: 44px; }
  .mm-logo .word { font-size: 1.6rem; }
  .mm-logo .tag { font-size: .72rem; }
  .mm-icons { gap: 1rem; }
  .mm-icon span { display: none; }
  .cat-grid { grid-template-columns: repeat(3, 1fr); gap: .75rem; }
  .cat-tile .name { font-size: .85rem; }
  .product-grid, .product-grid.cols-4, .product-grid.cols-3 { grid-template-columns: repeat(2, 1fr); gap: .7rem; }
  .p-card { padding: .6rem; }
  .p-card .btn-cart { font-size: .8rem; }
  .section { padding: 1.6rem 0; }
  .promo-band img { width: 110px; opacity: .35; }
  .sticky-buy { display: flex; }
  .mm-nav .nav-link { padding: .6rem .8rem .7rem; font-size: .9rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
