/* Mauviel bundle 478705a1bca1 - 15 files, built on demand.
   Source files are still on disk beside this one and unchanged. */
@import url('https://fonts.googleapis.com/css2?family=Jost:ital,wght@0,200..700;

/* ---- mauviel-tokens.css ---- */
/* MAUVIEL SOUTH AFRICA — DESIGN TOKENS v1.0
   Every value measured from CATALOGUE 2026 (InDesign 20.5, PDF/X-1a, 86pp). */

1,200..700&family=Barlow+Semi+Condensed:ital,wght@0,300;0,400;0,500;1,400&display=swap');

:root {
  --mv-ink:#231F20; --mv-ink-70:#58595B; --mv-ink-45:#939598; --mv-ink-25:#D5D3D1;
  --mv-paper:#FFFFFF; --mv-paper-warm:#EEEEE8; --mv-paper-cool:#F6F7F7;
  --mv-brass:#AB9974; --mv-brass-light:#B9A98A;
  --mv-copper:#8D654D; --mv-copper-light:#A57F6C; --mv-steel:#AFB2BB; --mv-slate:#4E5152;
  --mv-band-terracotta:#D8A490; --mv-band-blush:#E6BEAB; --mv-band-steel:#AFB2BB; --mv-band-slate:#4E5152;
  --mv-signal-green:#0C693A; --mv-signal-red:#D2232A;

  --mv-font-display:"Gravity","Jost","Century Gothic",sans-serif;
  --mv-font-body:"Gravity","Jost","Century Gothic",sans-serif;
  --mv-font-data:"Trade Gothic LT Std","Barlow Semi Condensed","Arial Narrow",sans-serif;

  --mv-size-hero:clamp(2.75rem,7vw,5.25rem);
  --mv-size-collection:clamp(1.75rem,4vw,2.75rem);
  --mv-size-section:clamp(1.5rem,3vw,2.25rem);
  --mv-size-subhead:clamp(1.125rem,2vw,1.5rem);
  --mv-size-lead:1.0625rem; --mv-size-body:1rem; --mv-size-small:.8125rem;
  --mv-size-data:.75rem; --mv-size-micro:.6875rem;

  --mv-track-hero:-.02em; --mv-track-collection:.06em; --mv-track-caps:.28em;
  --mv-track-caps-tight:.16em; --mv-track-body:0; --mv-track-data:.02em;

  --mv-lead-hero:.95; --mv-lead-display:1.25; --mv-lead-body:1.65; --mv-lead-data:1.45;

  --mv-weight-ultralight:200; --mv-weight-light:300; --mv-weight-book:400; --mv-weight-emphasis:700;

  --mv-rule:.5px solid var(--mv-ink);
  --mv-rule-brass:.5px solid var(--mv-brass);
  --mv-rule-faint:.5px solid var(--mv-ink-25);

  --mv-space-1:.5rem; --mv-space-2:1rem; --mv-space-3:1.5rem; --mv-space-4:2rem;
  --mv-space-6:3rem; --mv-space-8:4rem; --mv-space-12:6rem; --mv-space-16:8rem;
  --mv-margin-outer: var(--mv-p); --mv-measure:62ch; --mv-content-max:  var(--mv-m);

  --mv-radius:0; --mv-shadow:none;
  --mv-ease:cubic-bezier(.22,.61,.36,1); --mv-dur:420ms;
}

.mv-hero{font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:var(--mv-size-hero);letter-spacing:var(--mv-track-hero);line-height:var(--mv-lead-hero);color:var(--mv-paper)}
.mv-collection-title{font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:var(--mv-size-collection);letter-spacing:var(--mv-track-collection);color:var(--mv-brass);text-transform:uppercase}
.mv-section-title{font-family:var(--mv-font-display);font-weight:var(--mv-weight-ultralight);font-size:var(--mv-size-section);letter-spacing:var(--mv-track-caps);text-transform:uppercase;color:var(--mv-ink)}
.mv-subhead{font-family:var(--mv-font-display);font-weight:var(--mv-weight-ultralight);font-size:var(--mv-size-subhead);letter-spacing:var(--mv-track-caps);line-height:var(--mv-lead-display);color:var(--mv-ink);text-transform:uppercase}
.mv-lead{font-family:var(--mv-font-body);font-style:italic;font-weight:var(--mv-weight-light);font-size:var(--mv-size-lead);line-height:var(--mv-lead-body);color:var(--mv-ink);max-width:var(--mv-measure)}
.mv-body{font-family:var(--mv-font-body);font-weight:var(--mv-weight-light);font-size:var(--mv-size-body);line-height:var(--mv-lead-body);color:var(--mv-ink);max-width:var(--mv-measure)}
.mv-eyebrow{font-family:var(--mv-font-display);font-weight:var(--mv-weight-book);font-size:var(--mv-size-small);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-brass)}
.mv-material{font-family:var(--mv-font-display);font-size:var(--mv-size-small);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-ink)}
.mv-material b{color:var(--mv-brass);font-weight:var(--mv-weight-book)}
.mv-ply{font-family:var(--mv-font-display);font-style:italic;font-weight:var(--mv-weight-emphasis);color:var(--mv-brass)}
.mv-rule{border:0;border-top:var(--mv-rule);margin:var(--mv-space-3) 0}
.mv-rule-br{border:0;border-top:var(--mv-rule-brass);margin:var(--mv-space-3) 0}

.mv-btn{display:inline-block;font-family:var(--mv-font-display);font-weight:var(--mv-weight-book);font-size:var(--mv-size-small);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-ink);background:transparent;border:var(--mv-rule);border-radius:var(--mv-radius);padding:.9rem 2.25rem;text-decoration:none;cursor:pointer;transition:background-color var(--mv-dur) var(--mv-ease),color var(--mv-dur) var(--mv-ease)}
.mv-btn:hover{background:var(--mv-ink);color:var(--mv-paper)}
.mv-btn--brass{border-color:var(--mv-brass);color:var(--mv-brass)}
.mv-btn--brass:hover{background:var(--mv-brass);color:var(--mv-paper)}
.mv-band{width:4.94%;min-width:28px;align-self:stretch}

@media (prefers-reduced-motion:reduce){.mv-btn{transition:none}}

/* ==========================================================================
   LEGIBILITY LAYER — added 9 August 2026 on Stefan's instruction.
   The catalogue palette was measured for print, where thin type on coated
   paper reads fine. On screen two of its values fail WCAG AA for body text:
     #939598 secondary grey  3.00:1   (needs 4.5:1)
     #AB9974 brass           2.79:1   (needs 4.5:1)
   So: brass and pale grey keep their jobs as rules, fills and marks, and
   two darker siblings take over wherever the colour is being READ.
   Measured, not guessed — ratios are against #FFFFFF.
   ========================================================================== */
:root{
  --mv-ink-55:      #646668;   /* 5.77:1 · secondary text, captions, counts */
  --mv-brass-text:  #7F6B45;   /* 5.13:1 · brass, but for words on a light ground */
  --mv-copper-text: #7A553F;   /* 6.57:1 */
  --mv-weight-body: 400;       /* Jost 300 is too thin on screen at body size */
}
/* the primitives, restated with readable values */
.mv-body{font-weight:var(--mv-weight-body);color:var(--mv-ink)}
.mv-lead{font-weight:var(--mv-weight-body);color:var(--mv-ink)}
.mv-eyebrow{color:var(--mv-brass-text);font-weight:500}
.mv-material b{color:var(--mv-brass-text)}
.mv-ply{color:var(--mv-brass-text)}
.mv-collection-title{color:var(--mv-brass-text)}
.mv-btn--brass{border-color:var(--mv-brass);color:var(--mv-brass-text)}


/* ==========================================================================
   THE MEASURE, in one place.
   Every rail on the site - header, content, footer, the home page, the copper
   band - reads these two values and nothing else. Change them here and the
   whole site moves together.

   Raised from 1720px to 2200px on 9 August: on a wide monitor a 1720 cap left
   real rails and the page read as narrow, which is what Stefan kept seeing.
   Prose keeps its own ch-based measure, so line length stays readable even as
   the product grid takes the screen.
   ========================================================================== */
:root{--mv-m:2200px;--mv-p:3%;--mv-m-text:1700px}
@media (max-width:1024px){:root{--mv-p:4%}}
@media (max-width:600px){:root{--mv-p:5%}}


/* ---- mauviel-theme.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — THEME HARMONISATION
   Loaded after Divi's stylesheet. Its job is to make Divi agree with the brand
   tokens rather than fight them: the type scale, the tracking, square corners,
   hairline rules, and enough vertical room for the new components to breathe.
   ========================================================================== */

/* ---- 1. Type ----------------------------------------------------------- */

body, .et_pb_module, #main-content, .woocommerce {
  font-family: var(--mv-font-body);
  font-weight: var(--mv-weight-light);
  color: var(--mv-ink);
  -webkit-font-smoothing: antialiased;
}
#main-content p { line-height: var(--mv-lead-body); }

h1, h2, h3, h4, h5, h6,
.et_pb_module h1, .et_pb_module h2, .et_pb_module h3, .et_pb_module h4 {
  font-family: var(--mv-font-display);
  color: var(--mv-ink);
}
h1 { font-weight: var(--mv-weight-light);      letter-spacing: var(--mv-track-hero); line-height: 1.08; }
h2 { font-weight: var(--mv-weight-ultralight); letter-spacing: .02em; line-height: 1.18; }
h3 { font-weight: var(--mv-weight-light);      letter-spacing: .02em; line-height: 1.25; }
h4, h5, h6 { font-weight: var(--mv-weight-book); letter-spacing: var(--mv-track-caps-tight); }

a { color: var(--mv-ink); }
a:hover { color: var(--mv-brass); }

/* ---- 2. No rounded corners, no shadows --------------------------------- */

.et_pb_button, .et_pb_module, input, select, textarea,
.woocommerce input, .woocommerce select, .woocommerce textarea,
.woocommerce .button, .woocommerce a.button, .woocommerce button.button,
.woocommerce #respond input#submit, .woocommerce input.button,
.et_pb_contact_field .input, .wp-block-search__input {
  border-radius: 0 !important;
  box-shadow: none !important;
}

/* ---- 3. Buttons -------------------------------------------------------- */

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .woocommerce .button.alt,
.woocommerce button.button.alt, .et_pb_button {
  font-family: var(--mv-font-display);
  font-weight: var(--mv-weight-book);
  font-size: var(--mv-size-small);
  letter-spacing: var(--mv-track-caps-tight);
  text-transform: uppercase;
  background: transparent;
  color: var(--mv-ink);
  border: var(--mv-rule);
  padding: .9rem 2.25rem;
  line-height: 1.2;
  transition: background-color var(--mv-dur) var(--mv-ease), color var(--mv-dur) var(--mv-ease);
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce .button.alt:hover,
.woocommerce button.button.alt:hover, .et_pb_button:hover {
  background: var(--mv-ink);
  color: var(--mv-paper);
  border-color: var(--mv-ink);
}
/* the one button that should read as the primary action */
.woocommerce .single_add_to_cart_button,
.woocommerce button.single_add_to_cart_button {
  background: var(--mv-ink) !important;
  color: var(--mv-paper) !important;
  border-color: var(--mv-ink) !important;
  width: 100%;
  max-width: 360px;
}
.woocommerce .single_add_to_cart_button:hover {
  background: var(--mv-brass) !important;
  border-color: var(--mv-brass) !important;
}
.et_pb_button:after, .et_pb_button:before { display: none !important; }

/* ---- 4. Width and rhythm ---------------------------------------------- */

#main-content .container,
#main-content .et_pb_row,
.woocommerce-page #main-content .container {
  max-width: var(--mv-content-max);
}
#main-content .container { padding-top: var(--mv-space-6); }
.woocommerce-page #content.site-content { padding-top: var(--mv-space-4); }

/* the product archive and single pages were running edge to edge */
.woocommerce div.product { margin-bottom: var(--mv-space-8); }
.woocommerce div.product div.summary { margin-bottom: var(--mv-space-4); }
.woocommerce div.product .product_title {
  font-size: clamp(1.75rem, 3.4vw, 2.75rem);
  font-weight: var(--mv-weight-light);
  letter-spacing: .01em;
  line-height: 1.14;
  margin-bottom: var(--mv-space-2);
}
.woocommerce div.product p.price, .woocommerce div.product span.price {
  font-family: var(--mv-font-data);
  font-size: 1.125rem;
  letter-spacing: var(--mv-track-data);
  color: var(--mv-ink);
  margin-bottom: var(--mv-space-3);
}
.woocommerce div.product p.price del { color: var(--mv-ink-45); }
.woocommerce div.product .woocommerce-product-details__short-description {
  font-size: var(--mv-size-lead);
  line-height: var(--mv-lead-body);
  max-width: 54ch;
  padding-bottom: var(--mv-space-3);
  border-bottom: var(--mv-rule-faint);
  margin-bottom: var(--mv-space-3);
}

/* ---- 5. Variation selector -------------------------------------------- */

.woocommerce div.product form.cart .variations { border-collapse: collapse; margin-bottom: var(--mv-space-3); }
.woocommerce div.product form.cart .variations td { padding: .5rem 0; border: 0; }
.woocommerce div.product form.cart .variations label {
  font-family: var(--mv-font-display);
  font-size: var(--mv-size-small);
  font-weight: var(--mv-weight-book);
  letter-spacing: var(--mv-track-caps-tight);
  text-transform: uppercase;
  color: var(--mv-ink);
}
.woocommerce div.product form.cart .variations select {
  border: var(--mv-rule);
  background: var(--mv-paper);
  padding: .7rem 2rem .7rem .8rem;
  font-family: var(--mv-font-body);
  font-size: var(--mv-size-body);
  min-width: 240px;
}
.woocommerce div.product .quantity input.qty {
  border: var(--mv-rule);
  height: 3.05rem;
  font-family: var(--mv-font-data);
}

/* ---- 6. Tabs ----------------------------------------------------------- */

.woocommerce div.product .woocommerce-tabs { margin-top: var(--mv-space-8); }
.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0; margin: 0 0 var(--mv-space-4);
  border-bottom: var(--mv-rule);
  display: flex; flex-wrap: wrap; gap: var(--mv-space-4);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent; border: 0; border-radius: 0; margin: 0; padding: 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--mv-font-display);
  font-size: var(--mv-size-small);
  font-weight: var(--mv-weight-book);
  letter-spacing: var(--mv-track-caps-tight);
  text-transform: uppercase;
  color: var(--mv-ink-45);
  padding: 0 0 .9rem;
  display: block;
  border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--mv-ink);
  border-bottom-color: var(--mv-brass);
}
.woocommerce div.product .woocommerce-tabs .panel {
  padding: 0; margin-bottom: var(--mv-space-6);
}
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { display: none; }

/* ---- 7. Related products ---------------------------------------------- */

.woocommerce .related, .woocommerce .upsells {
  margin-top: var(--mv-space-8);
  padding-top: var(--mv-space-4);
  border-top: var(--mv-rule);
}
.woocommerce .related > h2, .woocommerce .upsells > h2 {
  font-family: var(--mv-font-display);
  font-size: var(--mv-size-subhead);
  font-weight: var(--mv-weight-ultralight);
  letter-spacing: var(--mv-track-caps);
  text-transform: uppercase;
  margin-bottom: var(--mv-space-4);
}
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--mv-font-display);
  font-weight: var(--mv-weight-light);
  font-size: 1rem;
  line-height: 1.3;
}
.woocommerce ul.products li.product .price {
  font-family: var(--mv-font-data);
  font-size: var(--mv-size-data);
  color: var(--mv-ink);
}
.woocommerce span.onsale {
  background: var(--mv-signal-red);
  border-radius: 0;
  font-family: var(--mv-font-data);
  font-size: var(--mv-size-micro);
  letter-spacing: var(--mv-track-data);
  text-transform: uppercase;
  min-height: 0; min-width: 0; line-height: 1;
  padding: .4rem .7rem;
}

/* ---- 8. Breadcrumb, notices, headings on archives ---------------------- */

.woocommerce .woocommerce-breadcrumb {
  font-family: var(--mv-font-data);
  font-size: var(--mv-size-micro);
  letter-spacing: var(--mv-track-data);
  text-transform: uppercase;
  color: var(--mv-ink-45);
  margin-bottom: var(--mv-space-3);
}
.woocommerce .woocommerce-breadcrumb a { color: var(--mv-ink-45); }
.woocommerce .woocommerce-breadcrumb a:hover { color: var(--mv-brass); }
.woocommerce-products-header__title, .woocommerce .page-title, #main-content h1.entry-title {
  font-family: var(--mv-font-display);
  font-weight: var(--mv-weight-light);
  font-size: clamp(2rem, 4.5vw, 3.25rem);
  letter-spacing: -.01em;
  line-height: 1.06;
  margin-bottom: var(--mv-space-3);
}
.woocommerce-message, .woocommerce-info, .woocommerce-error {
  border-top-color: var(--mv-brass);
  background: var(--mv-paper-warm);
  border-radius: 0;
  font-size: var(--mv-size-small);
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--mv-brass); }

/* ---- 9. Header ---------------------------------------------------------- */

#main-header, .et-fixed-header#main-header { box-shadow: none !important; }
.mv-shopnav { border-bottom: var(--mv-rule-faint); }

/* ---- 10. Footer --------------------------------------------------------- */

#main-footer { border-top: var(--mv-rule); }
#footer-info, #footer-bottom { font-family: var(--mv-font-data); font-size: var(--mv-size-micro);
  letter-spacing: var(--mv-track-data); }

/* ---- 11. Give everything room ------------------------------------------ */

.mv-shop { margin-top: var(--mv-space-4); }
.mv-cat + .mv-shop { margin-top: var(--mv-space-2); }
.mv-cat { padding-bottom: var(--mv-space-2); }
@media (max-width: 980px) {
  .mv-cat, .mv-page, .mv-shop { padding-left: 6%; padding-right: 6%; }
}

/* ---- LEGIBILITY: Divi and WooCommerce text ------------------------------- */
body,#main-content,.woocommerce,.et_pb_module{font-weight:400;color:var(--mv-ink)}
#main-content p,#main-content li,#main-content td{color:var(--mv-ink)}
.woocommerce .woocommerce-breadcrumb,.woocommerce .woocommerce-breadcrumb a{color:var(--mv-ink-55);font-size:.75rem}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--mv-ink);font-weight:600;font-size:1.25rem}
.woocommerce div.product p.price del{color:var(--mv-ink-55);font-weight:400}
.woocommerce div.product .woocommerce-product-details__short-description{color:var(--mv-ink);font-weight:400}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{color:var(--mv-ink-55);font-weight:500;font-size:.875rem}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--mv-ink);font-weight:500}
.woocommerce ul.products li.product .woocommerce-loop-product__title{color:var(--mv-ink);font-weight:400}
.woocommerce ul.products li.product .price{color:var(--mv-ink);font-weight:500}
.woocommerce div.product form.cart .variations label{color:var(--mv-ink);font-weight:600}
.woocommerce div.product form.cart .variations select{color:var(--mv-ink);font-weight:400}
.woocommerce .stock,.woocommerce .stock.in-stock{color:var(--mv-signal-green);font-weight:500}
.woocommerce .product_meta{color:var(--mv-ink-55);font-size:.75rem}
.woocommerce .product_meta a{color:var(--mv-ink-55)}
#footer-info,#footer-bottom,#main-footer .et_pb_widget{color:var(--mv-ink-55)}
.mv-shopnav .et_pb_menu__menu>nav>ul>li>a{color:var(--mv-ink)!important;font-weight:500!important}
.mv-shopnav ul.sub-menu li a{color:var(--mv-ink)!important;font-weight:400!important}
/* Divi likes 14px grey small print — no */
#main-content .et_pb_text small,#main-content small{color:var(--mv-ink-55)}

/* ==========================================================================
   FULL WIDTH - scoped. Divi page container is width:80%; max-width:1080px.
   We unbind the CONTENT container only. Divi ROWS (header, footer and every
   builder-built section) keep a gutter, because their modules assume one.
   Removing that gutter is what pushed the footer against the viewport edge.
   ========================================================================== */
/* THE MEASURE. One box for the whole site: a 1720px cap and a 2.5% gutter,
   4% below 1024. The header (.mvh__in) and the home page (.mvhome__w) already
   use it; these rules put every other page on the same rails.

   The gutter is declared ONCE per page, on whichever element is outermost:
     - a .container page (shop, category, blog, ordinary pages) -> the container
     - a Theme Builder page (product, cart, checkout)           -> the row
   Rule 3 stops a row inside a container adding a second gutter. */

#main-content .container,
.woocommerce-page #main-content .container{
  width:100%!important;max-width:var(--mv-m)!important;
  margin-left:auto!important;margin-right:auto!important;
  padding-left:var(--mv-p)!important;padding-right:var(--mv-p)!important}

#main-content .et_pb_row{
  width:100%!important;max-width:var(--mv-m)!important;
  margin-left:auto!important;margin-right:auto!important;
  padding-left:var(--mv-p)!important;padding-right:var(--mv-p)!important}

#main-content .container .et_pb_row{
  max-width:none!important;padding-left:0!important;padding-right:0!important}

/* Full-bleed escapes: a fullwidth section, and any row wrapping one of our
   own components, manage their own measure. Scoped to #main-content so they
   outrank the two rules above. */
#main-content .et_pb_row_fullwidth,
#main-content .et_pb_fullwidth_section .et_pb_row,
#main-content .et_pb_row:has(.mv-sec),
#main-content .et_pb_row:has(.mv-hero),
#main-content .et_pb_row:has(.mv-shop),
#main-content .et_pb_row:has(.mv-cat),
#main-content .et_pb_row:has(.mv-page),
#main-content .et_pb_row:has(.mv-rail),
#main-content .et_pb_row:has(.mv-grid),
#main-content .et_pb_row:has(.mvhome){
  width:100%!important;max-width:none!important;
  padding-left:0!important;padding-right:0!important}

@media (max-width:1024px){
  #main-content .container,
  .woocommerce-page #main-content .container,
  #main-content .et_pb_row{padding-left:4%!important;padding-right:4%!important}
  #main-content .container .et_pb_row{padding-left:0!important;padding-right:0!important}
}
#left-area{width:100%!important;padding-right:0!important;float:none!important}
#sidebar{display:none!important}
.et_right_sidebar #left-area,.et_left_sidebar #left-area{width:100%!important;padding:0!important}
#content-area,#main-content article,.entry-content{max-width:none!important}
.woocommerce-page #main-content .container:before,#main-content .container:before{display:none}
/* Divi rows: wider than stock, never edge to edge */
.et_pb_row{width:92%!important;max-width:var(--mv-m)!important;margin-left:auto!important;margin-right:auto!important}
@media (max-width:980px){.et_pb_row{width:90%!important}}
@media (max-width:640px){.et_pb_row{width:88%!important}}
.et_pb_row_fullwidth,.et_pb_fullwidth_section .et_pb_row{width:100%!important;max-width:none!important}
/* Footer, on the same rails as the header and the content. */
.et-l--footer .et_pb_row,#main-footer .container,#footer-bottom .container,#et-footer-nav .container{width:100%!important;max-width:var(--mv-m)!important;margin-left:auto!important;margin-right:auto!important;padding-left:var(--mv-p)!important;padding-right:var(--mv-p)!important}
@media (max-width:1024px){.et-l--footer .et_pb_row,#main-footer .container,#footer-bottom .container,#et-footer-nav .container{padding-left:4%!important;padding-right:4%!important}}
.et-l--footer .et_pb_row_fullwidth,.et-l--footer .et_pb_fullwidth_section .et_pb_row{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
.et-l--header .et_pb_row,#main-header .container,#top-header .container{width:94%!important;max-width:1840px!important;margin-left:auto!important;margin-right:auto!important}
/* a row wrapping one of our own sections manages its own measure */
.et_pb_row:has(.mv-sec),.et_pb_row:has(.mv-hero),.et_pb_row:has(.mv-shop),.et_pb_row:has(.mv-cat),.et_pb_row:has(.mv-page),.et_pb_row:has(.mv-rail),.et_pb_row:has(.mv-grid){width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important}
/* nothing may be clipped horizontally by our own wrappers */
html,body{overflow-x:clip}
#page-container,#et-main-area,#main-content,#content-area,.et-l--footer,.et_pb_section{overflow-x:visible!important}
/* archives and single products get a sensible maximum, set by us */
.woocommerce div.product,.woocommerce-products-header,.woocommerce .woocommerce-breadcrumb,.woocommerce-notices-wrapper{max-width:var(--mv-m);margin-left:auto;margin-right:auto;padding-left:var(--mv-p);padding-right:var(--mv-p);box-sizing:border-box}
.woocommerce div.product{padding-top:var(--mv-space-3)}
.mv-page{max-width:var(--mv-m-text);padding-left:3.5%;padding-right:3.5%}
.mv-cat{max-width:var(--mv-m);padding-left:var(--mv-p);padding-right:var(--mv-p)}
.mv-sec>*{max-width:var(--mv-m);padding-left:var(--mv-p);padding-right:var(--mv-p)}
.mv-hero__inner,.mv-band__inner,.mv-rail__head{max-width:var(--mv-m);padding-left:var(--mv-p);padding-right:var(--mv-p)}
.mv-mat,.mv-home .mv-tiles{width:calc(100% - 5%);max-width:var(--mv-m)}
.mv-rail{padding-left:var(--mv-p);padding-right:var(--mv-p);scroll-padding-left:var(--mv-p)}

/* ==========================================================================
   WOOCOMMERCE CHROME - WooCommerce ships CSS custom properties with a
   lavender/grey palette and 4-8px radii, and Divi WooCommerce Extended adds
   an orange sale badge. Repoint the variables, then zero every radius.
   ========================================================================== */
:root,body{--wc-green:#0C693A;--wc-red:#D2232A;--wc-orange:#AB9974;--wc-blue:#7A553F;--wc-primary:#231F20;--wc-primary-text:#FFFFFF;--wc-secondary:#F4F2EE;--wc-secondary-text:#231F20;--wc-highlight:#AB9974;--wc-highligh-text:#FFFFFF;--wc-content-bg:#FFFFFF;--wc-subtext:#646668;--wc-form-border-color:#D9D6D0;--wc-form-border-radius:0;--wc-form-border-width:1px;--wc-destructive:#D2232A;--wc-card-border-radius:0;--wc-border-radius:0}
.woocommerce ul.products li.product,.woocommerce ul.products li.product a,.woocommerce ul.products li.product img,.woocommerce div.product div.images img,.woocommerce div.product div.images,.woocommerce table.shop_table,.woocommerce div.product .woocommerce-tabs ul.tabs li,.woocommerce span.onsale,.woocommerce .button,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,.woocommerce select,.woocommerce input.input-text,.woocommerce textarea,.mv-card,.mv-card img,.mv-card__img,.mv-card__link,.mv-grid,.mv-grid>li,.dwe_single_woo_product,.dwe_single_woo_product img,.dwe-products-accordion-item .dwe-onsale,.el_dwe_popular_product .el_dwe_product_image img,.woosb-products .woosb-product .variations .variation{border-radius:0!important}
.woocommerce span.onsale,.woocommerce-page span.onsale,.dwe-products-accordion-item .dwe-onsale{background:var(--mv-ink)!important;color:#fff!important;box-shadow:none!important;font-family:var(--mv-font-data);font-size:.625rem;letter-spacing:var(--mv-track-data);text-transform:uppercase;font-weight:500;line-height:1;padding:.45em .7em;min-height:0;min-width:0;top:10px;left:10px}
.woocommerce div.product .woocommerce-tabs ul.tabs{border-bottom:1px solid var(--mv-ink-25);padding:0}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:transparent!important;border:0!important;margin:0 2rem 0 0!important;padding:0 0 .6rem 0!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li:before,.woocommerce div.product .woocommerce-tabs ul.tabs li:after{display:none!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li a{font-family:var(--mv-font-display);text-transform:uppercase;letter-spacing:var(--mv-track-caps-tight);font-size:.8125rem;font-weight:500;color:var(--mv-ink-55)!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-bottom:2px solid var(--mv-brass)!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a{color:var(--mv-ink)!important}
.woocommerce table.shop_table{border:1px solid var(--mv-ink-25)!important;border-collapse:collapse!important;border-spacing:0!important}
.woocommerce div.product div.images .woocommerce-product-gallery__trigger{display:none!important}
/* lazy-load placeholders must not read as grey cards */
img[data-lazyloaded]{background:transparent!important}
.mv-card__img img[data-lazyloaded]:not([src^="http"]){opacity:0}

/* ==========================================================================
   PRODUCT DESCRIPTION - the theme was setting Karla at 14-16px grey.
   Body copy is the trust signal; it gets the brand face at a readable size.
   ========================================================================== */
.et_pb_wc_description,.et_pb_wc_description .et_pb_module_inner,.woocommerce-Tabs-panel,.woocommerce-product-details__short-description,#tab-description,.mv-prose{font-family:var(--mv-font-body)!important;font-weight:var(--mv-weight-body)!important;font-size:1.0625rem!important;line-height:1.65!important;color:var(--mv-ink)!important}
.et_pb_wc_description p,.woocommerce-Tabs-panel p,#tab-description p,.woocommerce-product-details__short-description p,.mv-prose p{font-family:var(--mv-font-body)!important;font-size:1.0625rem!important;line-height:1.65!important;color:var(--mv-ink)!important;margin-bottom:.9em;max-width:74ch}
.et_pb_wc_description li,.woocommerce-Tabs-panel li,#tab-description li{font-family:var(--mv-font-body)!important;font-size:1.0625rem!important;line-height:1.6!important;color:var(--mv-ink)!important;margin-bottom:.35em}
.et_pb_wc_description h2,.et_pb_wc_description h3,.et_pb_wc_description h4,.woocommerce-Tabs-panel h2,.woocommerce-Tabs-panel h3,.woocommerce-Tabs-panel h4,#tab-description h2,#tab-description h3{font-family:var(--mv-font-display)!important;font-weight:400!important;color:var(--mv-ink)!important;letter-spacing:.005em;line-height:1.25;margin:1.7em 0 .5em}
.et_pb_wc_description h2,.woocommerce-Tabs-panel h2,#tab-description h2{font-size:1.5rem}
.et_pb_wc_description h3,.woocommerce-Tabs-panel h3,#tab-description h3{font-size:1.1875rem}
.et_pb_wc_description strong,.woocommerce-Tabs-panel strong,#tab-description strong{font-weight:600!important;color:var(--mv-ink)!important}
.et_pb_wc_description a,.woocommerce-Tabs-panel a,#tab-description a{color:var(--mv-copper-text)!important;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:1px}
.et_pb_wc_description em,.woocommerce-Tabs-panel em{color:var(--mv-ink)!important}
/* the theme-builder module wrapper also carried the font */
[class*="et_pb_wc_description"]{font-family:var(--mv-font-body)!important;color:var(--mv-ink)!important}
[class*="et_pb_wc_title"] h1,[class*="et_pb_wc_title"] h2{font-family:var(--mv-font-display)!important;color:var(--mv-ink)!important}



/* ==========================================================================
   ONE GUTTER, NOT TWO.
   The measure is now supplied by the outermost wrapper: .container on an
   ordinary page, the top-level .et_pb_row on a Theme Builder page. Our own
   components used to supply it themselves, which inside those wrappers gives
   two gutters and a content box 80px narrower than the header. Inside a
   wrapper that already has the measure, components run to its full width.
   The home page has neither a .container nor a row, so it is untouched.
   ========================================================================== */
#main-content .container .mv-shop,#main-content .et_pb_row .mv-shop,
#main-content .container .mv-cat,#main-content .et_pb_row .mv-cat,
#main-content .container .mv-results,#main-content .et_pb_row .mv-results,
#main-content .container .mv-hero__inner,#main-content .et_pb_row .mv-hero__inner,
#main-content .container .mv-band__inner,#main-content .et_pb_row .mv-band__inner,
#main-content .container .mv-rail__head,#main-content .et_pb_row .mv-rail__head,
#main-content .container .mv-rail,#main-content .et_pb_row .mv-rail,
#main-content .container div.product,#main-content .et_pb_row div.product,
#main-content .container .woocommerce-products-header,#main-content .et_pb_row .woocommerce-products-header,
#main-content .container .woocommerce-breadcrumb,#main-content .et_pb_row .woocommerce-breadcrumb,
#main-content .container .mv-pagehead,#main-content .et_pb_row .mv-pagehead,
#main-content .container .mv-backto,#main-content .et_pb_row .mv-backto,
#main-content .container .mv-seen,#main-content .et_pb_row .mv-seen,
#main-content .container .mv-legal,#main-content .et_pb_row .mv-legal,
#main-content .container .mv-faq,#main-content .et_pb_row .mv-faq,
#main-content .container .mv-sec>*,#main-content .et_pb_row .mv-sec>*{
  max-width:none!important;
  padding-left:0!important;padding-right:0!important;
  margin-left:0!important;margin-right:0!important}

/* .mv-page keeps its narrower editorial measure, centred, but no gutter. */
#main-content .container .mv-page,#main-content .et_pb_row .mv-page{
  max-width:var(--mv-m-text)!important;
  padding-left:0!important;padding-right:0!important;
  margin-left:auto!important;margin-right:auto!important}

#main-content .container .mv-rail,#main-content .et_pb_row .mv-rail{scroll-padding-left:0}


/* ==========================================================================
   NO GREY BANDS.
   A grid that draws its rules by letting a coloured background show through
   1px gaps also shows that colour through any empty track. That is what put a
   grey strip under the Where-to-start panel and under a short last row of
   products. The rules move onto the items; the grid keeps no background.
   ========================================================================== */
.mv-picks,.mv-grid,.mv-tiles,.mv-mat,.mv-care,.mv-timeline{
  background:none!important;
  border:0!important;
  border-top:1px solid #E3E1DD!important;
  border-left:1px solid #E3E1DD!important;
  gap:0!important}
.mv-picks>li,.mv-grid>li,.mv-tiles>li,.mv-mat>li,.mv-care>li,.mv-timeline>li{
  background:var(--mv-paper,#fff);
  border-right:1px solid #E3E1DD;
  border-bottom:1px solid #E3E1DD}


/* ---- mauviel-reset.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — SCOPED RESET

   Divi's style.css sets bare-element rules that reach inside anything we
   render. Rather than fight each one with !important further down the stack,
   this neutralises them once, but ONLY inside the components we own.

   Everything Divi renders itself is left completely alone.

   Loaded after the theme and before our components, so components win
   normally, by source order, without needing !important.

   What it undoes, and why:
     a          { color:#2ea3f2 }                Divi's stock blue
     p          { padding-bottom:1em }           fights our margins
     h1-h6      { color:#333; line-height:1em }  not our ink; crushes headings
     h1-h6      { font-size:30px..14px }         fights our fluid scale
     ol,ul      { list-style:none } then
     .et-l--body ul { list-style:disc; padding:0 0 23px 1em }
                                                 bullets and 23px in our lists
     blockquote { border-left:5px solid }        a rule we never asked for
   ========================================================================== */

.mvh,.mvhome,.mv-page,.mv-cat,.mv-shop,.mv-404,.mv-legal,.mv-faq,
.mv-seen,.mv-stickybuy,.mv-pagehead,.mv-backto,.mv-assure,.mv-filters,.mv-results{
  /* a clean box model for everything we author */
  box-sizing:border-box;
}

/* ---- typography ---------------------------------------------------------- */
/* Divi pads and colours every bare heading. We undo the box on all of ours...*/
.mvh h1,
.mvh h2,
.mvh h3,
.mvh h4,
.mvh h5,
.mvh h6,
.mvhome h1,
.mvhome h2,
.mvhome h3,
.mvhome h4,
.mvhome h5,
.mvhome h6,
.mv-page h1,
.mv-page h2,
.mv-page h3,
.mv-page h4,
.mv-page h5,
.mv-page h6,
.mv-cat h1,
.mv-cat h2,
.mv-cat h3,
.mv-cat h4,
.mv-cat h5,
.mv-cat h6,
.mv-shop h1,
.mv-shop h2,
.mv-shop h3,
.mv-shop h4,
.mv-shop h5,
.mv-shop h6,
.mv-404 h1,
.mv-404 h2,
.mv-404 h3,
.mv-404 h4,
.mv-404 h5,
.mv-404 h6,
.mv-legal h1,
.mv-legal h2,
.mv-legal h3,
.mv-legal h4,
.mv-legal h5,
.mv-legal h6,
.mv-faq h1,
.mv-faq h2,
.mv-faq h3,
.mv-faq h4,
.mv-faq h5,
.mv-faq h6,
.mv-seen h1,
.mv-seen h2,
.mv-seen h3,
.mv-seen h4,
.mv-seen h5,
.mv-seen h6,
.mv-pagehead h1,
.mv-pagehead h2,
.mv-pagehead h3,
.mv-pagehead h4,
.mv-pagehead h5,
.mv-pagehead h6{
  padding:0;
  margin:0;
}

/* ...but we only take away the TYPE from headings that carry no class of
   their own. A heading like .mvhome__h2 sets its own size, weight and colour,
   and a bare-element reset at higher specificity was silently overriding it —
   which is what shrank the home page section headings to body size. */
.mvh h1:not([class]),
.mvh h2:not([class]),
.mvh h3:not([class]),
.mvh h4:not([class]),
.mvh h5:not([class]),
.mvh h6:not([class]),
.mvhome h1:not([class]),
.mvhome h2:not([class]),
.mvhome h3:not([class]),
.mvhome h4:not([class]),
.mvhome h5:not([class]),
.mvhome h6:not([class]),
.mv-page h1:not([class]),
.mv-page h2:not([class]),
.mv-page h3:not([class]),
.mv-page h4:not([class]),
.mv-page h5:not([class]),
.mv-page h6:not([class]),
.mv-cat h1:not([class]),
.mv-cat h2:not([class]),
.mv-cat h3:not([class]),
.mv-cat h4:not([class]),
.mv-cat h5:not([class]),
.mv-cat h6:not([class]),
.mv-shop h1:not([class]),
.mv-shop h2:not([class]),
.mv-shop h3:not([class]),
.mv-shop h4:not([class]),
.mv-shop h5:not([class]),
.mv-shop h6:not([class]),
.mv-404 h1:not([class]),
.mv-404 h2:not([class]),
.mv-404 h3:not([class]),
.mv-404 h4:not([class]),
.mv-404 h5:not([class]),
.mv-404 h6:not([class]),
.mv-legal h1:not([class]),
.mv-legal h2:not([class]),
.mv-legal h3:not([class]),
.mv-legal h4:not([class]),
.mv-legal h5:not([class]),
.mv-legal h6:not([class]),
.mv-faq h1:not([class]),
.mv-faq h2:not([class]),
.mv-faq h3:not([class]),
.mv-faq h4:not([class]),
.mv-faq h5:not([class]),
.mv-faq h6:not([class]),
.mv-seen h1:not([class]),
.mv-seen h2:not([class]),
.mv-seen h3:not([class]),
.mv-seen h4:not([class]),
.mv-seen h5:not([class]),
.mv-seen h6:not([class]),
.mv-pagehead h1:not([class]),
.mv-pagehead h2:not([class]),
.mv-pagehead h3:not([class]),
.mv-pagehead h4:not([class]),
.mv-pagehead h5:not([class]),
.mv-pagehead h6:not([class]){
  color:inherit;
  line-height:inherit;
  font-size:inherit;
  font-weight:inherit;
}

.mvh p,.mvhome p,.mv-page p,.mv-cat p,.mv-shop p,.mv-404 p,
.mv-legal p,.mv-faq p,.mv-seen p,.mv-pagehead p,.mv-assure p{
  padding:0;
  margin:0;
}

.mvh a:not([class]),.mvhome a:not([class]),.mv-404 a:not([class]),
.mv-seen a:not([class]),.mv-stickybuy a:not([class]),.mv-backto a:not([class]),
.mv-cat a:not([class]),.mv-shop a:not([class]),.mv-filters a:not([class]),
.mv-results a:not([class]){
  color:inherit;
  text-decoration:none;
}
/* editorial prose keeps a real, visible link colour */
.mv-page a,.mv-legal a,.mv-faq a{
  color:var(--mv-copper-text);
  text-decoration:underline;
  text-underline-offset:.18em;
  text-decoration-thickness:1px;
}
.mv-page a:hover,.mv-legal a:hover,.mv-faq a:hover{color:var(--mv-ink)}

/* ---- lists --------------------------------------------------------------- */
.mvh ul,.mvh ol,.mvhome ul,.mvhome ol,.mv-404 ul,.mv-seen ul,
.mv-shop ul,.mv-shop ol,.mv-cat ul.mv-picks,.mv-results ul,.mv-filters ul,
.mv-assure,.mv-faq .mv-faq__toc ul,.mv-faq .mv-faq__list{
  list-style:none;
  margin:0;
  padding:0;
  line-height:inherit;
}
.mvh ul li,.mvh ol li,.mvhome ul li,.mvhome ol li,.mv-404 ul li,.mv-seen ul li,
.mv-shop ul li,.mv-results ul li,.mv-filters ul li,.mv-assure li,
.mv-faq .mv-faq__toc li{
  list-style:none;
  padding:0;
  margin:0;
}
.mvh li::marker,.mvhome li::marker,.mv-404 li::marker,.mv-seen li::marker,
.mv-shop li::marker,.mv-results li::marker,.mv-filters li::marker,
.mv-assure li::marker,.mv-faq .mv-faq__toc li::marker{content:none}

/* editorial prose keeps real bullets, at our measure */
.mv-page .mv-body ul,.mv-legal ul.mv-rules,.mv-legal ol.mv-steps{
  list-style:none;padding:0;margin:0 0 1.2rem;
}
.mv-page .mv-body ul li,.mv-legal ul.mv-rules li{
  position:relative;padding-left:1.15rem;margin-bottom:.5rem;line-height:1.6;
}
.mv-page .mv-body ul li:before,.mv-legal ul.mv-rules li:before{
  content:"";position:absolute;left:0;top:.68em;width:5px;height:1px;background:var(--mv-brass);
}
.mv-legal ol.mv-steps{counter-reset:mvstep}
.mv-legal ol.mv-steps li{
  counter-increment:mvstep;position:relative;padding-left:2.1rem;margin-bottom:.75rem;line-height:1.6;
}
.mv-legal ol.mv-steps li:before{
  content:counter(mvstep,decimal-leading-zero);position:absolute;left:0;top:.1em;
  font-family:var(--mv-font-data);font-size:.75rem;letter-spacing:.06em;color:var(--mv-brass-text);
}

/* ---- odds and ends Divi imposes ------------------------------------------ */
.mvh blockquote,.mvhome blockquote,.mv-page blockquote,.mv-legal blockquote{
  margin:1.6rem 0;border-left:2px solid var(--mv-brass);padding:.2rem 0 .2rem 1.4rem;
}
.mvh img,.mvhome img,.mv-404 img,.mv-seen img{max-width:100%;height:auto;display:block}
.mvh button,.mvhome button,.mv-404 button{font-family:inherit;font-size:inherit;color:inherit}
.mvh input,.mv-404 input{font-family:inherit}

/* ---- page chrome ---------------------------------------------------------
   Our header is sticky and is not Divi's, so Divi's reserved space for its own
   fixed nav is dead weight that shows as a gap under the header.
   -------------------------------------------------------------------------- */
.et_fixed_nav.et_show_nav #page-container,
body.et_transparent_nav #page-container,
body #page-container{padding-top:0}
body:not(.et-tb) #main-content .container,
body:not(.et-tb-has-header) #main-content .container{padding-top:0}


/* ---- mauviel-ux.css ---- */
/* MAUVIEL SA — shop UX. Square corners, hairline rules, no shadows. */

.mv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- layout ---------- */
.mv-shop{font-family:var(--mv-font-body);color:var(--mv-ink);max-width:var(--mv-content-max);margin:0 auto var(--mv-space-8);padding:0 var(--mv-margin-outer);box-sizing:border-box}
.mv-shop *,.mv-shop *::before,.mv-shop *::after{box-sizing:border-box}
.mv-shop__bar{display:flex;align-items:center;gap:var(--mv-space-3);padding:var(--mv-space-2) 0;border-top:var(--mv-rule);border-bottom:var(--mv-rule-faint);position:sticky;top:0;z-index:40;background:var(--mv-paper)}
.mv-shop__cols{display:grid;grid-template-columns:250px minmax(0,1fr);gap:var(--mv-space-6);align-items:start;padding-top:var(--mv-space-4)}
@media (max-width:900px){.mv-shop__cols{grid-template-columns:minmax(0,1fr)}}

.mv-count{margin:0;margin-inline-start:auto;font-family:var(--mv-font-data);font-size:var(--mv-size-data);letter-spacing:var(--mv-track-data);text-transform:uppercase;color:var(--mv-ink-70)}
.mv-sort__sel{font-family:var(--mv-font-display);font-size:var(--mv-size-small);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-ink);background:transparent;border:0;border-bottom:var(--mv-rule);border-radius:0;padding:.45rem 1.5rem .45rem 0;cursor:pointer;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mv-ink) 50%),linear-gradient(135deg,var(--mv-ink) 50%,transparent 50%);background-position:calc(100% - 9px) 55%,calc(100% - 4px) 55%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.mv-filters__open{padding:.55rem 1.5rem;display:none}
@media (max-width:900px){.mv-filters__open{display:inline-block}}

/* ---------- filter rail ---------- */
.mv-filters{border-top:var(--mv-rule)}
.mv-filters__head{display:none;align-items:center;justify-content:space-between;padding:var(--mv-space-2) 0}
.mv-facet{border-bottom:var(--mv-rule-faint)}
.mv-facet--lead{border-bottom:var(--mv-rule)}
.mv-facet__toggle{display:flex;width:100%;align-items:center;justify-content:space-between;gap:.5rem;background:none;border:0;padding:1rem 0;cursor:pointer;font-family:var(--mv-font-display);font-size:var(--mv-size-small);font-weight:var(--mv-weight-book);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-ink);text-align:left}
.mv-facet__mark{width:9px;height:9px;border-right:var(--mv-rule);border-bottom:var(--mv-rule);transform:rotate(45deg) translateY(-3px);transition:transform var(--mv-dur) var(--mv-ease);flex:none}
.mv-facet__toggle[aria-expanded="true"] .mv-facet__mark{transform:rotate(-135deg) translateY(-3px)}
.mv-facet__list{list-style:none;margin:0;padding:0 0 var(--mv-space-2)}
.mv-facet--lead .mv-facet__list{padding-bottom:var(--mv-space-3)}
.mv-opt{display:flex;align-items:center;gap:.6rem;padding:.36rem 0;cursor:pointer;font-size:var(--mv-size-small);line-height:1.35;color:var(--mv-ink)}
.mv-opt input{appearance:none;width:13px;height:13px;flex:none;border:var(--mv-rule);border-radius:0;background:var(--mv-paper);cursor:pointer;position:relative;margin:0}
.mv-opt input:checked{background:var(--mv-ink)}
.mv-opt input:checked::after{content:"";position:absolute;left:3px;top:0;width:4px;height:8px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(42deg)}
.mv-opt input:focus-visible{outline:2px solid var(--mv-brass);outline-offset:2px}
.mv-opt__name{flex:1}
.mv-opt__n{font-family:var(--mv-font-data);font-size:var(--mv-size-micro);color:var(--mv-ink-45)}
.mv-facet--lead .mv-opt{font-family:var(--mv-font-display);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;font-size:var(--mv-size-small)}
.mv-opt.is-off{opacity:.35}

.mv-chips{display:flex;flex-wrap:wrap;gap:.4rem;padding:var(--mv-space-2) 0 0}
.mv-chips:empty{padding:0}
.mv-chip{display:inline-flex;align-items:center;gap:.45rem;border:var(--mv-rule-brass);color:var(--mv-brass);background:transparent;padding:.28rem .6rem;font-family:var(--mv-font-data);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-data);text-transform:uppercase;cursor:pointer;border-radius:0}
.mv-chip::after{content:"\00d7";font-size:.85rem;line-height:1}
.mv-chip:hover{background:var(--mv-brass);color:var(--mv-paper)}
.mv-clear-all{margin:var(--mv-space-3) 0 0;padding:.55rem 1.4rem;width:100%}

/* ---------- grid ---------- */
.mv-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1px;background:var(--mv-ink-25);border:var(--mv-rule-faint)}
.mv-card{background:var(--mv-paper)}
.mv-card__link{display:flex;flex-direction:column;height:100%;padding:var(--mv-space-3);text-decoration:none;color:inherit;transition:background-color var(--mv-dur) var(--mv-ease)}
.mv-card__link:hover{background:var(--mv-paper-cool)}
.mv-card__img{display:block;aspect-ratio:1;overflow:hidden;margin-bottom:var(--mv-space-2)}
.mv-card__img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform var(--mv-dur) var(--mv-ease)}
.mv-card__link:hover .mv-card__img img{transform:scale(1.035)}
.mv-card__eyebrow{display:block;font-family:var(--mv-font-display);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-brass);margin-bottom:.3rem}
.mv-card__title{display:block;font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:1rem;line-height:1.3;letter-spacing:.01em;margin-bottom:.35rem}
.mv-card__sizes{display:block;font-family:var(--mv-font-data);font-size:var(--mv-size-micro);color:var(--mv-ink-45);margin-bottom:.5rem}
.mv-card__price{display:block;margin-top:auto;font-family:var(--mv-font-data);font-size:var(--mv-size-data);letter-spacing:var(--mv-track-data);color:var(--mv-ink)}
.mv-card__price del{color:var(--mv-ink-45);margin-right:.35rem}
.mv-card__flag{display:inline-block;margin-top:.5rem;font-family:var(--mv-font-data);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-data);text-transform:uppercase;color:var(--mv-signal-green);border-top:1px solid var(--mv-signal-green);padding-top:.25rem}

.mv-empty{padding:var(--mv-space-8) 0;text-align:center}
.mv-empty .mv-lead,.mv-empty .mv-body{margin-left:auto;margin-right:auto}
.mv-more{text-align:center;padding:var(--mv-space-6) 0 0}
.mv-results.is-busy{opacity:.35;transition:opacity 160ms linear}

/* ---------- mobile drawer ---------- */
@media (max-width:900px){
  .mv-filters{position:fixed;inset:0 0 0 auto;width:min(340px,88vw);background:var(--mv-paper);z-index:9999;padding:var(--mv-space-3);overflow-y:auto;transform:translateX(101%);transition:transform var(--mv-dur) var(--mv-ease);border-top:0}
  .mv-filters.is-open{transform:none}
  .mv-filters__head{display:flex}
  .mv-filters__close{background:none;border:0;font-family:var(--mv-font-display);font-size:var(--mv-size-small);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;cursor:pointer;color:var(--mv-ink)}
  .mv-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
}

/* ---------- predictive search ---------- */
.mv-search{position:fixed;inset:0;z-index:10000;background:rgba(35,31,32,.55)}
.mv-search__panel{background:var(--mv-paper);max-width:var(--mv-content-max);margin:0 auto;padding:var(--mv-space-4) var(--mv-margin-outer) var(--mv-space-6);max-height:88vh;overflow-y:auto}
.mv-search__form{display:flex;align-items:center;gap:var(--mv-space-2);border-bottom:var(--mv-rule);padding-bottom:.6rem}
.mv-search__input{flex:1;border:0;background:transparent;font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:clamp(1.25rem,3vw,2rem);letter-spacing:.01em;color:var(--mv-ink);padding:.3rem 0}
.mv-search__input:focus{outline:none}
.mv-search__close{background:none;border:0;cursor:pointer;font-family:var(--mv-font-display);font-size:var(--mv-size-small);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-ink-70)}
.mv-search__out{padding-top:var(--mv-space-3)}
.mv-sg{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--mv-space-6)}
@media (max-width:760px){.mv-sg{grid-template-columns:minmax(0,1fr);gap:var(--mv-space-3)}}
.mv-sg h4{font-family:var(--mv-font-display);font-size:var(--mv-size-micro);font-weight:var(--mv-weight-book);letter-spacing:var(--mv-track-caps);text-transform:uppercase;color:var(--mv-ink-45);margin:0 0 .8rem;padding-bottom:.4rem;border-bottom:var(--mv-rule-faint)}
.mv-sg ul{list-style:none;margin:0;padding:0}
.mv-sg__p{display:flex;gap:var(--mv-space-2);align-items:center;padding:.55rem 0;text-decoration:none;color:var(--mv-ink);border-bottom:var(--mv-rule-faint)}
.mv-sg__p:hover{color:var(--mv-brass)}
.mv-sg__p img{width:52px;height:52px;object-fit:contain;flex:none;mix-blend-mode:multiply}
.mv-sg__n{display:block;font-family:var(--mv-font-display);font-size:.95rem;font-weight:var(--mv-weight-light);line-height:1.3}
.mv-sg__c{display:block;font-family:var(--mv-font-display);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-brass)}
.mv-sg__pr{margin-inline-start:auto;font-family:var(--mv-font-data);font-size:var(--mv-size-data);color:var(--mv-ink-70);white-space:nowrap}
.mv-sg__l{display:flex;justify-content:space-between;gap:.6rem;padding:.5rem 0;text-decoration:none;color:var(--mv-ink);border-bottom:var(--mv-rule-faint);font-size:var(--mv-size-small)}
.mv-sg__l:hover{color:var(--mv-brass)}
.mv-sg__k{font-family:var(--mv-font-data);font-size:var(--mv-size-micro);text-transform:uppercase;letter-spacing:var(--mv-track-data);color:var(--mv-ink-45)}
.mv-sg__all{display:inline-block;margin-top:var(--mv-space-3)}
.mv-sg__none{font-style:italic;color:var(--mv-ink-45)}

/* ---------- specifications ---------- */
.mv-spec{font-family:var(--mv-font-body);color:var(--mv-ink);max-width:900px}
.mv-spec .mv-subhead{margin:var(--mv-space-6) 0 var(--mv-space-2)}
.mv-spec .mv-subhead:first-of-type{margin-top:var(--mv-space-4)}
.mv-tablewrap{overflow-x:auto}
.mv-spec-table{font-family:var(--mv-font-data);font-size:var(--mv-size-data);line-height:var(--mv-lead-data);border-collapse:collapse;width:100%}
.mv-spec-table th{font-style:italic;font-weight:var(--mv-weight-emphasis);text-align:left;letter-spacing:var(--mv-track-data);border-bottom:var(--mv-rule);padding:.4rem .9rem .4rem 0;white-space:nowrap}
.mv-spec-table td{padding:.45rem .9rem .45rem 0;border-bottom:var(--mv-rule-faint);vertical-align:top}
.mv-spec-table--pairs th{width:34%;white-space:normal;border-bottom:var(--mv-rule-faint)}
.mv-spec-table__oven{color:var(--mv-ink-70)}
.mv-care{margin:0;padding-left:1.1rem;font-size:var(--mv-size-small);line-height:var(--mv-lead-body)}
.mv-care li{margin-bottom:.5rem}
.mv-note{font-family:var(--mv-font-data);font-size:var(--mv-size-micro);color:var(--mv-ink-45);line-height:1.5;margin-top:var(--mv-space-2)}
.mv-note a{color:var(--mv-brass)}

@media (prefers-reduced-motion:reduce){
  .mv-card__img img,.mv-facet__mark,.mv-filters{transition:none}
}

/* ---------- category editorial ---------- */
.mv-cat{max-width:var(--mv-content-max);margin:0 auto var(--mv-space-6);padding:0 var(--mv-margin-outer);font-family:var(--mv-font-body);color:var(--mv-ink);box-sizing:border-box}
.mv-cat .mv-lead{font-size:clamp(1.125rem,2.2vw,1.5rem);max-width:46ch;margin:0 0 var(--mv-space-3)}
.mv-cat .mv-body{margin:0 0 var(--mv-space-2);max-width:68ch}
.mv-cat .mv-subhead{margin:var(--mv-space-6) 0 var(--mv-space-2);padding-top:var(--mv-space-3);border-top:var(--mv-rule)}
.mv-picks{list-style:none;counter-reset:pick;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1px;background:var(--mv-ink-25);border:var(--mv-rule-faint)}
.mv-pick{background:var(--mv-paper);padding:var(--mv-space-3);display:flex;flex-direction:column;gap:.45rem}
.mv-pick__n{font-family:var(--mv-font-display);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-caps);color:var(--mv-brass)}
.mv-pick__n::before{content:'0'}
.mv-pick__t a{font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:1.0625rem;line-height:1.3;color:var(--mv-ink);text-decoration:none;border-bottom:var(--mv-rule-brass);padding-bottom:2px}
.mv-pick__t a:hover{color:var(--mv-brass)}
.mv-pick__w{font-size:var(--mv-size-small);line-height:1.5;color:var(--mv-ink-70)}
.mv-pick__p{margin-top:auto;padding-top:.5rem;font-family:var(--mv-font-data);font-size:var(--mv-size-data);letter-spacing:var(--mv-track-data);color:var(--mv-ink)}
.mv-who{margin:var(--mv-space-3) 0 0;max-width:68ch;font-family:var(--mv-font-body);font-style:italic;font-size:var(--mv-size-lead);line-height:var(--mv-lead-body);color:var(--mv-ink);border-left:2px solid var(--mv-brass);padding-left:var(--mv-space-2)}
.mv-cat .mv-note{max-width:68ch;margin-top:var(--mv-space-3);padding-top:var(--mv-space-2);border-top:var(--mv-rule-faint)}
.term-description .mv-cat,.taxonomy-description .mv-cat{padding-left:0;padding-right:0}

/* ---------- range landing tiles ---------- */
.mv-range-intro{padding-top:var(--mv-space-6)}
.mv-range-intro .mv-section-title{margin:.3rem 0 var(--mv-space-2)}
.mv-tiles{list-style:none;margin:0 0 var(--mv-space-4);padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--mv-ink-25);border:var(--mv-rule-faint)}
.mv-tile a{display:flex;flex-direction:column;gap:.4rem;background:var(--mv-paper);padding:var(--mv-space-3);height:100%;text-decoration:none;color:var(--mv-ink);transition:background-color var(--mv-dur) var(--mv-ease)}
.mv-tile a:hover{background:var(--mv-paper-warm)}
.mv-tile__t{font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:1.125rem;letter-spacing:var(--mv-track-collection);text-transform:uppercase;color:var(--mv-brass)}
.mv-tile__w{font-size:var(--mv-size-small);line-height:1.5;color:var(--mv-ink-70)}
.mv-tile__n{margin-top:auto;font-family:var(--mv-font-data);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-data);text-transform:uppercase;color:var(--mv-ink-45)}
.mv-range-outro .mv-pick__t{font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:1.0625rem;color:var(--mv-ink)}

/* ---------- header shop navigation ---------- */
.mv-shopnav .et_pb_menu__logo-wrap,.mv-shopnav .et_pb_menu__logo,.mv-shopnav .et_pb_menu__wrap>.et_pb_menu__search-button{display:none!important}
.mv-shopnav .et_pb_menu__menu>nav>ul>li>a{font-family:var(--mv-font-display)!important;font-weight:var(--mv-weight-book)!important;letter-spacing:var(--mv-track-caps-tight)!important;text-transform:uppercase!important;font-size:.8125rem!important}
.mv-shopnav .et_pb_menu__menu>nav>ul>li{padding-left:.9em;padding-right:.9em}
.mv-shopnav ul.sub-menu{border-top:2px solid var(--mv-brass)!important;box-shadow:none!important;padding:.4rem 0!important;min-width:250px}
.mv-shopnav ul.sub-menu li a{font-family:var(--mv-font-display)!important;font-size:.8125rem!important;letter-spacing:.01em!important;text-transform:none!important;padding:.5rem 1.1rem!important;width:auto!important}
.mv-shopnav ul.sub-menu li a:hover{color:var(--mv-brass)!important;background:var(--mv-paper-warm)!important}
.mv-shopnav .et_pb_menu__menu>nav>ul>li>ul>li>ul{border-top:2px solid var(--mv-brass)!important}

/* ---------- editorial pages ---------- */
.mv-page{font-family:var(--mv-font-body);color:var(--mv-ink);max-width:var(--mv-content-max);margin:0 auto;padding:var(--mv-space-6) var(--mv-margin-outer) var(--mv-space-12);box-sizing:border-box}
.mv-page *,.mv-page *::before,.mv-page *::after{box-sizing:border-box}
.mv-page .mv-lead{font-size:clamp(1.25rem,2.6vw,1.75rem);max-width:44ch;margin:.4rem 0 var(--mv-space-4)}
.mv-page .mv-body{margin:0 0 var(--mv-space-2);max-width:68ch}
.mv-page .mv-subhead{margin:var(--mv-space-8) 0 var(--mv-space-3);padding-top:var(--mv-space-3);border-top:var(--mv-rule)}
.mv-page a{color:var(--mv-ink);text-decoration:none;border-bottom:var(--mv-rule-brass)}
.mv-page a:hover{color:var(--mv-brass)}
.mv-page .mv-note a{border-bottom:0}
.mv-picks--4{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.mv-page .mv-pick__t{font-family:var(--mv-font-display);font-weight:var(--mv-weight-book);font-size:1rem;letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase}
.mv-page .mv-pick__t a{border-bottom:var(--mv-rule-brass)}
.mv-rules{list-style:none;counter-reset:r;margin:0 0 var(--mv-space-4);padding:0;max-width:74ch}
.mv-rules li{counter-increment:r;position:relative;padding:var(--mv-space-2) 0 var(--mv-space-2) 3.2rem;border-bottom:var(--mv-rule-faint);line-height:var(--mv-lead-body)}
.mv-rules li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:1.05rem;font-family:var(--mv-font-data);font-size:var(--mv-size-data);letter-spacing:var(--mv-track-data);color:var(--mv-brass)}
.mv-rules strong{font-weight:var(--mv-weight-book);color:var(--mv-ink)}
.mv-timeline{list-style:none;margin:0 0 var(--mv-space-4);padding:0;max-width:74ch;border-top:var(--mv-rule)}
.mv-timeline li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:var(--mv-space-2);padding:var(--mv-space-2) 0;border-bottom:var(--mv-rule-faint);align-items:baseline}
.mv-tl__y{font-family:var(--mv-font-display);font-weight:var(--mv-weight-light);font-size:1.25rem;letter-spacing:var(--mv-track-collection);color:var(--mv-brass)}
.mv-tl__t{line-height:var(--mv-lead-body)}
.mv-page .mv-spec-table{font-size:var(--mv-size-small)}
.mv-page .mv-spec-table th[scope=row]{font-style:normal;font-weight:var(--mv-weight-book);width:auto;white-space:normal}
.mv-compare th[scope=row] a{border-bottom:var(--mv-rule-brass)}
.mv-yes{color:var(--mv-signal-green);font-weight:var(--mv-weight-book)}
.mv-no{color:var(--mv-ink-45)}
.mv-hob-table th[scope=row]{white-space:nowrap}
@media (max-width:640px){.mv-timeline li{grid-template-columns:minmax(0,1fr);gap:.2rem}}

/* ---------- technical diagrams ---------- */
.mv-diagrams{margin:var(--mv-space-4) 0 var(--mv-space-6)}
.mv-figure{margin:0 0 var(--mv-space-6);padding:var(--mv-space-3) 0 0;border-top:var(--mv-rule)}
.mv-figure__cap{font-family:var(--mv-font-body);font-weight:var(--mv-weight-light);font-size:var(--mv-size-body);line-height:var(--mv-lead-body);color:var(--mv-ink);max-width:64ch;margin:0 0 var(--mv-space-3)}
.mv-figure__cap strong{font-weight:var(--mv-weight-book);color:var(--mv-ink)}
.mv-dia{display:block;width:100%;max-width:680px;height:auto;overflow:visible}
.mv-dia__eyebrow{font-family:var(--mv-font-display);font-size:9px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;fill:var(--mv-brass)}
.mv-dia__label{font-family:var(--mv-font-body);font-size:12px;font-weight:300;fill:var(--mv-ink)}
.mv-dia__label--on{font-weight:400;fill:var(--mv-ink)}
.mv-dia__micro{font-family:var(--mv-font-data);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;fill:var(--mv-ink-45)}
.mv-dia__micro--warn{fill:var(--mv-signal-red)}
.mv-dia__count{font-family:var(--mv-font-display);font-size:22px;font-weight:300;fill:var(--mv-brass)}
.mv-dia__num{font-family:var(--mv-font-data);font-size:11px;letter-spacing:.02em;fill:var(--mv-ink-45)}
.mv-dia__num--on{fill:var(--mv-ink);font-weight:500}
.mv-dia__big{font-family:var(--mv-font-display);font-size:26px;font-weight:200;letter-spacing:-.01em;fill:var(--mv-ink)}
.mv-dia__big--good{fill:var(--mv-signal-green)}
@media (max-width:520px){.mv-dia__label{font-size:13px}.mv-dia__big{font-size:30px}}

/* ---------- wide-screen layout: stop wasting the right half ---------- */
.mv-cat__intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--mv-space-8);align-items:start;margin-bottom:var(--mv-space-4)}
.mv-cat__lead .mv-lead{margin:0 0 var(--mv-space-3);max-width:26ch;font-size:clamp(1.25rem,2.1vw,1.75rem);line-height:1.32}
.mv-cat__lead .mv-who{margin:0;border-left:2px solid var(--mv-brass);padding-left:var(--mv-space-2);font-size:var(--mv-size-small);max-width:34ch}
.mv-cat__body{max-width:none}
.mv-cat__body .mv-body{max-width:58ch;margin:0 0 var(--mv-space-2);color:var(--mv-ink)}
.mv-cat__body .mv-body:last-child{margin-bottom:0}
@media (max-width:1023px){.mv-cat__intro{grid-template-columns:minmax(0,1fr);gap:var(--mv-space-3)}.mv-cat__lead .mv-lead{max-width:40ch}}
/* headline: a full sentence must never carry small-caps tracking */
.mv-display{font-family:var(--mv-font-display);font-weight:var(--mv-weight-ultralight);font-size:clamp(2rem,4.6vw,3.5rem);letter-spacing:-.015em;line-height:1.05;color:var(--mv-ink);margin:.2rem 0 var(--mv-space-3);max-width:20ch}
.mv-page__intro{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--mv-space-8);align-items:start;margin-bottom:var(--mv-space-6)}
.mv-page__intro .mv-lead{margin:0;max-width:26ch}
.mv-page__intro .mv-body{max-width:58ch}
@media (max-width:1023px){.mv-page__intro{grid-template-columns:minmax(0,1fr);gap:var(--mv-space-3)}.mv-page__intro .mv-lead{max-width:40ch}}
/* the picks grid should fill the width it is given */
.mv-picks{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.mv-tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.mv-spec-table,.mv-tablewrap{max-width:none}
.mv-page .mv-body,.mv-cat .mv-body{color:var(--mv-ink)}

/* ---------- no scrollbars where the table fits ---------- */
.mv-tablewrap{overflow-x:visible}
@media (max-width:820px){.mv-tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch}}
.mv-spec-table{table-layout:auto;width:100%}
.mv-spec-table th,.mv-spec-table td{white-space:normal;word-break:normal;overflow-wrap:anywhere}
.mv-spec-table__oven{font-size:var(--mv-size-micro);line-height:1.4}
.mv-compare th[scope=row]{white-space:nowrap}
/* Divi tab panels were clipping and producing an inner scrollbar */
.woocommerce div.product .woocommerce-tabs .panel{overflow:visible!important;max-height:none!important}
.et_pb_module,.et_pb_row,.et_pb_column{overflow:visible}
/* ---------- product cards: give the photography room ---------- */
.mv-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr))}
.mv-card__img{aspect-ratio:4/5;background:var(--mv-paper)}
.mv-card__img img{width:100%;height:100%;object-fit:contain;image-rendering:auto}
.mv-card__link{padding:var(--mv-space-3) var(--mv-space-3) var(--mv-space-4)}
@media (max-width:900px){.mv-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}}
/* single product gallery — was rendering the 600px file into a much wider box */
.woocommerce div.product div.images img{width:100%;height:auto}

/* ==========================================================================
   GRID FIX — the cards were blowing out their tracks.
   Grid items default to min-width:auto, so a long unbreakable line (the size
   list) forces the column wider than minmax() asks for and you get two huge
   cards instead of four. min-width:0 on the items, and explicit column counts
   so the layout is deterministic rather than negotiated.
   ========================================================================== */
.mv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.mv-grid>*,.mv-card,.mv-card__link{min-width:0}
@media (min-width:620px){.mv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1000px){.mv-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1400px){.mv-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
/* shorter cards — a 4:5 image box made each one 540px tall */
.mv-card__img{aspect-ratio:1;margin-bottom:var(--mv-space-2)}
.mv-card__link{padding:var(--mv-space-2)}
.mv-card__title{font-size:.9375rem;line-height:1.28}
.mv-card__eyebrow{font-size:9px;letter-spacing:.14em;margin-bottom:.25rem}
.mv-card__sizes{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:.4rem}
.mv-card__price{padding-top:.35rem;font-size:.75rem}
.mv-card__flag{margin-top:.35rem;font-size:9px}
/* toolbar was eating a whole screen of height before the first product */
.mv-shop__bar{padding:.6rem 0}
.mv-shop__cols{padding-top:var(--mv-space-3);gap:var(--mv-space-4)}
.mv-filters{border-top:0}
.mv-facet__toggle{padding:.7rem 0}
.mv-opt{padding:.28rem 0;font-size:.8125rem}
.mv-facet--lead .mv-opt{font-size:.75rem;letter-spacing:.08em}
.mv-shop{padding-left:3.5%;padding-right:3.5%}
.mv-shop__cols{grid-template-columns:220px minmax(0,1fr)}
@media (max-width:900px){.mv-shop__cols{grid-template-columns:minmax(0,1fr)}}
/* nothing inside the shop should ever scroll horizontally */
.mv-shop,.mv-results,.mv-results__body,.mv-grid{overflow-x:clip}

/* ---------- Divi puts a bullet on every li. Not on our components. ---------- */
.mv-grid,.mv-grid>li,.mv-facet__list,.mv-facet__list>li,.mv-picks,.mv-picks>li,.mv-tiles,.mv-tiles>li,.mv-care,.mv-rules,.mv-rules>li,.mv-timeline,.mv-timeline>li,.mv-sg ul,.mv-sg li,.mv-rail,.mv-rail>li{list-style:none!important;list-style-type:none!important}
.mv-grid>li::before,.mv-grid>li::marker,.mv-facet__list>li::before,.mv-facet__list>li::marker,.mv-picks>li::marker,.mv-tiles>li::before,.mv-tiles>li::marker,.mv-timeline>li::before,.mv-timeline>li::marker,.mv-sg li::before,.mv-sg li::marker,.mv-rail>li::before,.mv-rail>li::marker,.mv-care>li::before,.mv-rules>li::marker{content:none!important;display:none!important}
#main-content .mv-shop ul li:before,#main-content .mv-cat ul li:before,#main-content .mv-page ul li:before,#main-content .mv-spec ul li:before,#main-content .mv-search ul li:before{content:none!important;display:none!important}
/* and no page-level horizontal scrollbar from full-bleed sections */
.mv-cat,.mv-page,.mv-shop{overflow-x:clip}

/* ==========================================================================
   WIDER SHOP — the rail was taking 220px of a 1440px container and the
   products were paying for it. The shop now runs to 1720px, the rail is
   190px, and it can be collapsed entirely.
   ========================================================================== */
.mv-shop{max-width:var(--mv-m);padding-left:var(--mv-p);padding-right:var(--mv-p)}
.mv-shop__cols{grid-template-columns:190px minmax(0,1fr);gap:var(--mv-space-4)}
@media (min-width:var(--mv-m-text)){.mv-shop__cols{grid-template-columns:200px minmax(0,1fr);gap:var(--mv-space-6)}}
@media (max-width:900px){.mv-shop__cols{grid-template-columns:minmax(0,1fr)}}
/* collapsed: the rail slides away and the grid takes the whole width */
.mv-shop.is-wide .mv-shop__cols{grid-template-columns:minmax(0,1fr)}
.mv-shop.is-wide .mv-filters{display:none}
.mv-wide-toggle{display:none;background:none;border:0;cursor:pointer;padding:.35rem 0;font-family:var(--mv-font-display);font-size:.6875rem;letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-ink-45);white-space:nowrap}
.mv-wide-toggle:hover{color:var(--mv-brass)}
@media (min-width:901px){.mv-wide-toggle{display:inline-block}}
/* denser grid now that there is room for it */
@media (min-width:1000px){.mv-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1240px){.mv-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:1560px){.mv-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
.mv-shop.is-wide .mv-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
/* tighter rail so it reads as a control, not a column */
.mv-filters{font-size:.8125rem}
.mv-facet__toggle{padding:.6rem 0;font-size:.6875rem}
.mv-opt{padding:.22rem 0;font-size:.78125rem;gap:.5rem}
.mv-opt input{width:12px;height:12px}
.mv-facet--lead .mv-opt{font-size:.6875rem;letter-spacing:.06em}
.mv-opt__n{font-size:.625rem}
.mv-chips{padding-top:.6rem}
.mv-clear-all{margin-top:var(--mv-space-2);padding:.45rem 1rem;font-size:.6875rem}
/* long size lists should scroll inside the facet, not stretch the page */
.mv-facet[data-facet="size"] .mv-facet__list,.mv-facet[data-facet="collection"] .mv-facet__list,.mv-facet[data-facet="type"] .mv-facet__list{max-height:264px;overflow-y:auto;scrollbar-width:thin}

/* ==========================================================================
   LEGIBILITY — every place a component was using pale grey or brass for
   words rather than for decoration. Sizes raised where they were under 12px
   and still carrying meaning.
   ========================================================================== */
/* body copy */
.mv-cat .mv-body,.mv-page .mv-body,.mv-cat__body .mv-body,.mv-figure__cap,.mv-home .mv-body{font-weight:400;color:var(--mv-ink)}
.mv-cat .mv-lead,.mv-page .mv-lead,.mv-cat__lead .mv-lead{font-weight:400;color:var(--mv-ink)}
.mv-who{color:var(--mv-ink);font-weight:400}
/* notes and captions were #939598 at 11px — now readable */
.mv-note{color:var(--mv-ink-55);font-size:.75rem;line-height:1.6}
.mv-note a{color:var(--mv-brass-text);font-weight:500}
/* product cards */
.mv-card__title{font-weight:400;color:var(--mv-ink)}
.mv-card__eyebrow{color:var(--mv-brass-text);font-size:.6875rem;font-weight:500}
.mv-card__sizes{color:var(--mv-ink-55);font-size:.6875rem}
.mv-card__price{color:var(--mv-ink);font-weight:500;font-size:.8125rem}
.mv-card__price del{color:var(--mv-ink-55)}
.mv-card__flag{color:var(--mv-signal-green);font-weight:500;font-size:.625rem}
/* filter rail */
.mv-facet__toggle{color:var(--mv-ink);font-weight:500;font-size:.75rem}
.mv-opt{color:var(--mv-ink);font-weight:400;font-size:.8125rem}
.mv-opt__n{color:var(--mv-ink-55);font-size:.6875rem}
.mv-opt.is-off{opacity:.5}
.mv-count{color:var(--mv-ink-55);font-weight:500}
.mv-wide-toggle{color:var(--mv-ink-55)}
.mv-chip{color:var(--mv-brass-text);border-color:var(--mv-brass-text);font-weight:500}
.mv-sort__sel{color:var(--mv-ink);font-weight:500}
/* picks and tiles */
.mv-pick__n{color:var(--mv-brass-text);font-weight:500}
.mv-pick__w{color:var(--mv-ink);font-weight:400;font-size:.875rem}
.mv-pick__p{color:var(--mv-ink);font-weight:500}
.mv-tile__t{color:var(--mv-brass-text)}
.mv-tile__w{color:var(--mv-ink);font-weight:400}
.mv-tile__n{color:var(--mv-ink-55);font-weight:500}
/* specifications */
.mv-spec-table td,.mv-spec-table th{color:var(--mv-ink)}
.mv-spec-table__oven{color:var(--mv-ink-55);font-size:.6875rem}
.mv-care{color:var(--mv-ink);font-weight:400;font-size:.875rem}
/* diagrams — SVG fills */
.mv-dia__eyebrow{fill:var(--mv-brass-text);font-size:10px}
.mv-dia__label{fill:var(--mv-ink);font-weight:400;font-size:12.5px}
.mv-dia__micro{fill:var(--mv-ink-55);font-size:9.5px}
.mv-dia__num{fill:var(--mv-ink-55);font-size:11.5px}
.mv-dia__num--on{fill:var(--mv-ink);font-weight:600}
.mv-dia__count{fill:var(--mv-brass-text);font-weight:400}
/* search overlay */
.mv-sg h4{color:var(--mv-ink-55);font-size:.75rem}
.mv-sg__c{color:var(--mv-brass-text);font-weight:500}
.mv-sg__n{color:var(--mv-ink);font-weight:400}
.mv-sg__pr{color:var(--mv-ink);font-weight:500}
.mv-sg__k{color:var(--mv-ink-55)}
.mv-sg__none{color:var(--mv-ink-55)}
.mv-search__input{color:var(--mv-ink);font-weight:400}
.mv-search__input::placeholder{color:var(--mv-ink-55);opacity:1}
.mv-search__close{color:var(--mv-ink);font-weight:500}
/* editorial pages */
.mv-rules li{color:var(--mv-ink);font-weight:400}
.mv-rules li::before{color:var(--mv-brass-text);font-weight:500}
.mv-tl__y{color:var(--mv-brass-text)}
.mv-tl__t{color:var(--mv-ink);font-weight:400}
.mv-textlink{color:var(--mv-ink);font-weight:500}
.mv-h3{color:var(--mv-ink)}
/* home */
.mv-mat__w{color:var(--mv-ink);font-weight:400;font-size:.875rem}
.mv-mat__n{color:var(--mv-brass-text);font-weight:500}
.mv-mat__h{color:var(--mv-ink);font-weight:400}
.mv-rail__c{color:var(--mv-brass-text);font-weight:500}
.mv-rail__t{color:var(--mv-ink);font-weight:400}
.mv-rail__p{color:var(--mv-ink);font-weight:500}
.mv-rail__hint{color:var(--mv-ink-55);font-weight:500}
.mv-home .mv-eyebrow{color:var(--mv-brass-text)}
/* on dark grounds brass and white are already well clear — leave them */
.mv-sec--ink .mv-eyebrow,.mv-eyebrow--light{color:var(--mv-brass-light)}
.mv-band__n{color:var(--mv-brass-light)}
.mv-band__t{color:rgba(255,255,255,.78)}
.mv-body--light{color:rgba(255,255,255,.88);font-weight:400}
.mv-hero__eyebrow{color:var(--mv-brass-light);font-weight:500}
.mv-hero__lead{color:rgba(255,255,255,.94);font-weight:400}


/* ---- mauviel-home.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — HOME PAGE
   Full-bleed sections inside Divi's container. No rounded corners, no drop
   shadows, no decorative sparkles. Type carries the page.
   ========================================================================== */

.mv-home{font-family:var(--mv-font-body);color:var(--mv-ink)}
.mv-home *,.mv-home *::before,.mv-home *::after{box-sizing:border-box}

/* break out of Divi's padded container */
.mv-home>section{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}

/* ---- hero ---------------------------------------------------------------- */
.mv-hero{position:relative;min-height:min(78vh,720px);display:flex;align-items:flex-end;overflow:hidden}
.mv-hero__img{position:absolute;inset:0;
  background-image:url('https://mauviel.co.za/wp-content/uploads/2023/11/Mauviel-Cookware.jpg');
  background-size:cover;background-position:center 42%;transform:scale(1.02)}
.mv-hero__scrim{position:absolute;inset:0;
  background:linear-gradient(90deg,rgba(35,31,32,.82) 0%,rgba(35,31,32,.62) 42%,rgba(35,31,32,.18) 78%,rgba(35,31,32,.06) 100%)}
.mv-hero__inner{position:relative;width:100%;max-width:var(--mv-content-max);margin:0 auto;
  padding:var(--mv-space-12) var(--mv-margin-outer) var(--mv-space-8)}
.mv-hero__eyebrow{font-family:var(--mv-font-display);font-size:.6875rem;font-weight:400;
  letter-spacing:.28em;text-transform:uppercase;color:var(--mv-brass-light);margin:0 0 var(--mv-space-2)}
.mv-hero__title{font-family:var(--mv-font-display);font-weight:200;color:#fff;
  font-size:clamp(2.4rem,6.4vw,5rem);letter-spacing:-.02em;line-height:.98;margin:0 0 var(--mv-space-3);max-width:14ch}
.mv-hero__lead{font-size:var(--mv-size-lead);line-height:1.6;color:rgba(255,255,255,.9);
  max-width:46ch;margin:0 0 var(--mv-space-4);font-weight:300}
.mv-hero__actions{display:flex;flex-wrap:wrap;gap:var(--mv-space-2);margin:0}
.mv-btn--onimg{border-color:#fff!important;color:#fff!important;background:transparent!important}
.mv-btn--onimg:hover{background:#fff!important;color:var(--mv-ink)!important}
.mv-btn--ghost{border-color:rgba(255,255,255,.4)!important;color:rgba(255,255,255,.85)!important;background:transparent!important}
.mv-btn--ghost:hover{border-color:var(--mv-brass)!important;color:var(--mv-brass)!important}
.mv-btn--onink{border-color:var(--mv-brass)!important;color:var(--mv-brass)!important;background:transparent!important}
.mv-btn--onink:hover{background:var(--mv-brass)!important;color:var(--mv-ink)!important}

/* ---- figures band -------------------------------------------------------- */
.mv-band{background:var(--mv-ink);color:#fff}
.mv-band__inner{max-width:var(--mv-content-max);margin:0 auto;padding:var(--mv-space-4) var(--mv-margin-outer);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--mv-space-3)}
.mv-band__inner>div{border-left:.5px solid rgba(255,255,255,.22);padding-left:var(--mv-space-2)}
.mv-band__inner>div:first-child{border-left:0;padding-left:0}
.mv-band__n{display:block;font-family:var(--mv-font-display);font-weight:200;font-size:clamp(1.5rem,3vw,2.25rem);
  letter-spacing:-.01em;color:var(--mv-brass-light);line-height:1.1}
.mv-band__t{display:block;font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.65);margin-top:.35rem}
@media (max-width:760px){.mv-band__inner{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--mv-space-3)}}

/* ---- generic section ----------------------------------------------------- */
.mv-sec{padding:var(--mv-space-12) 0}
.mv-sec>*{max-width:var(--mv-content-max);margin-left:auto;margin-right:auto;
  padding-left:var(--mv-margin-outer);padding-right:var(--mv-margin-outer)}
.mv-sec--warm{background:var(--mv-paper-warm)}
.mv-sec--ink{background:var(--mv-ink)}
.mv-home .mv-eyebrow{margin:0 0 .4rem}
.mv-eyebrow--light{color:var(--mv-brass-light)}
.mv-home .mv-display{margin:0 0 var(--mv-space-6);max-width:24ch}
.mv-display--light{color:#fff}
.mv-body--light{color:rgba(255,255,255,.82)}
.mv-h3{font-family:var(--mv-font-display);font-weight:400;font-size:var(--mv-size-small);
  letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;margin:0 0 .7rem;
  padding-bottom:.6rem;border-bottom:var(--mv-rule)}
.mv-textlink{font-family:var(--mv-font-display);font-size:var(--mv-size-small);
  letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-ink);
  text-decoration:none;border-bottom:var(--mv-rule-brass);padding-bottom:2px}
.mv-textlink:hover{color:var(--mv-brass)}

/* ---- material grid ------------------------------------------------------- */
.mv-mat{list-style:none;margin:0;padding-left:var(--mv-margin-outer);padding-right:var(--mv-margin-outer);
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--mv-ink-25);
  border:.5px solid var(--mv-ink-25);max-width:var(--mv-content-max)}
.mv-mat{padding:0;margin:0 auto;width:calc(100% - 2*var(--mv-margin-outer))}
.mv-mat__i{background:var(--mv-paper);min-width:0}
.mv-mat__i a{display:flex;flex-direction:column;height:100%;padding:var(--mv-space-3);
  text-decoration:none;color:inherit;transition:background-color var(--mv-dur) var(--mv-ease)}
.mv-mat__i a:hover{background:var(--mv-paper-cool)}
.mv-mat__img{display:block;aspect-ratio:1;overflow:hidden;margin-bottom:var(--mv-space-2)}
.mv-mat__img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;
  transition:transform var(--mv-dur) var(--mv-ease)}
.mv-mat__i a:hover .mv-mat__img img{transform:scale(1.04)}
.mv-mat__h{display:block;font-family:var(--mv-font-display);font-weight:300;font-size:1.375rem;
  letter-spacing:.03em;margin-bottom:.45rem}
.mv-mat__w{display:block;font-size:var(--mv-size-small);line-height:1.55;color:var(--mv-ink-70)}
.mv-mat__n{display:block;margin-top:auto;padding-top:var(--mv-space-2);font-family:var(--mv-font-data);
  font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-data);text-transform:uppercase;color:var(--mv-brass)}
@media (max-width:900px){.mv-mat{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- two and three column blocks ---------------------------------------- */
.mv-two{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:var(--mv-space-8);align-items:start}
.mv-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--mv-space-6)}
.mv-home .mv-two .mv-display{margin-bottom:0}
.mv-home .mv-body{max-width:58ch;margin:0 0 var(--mv-space-2)}
@media (max-width:900px){.mv-two,.mv-three{grid-template-columns:minmax(0,1fr);gap:var(--mv-space-4)}}

.mv-home .mv-tiles{max-width:var(--mv-content-max);margin:0 auto;width:calc(100% - 2*var(--mv-margin-outer));
  grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.mv-home .mv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (prefers-reduced-motion:reduce){
  .mv-mat__img img{transition:none}
}

/* ==========================================================================
   FIX 1 — the grey bars were scrollbars.
   100vw includes the vertical scrollbar, so a full-bleed section is about
   17px wider than the viewport and the page gains a horizontal scrollbar.
   overflow-x:clip contains it without creating a scroll container, so
   position:sticky elsewhere still works.
   ========================================================================== */
.mv-home{overflow-x:clip}
html,body{overflow-x:clip}
.mv-home>section{max-width:100vw}

/* FIX 2 — Divi puts a bullet on every li in content. Not on ours. */
.mv-home ul,.mv-home ol,.mv-mat,.mv-tiles,.mv-picks,.mv-grid,.mv-facet__list,.mv-care,.mv-rules,.mv-timeline{list-style:none!important}
.mv-home li,.mv-mat li,.mv-tiles li,.mv-picks li,.mv-grid li,.mv-facet__list li,.mv-rules li,.mv-timeline li{list-style:none!important}
.mv-home li::before,.mv-home li::marker,.mv-mat li::before,.mv-mat li::marker,.mv-tiles li::before,.mv-tiles li::marker,.mv-picks li::marker,.mv-grid li::before,.mv-grid li::marker,.mv-facet__list li::before,.mv-facet__list li::marker,.mv-timeline li::before,.mv-timeline li::marker,.mv-care li::marker,.mv-spec li::marker{content:none!important;display:none!important}
.mv-rules li::marker{content:none!important}

/* FIX 3 — one purposeful horizontal element: a snap-scrolling product rail */
.mv-rail__head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--mv-space-3);max-width:var(--mv-content-max);margin:0 auto var(--mv-space-3);padding:0 var(--mv-margin-outer)}
.mv-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(238px,1fr);gap:1px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--mv-margin-outer);padding:0 var(--mv-margin-outer) var(--mv-space-2);margin:0;list-style:none;background:linear-gradient(var(--mv-ink-25),var(--mv-ink-25)) no-repeat;background-size:100% 1px;background-position:0 0}
@media (min-width:1100px){.mv-rail{grid-auto-columns:minmax(280px,1fr)}}
.mv-rail>li{scroll-snap-align:start;background:var(--mv-paper);border-right:.5px solid var(--mv-ink-25);min-width:0}
.mv-rail>li:first-child{border-left:.5px solid var(--mv-ink-25)}
.mv-rail a{display:flex;flex-direction:column;height:100%;padding:var(--mv-space-3);text-decoration:none;color:inherit}
.mv-rail a:hover{background:var(--mv-paper-cool)}
.mv-rail__img{display:block;aspect-ratio:1;margin-bottom:var(--mv-space-2)}
.mv-rail__img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.mv-rail__c{font-family:var(--mv-font-display);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;color:var(--mv-brass);margin-bottom:.25rem}
.mv-rail__t{font-family:var(--mv-font-display);font-weight:300;font-size:.9375rem;line-height:1.3;margin-bottom:.4rem}
.mv-rail__p{margin-top:auto;font-family:var(--mv-font-data);font-size:var(--mv-size-data);letter-spacing:var(--mv-track-data)}
.mv-rail::-webkit-scrollbar{height:2px}
.mv-rail::-webkit-scrollbar-thumb{background:var(--mv-brass)}
.mv-rail::-webkit-scrollbar-track{background:var(--mv-ink-25)}
.mv-rail__hint{font-family:var(--mv-font-data);font-size:var(--mv-size-micro);letter-spacing:var(--mv-track-data);text-transform:uppercase;color:var(--mv-ink-45);white-space:nowrap}


/* ---- mauviel-mobile.css ---- */
/* MAUVIEL SA - MOBILE. Standing rule: every page responsive and very mobile friendly. */

/* 1. iOS zooms any input under 16px */
@media (max-width:820px){
 input,select,textarea,.mv-search__input,.mv-sort__sel,
 .woocommerce input,.woocommerce select,.woocommerce textarea,
 .woocommerce div.product form.cart .variations select{font-size:16px!important}
}

/* 2. Touch targets. A 12px checkbox is not tappable. */
@media (max-width:900px){
 .mv-opt{padding:.6rem 0;font-size:.9375rem;gap:.7rem;min-height:44px;align-items:center}
 .mv-opt input{width:20px;height:20px}
 .mv-opt input:checked::after{left:6px;top:2px;width:6px;height:12px;border-right-width:2px;border-bottom-width:2px}
 .mv-facet__toggle{padding:1rem 0;font-size:.8125rem;min-height:48px}
 .mv-chip{padding:.5rem .75rem;font-size:.75rem}
 .mv-btn{padding:.95rem 1.5rem}
 .mv-filters__close{min-height:44px;padding:0 .5rem}
 .mv-textlink,.mv-pick__t a{display:inline-block;padding:.25rem 0}
}

/* 3. Tables become stacked records */
@media (max-width:700px){
 .mv-spec-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
 .mv-spec-table,.mv-spec-table tbody,.mv-spec-table tr,.mv-spec-table td,.mv-spec-table th{display:block;width:100%}
 .mv-spec-table tr{border-bottom:var(--mv-rule);padding:.7rem 0}
 .mv-spec-table td,.mv-spec-table th{border:0;padding:.2rem 0;font-size:.875rem}
 .mv-spec-table td::before{content:attr(data-l);display:block;font-family:var(--mv-font-data);font-size:.625rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mv-ink-55)}
 .mv-spec-table--pairs th[scope=row]{font-weight:600;padding-top:.5rem}
 .mv-compare th[scope=row]{white-space:normal;font-size:1rem;font-weight:600;padding-top:.6rem}
 .mv-tablewrap{overflow-x:visible}
}

/* 4. Diagrams: SVG text must not shrink below readable */
@media (max-width:640px){
 .mv-dia__label{font-size:17px}
 .mv-dia__micro{font-size:13px}
 .mv-dia__num{font-size:16px}
 .mv-dia__eyebrow{font-size:14px}
 .mv-dia__count{font-size:30px}
 .mv-dia__big{font-size:34px}
}

/* 5. Shop */
@media (max-width:900px){
 .mv-shop{padding-left:5%;padding-right:5%}
 .mv-shop__bar{gap:.75rem;flex-wrap:wrap}
 .mv-count{margin-inline-start:0;order:3;width:100%;padding-top:.2rem}
 .mv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .mv-card__link{padding:.6rem}
 .mv-card__title{font-size:.875rem}
 .mv-card__sizes{display:none}
}
@media (max-width:400px){.mv-grid{grid-template-columns:minmax(0,1fr)}}

/* 6. Editorial and home */
@media (max-width:900px){
 .mv-page,.mv-cat{padding-left:5%;padding-right:5%}
 .mv-page .mv-lead,.mv-cat__lead .mv-lead{font-size:1.25rem;max-width:none}
 .mv-page .mv-body,.mv-cat__body .mv-body{font-size:1rem;max-width:none}
 .mv-picks,.mv-tiles,.mv-mat,.mv-home .mv-tiles{grid-template-columns:minmax(0,1fr)}
 .mv-hero{min-height:auto;padding-top:var(--mv-space-8)}
 .mv-hero__inner{padding-top:var(--mv-space-8);padding-bottom:var(--mv-space-6)}
 .mv-hero__title{font-size:clamp(2rem,9vw,3rem);max-width:none}
 .mv-hero__actions{flex-direction:column;align-items:flex-start}
 .mv-hero__actions .mv-btn{width:100%;text-align:center}
 .mv-sec{padding:var(--mv-space-8) 0}
 .mv-sec>*,.mv-hero__inner,.mv-band__inner,.mv-rail__head{padding-left:5%;padding-right:5%}
 .mv-mat,.mv-home .mv-tiles{width:90%}
 .mv-rail{padding-left:5%;padding-right:5%;scroll-padding-left:5%;grid-auto-columns:minmax(200px,1fr)}
}
@media (max-width:560px){.mv-mat,.mv-home .mv-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.mv-mat,.mv-home .mv-tiles{grid-template-columns:minmax(0,1fr)}}

/* 7. Search overlay */
@media (max-width:760px){
 .mv-search__panel{max-height:100vh;height:100vh;padding:var(--mv-space-3) 5%}
 .mv-sg{grid-template-columns:minmax(0,1fr)}
 .mv-sg__p img{width:44px;height:44px}
 .mv-search__input{font-size:1.25rem}
}

/* 8. Product page */
@media (max-width:900px){
 .woocommerce div.product,.woocommerce-products-header,.woocommerce .woocommerce-breadcrumb{padding-left:5%;padding-right:5%}
 .woocommerce div.product div.images,.woocommerce div.product div.summary{width:100%!important;float:none!important;margin-right:0!important}
 .woocommerce div.product .product_title{font-size:1.6rem}
 .woocommerce .single_add_to_cart_button{max-width:none}
 .woocommerce div.product .woocommerce-tabs ul.tabs{gap:var(--mv-space-2);overflow-x:auto;flex-wrap:nowrap}
 .woocommerce div.product .woocommerce-tabs ul.tabs li a{white-space:nowrap}
}

/* 9. Nothing may scroll sideways */
html,body{max-width:100%;overflow-x:clip}
img,video,iframe,table{max-width:100%}

/* 10. Price colour cannot be overridden by a Divi module */
.woocommerce div.product p.price,.woocommerce div.product span.price,
.et_pb_wc_price .price,.et_pb_wc_price .price *,.et_pb_module .price,
.et_pb_wc_price span,.woocommerce-Price-amount,.woocommerce-Price-currencySymbol{color:var(--mv-ink)!important}
.woocommerce div.product p.price del,.woocommerce div.product p.price del *{color:var(--mv-ink-55)!important}
.woocommerce-price-suffix{color:var(--mv-ink-55)!important;font-weight:400}


/* ---- mauviel-brand.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — BRAND ENFORCEMENT LAYER
   Loaded last. It designs nothing. It only stops anything off-guide from
   reaching the page: Divi demo layouts ship pill buttons, 30px card corners,
   drop shadows, Figtree, Cabin and a purple accent; the WooCommerce plugins
   ship an orange sale badge. The catalogue has none of these.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. GEOMETRY — no rounded corner, no drop shadow, anywhere.
   -------------------------------------------------------------------------- */
.et_pb_section,.et_pb_row,.et_pb_column,.et_pb_module,
.et_pb_blurb,.et_pb_text,.et_pb_image .et_pb_image_wrap,.et_pb_image img,
.et_pb_button,.et_pb_tabs,.et_pb_toggle,.et_pb_cta,.et_pb_promo,
.et_pb_shop .et_shop_image>img,.et_pb_shop .et_shop_image .et_overlay,
.et_pb_shop img,.et_pb_wc_images img,.et_pb_wc_related_products img,
.et_pb_icon_wrap,.et_pb_testimonial_portrait,.et_pb_testimonial_portrait:before,
.et_pb_menu .nav li ul,.et_pb_menu__wrap,.et_mobile_menu,
.et_pb_slider,.et_pb_slide,.et_pb_gallery_item,
.woocommerce ul.products li.product,.woocommerce ul.products li.product img,
.dwe_single_woo_product,.dwe_single_woo_product img,
.mv-card,.mv-card img,.mv-tile,.mv-tile img
{border-radius:0!important;box-shadow:none!important}

/* Divi writes shadow presets as their own declaration blocks */
.et_pb_button,.et_pb_column,.et_pb_row,.et_pb_module,.et_box_shadow_preset1,
.et_box_shadow_preset2,.et_box_shadow_preset3,.et_box_shadow_preset4,
.et_box_shadow_preset5,.et_box_shadow_preset6,.et_box_shadow_preset7
{box-shadow:none!important}
#main-header,.et-fixed-header#main-header,.et-l--header .et_pb_row
{box-shadow:none!important}

/* --------------------------------------------------------------------------
   2. TYPE — two faces. Jost for everything, Barlow Semi Condensed for data.
   Pseudo-elements are left alone: Divi declares its icon fonts on those and
   an element rule must never reach them.
   -------------------------------------------------------------------------- */
.et_pb_module p,.et_pb_module li,.et_pb_module td,.et_pb_module th,
.et_pb_module label,.et_pb_module a,.et_pb_module blockquote,
.et_pb_text,.et_pb_blurb .et_pb_blurb_description,
.et_pb_button,.et_pb_menu .nav li a,.et_mobile_menu li a,
.woocommerce ul.products li.product h3,
.woocommerce ul.products li.product .price,
.et-l--footer p,.et-l--footer a,.et-l--footer li
{font-family:var(--mv-font-body)!important}

.et_pb_module h1,.et_pb_module h2,.et_pb_module h3,.et_pb_module h4,
.et_pb_module h5,.et_pb_module h6,.et_pb_blurb .et_pb_module_header,
.et-l h1,.et-l h2,.et-l h3,.et-l h4,.et-l h5,.et-l h6,
#main-header h1,#main-header h2
{font-family:var(--mv-font-display)!important;font-weight:400!important}

/* --------------------------------------------------------------------------
   3. COLOUR — the only chromatic UI colour is brass.
   -------------------------------------------------------------------------- */
.et_pb_shop .star-rating>span:before,.et_pb_shop .et_overlay:before,
.et_pb_shop .et_overlay,.star-rating>span:before,.star-rating:before,
.et_pb_icon_wrap .et-pb-icon,.et_pb_blurb .et-pb-icon
{color:var(--mv-brass)!important}

.et_pb_shop span.onsale,.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale,.dwe-onsale
{background:var(--mv-ink)!important;color:#fff!important}



/* platform blues and pinks are not in the guide */
.et_pb_social_media_follow_network a.icon
{background-color:var(--mv-ink)!important}
.et_pb_social_media_follow_network a.icon:hover
{background-color:var(--mv-brass)!important}

/* Divi's demo purple and the old copper-brown, wherever they survive */
[style*="#8300e9"],[style*="#96694c"]{color:var(--mv-brass)!important}

/* --------------------------------------------------------------------------
   4. BUTTONS — hairline, square, uppercase. One primary: filled ink.
   -------------------------------------------------------------------------- */
.et_pb_button,
body #page-container .et_pb_section .et_pb_button,
body.et-db #page-container #et-boc .et-l .et_pb_section .et_pb_button
{border-radius:0!important;border:1px solid var(--mv-ink)!important;
 background-color:transparent!important;background-image:none!important;
 color:var(--mv-ink)!important;
 font-family:var(--mv-font-display)!important;font-weight:500!important;
 text-transform:uppercase;letter-spacing:var(--mv-track-caps-tight);
 font-size:.8125rem!important;line-height:1.2!important;
 padding:.85em 1.9em!important;transition:background-color .25s,color .25s}
.et_pb_button:hover,
body #page-container .et_pb_section .et_pb_button:hover,
body.et-db #page-container #et-boc .et-l .et_pb_section .et_pb_button:hover
{background-color:var(--mv-ink)!important;color:#fff!important;
 border-color:var(--mv-ink)!important;box-shadow:none!important}

.woocommerce button.button.alt,.woocommerce a.button.alt,
.woocommerce input.button.alt,.single_add_to_cart_button,
.woocommerce .checkout-button,.woocommerce #place_order
{background-color:var(--mv-ink)!important;color:#fff!important;
 border:1px solid var(--mv-ink)!important;border-radius:0!important;
 font-family:var(--mv-font-display)!important;text-transform:uppercase;
 letter-spacing:var(--mv-track-caps-tight);font-weight:500!important;
 font-size:.8125rem!important;padding:1em 2em!important;box-shadow:none!important}
.woocommerce button.button.alt:hover,.woocommerce a.button.alt:hover,
.single_add_to_cart_button:hover,.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover
{background-color:var(--mv-brass)!important;border-color:var(--mv-brass)!important;
 color:#fff!important}

/* --------------------------------------------------------------------------
   5. FORM FIELDS — hairline under, not a grey pill.
   -------------------------------------------------------------------------- */
.woocommerce input.input-text,.woocommerce textarea,.woocommerce select,
.woocommerce .quantity input.qty,.et_pb_contact_form_container input,
.et_pb_contact_form_container textarea
{border-radius:0!important;background-color:#fff!important;
 border:1px solid var(--mv-ink-25)!important;color:var(--mv-ink)!important;
 font-family:var(--mv-font-body)!important;box-shadow:none!important}
.woocommerce input.input-text:focus,.woocommerce select:focus,
.woocommerce textarea:focus{outline:2px solid var(--mv-brass);outline-offset:1px}

/* --------------------------------------------------------------------------
   6. LEGIBILITY BACKSTOP — nothing lighter than 4.5:1 on white.
   -------------------------------------------------------------------------- */
.et_pb_module,.et_pb_text,.et_pb_blurb,.et-l--footer{color:var(--mv-ink)}
.et_pb_module p,.et_pb_text p,.et-l--footer p,.et-l--footer li{color:var(--mv-ink)}
.woocommerce .woocommerce-breadcrumb,.woocommerce .woocommerce-breadcrumb a
{color:var(--mv-ink-55)!important;font-family:var(--mv-font-data);
 font-size:.75rem;letter-spacing:var(--mv-track-data);text-transform:uppercase}
.woocommerce .woocommerce-breadcrumb a:hover{color:var(--mv-ink)!important}

/* --------------------------------------------------------------------------
   7. RESIDUE — values the sweep cannot reach because Divi hard-codes them.
   -------------------------------------------------------------------------- */
.et_pb_tabs_controls li,.et_pb_tabs_controls,.et_pb_all_tabs,.et_pb_tab
{border-color:var(--mv-ink-25)!important;background-color:transparent!important}
.et_pb_tabs_controls li.et_pb_tab_active{border-bottom:2px solid var(--mv-brass)!important}
.et_pb_tabs{border:0!important;border-bottom:1px solid var(--mv-ink-25)!important}
/* Divi still writes pill radii on buttons in a few demo layouts */
body #page-container .et_pb_section .et_pb_button,
body.et-db #page-container #et-boc .et-l .et_pb_section .et_pb_button,
.et_pb_wc_add_to_cart input,.et_pb_wc_add_to_cart .quantity input.qty,
.et_pb_wc_cart_notice .wc-forward,.et_pb_wc_cart_products table.cart button
{border-radius:0!important}

/* --------------------------------------------------------------------------
   8. MEASURE — the shop was capped at 1440px with 5.5% padding, which gave
   away 240px of rail per side on a 1920 screen. One place, set here last.
   -------------------------------------------------------------------------- */
.mv-shop,.mv-cat,.mv-page,.mv-results,.mv-hero__inner,.mv-band__inner,.mv-rail__head,
.woocommerce div.product,.woocommerce-products-header,.woocommerce .woocommerce-breadcrumb,
.mv-pagehead,.mv-backto,.mv-seen,.mv-stickybuy__in
{max-width:var(--mv-m)!important;margin-left:auto!important;margin-right:auto!important;
 padding-left:var(--mv-p)!important;padding-right:var(--mv-p)!important;box-sizing:border-box}
.mv-page{max-width:var(--mv-m-text)!important}
@media (max-width:900px){
 .mv-shop,.mv-cat,.mv-page,.mv-results,.mv-hero__inner,.mv-band__inner,
 .woocommerce div.product,.mv-pagehead,.mv-backto,.mv-seen,.mv-stickybuy__in
 {padding-left:4%!important;padding-right:4%!important}
}

/* --------------------------------------------------------------------------
   9. LEGIBILITY — Stefan's rule outranks the France guide.
   Brass #AB9974 measures 2.79:1 on white. It is a metal, not a text colour.
   On a light ground text uses --mv-brass-text #7F6B45 at 5.13:1; the metal
   is kept for rules, icons and anything reversed out of ink.
   -------------------------------------------------------------------------- */
.et_pb_menu .nav li.current-menu-item>a,.et_pb_menu .nav li a:hover,
.et_pb_text h4 a,.et_pb_text a,.et_pb_module a:not(.et_pb_button)
{color:var(--mv-brass-text)!important}
/* reversed out of ink, the metal is correct and legible */
.et-l--footer .et_pb_menu .nav li.current-menu-item>a,
.et-l--footer a:hover,#et-footer-nav .bottom-nav li.current-menu-item a,
#main-footer a:hover,.mvh--b .mvh__shop a:hover
{color:var(--mv-brass)!important}
/* product tabs were #939598 at 3.00:1 */
.woocommerce div.product .woocommerce-tabs ul.tabs li a,
.et_pb_tabs .et_pb_tabs_controls li a
{color:var(--mv-ink-55)!important;font-weight:500!important}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.et_pb_tabs .et_pb_tabs_controls li.et_pb_tab_active a
{color:var(--mv-ink)!important}
/* nothing lighter than ink-55 anywhere text is set */
/* Divi-corrective colour. It must not reach anything we render ourselves,
   which is why every selector is scoped away from .mvhome and .mvh. */
.et_pb_module,.et_pb_text,.et_pb_text p,.et_pb_blurb,.et_pb_blurb p,
.woocommerce-product-details__short-description,
.entry-content:not(.mvhome) p:not([class*="mvhome"]):not([class*="mvh__"]),
.entry-content li:not([class*="mvhome"])
{color:var(--mv-ink)}
.mvhome p,.mvhome li,.mvhome span,.mvh p,.mvh span{color:inherit}
[style*="color:#939598"],[style*="color: #939598"],
[style*="color:#999"],[style*="color: #999"],
[style*="color:#aaa"],[style*="color:#bbb"],[style*="color:#ccc"]
{color:var(--mv-ink-55)!important}
/* Jost 300 is too thin on a screen at body size */
.et_pb_text,.et_pb_text p,.entry-content p,.mv-body,.mv-note,
.woocommerce div.product,.et_pb_wc_description
{font-weight:400}
/* small type carries a little more weight so it stays readable */
.mv-card__sizes,.mv-card__eyebrow,.mv-facet__n,.mv-chip,.mv-opt__n,
.woocommerce .woocommerce-breadcrumb,.woocommerce-result-count
{font-weight:500}

/* --------------------------------------------------------------------------
   10. SPECIFICITY ARMOUR. Divi writes per-module selectors like
   .et_pb_menu_0_tb_header.et_pb_menu ul li.current-menu-item a  (0,3,3),
   which outranks a sensible rule. These match it and go one class higher.
   -------------------------------------------------------------------------- */
body [class*="et_pb_menu"].et_pb_menu ul li.current-menu-item>a,
body [class*="et_pb_menu"].et_pb_menu ul li.current-menu-ancestor>a,
body [class*="et_pb_menu"].et_pb_menu ul li a:hover
{color:var(--mv-brass-text)!important}
body .et-l--footer [class*="et_pb_menu"].et_pb_menu ul li.current-menu-item>a,
body #et-footer-nav .bottom-nav li.current-menu-item a
{color:var(--mv-brass)!important}

body [class*="et_pb_tabs"].et_pb_tabs .et_pb_tabs_controls li a,
body [class*="et_pb_wc_tabs"] .et_pb_tabs_controls li a
{color:var(--mv-ink-55)!important;font-weight:500!important}
body [class*="et_pb_tabs"].et_pb_tabs .et_pb_tabs_controls li.et_pb_tab_active a
{color:var(--mv-ink)!important}

/* brass headings on white measure 2.79:1 - use the text brass */
body [class*="et_pb_text"].et_pb_text h1,body [class*="et_pb_text"].et_pb_text h2,
body [class*="et_pb_text"].et_pb_text h3,body [class*="et_pb_text"].et_pb_text h4,
body [class*="et_pb_text"].et_pb_text h5,body [class*="et_pb_text"].et_pb_text h6,
body [class*="et_pb_blurb"].et_pb_blurb .et_pb_module_header
{color:var(--mv-ink)!important}
body .et-l--footer [class*="et_pb_text"].et_pb_text h1,
body .et-l--footer [class*="et_pb_text"].et_pb_text h2,
body .et-l--footer [class*="et_pb_text"].et_pb_text h3,
body .et-l--footer [class*="et_pb_text"].et_pb_text h4
{color:#FFFFFF!important}

/* icons and stars are decoration, but the metal still reads weak on white */
body [class*="et_pb_icon"] .et_pb_icon_wrap .et-pb-icon,
body .star-rating>span:before,body .star-rating:before
{color:var(--mv-brass-text)!important}
body .et-l--footer [class*="et_pb_icon"] .et_pb_icon_wrap .et-pb-icon
{color:var(--mv-brass)!important}

/* --------------------------------------------------------------------------
   11. LINKS. Divi's base stylesheet sets a{color:#2EA3F2} — its stock blue —
   so any link we have not styled turns up in it. Copper is the brand's answer.
   -------------------------------------------------------------------------- */
a{color:var(--mv-copper-text)}
a:hover{color:var(--mv-ink)}
/* structural links carry their own colour and must not inherit copper */
.mvh a:not([class]),.mvhome a:not([class]),.mv-card__link,.mv-card__link *,.mv-btn,
.mv-seen a:not([class]),.mv-404__cats a:not([class]),.et-l--footer a:not([class]),
.mv-chip,.mv-opt,.mv-facet a:not([class]),.mv-totop,
.woocommerce ul.products li.product a:not([class]),
.mv-stickybuy a:not([class]),.mv-backto a:not([class]),
.mvhome__hobs a:not([class]),.mvhome__tiles a:not([class]),
.mvhome__editlist a:not([class]),.mvhome__guidelist a:not([class])
{color:inherit}
.woocommerce div.product span.price,.entry-summary p.price ins{color:var(--mv-ink)!important}

/* the ink bands on the home page carry their own light type */
.mvhome .mvhome__band-body,.mvhome .mvhome__band .mvhome__eyebrow,
.mvhome .mvhome__close .mvhome__band-body,.mvhome__hero .mvhome__lead
{color:#DFDBD4!important}
.mvhome .mvhome__eyebrow--light{color:var(--mv-brass)!important}
.mvhome .mvhome__h2--light,.mvhome .mvhome__h1{color:#fff!important}
.mvhome .mvhome__fact-n{color:#fff!important}
.mvhome .mvhome__fact-l{color:#A9A298!important}


/* --------------------------------------------------------------------------
   The sticky buy bar CTA is ink on ink without this. A bare-element rule at
   (0,1,1) - .mv-stickybuy a {color:inherit} - was beating the button's own
   (0,1,0) colour, so the label rendered dark on a dark button and the only
   call to action on a long product page was invisible. Third instance of the
   same defect today: an element rule outranking a component class.
   -------------------------------------------------------------------------- */
.mv-stickybuy .mv-stickybuy__cta{color:#fff!important;background:var(--mv-ink)}
.mv-stickybuy .mv-stickybuy__cta:hover,
.mv-stickybuy .mv-stickybuy__cta:focus{color:#fff!important;background:var(--mv-copper-band,#A9866A)}

/* Divi ships its own back-to-top. We have one. Two arrows stacked in the
   corner is not a design. */
#et_pb_scroll_top{display:none!important}


/* ---- mauviel-uxplus.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — UX LAYER, PART TWO
   Skip link · sticky buy bar · recently viewed · back to top · page heads
   ========================================================================== */

/* --- skip link ---------------------------------------------------------- */
.mv-skip{position:absolute;left:-9999px;top:0;z-index:100000;
  background:var(--mv-ink);color:#fff;padding:.9rem 1.4rem;
  font-family:var(--mv-font-display);font-size:.8125rem;font-weight:500;
  text-transform:uppercase;letter-spacing:var(--mv-track-caps-tight);
  text-decoration:none}
.mv-skip:focus{left:1rem;top:1rem}
#mv-main:focus{outline:none}
.mv-anchor{display:block;position:relative;top:-90px;height:0;overflow:hidden}

/* --- sticky buy bar ----------------------------------------------------- */
.mv-stickybuy{position:fixed;left:0;right:0;bottom:0;z-index:9990;
  background:#fff;border-top:1px solid var(--mv-ink-25);
  transform:translateY(101%);transition:transform .28s var(--mv-ease);
  will-change:transform}
.mv-stickybuy.is-on{transform:translateY(0)}
.mv-stickybuy__in{max-width:var(--mv-m);margin:0 auto;padding:.7rem var(--mv-p);
  display:flex;align-items:center;gap:1rem}
.mv-stickybuy__img{width:48px;height:48px;object-fit:contain;flex:none;
  mix-blend-mode:multiply}
.mv-stickybuy__name{font-family:var(--mv-font-display);font-size:.9375rem;
  color:var(--mv-ink);line-height:1.25;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  min-width:0;flex:1 1 auto}
.mv-stickybuy__price{font-family:var(--mv-font-data);font-size:.9375rem;
  letter-spacing:var(--mv-track-data);color:var(--mv-ink);font-weight:500;
  white-space:nowrap;flex:none}
.mv-stickybuy__lead{font-family:var(--mv-font-data);font-size:.6875rem;
  letter-spacing:var(--mv-track-data);text-transform:uppercase;
  color:var(--mv-brass-text);border-left:1px solid var(--mv-ink-25);
  padding-left:1rem;white-space:nowrap;flex:none}
.mv-stickybuy__cta{flex:none;background:var(--mv-ink);color:#fff;
  text-decoration:none;padding:.85rem 1.6rem;
  font-family:var(--mv-font-display);font-size:.75rem;font-weight:500;
  text-transform:uppercase;letter-spacing:var(--mv-track-caps-tight);
  transition:background-color .25s var(--mv-ease)}
.mv-stickybuy__cta:hover{background:var(--mv-brass);color:#fff}

@media (max-width:900px){
  .mv-stickybuy__img,.mv-stickybuy__lead{display:none}
  .mv-stickybuy__in{padding:.6rem 4%;gap:.75rem}
  .mv-stickybuy__name{-webkit-line-clamp:1;font-size:.8125rem}
  .mv-stickybuy__price{font-size:.8125rem}
  .mv-stickybuy__cta{padding:.8rem 1rem;font-size:.6875rem;min-height:44px;
    display:flex;align-items:center}
}
@media (max-width:560px){
  .mv-stickybuy__name{display:none}
  .mv-stickybuy__in{justify-content:space-between}
  .mv-stickybuy__cta{flex:1 1 auto;justify-content:center}
}

/* --- recently viewed ---------------------------------------------------- */
.mv-seen{max-width:var(--mv-m);margin:var(--mv-space-12) auto var(--mv-space-8);
  padding:var(--mv-space-6) var(--mv-p) 0;border-top:1px solid var(--mv-ink-25)}
.mv-seen[hidden]{display:none}
.mv-seen__h{font-family:var(--mv-font-display);font-size:.8125rem;
  font-weight:500;text-transform:uppercase;
  letter-spacing:var(--mv-track-caps-tight);color:var(--mv-ink);
  margin:0 0 var(--mv-space-3)}
.mv-seen__list{list-style:none!important;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;
  background:var(--mv-ink-25);border:1px solid var(--mv-ink-25)}
@media (min-width:620px){.mv-seen__list{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1000px){.mv-seen__list{grid-template-columns:repeat(6,minmax(0,1fr))}}
.mv-seen__list>li{list-style:none!important;background:#fff;min-width:0}
.mv-seen__list>li::marker,.mv-seen__list>li::before{content:none!important;display:none!important}
.mv-seen a{display:flex;flex-direction:column;gap:.4rem;padding:var(--mv-space-2);
  text-decoration:none;color:var(--mv-ink);height:100%}
.mv-seen a:hover{background:var(--mv-paper-cool)}
.mv-seen img{width:100%;aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply}
.mv-seen__n{font-family:var(--mv-font-display);font-size:.8125rem;line-height:1.25;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mv-seen__p{font-family:var(--mv-font-data);font-size:.75rem;
  letter-spacing:var(--mv-track-data);color:var(--mv-ink);margin-top:auto}

/* --- back to top -------------------------------------------------------- */
.mv-totop{position:fixed;right:1.25rem;bottom:1.25rem;z-index:9980;
  width:44px;height:44px;border:1px solid var(--mv-ink);background:#fff;
  color:var(--mv-ink);font-size:1rem;line-height:1;cursor:pointer;
  border-radius:0;opacity:0;transform:translateY(8px);
  transition:opacity .2s,transform .2s,background-color .2s}
.mv-totop[hidden]{display:none}
.mv-totop.is-on{opacity:1;transform:translateY(0)}
.mv-totop:hover{background:var(--mv-ink);color:#fff}
.mv-stickybuy.is-on ~ .mv-totop{bottom:5.5rem}

/* --- cart / checkout page heads ----------------------------------------- */
.mv-pagehead{max-width:var(--mv-m);margin:0 auto var(--mv-space-6);padding:0 var(--mv-p)}
.mv-pagehead h1{font-family:var(--mv-font-display);font-weight:300;
  font-size:var(--mv-size-collection);color:var(--mv-ink);
  letter-spacing:.005em;margin:0 0 .35rem}
.mv-pagehead__sub{font-family:var(--mv-font-body);font-size:1rem;
  color:var(--mv-ink-55);margin:0;max-width:60ch}

/* --- back to category --------------------------------------------------- */
.mv-backto{max-width:var(--mv-m);margin:var(--mv-space-6) auto 0;padding:0 var(--mv-p)}
.mv-backto a{font-family:var(--mv-font-display);font-size:.8125rem;
  font-weight:500;text-transform:uppercase;
  letter-spacing:var(--mv-track-caps-tight);color:var(--mv-ink);
  text-decoration:none;border-bottom:1px solid var(--mv-brass);
  padding-bottom:.15rem}
.mv-backto a:hover{color:var(--mv-brass-text)}

@media (prefers-reduced-motion:reduce){
  .mv-stickybuy,.mv-totop{transition:none}
}


/* ---- mauviel-header.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — HEADER (Option B: ink)
   Our own markup, rendered by mauviel-header.php. The Divi Theme Builder
   header is hidden: it was four sections, two logos, two search fields and
   three menus, with the shop navigation in a half-width column.
   ========================================================================== */

/* the old one, gone */
.et-l--header{display:none!important}
#main-header,#top-header,#et-secondary-nav{display:none!important}
body.et_transparent_nav #page-container,body #page-container{padding-top:0!important}
#page-container{margin-top:0!important}

/* --------------------------------------------------------------------------
   Shell
   -------------------------------------------------------------------------- */
.mvh{position:sticky;top:0;z-index:9999;background:var(--mv-ink);color:#fff;
  font-family:var(--mv-font-display)}
.admin-bar .mvh{top:32px}
@media (max-width:782px){.admin-bar .mvh{top:46px}}
.mvh__in{max-width:var(--mv-m);margin:0 auto;padding:0 var(--mv-p);display:flex;align-items:center;gap:1.25rem}

/* --------------------------------------------------------------------------
   Utility strip
   -------------------------------------------------------------------------- */
.mvh__utility{background:#1A1718;border-bottom:1px solid rgba(255,255,255,.12)}
.mvh__utility .mvh__in{height:34px;justify-content:space-between;gap:1rem}
.mvh__note{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:#C9C4BA;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mvh__util{display:flex;gap:1.6rem;flex:none}
.mvh__util a{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:#C9C4BA;text-decoration:none;white-space:nowrap}
.mvh__util a:hover{color:var(--mv-brass)}

/* --------------------------------------------------------------------------
   Main bar — logo left, navigation centre, tools right
   -------------------------------------------------------------------------- */
.mvh__main .mvh__in{height:76px}
.mvh__logo{flex:none;display:flex;align-items:center;margin-right:.5rem}
.mvh__logo img{display:block;height:30px;width:auto;max-width:none}
.mvh__burger{display:none}

.mvh__shop{flex:1 1 auto;min-width:0;display:flex;justify-content:center}
.mvh__shop>ul{list-style:none!important;margin:0;padding:0;display:flex;align-items:center;
  gap:.15rem;flex-wrap:nowrap}
.mvh__shop>ul>li{list-style:none!important;position:static;margin:0}
.mvh__shop>ul>li::marker,.mvh__shop>ul>li::before{content:none!important;display:none!important}
.mvh__item>a{display:block;position:relative;padding:1.5rem .85rem;text-decoration:none;
  color:#fff;font-size:.75rem;font-weight:500;letter-spacing:.11em;text-transform:uppercase;
  white-space:nowrap;line-height:1}
.mvh__item>a:after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:1.15rem;
  height:1px;background:var(--mv-brass);transform:scaleX(0);transform-origin:left;
  transition:transform .24s var(--mv-ease)}
.mvh__item:hover>a:after,.mvh__item.is-current>a:after{transform:scaleX(1)}
.mvh__item:hover>a,.mvh__item.is-current>a{color:var(--mv-brass)}

@media (max-width:1400px){.mvh__item>a{padding-left:.6rem;padding-right:.6rem;font-size:.6875rem;letter-spacing:.09em}
  .mvh__item>a:after{left:.6rem;right:.6rem}}
@media (max-width:1180px){.mvh__item>a{padding-left:.45rem;padding-right:.45rem;letter-spacing:.06em}
  .mvh__item>a:after{left:.45rem;right:.45rem}}

/* full-width dropdown, so long collection names never wrap */
.mvh__drop{position:absolute;left:0;right:0;top:100%;background:var(--mv-ink);
  border-top:2px solid var(--mv-brass);border-bottom:1px solid rgba(255,255,255,.14);
  opacity:0;visibility:hidden;transform:translateY(-4px);
  transition:opacity .18s var(--mv-ease),transform .18s var(--mv-ease),visibility .18s;
  z-index:5}
.mvh__item:hover>.mvh__drop,.mvh__item:focus-within>.mvh__drop{opacity:1;visibility:visible;transform:translateY(0)}
.mvh__drop>ul{list-style:none!important;margin:0 auto;padding:1.4rem var(--mv-p);max-width:var(--mv-m);
  display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,max-content));gap:.15rem 2.5rem;
  justify-content:start}
.mvh__drop li{list-style:none!important;margin:0}
.mvh__drop li::marker,.mvh__drop li::before{content:none!important;display:none!important}
.mvh__drop a{display:block;padding:.5rem 0;color:#EDEBE7;text-decoration:none;
  font-family:var(--mv-font-body);font-size:.9375rem;font-weight:400;letter-spacing:.01em;
  white-space:nowrap;border-bottom:1px solid transparent}
.mvh__drop a:hover{color:var(--mv-brass);border-bottom-color:rgba(171,153,116,.5)}

/* --------------------------------------------------------------------------
   Tools
   -------------------------------------------------------------------------- */
.mvh__tools{flex:none;display:flex;align-items:center;gap:.1rem;margin-left:.5rem}
.mvh__ico{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;
  border:0;background:transparent;color:#fff;cursor:pointer;position:relative;text-decoration:none;
  padding:0}
.mvh__ico:hover{color:var(--mv-brass)}
.mvh__n{position:absolute;top:6px;right:2px;background:var(--mv-brass);color:#fff;
  font-family:var(--mv-font-data);font-size:.625rem;line-height:1;letter-spacing:.04em;
  padding:2px 4px;min-width:0}
.mvh__n[hidden]{display:none}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */
.mvh__drawer{display:none}
.mvh__veil{display:none}

@media (max-width:1024px){
  .mvh__utility .mvh__in{height:32px}
  .mvh__util{display:none}
  .mvh__note{white-space:normal;font-size:.625rem;letter-spacing:.12em;text-align:center;width:100%}
  .mvh__shop{display:none}
  .mvh__main .mvh__in{height:60px;justify-content:space-between;gap:.5rem;padding:0 4%}
  .mvh__burger{display:flex;flex-direction:column;justify-content:center;gap:4px;
    width:44px;height:44px;padding:0 11px;border:0;background:transparent;cursor:pointer;flex:none}
  .mvh__burger i{display:block;height:1px;width:100%;background:#fff;
    transition:transform .22s var(--mv-ease),opacity .22s}
  body.mvh-open .mvh__burger i:nth-child(1){transform:translateY(5px) rotate(45deg)}
  body.mvh-open .mvh__burger i:nth-child(2){opacity:0}
  body.mvh-open .mvh__burger i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
  .mvh__logo{flex:1 1 auto;justify-content:center;margin:0}
  .mvh__logo img{height:24px}
  .mvh__tools{margin:0}
  .mvh__acct{display:none}

  .mvh__veil{display:block;position:fixed;inset:0;background:rgba(26,23,24,.5);z-index:9990;
    opacity:0;pointer-events:none;transition:opacity .22s var(--mv-ease)}
  .mvh__veil[hidden]{display:none}
  body.mvh-open .mvh__veil{opacity:1;pointer-events:auto}

  .mvh__drawer{display:block;position:fixed;top:0;bottom:0;left:0;width:min(88vw,380px);
    z-index:9995;background:var(--mv-ink);border-right:1px solid rgba(255,255,255,.14);
    overflow-y:auto;-webkit-overflow-scrolling:touch;
    transform:translateX(-101%);transition:transform .26s var(--mv-ease);
    padding:5.5rem 0 3rem}
  .mvh__drawer[hidden]{display:block}
  body.mvh-open .mvh__drawer{transform:translateX(0)}
  body.mvh-open{overflow:hidden}

  .mvh__drawer ul{list-style:none!important;margin:0;padding:0}
  .mvh__drawer li{list-style:none!important;margin:0}
  .mvh__drawer li::marker,.mvh__drawer li::before{content:none!important;display:none!important}
  .mvh__drawer a,.mvh__dtoggle{display:flex;align-items:center;justify-content:space-between;
    width:100%;min-height:48px;padding:.85rem 1.4rem;text-decoration:none;text-align:left;
    color:#EDEBE7;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.09);
    font-family:var(--mv-font-body);font-size:1rem;cursor:pointer}
  .mvh__dtoggle{font-family:var(--mv-font-display);font-weight:500;color:#fff;
    text-transform:uppercase;font-size:.8125rem;letter-spacing:.1em}
  .mvh__dtoggle span{width:11px;height:11px;position:relative;flex:none}
  .mvh__dtoggle span:before,.mvh__dtoggle span:after{content:"";position:absolute;
    background:var(--mv-brass);transition:transform .2s var(--mv-ease)}
  .mvh__dtoggle span:before{left:0;right:0;top:5px;height:1px}
  .mvh__dtoggle span:after{top:0;bottom:0;left:5px;width:1px}
  .mvh__dtoggle[aria-expanded="true"] span:after{transform:scaleY(0)}
  .mvh__dsub{background:rgba(255,255,255,.03)}
  .mvh__dsub a{padding-left:2.2rem;font-size:.9375rem}
  .mvh__dsub3 a{padding-left:3.2rem;font-size:.875rem;color:#C9C4BA}
  .mvh__drawer a:hover,.mvh__dtoggle:hover{color:var(--mv-brass);background:rgba(255,255,255,.05)}
}

@media (max-width:420px){
  .mvh__note{font-size:.5625rem;letter-spacing:.1em}
  .mvh__logo img{height:21px}
}

@media (prefers-reduced-motion:reduce){
  .mvh__drawer,.mvh__veil,.mvh__drop,.mvh__item>a:after,.mvh__burger i{transition:none}
}


/* The utility bar shares the main bar's gutter on small screens, so the two
   rows of the header line up with the page. */
@media (max-width:1024px){.mvh__utility .mvh__in{padding:0 4%}}


/* ---- mauviel-uxplus2.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — UX LAYER, PART THREE
   404 · mobile filter drawer · reassurance block · focus states
   ========================================================================== */

/* --------------------------------------------------------------------------
   404
   -------------------------------------------------------------------------- */
.mv-404{max-width:var(--mv-m);margin:0 auto;padding:var(--mv-space-12) var(--mv-p) var(--mv-space-16);box-sizing:border-box}
.mv-404__eyebrow{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:var(--mv-track-data);
  text-transform:uppercase;color:var(--mv-brass-text);margin:0 0 .8rem;font-weight:500}
.mv-404__h{font-family:var(--mv-font-display);font-weight:300;font-size:var(--mv-size-collection);
  color:var(--mv-ink);margin:0 0 .6rem;letter-spacing:.005em;line-height:1.1}
.mv-404__lead{font-family:var(--mv-font-body);font-size:1.0625rem;color:var(--mv-ink);
  max-width:56ch;margin:0 0 var(--mv-space-4)}
.mv-404__form{display:flex;gap:0;max-width:560px;margin:0 0 var(--mv-space-8);border-bottom:1px solid var(--mv-ink)}
.mv-404__form input[type=search]{flex:1 1 auto;min-width:0;border:0;background:transparent;
  font-family:var(--mv-font-body);font-size:1.0625rem;color:var(--mv-ink);padding:.75rem 0;border-radius:0}
.mv-404__form input[type=search]::placeholder{color:var(--mv-ink-55)}
.mv-404__form button{flex:none;border:0;background:transparent;cursor:pointer;
  font-family:var(--mv-font-display);font-size:.75rem;font-weight:500;text-transform:uppercase;
  letter-spacing:var(--mv-track-caps-tight);color:var(--mv-ink);padding:.75rem 0 .75rem 1rem}
.mv-404__form button:hover{color:var(--mv-brass-text)}
.mv-404__cats{list-style:none!important;margin:0 0 var(--mv-space-6);padding:0;display:grid;
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1px;background:var(--mv-ink-25);
  border:1px solid var(--mv-ink-25);max-width:1100px}
.mv-404__cats>li{list-style:none!important;background:#fff}
.mv-404__cats>li::marker,.mv-404__cats>li::before{content:none!important;display:none!important}
.mv-404__cats a{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.1rem;text-decoration:none;min-height:44px}
.mv-404__cats a:hover{background:var(--mv-paper-cool)}
.mv-404__cat{font-family:var(--mv-font-display);font-size:1rem;font-weight:400;color:var(--mv-ink)}
.mv-404__n{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:var(--mv-track-data);
  text-transform:uppercase;color:var(--mv-ink-55)}
.mv-404__help{font-family:var(--mv-font-body);color:var(--mv-ink-55);margin:0}
.mv-404__help a{color:var(--mv-copper-text);text-decoration:underline;text-underline-offset:.18em}

/* --------------------------------------------------------------------------
   MOBILE FILTER DRAWER
   The rail sat above the grid on a phone, so six facets came before the first
   pan. One button, one bottom sheet, and the count of what is already on.
   -------------------------------------------------------------------------- */
.mv-filterbtn{display:none}
.mv-sheetveil{display:none}

@media (max-width:900px){
  .mv-filterbtn{display:inline-flex;align-items:center;gap:.5rem;
    position:fixed;left:50%;transform:translateX(-50%);bottom:1rem;z-index:9985;
    background:var(--mv-ink);color:#fff;border:0;border-radius:0;cursor:pointer;
    font-family:var(--mv-font-display);font-size:.75rem;font-weight:500;
    letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase;
    padding:.95rem 1.5rem;min-height:44px;box-shadow:0 2px 14px rgba(35,31,32,.22)}
  .mv-filterbtn[hidden]{display:none}
  .mv-filterbtn__n{background:var(--mv-brass);color:#fff;font-family:var(--mv-font-data);
    font-size:.6875rem;line-height:1;padding:3px 5px;letter-spacing:.04em}
  .mv-filterbtn__n[hidden]{display:none}

  .mv-sheetveil{display:block;position:fixed;inset:0;background:rgba(35,31,32,.45);
    z-index:9986;opacity:0;pointer-events:none;transition:opacity .22s var(--mv-ease)}
  .mv-sheetveil[hidden]{display:none}
  body.mv-sheet-open .mv-sheetveil{opacity:1;pointer-events:auto}

  .mv-filters{position:fixed!important;left:0;right:0;bottom:0;z-index:9987;
    background:#fff;border-top:2px solid var(--mv-brass);
    max-height:82vh;overflow-y:auto;-webkit-overflow-scrolling:touch;
    transform:translateY(101%);transition:transform .26s var(--mv-ease);
    padding:1rem 4% 6rem!important;margin:0!important;width:auto!important;max-width:none!important}
  body.mv-sheet-open .mv-filters{transform:translateY(0)}
  body.mv-sheet-open{overflow:hidden}

  .mv-filters:before{content:"Filter";display:block;font-family:var(--mv-font-display);
    font-size:.75rem;font-weight:500;letter-spacing:var(--mv-track-caps-tight);
    text-transform:uppercase;color:var(--mv-ink);padding-bottom:.7rem;
    border-bottom:1px solid var(--mv-ink-25);margin-bottom:.9rem}
  .mv-sheetclose{position:sticky;bottom:0;margin:1rem -4% -6rem;padding:1rem 4%;
    background:#fff;border-top:1px solid var(--mv-ink-25);display:flex;gap:.6rem}
  .mv-sheetclose button{flex:1 1 auto;min-height:48px;border-radius:0;cursor:pointer;
    font-family:var(--mv-font-display);font-size:.75rem;font-weight:500;
    letter-spacing:var(--mv-track-caps-tight);text-transform:uppercase}
  .mv-sheetclose .mv-sheetclose__apply{background:var(--mv-ink);color:#fff;border:1px solid var(--mv-ink)}
  .mv-sheetclose .mv-sheetclose__clear{background:transparent;color:var(--mv-ink);border:1px solid var(--mv-ink-25)}
  .mv-stickybuy.is-on ~ .mv-filterbtn{bottom:5.5rem}
}

/* --------------------------------------------------------------------------
   REASSURANCE, under the add-to-cart
   -------------------------------------------------------------------------- */
.mv-assure{list-style:none!important;margin:var(--mv-space-4) 0 0;padding:var(--mv-space-3) 0 0;
  border-top:1px solid var(--mv-ink-25);display:grid;gap:.65rem;max-width:56ch}
.mv-assure>li{list-style:none!important;display:grid;grid-template-columns:9.5rem 1fr;gap:1rem;margin:0}
.mv-assure>li::marker,.mv-assure>li::before{content:none!important;display:none!important}
.mv-assure__k{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:var(--mv-track-data);
  text-transform:uppercase;color:var(--mv-ink-55);font-weight:500;padding-top:.12rem}
.mv-assure__v{font-family:var(--mv-font-body);font-size:.9375rem;color:var(--mv-ink);line-height:1.45}
@media (max-width:560px){
  .mv-assure>li{grid-template-columns:1fr;gap:.1rem}
  .mv-assure{gap:.9rem}
}

/* --------------------------------------------------------------------------
   FOCUS — a keyboard user could not see where they were.
   -------------------------------------------------------------------------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,.mv-card__link:focus-visible,
.et-menu a:focus-visible,.et_mobile_menu a:focus-visible
{outline:2px solid var(--mv-brass)!important;outline-offset:2px!important;
 border-radius:0!important}
.et-l--header a:focus-visible,.et-l--header button:focus-visible,
.mv-stickybuy a:focus-visible,.et-l--footer a:focus-visible
{outline:2px solid var(--mv-brass)!important;outline-offset:2px!important}
.mv-opt input:focus-visible{outline:2px solid var(--mv-brass);outline-offset:2px}

.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media (prefers-reduced-motion:reduce){
  .mv-filters,.mv-sheetveil{transition:none}
}


/* ---- mauviel-homepage.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA — HOME PAGE
   Self-contained. It borrows nothing from the shop stylesheet, because two
   layout systems fighting each other is what produced the grey bands and the
   rails that changed width from section to section.

   ONE measure, declared once:
     --m   the maximum line of the page
     --p   the gutter, fluid, the same on every section
   Every section is full-bleed; only .mvhome__w is constrained. Nothing else
   sets a width, a max-width or a horizontal padding anywhere in this file.
   ========================================================================== */

.mvhome{--m:var(--mv-m);--p:var(--mv-p);
  --line:#E3E1DD;            /* hairline. lighter than ink-25, so it recedes */
  --ink:var(--mv-ink);--brass:var(--mv-brass);--brasst:var(--mv-brass-text)}

.mvhome *{box-sizing:border-box}
.mvhome section{width:100%}
.mvhome__w{max-width:var(--m);margin-inline:auto;padding-inline:var(--p)}
@media(max-width:1024px){.mvhome{--p:4%}}

/* rhythm ------------------------------------------------------------------- */
.mvhome__pad{padding-block:clamp(3.5rem,7vw,6.5rem)}
.mvhome .mv-sec{padding-block:clamp(3.5rem,7vw,6.5rem)}

/* type --------------------------------------------------------------------- */
.mvhome__eyebrow{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--brasst);margin:0 0 1rem;font-weight:500}
.mvhome__eyebrow--light{color:var(--brass)}
.mvhome__h1{font-family:var(--mv-font-display);font-weight:200;
  font-size:clamp(2.75rem,8vw,6.5rem);line-height:.95;letter-spacing:-.02em;color:#fff;margin:0 0 1.5rem}
.mvhome__h2{font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1.8rem,3.8vw,3rem);line-height:1.05;letter-spacing:-.01em;color:var(--ink);margin:0 0 .7rem}
.mvhome__h2--light{color:#fff}
.mvhome__sub{font-family:var(--mv-font-body);font-size:1.0625rem;line-height:1.6;
  color:var(--mv-ink-55);margin:0;max-width:54ch}
.mvhome__body{font-family:var(--mv-font-body);font-size:1.0625rem;line-height:1.7;
  color:var(--ink);margin:0 0 1.15rem;max-width:58ch}
.mvhome__head{margin-bottom:clamp(2rem,4vw,3.25rem)}
.mvhome__head--split{display:grid;gap:1.5rem}
@media(min-width:1000px){.mvhome__head--split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:4rem}}
.mvhome__more{margin:clamp(1.75rem,3vw,2.5rem) 0 0}
.mvhome__more a{font-family:var(--mv-font-display);font-size:.8125rem;font-weight:500;
  text-transform:uppercase;letter-spacing:.1em;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--brass);padding-bottom:.25rem}
.mvhome__more a:hover{color:var(--brasst)}

/* buttons ------------------------------------------------------------------ */
.mvhome .mv-btn{display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mv-font-display);font-size:.75rem;font-weight:500;text-transform:uppercase;
  letter-spacing:.13em;padding:1.15em 2.4em;border-radius:0;text-decoration:none;min-height:50px;
  transition:background-color .22s,color .22s,border-color .22s}
.mvhome .mv-btn--solid{background:var(--ink);color:#fff;border:1px solid var(--ink)}
.mvhome .mv-btn--solid:hover{background:var(--brass);border-color:var(--brass);color:#fff}
.mvhome .mv-btn--ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.mvhome .mv-btn--ghost:hover{background:var(--ink);color:#fff}
.mvhome .mv-btn--onink{background:#fff;color:var(--ink);border:1px solid #fff}
.mvhome .mv-btn--onink:hover{background:var(--brass);border-color:var(--brass);color:#fff}
.mvhome .mv-btn--onink-ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.45)}
.mvhome .mv-btn--onink-ghost:hover{background:#fff;color:var(--ink);border-color:#fff}
.mvhome__acts{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:2rem}

/* ==========================================================================
   THE PANEL SYSTEM
   One rule for every group of tiles on this page. Dividers live on the items
   as inset borders, never as a background showing through gaps — an empty
   grid track can then never render as a grey band.
   ========================================================================== */
.mvhome__panel{list-style:none!important;margin:0;padding:0;display:grid;
  border-top:1px solid var(--line);border-left:1px solid var(--line)}
.mvhome__panel>li{list-style:none!important;margin:0;min-width:0;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.mvhome__panel>li::marker,.mvhome__panel>li::before{content:none!important;display:none!important}
.mvhome__panel a{display:flex;flex-direction:column;height:100%;text-decoration:none;
  padding:clamp(1.25rem,2vw,2rem);gap:.5rem;transition:background-color .2s}
.mvhome__panel a:hover{background:#FAF9F7}

.mvhome__panel--2{grid-template-columns:1fr}
.mvhome__panel--4{grid-template-columns:1fr}
.mvhome__panel--3{grid-template-columns:1fr}
@media(min-width:640px){.mvhome__panel--4,.mvhome__panel--2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mvhome__panel--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1080px){.mvhome__panel--4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .mvhome__panel--3{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* 1. HERO ------------------------------------------------------------------ */
.mvhome__hero{background:var(--ink);color:#fff;position:relative;overflow:hidden}
.mvhome__hero:before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(120% 90% at 80% 12%,rgba(171,153,116,.26),transparent 60%)}
.mvhome__hero-in{position:relative;padding-block:clamp(4.5rem,12vw,10rem) clamp(3rem,6vw,4.5rem)}
.mvhome__lead{font-family:var(--mv-font-body);font-size:clamp(1.0625rem,1.7vw,1.375rem);
  line-height:1.5;color:#D9D6D0;max-width:50ch;margin:0}
.mvhome__lead em{color:var(--brass);font-style:italic}
.mvhome__facts{position:relative;list-style:none!important;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid rgba(255,255,255,.18)}
@media(min-width:860px){.mvhome__facts{grid-template-columns:repeat(4,1fr)}}
.mvhome__facts>li{list-style:none!important;padding:1.75rem 0 2rem;
  border-right:1px solid rgba(255,255,255,.13);padding-right:1rem}
.mvhome__facts>li:nth-child(2n){border-right:0}
@media(min-width:860px){.mvhome__facts>li{border-right:1px solid rgba(255,255,255,.13)}
  .mvhome__facts>li:nth-child(2n){border-right:1px solid rgba(255,255,255,.13)}
  .mvhome__facts>li:last-child{border-right:0}}
.mvhome__facts>li::marker,.mvhome__facts>li::before{content:none!important;display:none!important}
.mvhome__fact-n{display:block;font-family:var(--mv-font-data);font-size:clamp(1.5rem,3vw,2.25rem);
  color:#fff;line-height:1;letter-spacing:.01em}
.mvhome__fact-l{display:block;font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:#948E85;margin-top:.55rem}

/* 2. HOB ------------------------------------------------------------------- */
.mvhome__hob{background:var(--mv-paper-warm)}
.mvhome__hobs>li{background:#fff}
.mvhome__hob-n{font-family:var(--mv-font-display);font-size:1.375rem;font-weight:300;color:var(--ink)}
.mvhome__hob-d{font-family:var(--mv-font-body);font-size:.9375rem;color:var(--ink);line-height:1.55}
.mvhome__hob-c{margin-top:auto;padding-top:1rem;font-family:var(--mv-font-data);font-size:.6875rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brasst)}

/* 3. WHY ------------------------------------------------------------------- */
.mvhome__why{background:#fff}
.mvhome__why-in{display:grid;gap:clamp(2.5rem,5vw,5rem)}
@media(min-width:1000px){.mvhome__why-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}}
.mvhome__pts{list-style:none!important;margin:2rem 0 0;padding:0;display:grid}
.mvhome__pts>li{list-style:none!important;display:grid;grid-template-columns:7.5rem minmax(0,1fr);
  gap:1.25rem;font-family:var(--mv-font-body);font-size:.9375rem;color:var(--ink);
  padding:.9rem 0;border-top:1px solid var(--line)}
.mvhome__pts>li:last-child{border-bottom:1px solid var(--line)}
.mvhome__pts>li::marker,.mvhome__pts>li::before{content:none!important;display:none!important}
.mvhome__pts span{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brasst);font-weight:500;padding-top:.2rem}
@media(max-width:560px){.mvhome__pts>li{grid-template-columns:1fr;gap:.2rem}}
.mvhome__why-dia{background:var(--mv-paper-cool);padding:clamp(1.5rem,3vw,2.75rem)}
.mvhome__why-dia svg{width:100%;height:auto;display:block}
.mvhome__cap{font-family:var(--mv-font-data);font-size:.75rem;color:var(--mv-ink-55);margin:1rem 0 0}

/* 4. COLLECTIONS ----------------------------------------------------------- */
.mvhome__coll{background:#fff;border-top:1px solid var(--line)}
.mvhome__tile-img{display:block;aspect-ratio:4/3;overflow:hidden;margin-bottom:.75rem;background:#fff}
.mvhome__tile-img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;
  transition:transform .5s var(--mv-ease)}
.mvhome__tiles a:hover .mvhome__tile-img img{transform:scale(1.05)}
.mvhome__tile-k{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brasst);font-weight:500}
.mvhome__tile-n{font-family:var(--mv-font-display);font-size:1.5rem;font-weight:300;color:var(--ink);line-height:1.15}
.mvhome__tile-d{font-family:var(--mv-font-body);font-size:.9375rem;color:var(--ink);line-height:1.55}
.mvhome__tile-c{margin-top:auto;padding-top:1rem;font-family:var(--mv-font-data);font-size:.6875rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--mv-ink-55)}

/* 5 & 9. PRODUCT PANELS ---------------------------------------------------- */
.mvhome__batt{background:var(--mv-paper-cool)}
.mvhome__iconic{background:#fff;border-top:1px solid var(--line)}
.mvhome__prods{list-style:none!important;margin:0;padding:0;display:grid;
  border-top:1px solid var(--line);border-left:1px solid var(--line);background:#fff}
.mvhome__prods>li{list-style:none!important;margin:0;min-width:0;background:#fff;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.mvhome__prods>li::marker,.mvhome__prods>li::before{content:none!important;display:none!important}
.mvhome__prods--4{grid-template-columns:repeat(2,minmax(0,1fr))}
.mvhome__prods--6{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:760px){.mvhome__prods--6{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1080px){.mvhome__prods--4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .mvhome__prods--6{grid-template-columns:repeat(6,minmax(0,1fr))}}
.mvhome__c-link{display:flex;flex-direction:column;height:100%;padding:clamp(1rem,1.6vw,1.5rem);
  text-decoration:none;color:inherit;gap:.3rem;transition:background-color .2s}
.mvhome__c-link:hover{background:#FAF9F7}
.mvhome__c-img{display:block;aspect-ratio:1;overflow:hidden;margin-bottom:.9rem}
.mvhome__c-img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;
  transition:transform .45s var(--mv-ease)}
.mvhome__c-link:hover .mvhome__c-img img{transform:scale(1.04)}
.mvhome__c-eyebrow{font-family:var(--mv-font-data);font-size:.625rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brasst);font-weight:500}
.mvhome__c-title{font-family:var(--mv-font-display);font-size:.9375rem;font-weight:400;
  line-height:1.3;color:var(--ink)}
.mvhome__c-price{margin-top:auto;padding-top:.8rem;font-family:var(--mv-font-data);
  font-size:.8125rem;letter-spacing:.03em;color:var(--ink);font-weight:500}

/* 6. EDITS ----------------------------------------------------------------- */
.mvhome__edits{background:#fff;border-top:1px solid var(--line)}
.mvhome__edit-n{font-family:var(--mv-font-display);font-size:1.3125rem;font-weight:300;color:var(--ink)}
.mvhome__edit-d{font-family:var(--mv-font-body);font-size:.9375rem;color:var(--ink);line-height:1.55}
.mvhome__edit-c{margin-top:auto;padding-top:1rem;font-family:var(--mv-font-data);font-size:.6875rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brasst)}

/* 7 & 11. INK BANDS -------------------------------------------------------- */
.mvhome__band,.mvhome__close{background:var(--ink);color:#fff}
.mvhome__close{border-top:1px solid rgba(255,255,255,.14)}
.mvhome__band-in,.mvhome__close-in{padding-block:clamp(4rem,9vw,7.5rem)}
.mvhome__band-body{font-family:var(--mv-font-body);font-size:1.0625rem;line-height:1.75;
  color:#D6D2CB;max-width:60ch;margin:0 0 1.15rem}

/* 8. MADE TO ORDER --------------------------------------------------------- */
.mvhome__mto{background:#fff;border-top:1px solid var(--line)}
.mvhome__mto-in{display:grid;gap:clamp(2.5rem,5vw,5rem)}
@media(min-width:1000px){.mvhome__mto-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}}
.mvhome__steps{list-style:none!important;margin:0;padding:0;display:grid}
.mvhome__steps>li{list-style:none!important;display:grid;
  grid-template-columns:3.25rem minmax(0,1fr);gap:.15rem 1.25rem;padding:1.25rem 0;
  border-top:1px solid var(--line);align-items:start}
.mvhome__steps>li:last-child{border-bottom:1px solid var(--line)}
.mvhome__steps>li::marker,.mvhome__steps>li::before{content:none!important;display:none!important}
.mvhome__step-n{font-family:var(--mv-font-data);font-size:1.375rem;color:var(--brass);
  line-height:1;grid-row:span 2}
.mvhome__step-t{font-family:var(--mv-font-display);font-size:1.0625rem;font-weight:500;color:var(--ink)}
.mvhome__step-d{font-family:var(--mv-font-body);font-size:.9375rem;color:var(--mv-ink-55);line-height:1.55}

/* 10. GUIDES --------------------------------------------------------------- */
.mvhome__guides{background:var(--mv-paper-warm)}
.mvhome__guide-n{font-family:var(--mv-font-display);font-size:1.1875rem;font-weight:400;color:var(--ink)}
.mvhome__guide-d{font-family:var(--mv-font-body);font-size:.9375rem;color:var(--mv-ink-55);line-height:1.55}

@media (prefers-reduced-motion:reduce){
  .mvhome *{transition:none!important}
  .mvhome img{transform:none!important}
}

/* ==========================================================================
   PHOTOGRAPHY. Lifestyle banners from mauviel-1830.com. The hero image is
   darkened hard so white type stays above 12:1 on it; the band is lighter
   because its text sits in a panel rather than directly on the picture.
   ========================================================================== */
.mvhome__hero{background-image:linear-gradient(180deg,rgba(35,31,32,.62) 0%,rgba(35,31,32,.86) 62%,rgba(35,31,32,.97) 100%),url('https://mauviel.co.za/wp-content/uploads/2026/08/mv-band-m6s-scaled.jpg');
  background-size:cover;background-position:50% 42%;background-repeat:no-repeat}
.mvhome__hero:before{background:radial-gradient(110% 80% at 82% 14%,rgba(171,153,116,.20),transparent 60%)}
@media(max-width:760px){.mvhome__hero{background-position:62% 40%}}

.mvhome__band{position:relative;background-image:linear-gradient(90deg,rgba(26,23,24,.97) 0%,rgba(26,23,24,.94) 38%,rgba(26,23,24,.55) 72%,rgba(26,23,24,.25) 100%),url('https://mauviel.co.za/wp-content/uploads/2026/08/mv-band-melite-scaled.jpg');
  background-size:cover;background-position:70% 50%;background-repeat:no-repeat}
@media(max-width:900px){.mvhome__band{background-image:linear-gradient(180deg,rgba(35,31,32,.92) 0%,rgba(35,31,32,.96) 100%),url('https://mauviel.co.za/wp-content/uploads/2026/08/mv-band-melite-scaled.jpg');background-position:50% 50%}}
.mvhome__band .mvhome__band-in{max-width:none}
.mvhome__band .mvhome__band-body,.mvhome__band .mvhome__h2{max-width:34ch}
@media(min-width:1000px){.mvhome__band .mvhome__band-body,.mvhome__band .mvhome__h2{max-width:44ch}}

/* a real photograph in the copper argument, instead of a diagram alone */
.mvhome__why-dia{background:transparent;padding:0}
.mvhome__why-shot{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;margin-bottom:1.5rem}
.mvhome__why-dia svg{background:var(--mv-paper-cool);padding:1.25rem;box-sizing:border-box}

/* --------------------------------------------------------------------------
   FULL BLEED. Our templates render outside Divi's .container, so nothing can
   squeeze them to 80%. These few lines undo the theme's page chrome for the
   wrapper we do own.
   -------------------------------------------------------------------------- */
.mv-fullbleed{width:100%!important;max-width:none!important;padding:0!important;margin:0!important;float:none!important}
.mv-fullbleed>.mvhome,.mv-fullbleed>.mv-404{width:100%;max-width:none}
.mv-fullbleed:before,.mv-fullbleed:after{display:none!important}
body.home #page-container,body.error404 #page-container{padding-top:0!important}


/* ---- mauviel-copper.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA - COPPER ACCENT
   Loaded last. The rose-gold Mauviel1830 uses on its own collection bands,
   brought in as a surface colour and a label colour. Brass keeps its job as
   the hairline and the underline; copper takes the fills and the small caps,
   so the two metals never compete in the same role.

   Contrast, measured, not assumed:
     ink   #231F20 on copper  #A9866A = 4.89:1   AA body
     copper deep #8A6647 on paper     = 5.16:1   AA body
     copper light #C9AC93 on ink      = 7.61:1   AA body, AAA large
   ========================================================================== */

:root{
  --mv-copper-band:#A9866A;
  --mv-copper-deep:#8A6647;
  --mv-copper-light:#C9AC93;
  --mv-copper-tint:#F4EBE3;
  --mv-copper-line:#C7A98F;
}

/* --------------------------------------------------------------------------
   1. THE LABEL. Every small-caps eyebrow on the site moves from brass-text to
      copper. It is the most frequent accent and the one the eye reads first.
   -------------------------------------------------------------------------- */
/* These carry #main-content because the site has a blanket
   `#main-content p,#main-content li,#main-content td{color:ink}` rule, at
   (1,0,1), which quietly outranks any single-class rule. Every component
   colour in this file has to clear that bar or it never reaches the page. */
#main-content .mvhome__eyebrow,
#main-content .mv-eyebrow,
#main-content .mv-sec__eyebrow,
#main-content .mvhome__cap,
#main-content .mvhome__c-eyebrow,
#main-content .mvhome__tile-k,
#main-content .mv-pick__k{color:var(--mv-copper-deep)}

#main-content .mvhome__eyebrow--light,
#main-content .mv-eyebrow--light{color:var(--mv-copper-light)}

/* Numerals in the where-to-start panel read as a set, not as prices. */
#main-content .mv-picks>li .mv-pick__n,
#main-content .mv-pick__n,
#main-content .mvhome__step-n,
#main-content .mvhome__hob-n,
#main-content .mvhome__fact-n{color:var(--mv-copper-deep)}

/* --------------------------------------------------------------------------
   2. THE SURFACE. A full-bleed copper band, ink type on it. Mauviel1830 sets
      white on this colour; at 3.33:1 that is legible only at display sizes, so
      here the body copy is ink and only the heading may go white.
   -------------------------------------------------------------------------- */
.mv-copperband{background:var(--mv-copper-band);color:var(--mv-ink);width:100%}
.mv-copperband__w{max-width:var(--mv-m);margin-inline:auto;padding-inline:var(--mv-p);
  padding-block:clamp(3rem,6vw,5rem)}
.mv-copperband__grid{display:grid;gap:clamp(1.5rem,4vw,4rem);
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
.mv-copperband__eyebrow{font-family:var(--mv-font-data);font-size:.6875rem;
  letter-spacing:.2em;text-transform:uppercase;font-weight:500;
  color:var(--mv-ink);opacity:.75;margin:0 0 1rem}
.mv-copperband__h{font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1.75rem,3.6vw,2.85rem);line-height:1.08;letter-spacing:-.01em;
  color:var(--mv-ink);margin:0;max-width:20ch}
.mv-copperband__body{font-family:var(--mv-font-body);font-size:1.0625rem;
  line-height:1.7;color:var(--mv-ink);margin:0 0 1.1rem;max-width:60ch}
.mv-copperband__body:last-of-type{margin-bottom:1.8rem}
.mv-copperband__more{display:inline-block;font-family:var(--mv-font-data);
  font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  color:var(--mv-ink);text-decoration:none;padding-bottom:.35rem;
  border-bottom:1px solid var(--mv-ink)}
.mv-copperband__more:hover{color:var(--mv-ink);border-bottom-color:var(--mv-paper)}
@media (max-width:900px){
  .mv-copperband__grid{grid-template-columns:minmax(0,1fr)}
  .mv-copperband__w{padding-inline:4%}
  .mv-copperband__h{max-width:none}
}

/* --------------------------------------------------------------------------
   3. THE WASH. A tint for alternating editorial sections, warm enough to read
      as copper and light enough to keep ink at 13.8:1.
   -------------------------------------------------------------------------- */
.mv-coppertint{background:var(--mv-copper-tint)}
.mv-copperrule{border:0;border-top:1px solid var(--mv-copper-line);margin:0}


/* Same specificity floor for the band, so the blanket ink rule cannot flatten
   it. Anything added to this file later needs the #main-content prefix too. */
#main-content .mv-copperband__eyebrow{color:var(--mv-ink);opacity:.75}
#main-content .mv-copperband__h,
#main-content .mv-copperband__body,
#main-content .mv-copperband__more{color:var(--mv-ink)}


/* ---- mauviel-craft.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA - LA MANUFACTURE
   The copper band and the three-image workshop strip. Both borrow the site
   measure (1720px, 2.5% gutter, 4% under 1024) so they line up with the
   header and with everything else on the page.

   Every colour rule carries #main-content on purpose: the site has a blanket
   `#main-content p,li,td{color:ink}` at (1,0,1) that outranks any bare class.
   ========================================================================== */

.mv-copperband{background:var(--mv-copper-band,#A9866A);width:100%;
  margin-block:clamp(3rem,6vw,5.5rem)}
.mv-copperband *{box-sizing:border-box}
.mv-copperband__w{max-width:var(--mv-m);margin-inline:auto;padding-inline:var(--mv-p);
  padding-block:clamp(2.75rem,5.5vw,4.5rem)}
.mv-copperband__grid{display:grid;gap:clamp(1.75rem,4vw,4rem);
  grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start}
.mv-copperband__col{min-width:0}

#main-content .mv-copperband__eyebrow{font-family:var(--mv-font-data);font-size:.6875rem;
  letter-spacing:.2em;text-transform:uppercase;font-weight:500;
  color:var(--mv-ink);margin:0 0 1rem;padding:0}
#main-content .mv-copperband__h{font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1.75rem,3.4vw,2.75rem);line-height:1.08;letter-spacing:-.01em;
  color:var(--mv-ink);margin:0 0 1.75rem;padding:0;max-width:18ch}
#main-content .mv-copperband__body{font-family:var(--mv-font-body);font-size:1.0625rem;
  line-height:1.7;color:var(--mv-ink);margin:0 0 1.15rem;padding:0;max-width:62ch}

.mv-copperband__fig{margin:0;overflow:hidden}
.mv-copperband__img{display:block;width:100%;height:auto;
  aspect-ratio:2/1;object-fit:cover;border-radius:0}

#main-content .mv-copperband__more{display:inline-block;font-family:var(--mv-font-data);
  font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  color:var(--mv-ink);text-decoration:none;margin-top:.6rem;padding:0 0 .4rem;
  border-bottom:1px solid var(--mv-ink);transition:border-color .3s var(--mv-ease,ease)}
#main-content .mv-copperband__more:hover,
#main-content .mv-copperband__more:focus{color:var(--mv-ink);border-bottom-color:#fff}

@media (max-width:900px){
  .mv-copperband__w{padding-inline:4%}
  .mv-copperband__grid{grid-template-columns:minmax(0,1fr);gap:1.5rem}
  #main-content .mv-copperband__h{max-width:none;margin-bottom:1.25rem}
  .mv-copperband__fig{margin-top:1.5rem}
}

/* --------------------------------------------------------------------------
   THE STRIP. Three tiles, hairlines on the items so an incomplete row can
   never show a grey band through the grid background.
   -------------------------------------------------------------------------- */
.mv-craftstrip{width:100%;margin-block:clamp(2.5rem,5vw,4rem)}
.mv-craftstrip *{box-sizing:border-box}
.mv-craftstrip__w{max-width:var(--mv-m);margin-inline:auto;padding-inline:var(--mv-p)}

#main-content .mv-craftstrip .mv-eyebrow{font-family:var(--mv-font-data);font-size:.6875rem;
  letter-spacing:.2em;text-transform:uppercase;font-weight:500;
  color:var(--mv-copper-deep,#8A6647);margin:0 0 .6rem;padding:0}
#main-content .mv-craftstrip__h{font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1.4rem,2.6vw,2rem);line-height:1.15;color:var(--mv-ink);
  margin:0 0 1.75rem;padding:0}

.mv-craftstrip__list{list-style:none!important;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
  border-top:1px solid #E3E1DD;border-left:1px solid #E3E1DD}
.mv-craftstrip__item{list-style:none!important;background:#fff;margin:0;
  padding:1.5rem;border-right:1px solid #E3E1DD;border-bottom:1px solid #E3E1DD}
.mv-craftstrip__item::marker{content:none}
.mv-craftstrip__fig{margin:0 0 1.1rem;overflow:hidden}
.mv-craftstrip__img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
#main-content .mv-craftstrip__n{font-family:var(--mv-font-data);font-size:.75rem;
  letter-spacing:.16em;text-transform:uppercase;font-weight:500;
  color:var(--mv-copper-deep,#8A6647);margin:0 0 .5rem;padding:0}
#main-content .mv-craftstrip__d{font-family:var(--mv-font-body);font-size:.9375rem;
  line-height:1.65;color:var(--mv-ink);margin:0;padding:0}
#main-content .mv-craftstrip__note{font-family:var(--mv-font-body);font-size:.8125rem;
  line-height:1.6;color:var(--mv-ink-70,#58595B);margin:1.25rem 0 0;padding:0;max-width:70ch}
#main-content .mv-craftstrip__note a{color:var(--mv-copper-deep,#8A6647);
  text-decoration:underline;text-underline-offset:.2em}

@media (max-width:800px){
  .mv-craftstrip__w{padding-inline:4%}
  .mv-craftstrip__list{grid-template-columns:minmax(0,1fr)}
}


/* ==========================================================================
   FULL BLEED, WHEREVER IT LANDS.
   On the home page the band sits in a full-width template and runs edge to
   edge. On La Maison and on a category it sits inside .container, which holds
   the page measure, so the copper stopped short of the edge and read as a
   floating panel rather than a band. It now breaks out of whatever parent it
   is given, and only its inner wrapper keeps the measure.

   overflow-x:clip on the content column contains the bleed. clip, not hidden:
   hidden creates a scroll container and would break the sticky header.
   ========================================================================== */
#main-content{overflow-x:clip}
.mv-copperband{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:auto}

/* --------------------------------------------------------------------------
   PAGE TITLES. The h1 was landing 28px under a 135px header and then leaving
   a cavern before the first section - cramped above, empty below. Divi sets
   these at body scale; a page title is not body scale.
   -------------------------------------------------------------------------- */
#main-content .container .entry-title.main_title,
#main-content .entry-title.main_title{
  font-family:var(--mv-font-display);
  font-weight:300;
  font-size:clamp(2.25rem,4.6vw,3.5rem);
  line-height:1.05;
  letter-spacing:-.01em;
  color:var(--mv-ink);
  margin:clamp(2.5rem,5vw,4.5rem) 0 clamp(1.25rem,2.5vw,2rem);
  padding:0;
  max-width:22ch}

/* The band follows a title closely enough to read as one block. */
#main-content .entry-title.main_title + .entry-content > .mv-copperband:first-child,
#main-content .entry-content > .mv-copperband:first-child{margin-top:clamp(1.5rem,3vw,2.5rem)}


/* ==========================================================================
   BREADCRUMB
   Divi's dynamic-content wrapper forces color:inherit!important and
   font:inherit on the product breadcrumb, so it took the surrounding module's
   type instead of ours - large, mixed case, wrapping onto two lines above the
   title. These rules carry #main-content so they clear that bar.
   ========================================================================== */
#main-content .woocommerce-breadcrumb,
#main-content .et-dynamic-content-woo--product_breadcrumb.woocommerce .woocommerce-breadcrumb{
  font-family:var(--mv-font-data)!important;
  font-size:.6875rem!important;
  font-weight:500!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  line-height:1.6!important;
  color:var(--mv-ink-55)!important;
  text-align:left!important;
  margin:0 0 1.25rem!important}

#main-content .woocommerce-breadcrumb a,
#main-content .et-dynamic-content-woo--product_breadcrumb.woocommerce .woocommerce-breadcrumb a{
  color:var(--mv-ink-55)!important;
  text-decoration:none;
  padding-bottom:1px;
  border-bottom:1px solid transparent;
  transition:border-color .2s var(--mv-ease,ease),color .2s var(--mv-ease,ease)}

#main-content .woocommerce-breadcrumb a:hover,
#main-content .woocommerce-breadcrumb a:focus-visible{
  color:var(--mv-ink)!important;
  border-bottom-color:var(--mv-copper-band,#A9866A)}

/* The separator is a hairline slash, not a glyph competing with the words. */
#main-content .woocommerce-breadcrumb .mv-crumb__sep{
  display:inline-block;
  margin:0 .55em;
  color:var(--mv-ink-25);
  font-weight:400}


/* --------------------------------------------------------------------------
   NO UPSCALING. The figure is capped at the image's own natural width, which
   the PHP writes into --nw. A 200px archive photograph then sits at 200px and
   stays sharp instead of being stretched across a 520px column.
   -------------------------------------------------------------------------- */
.mv-craftstrip__fig{max-width:min(100%,var(--nw,100%));margin:0 0 1.1rem}
.mv-craftstrip__img{display:block;width:100%;height:auto;aspect-ratio:auto}
.mv-craftstrip__item{display:flex;flex-direction:column}


/* --------------------------------------------------------------------------
   CART / CHECKOUT PAGE HEAD. The h1 was rendering at body size - the same
   element-rule-beats-component-class defect - and sat 20px under a fixed
   header. Divi's own Shopping Cart title is hidden so there is one heading.
   -------------------------------------------------------------------------- */
#main-content .mv-pagehead{padding-top:clamp(2rem,4vw,3.5rem)}
#main-content .mv-pagehead h1{
  font-family:var(--mv-font-display);
  font-weight:300;
  font-size:clamp(2rem,4vw,3rem);
  line-height:1.05;
  letter-spacing:-.01em;
  color:var(--mv-ink);
  margin:0 0 .6rem;
  padding:0}
#main-content .mv-pagehead__sub{
  font-family:var(--mv-font-body);
  font-size:1.0625rem;
  line-height:1.6;
  color:var(--mv-ink-70,#58595B);
  margin:0 0 clamp(1.5rem,3vw,2.5rem)}

/* Divi's own cart title, and its cart icon, duplicate ours. */
.woocommerce-cart .et_pb_wc_cart_notice + .et_pb_text h1,
.woocommerce-cart .et_pb_module h1.et_pb_module_header,
.woocommerce-cart .et_pb_image_0_tb_body{display:none}


/* ==========================================================================
   THE CATALOGUE GRID - rebuilt for a considered purchase.

   The old grid was auto-fill from a 230px minimum, negotiated against whatever
   width was left after the filter rail. On a wide screen that produced five or
   six small cards in a narrow box: a lot of pans, none of them worth looking
   at. For a R5,000 pan the photograph is the argument, so the card is now the
   unit of design and the column count is decided, not negotiated.

   Container queries, so the grid responds to the space it actually has rather
   than to the viewport - hide the filters and it re-flows on its own.
   ========================================================================== */
#main-content .mv-results{container-type:inline-size}

#main-content .mv-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0!important}

@container (min-width:640px){
  #main-content .mv-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@container (min-width:900px){
  #main-content .mv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@container (min-width:1280px){
  #main-content .mv-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* Fallback for anything without container query support. */
@supports not (container-type:inline-size){
  @media (min-width:1100px){#main-content .mv-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
  @media (min-width:1500px){#main-content .mv-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
}

/* --------------------------------------------------------------------------
   The card. Air around the object, then the words underneath in a quiet
   block. Nothing decorative - the hairline and the photograph do the work.
   -------------------------------------------------------------------------- */
#main-content .mv-grid>li{padding:0}
#main-content .mv-card,
#main-content .mv-card__link{display:flex;flex-direction:column;height:100%}
#main-content .mv-card__link{padding:clamp(1.25rem,2vw,2rem)}

#main-content .mv-card__img{
  aspect-ratio:1;
  background:var(--mv-paper,#fff);
  margin-bottom:clamp(1rem,1.6vw,1.5rem);
  padding:clamp(.5rem,1.4vw,1.25rem);
  display:flex;align-items:center;justify-content:center}
#main-content .mv-card__img img{
  width:100%;height:100%;object-fit:contain;
  mix-blend-mode:multiply;
  transition:transform .5s cubic-bezier(.22,.61,.36,1)}
#main-content .mv-card__link:hover .mv-card__img img{transform:scale(1.04)}

#main-content .mv-card__eyebrow{
  font-family:var(--mv-font-data);font-size:.625rem;letter-spacing:.18em;
  text-transform:uppercase;font-weight:500;color:var(--mv-copper-deep,#8A6647);
  margin:0 0 .5rem}
#main-content .mv-card__title,
#main-content .mv-card__name{
  font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1rem,1.15vw,1.1875rem);line-height:1.25;
  color:var(--mv-ink);margin:0 0 .45rem}
#main-content .mv-card__sizes{
  font-family:var(--mv-font-data);font-size:.75rem;color:var(--mv-ink-70,#58595B);
  margin:0 0 .75rem}
#main-content .mv-card__price{
  font-family:var(--mv-font-data);font-size:.9375rem;font-weight:500;
  color:var(--mv-ink);margin-top:auto;padding-top:.5rem}

/* The filter rail was taking 200px off a grid that needed it. */
@media (min-width:1024px){
  #main-content .mv-shop__body,
  #main-content .mv-shop__grid{gap:clamp(1.5rem,2.5vw,3rem)}
  #main-content .mv-filters{flex:0 0 190px;max-width:190px}
}


/* ==========================================================================
   THE SIDEBAR THAT WASN'T THERE.

   Not every category page renders inside .container. Some templates put
   #content-area straight into #main-content, and on those Divi reserves a
   sidebar column: #left-area becomes width:79.125% and floats, leaving ~300px
   of empty rail for a sidebar that has nothing in it. Every measure rule
   written against .container missed those pages entirely, which is why the
   width looked correct on some categories and narrow on others.

   Diagnosed from Stefan's browser, 9 August: viewport 1482, #left-area
   left 147 width 1173 - exactly 79.125%.
   ========================================================================== */

/* The measure, for pages that have no .container to carry it. */
#main-content > #content-area,
#main-content > .et-l--body{
  width:100%!important;
  max-width:var(--mv-m)!important;
  margin-left:auto!important;margin-right:auto!important;
  padding-left:var(--mv-p)!important;padding-right:var(--mv-p)!important}

/* ...and not twice, where .container already supplies it. */
#main-content .container #content-area{
  max-width:none!important;
  padding-left:0!important;padding-right:0!important}

/* No sidebar means no sidebar column. */
#main-content #left-area,
.et_right_sidebar #main-content #left-area,
.et_left_sidebar #main-content #left-area,
.et_full_width_page #main-content #left-area{
  width:100%!important;
  max-width:none!important;
  float:none!important;
  padding-left:0!important;padding-right:0!important;
  margin-left:0!important;margin-right:0!important}

#main-content #sidebar,
.et_right_sidebar #sidebar,
.et_left_sidebar #sidebar{display:none!important}

/* Divi draws a vertical rule between content and sidebar. Nothing to divide. */
#main-content .container:before,
#main-content #content-area:before{display:none!important}


/* ==========================================================================
   THE CONTACT FORM
   Ink on paper, one hairline, no rounded corners, no drop shadow. A form on a
   site like this should look like a form on good stationery: ruled lines, a
   quiet label, and plenty of room to write. The only colour is the copper the
   field takes when you are in it.
   ========================================================================== */

#main-content .mv-form-wrap{margin:clamp(1.5rem,3vw,2.5rem) 0 clamp(2.5rem,5vw,4rem);max-width:62rem}

#main-content .mv-form__row{display:grid;gap:clamp(1.25rem,2.5vw,2rem);grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:720px){#main-content .mv-form__row{grid-template-columns:minmax(0,1fr)}}

#main-content .mv-form__f{margin:0 0 clamp(1.25rem,2.5vw,1.75rem);display:flex;flex-direction:column}
#main-content .mv-form__f--wide{max-width:none}

#main-content .mv-form label{
  font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;font-weight:500;color:var(--mv-ink);
  margin-bottom:.6rem;display:block}
#main-content .mv-form__opt{
  font-family:var(--mv-font-data);letter-spacing:.06em;text-transform:none;
  color:var(--mv-ink-45,#939598);font-weight:400;margin-left:.5em}

/* Ruled lines, not boxes. */
#main-content .mv-form input[type=text],
#main-content .mv-form input[type=email],
#main-content .mv-form input[type=tel],
#main-content .mv-form select,
#main-content .mv-form textarea{
  width:100%;
  font-family:var(--mv-font-body);
  font-size:1.0625rem;
  line-height:1.5;
  color:var(--mv-ink);
  background:transparent;
  border:0;
  border-bottom:1px solid var(--mv-ink-25,#D5D3D1);
  border-radius:0;
  padding:.65rem 0;
  box-shadow:none;
  appearance:none;
  transition:border-color .25s var(--mv-ease,ease)}

#main-content .mv-form textarea{
  border:1px solid var(--mv-ink-25,#D5D3D1);
  padding:.9rem 1rem;
  resize:vertical;
  min-height:9rem}

#main-content .mv-form ::placeholder{color:var(--mv-ink-45,#939598);opacity:1}

#main-content .mv-form input:focus,
#main-content .mv-form select:focus,
#main-content .mv-form textarea:focus{
  outline:none;
  border-color:var(--mv-copper-band,#A9866A);
  border-bottom-width:2px}
#main-content .mv-form textarea:focus{border-width:1px;border-color:var(--mv-copper-band,#A9866A);box-shadow:inset 0 0 0 1px var(--mv-copper-band,#A9866A)}

/* The select needs its own chevron once appearance is stripped. */
#main-content .mv-form select{
  background-image:linear-gradient(45deg,transparent 50%,var(--mv-ink) 50%),linear-gradient(135deg,var(--mv-ink) 50%,transparent 50%);
  background-position:calc(100% - 12px) calc(50% + 2px),calc(100% - 7px) calc(50% + 2px);
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
  padding-right:2rem;
  cursor:pointer}

/* The honeypot. Off-screen rather than display:none, which some bots skip. */
#main-content .mv-form__pot{position:absolute!important;left:-9999px!important;
  width:1px!important;height:1px!important;overflow:hidden!important}

#main-content .mv-form__submit{margin:.5rem 0 0}
#main-content .mv-form .mv-btn--solid,
#main-content .mv-form button[type=submit]{
  display:inline-block;
  background:var(--mv-ink);
  color:#fff!important;
  border:1px solid var(--mv-ink);
  border-radius:0;
  font-family:var(--mv-font-display);
  font-size:.75rem;
  font-weight:500;
  letter-spacing:.16em;
  text-transform:uppercase;
  padding:1.05rem 2.5rem;
  cursor:pointer;
  transition:background-color .25s var(--mv-ease,ease),border-color .25s var(--mv-ease,ease)}
#main-content .mv-form button[type=submit]:hover,
#main-content .mv-form button[type=submit]:focus{
  background:var(--mv-copper-band,#A9866A);
  border-color:var(--mv-copper-band,#A9866A);
  color:var(--mv-ink)!important}

#main-content .mv-form__fine{
  font-family:var(--mv-font-body);font-size:.8125rem;line-height:1.6;
  color:var(--mv-ink-70,#58595B);margin:1.25rem 0 0;max-width:52ch}

/* Sent, and failed. */
#main-content .mv-form__done{
  background:var(--mv-copper-tint,#F4EBE3);
  border-left:3px solid var(--mv-copper-band,#A9866A);
  padding:clamp(1.5rem,3vw,2.25rem)}
#main-content .mv-form__done-h{
  font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.2;
  color:var(--mv-ink);margin:0 0 .6rem}
#main-content .mv-form__done p{font-size:1rem;line-height:1.65;color:var(--mv-ink);margin:0}
#main-content .mv-form__err{
  border-left:3px solid var(--mv-signal-red,#D2232A);
  background:#FDF3F3;padding:1rem 1.25rem;margin:0 0 1.5rem;
  font-family:var(--mv-font-body);font-size:.9375rem;color:var(--mv-ink)}


/* ==========================================================================
   IN THESE KITCHENS - the editorial pages, and the basket on each.
   The photograph runs full bleed; the argument sits at reading width; the
   basket is the same hairline grid as the catalogue so it reads as products
   rather than as an advertisement.
   ========================================================================== */
#main-content .mvk__hero{margin:clamp(1.5rem,3vw,2.5rem) 0 clamp(2rem,4vw,3rem);overflow:hidden}
#main-content .mvk__hero img{display:block;width:100%;height:auto;aspect-ratio:21/9;object-fit:cover}
@media (max-width:700px){#main-content .mvk__hero img{aspect-ratio:4/3}}

#main-content .mvk__basket{margin:clamp(2.5rem,5vw,4rem) 0 clamp(2rem,4vw,3rem)}
#main-content .mvk__basket .mv-eyebrow{margin-bottom:1rem}
#main-content .mvk__list{
  list-style:none!important;margin:0;padding:0;display:grid;gap:0;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid #E3E1DD;border-left:1px solid #E3E1DD}
@media (max-width:900px){#main-content .mvk__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){#main-content .mvk__list{grid-template-columns:minmax(0,1fr)}}
#main-content .mvk__item{
  list-style:none!important;margin:0;background:#fff;
  border-right:1px solid #E3E1DD;border-bottom:1px solid #E3E1DD}
#main-content .mvk__item::marker{content:none}
#main-content .mvk__link{
  display:flex;flex-direction:column;height:100%;
  padding:clamp(1.25rem,2vw,1.75rem);text-decoration:none;color:inherit}
#main-content .mvk__img{display:block;aspect-ratio:1;margin-bottom:1rem;
  display:flex;align-items:center;justify-content:center}
#main-content .mvk__img img{width:100%;height:100%;object-fit:contain;
  mix-blend-mode:multiply;transition:transform .5s cubic-bezier(.22,.61,.36,1)}
#main-content .mvk__link:hover .mvk__img img{transform:scale(1.04)}
#main-content .mvk__name{
  font-family:var(--mv-font-display);font-weight:300;font-size:1.0625rem;
  line-height:1.25;color:var(--mv-ink);margin-bottom:.5rem}
#main-content .mvk__link:hover .mvk__name{text-decoration:underline;text-underline-offset:.22em;text-decoration-color:var(--mv-copper-band,#A9866A)}
#main-content .mvk__price{
  font-family:var(--mv-font-data);font-size:.875rem;font-weight:500;
  color:var(--mv-ink);margin-top:auto;padding-top:.5rem}
#main-content .mvk__note{
  font-family:var(--mv-font-body);font-size:.9375rem;line-height:1.65;
  color:var(--mv-ink-70,#58595B);margin:1.25rem 0 0;max-width:68ch}


/* ==========================================================================
   ONE DAY, HOUR BY HOUR.
   The editorial pages are a timeline rather than a listicle: the hour in the
   left margin, the moment in the column, and the pan that did the work sitting
   inside the moment instead of in a grid at the bottom. A copper thread runs
   down the margin and each hour is pegged to it - the kitchen as a day, not a
   catalogue.
   ========================================================================== */
#main-content .mvk__daylabel{margin-top:clamp(2.5rem,5vw,4rem)}

#main-content .mvk__day{
  list-style:none!important;margin:1.5rem 0 0;padding:0;position:relative}
#main-content .mvk__day::before{
  content:"";position:absolute;top:.6rem;bottom:2.5rem;left:5.5rem;width:1px;
  background:linear-gradient(var(--mv-copper-band,#A9866A),rgba(169,134,106,.15))}
@media (max-width:760px){#main-content .mvk__day::before{left:0}}

#main-content .mvk__hour{
  list-style:none!important;display:grid;
  grid-template-columns:5.5rem minmax(0,1fr);
  gap:0 clamp(1.5rem,3vw,3rem);
  padding:0 0 clamp(2.5rem,5vw,4rem);position:relative}
#main-content .mvk__hour::marker{content:none}
@media (max-width:760px){
  #main-content .mvk__hour{grid-template-columns:minmax(0,1fr);padding-left:1.75rem}
}

#main-content .mvk__when{position:relative}
#main-content .mvk__time{
  font-family:var(--mv-font-data);font-size:.8125rem;font-weight:500;
  letter-spacing:.1em;color:var(--mv-copper-deep,#8A6647);
  display:block;padding-top:.15rem}
/* the peg on the thread */
#main-content .mvk__when::after{
  content:"";position:absolute;top:.5rem;left:5.5rem;width:9px;height:9px;
  margin-left:-4px;border-radius:50%;
  background:var(--mv-copper-band,#A9866A)}
@media (max-width:760px){
  #main-content .mvk__when::after{left:-1.75rem;margin-left:-4px}
}

#main-content .mvk__head{
  font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1.375rem,2.4vw,1.875rem);line-height:1.15;
  color:var(--mv-ink);margin:0 0 .7rem;padding:0;max-width:28ch}
#main-content .mvk__prose{
  font-family:var(--mv-font-body);font-size:1.0625rem;line-height:1.7;
  color:var(--mv-ink);margin:0 0 1.5rem;max-width:60ch}

/* The pan, sitting inside the moment it belongs to. */
#main-content .mvk__pan{
  display:flex;align-items:center;gap:1.25rem;
  max-width:34rem;padding:1rem 1.25rem;text-decoration:none;color:inherit;
  border:1px solid #E3E1DD;background:#fff;
  transition:border-color .3s var(--mv-ease,ease),background-color .3s var(--mv-ease,ease)}
#main-content .mvk__pan:hover{border-color:var(--mv-copper-band,#A9866A);background:var(--mv-copper-tint,#F4EBE3)}
#main-content .mvk__pan-img{flex:0 0 84px;width:84px;height:84px;display:flex;align-items:center;justify-content:center}
#main-content .mvk__pan-img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
#main-content .mvk__pan-txt{display:flex;flex-direction:column;min-width:0}
#main-content .mvk__pan-k{
  font-family:var(--mv-font-data);font-size:.625rem;letter-spacing:.2em;
  text-transform:uppercase;font-weight:500;color:var(--mv-copper-deep,#8A6647);
  margin-bottom:.3rem}
#main-content .mvk__pan-n{
  font-family:var(--mv-font-display);font-weight:300;font-size:1.0625rem;
  line-height:1.25;color:var(--mv-ink);margin-bottom:.25rem}
#main-content .mvk__pan-p{
  font-family:var(--mv-font-data);font-size:.8125rem;font-weight:500;color:var(--mv-ink-70,#58595B)}

#main-content .mvk__close{
  border-top:1px solid var(--mv-ink-25,#D5D3D1);
  padding-top:clamp(1.5rem,3vw,2.25rem);margin-top:clamp(.5rem,2vw,1.5rem)}
#main-content .mvk__close p{
  font-family:var(--mv-font-display);font-weight:300;
  font-size:clamp(1.125rem,1.9vw,1.4375rem);line-height:1.5;
  color:var(--mv-ink);margin:0;max-width:56ch}


/* The recipe, inside the hour that cooks it. Copper rule, so it reads as a
   door out of the page rather than another product. */
#main-content .mvk__recipe{margin:0 0 1.25rem}
#main-content .mvk__recipe a{
  display:inline-flex;align-items:baseline;gap:.75rem;text-decoration:none;
  border-bottom:1px solid var(--mv-copper-band,#A9866A);padding-bottom:.35rem}
#main-content .mvk__recipe-k{
  font-family:var(--mv-font-data);font-size:.625rem;letter-spacing:.2em;
  text-transform:uppercase;font-weight:500;color:var(--mv-copper-deep,#8A6647)}
#main-content .mvk__recipe-n{
  font-family:var(--mv-font-display);font-weight:300;font-size:1.0625rem;color:var(--mv-ink)}
#main-content .mvk__recipe a:hover .mvk__recipe-n{color:var(--mv-copper-deep,#8A6647)}

/* Recipe pages */
#main-content .mvr__meta{display:flex;flex-wrap:wrap;gap:2rem;margin:1.5rem 0 2.5rem;padding:1rem 0;border-top:1px solid var(--mv-ink-25,#D5D3D1);border-bottom:1px solid var(--mv-ink-25,#D5D3D1);font-family:var(--mv-font-data);font-size:.8125rem;color:var(--mv-ink-70,#58595B)}
#main-content .mvr__meta strong{font-weight:500;color:var(--mv-ink);letter-spacing:.1em;text-transform:uppercase;font-size:.625rem;display:block;margin-bottom:.2rem}
#main-content .mvr__pan{margin:2rem 0 2.5rem}
#main-content .mvr__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:clamp(2rem,4vw,4rem);margin-bottom:2.5rem}
@media (max-width:820px){#main-content .mvr__cols{grid-template-columns:minmax(0,1fr)}}
#main-content .mvr__steps{list-style:none;counter-reset:mvs;margin:0;padding:0}
#main-content .mvr__steps li{counter-increment:mvs;position:relative;padding-left:2.5rem;margin-bottom:1.1rem;line-height:1.7;font-size:1.0625rem}
#main-content .mvr__steps li::before{content:counter(mvs,decimal-leading-zero);position:absolute;left:0;top:.15rem;font-family:var(--mv-font-data);font-size:.75rem;letter-spacing:.1em;color:var(--mv-copper-deep,#8A6647);font-weight:500}
#main-content .mvr__detail{background:var(--mv-copper-tint,#F4EBE3);border-left:3px solid var(--mv-copper-band,#A9866A);padding:clamp(1.5rem,3vw,2rem);margin:0 0 2rem}
#main-content .mvr__detail p:last-child{margin:0;font-size:1.0625rem;line-height:1.7}


/* Index pages: the lead is not a heading, so give these pages a real h1. */
#main-content .mv-page > .mv-h1,#main-content .mv-display{font-family:var(--mv-font-display);font-weight:300;font-size:clamp(2.25rem,4.6vw,3.5rem);line-height:1.05;letter-spacing:-.01em;color:var(--mv-ink);margin:0 0 1.25rem;padding:0;max-width:22ch}
#main-content .mvk__index .mvk__price,#main-content .mvr__index .mvk__price{font-family:var(--mv-font-body);font-size:.9375rem;line-height:1.6;color:var(--mv-ink-70,#58595B);letter-spacing:0;font-weight:400}


/* The legal pages write their own display heading, so Divi's entry-title is a
   second h1 saying the same words. Two h1s is a real SEO fault, not a nicety:
   remove the duplicate rather than restyle it. */
#main-content .entry-content:has(.mv-display) ~ *,
body.page .entry-title.main_title:has(+ .entry-content .mv-display){display:none}

/* the theme's entry-title is the one h1; ours are h2 at display scale */
#main-content h2.mv-display,#main-content h2.mv-h1{font-family:var(--mv-font-display);font-weight:300;font-size:clamp(2rem,4vw,3rem);line-height:1.08;color:var(--mv-ink);margin:0 0 1.25rem;padding:0}


/* ---- buying guides ---- */
#main-content .mvs__links{margin:clamp(2rem,4vw,3rem) 0;padding:clamp(1.5rem,3vw,2rem);background:var(--mv-copper-tint,#F4EBE3);border-left:3px solid var(--mv-copper-band,#A9866A)}
#main-content .mvs__list{list-style:none!important;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.75rem 2rem}
#main-content .mvs__list li{list-style:none!important;margin:0;padding:0}
#main-content .mvs__list li::marker{content:none}
#main-content .mvs__list a{font-family:var(--mv-font-display);font-size:1.0625rem;color:var(--mv-ink);text-decoration:none;border-bottom:1px solid var(--mv-copper-band,#A9866A);padding-bottom:2px}
#main-content .mvs__list a:hover{color:var(--mv-copper-deep,#8A6647)}
#main-content .mvs__faq{margin:clamp(2rem,4vw,3rem) 0 0;border-top:1px solid var(--mv-ink-25,#D5D3D1);padding-top:clamp(1.5rem,3vw,2.5rem)}
#main-content .mvs__qa{padding:0 0 1.5rem;border-bottom:1px solid #E3E1DD;margin-bottom:1.5rem}
#main-content .mvs__qa:last-child{border-bottom:0;margin-bottom:0}
#main-content .mvs__qa h3{font-family:var(--mv-font-display);font-weight:300;font-size:clamp(1.125rem,1.9vw,1.375rem);line-height:1.25;color:var(--mv-ink);margin:0 0 .6rem;padding:0}
#main-content .mvs__qa p{font-family:var(--mv-font-body);font-size:1rem;line-height:1.7;color:var(--mv-ink);margin:0;max-width:68ch}

/* MOQ note on the product page */
#main-content .mv-moq{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--mv-copper-deep,#8A6647);margin:0 0 .75rem;padding:0}

/* Cloudflare Turnstile slot. Empty and zero-height until the widget
   decides a visitor needs to interact, so it must not reserve space. */
.mv-form__ts{margin:0 0 1.25rem}
.mv-form__ts:empty{margin:0}
.mv-form__ts iframe{max-width:100%}


/* ---- mauviel-footer.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA - FOOTER
   Ink ground, paper type, copper for the labels. Same measure as everything
   else, so it lines up with the header and the content on every page.
   ========================================================================== */

.mvf{background:var(--mv-ink,#231F20);color:#fff;width:100%;margin-top:clamp(3rem,6vw,6rem)}
.mvf *{box-sizing:border-box}
.mvf__w{max-width:var(--mv-m,2200px);margin-left:auto;margin-right:auto;padding-left:var(--mv-p,3%);padding-right:var(--mv-p,3%)}

/* ---- the reassurance band ---- */
.mvf__assure{border-bottom:1px solid rgba(255,255,255,.14)}
.mvf__assure-list{list-style:none!important;margin:0;padding:clamp(2rem,4vw,3rem) 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3.5rem)}
.mvf__assure-list li{list-style:none!important;margin:0;padding:0}
.mvf__assure-list li::marker{content:none}
.mvf__a-k{display:block;font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mv-copper-light,#C9AC93);margin-bottom:.6rem}
.mvf__a-v{display:block;font-family:var(--mv-font-body);font-size:.9375rem;line-height:1.65;color:#E7E4DF;max-width:38ch}

/* ---- the columns ---- */
.mvf__main{padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(2rem,4vw,3.5rem)}
.mvf__cols{display:grid;gap:clamp(2rem,4vw,4rem);grid-template-columns:1.6fr repeat(3,minmax(0,1fr))}

.mvf__mark{font-family:var(--mv-font-display);font-weight:300;font-size:1.5rem;color:#fff;margin:0 0 1rem;padding:0}
.mvf__mark span{color:var(--mv-copper-light,#C9AC93)}
.mvf__blurb{font-family:var(--mv-font-body);font-size:.9375rem;line-height:1.7;color:#C9C4BA;margin:0 0 1.5rem;padding:0;max-width:40ch}
.mvf__tel{margin:0 0 1.5rem;padding:0}
.mvf__tel a{font-family:var(--mv-font-display);font-size:1.25rem;color:#fff;text-decoration:none;border-bottom:1px solid var(--mv-copper-band,#A9866A);padding-bottom:.2rem}
.mvf__tel a:hover{color:var(--mv-copper-light,#C9AC93)}
.mvf__hours{display:block;font-family:var(--mv-font-data);font-size:.75rem;letter-spacing:.1em;color:#9A958C;margin-top:.6rem}
.mvf__cta{margin:0}
.mvf__btn{display:inline-block;font-family:var(--mv-font-display);font-size:.75rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.4);padding:.9rem 1.75rem;transition:background-color .25s ease,border-color .25s ease,color .25s ease}
.mvf__btn:hover{background:var(--mv-copper-band,#A9866A);border-color:var(--mv-copper-band,#A9866A);color:var(--mv-ink,#231F20)}

.mvf__h{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mv-copper-light,#C9AC93);margin:0 0 1.1rem;padding:0}
.mvf__list{list-style:none!important;margin:0;padding:0}
.mvf__list li{list-style:none!important;margin:0 0 .7rem;padding:0}
.mvf__list li::marker{content:none}
.mvf__list a{font-family:var(--mv-font-body);font-size:.9375rem;line-height:1.5;color:#E7E4DF;text-decoration:none;border-bottom:1px solid transparent;padding-bottom:1px;transition:border-color .2s ease,color .2s ease}
.mvf__list a:hover,.mvf__list a:focus-visible{color:#fff;border-bottom-color:var(--mv-copper-band,#A9866A)}

/* ---- the legal strip ---- */
.mvf__legal{border-top:1px solid rgba(255,255,255,.14);padding:clamp(1.25rem,2.5vw,1.75rem) 0 clamp(1.75rem,3vw,2.5rem)}
.mvf__legal-in{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:flex-start}
.mvf__co,.mvf__fine{font-family:var(--mv-font-data);font-size:.75rem;line-height:1.7;color:#9A958C;margin:0;padding:0}
.mvf__fine a{color:#C9C4BA;text-decoration:none;border-bottom:1px solid transparent}
.mvf__fine a:hover{color:#fff;border-bottom-color:var(--mv-copper-band,#A9866A)}
.mvf__fine span{color:#5E594F;margin:0 .35rem}

/* ---- responsive ---- */
@media (max-width:1100px){
  .mvf__cols{grid-template-columns:1fr 1fr}
  .mvf__col--brand{grid-column:1 / -1;margin-bottom:1rem}
}
@media (max-width:820px){
  .mvf__assure-list{grid-template-columns:minmax(0,1fr);gap:1.75rem}
}
@media (max-width:560px){
  .mvf__cols{grid-template-columns:minmax(0,1fr)}
  .mvf__legal-in{flex-direction:column}
}

/* Divi's own footer, if anything still renders it. */
#main-footer,#footer-bottom,.et-l--footer .et_pb_section:not(.mvf){display:none}


/* ---- mauviel-catindex.css ---- */
/* ==========================================================================
   MAUVIEL SOUTH AFRICA - THE CATALOGUE LANDING PAGE  (/product-category/)
   Full-bleed sections, one measure, and a two-up grid where the photograph
   carries the collection and the copy says who it is for.
   ========================================================================== */

.mvci{width:100%}
.mvci *{box-sizing:border-box}
.mvci__w{max-width:var(--mv-m,2200px);margin-left:auto;margin-right:auto;padding-left:var(--mv-p,3%);padding-right:var(--mv-p,3%)}

.mvci__head{padding:clamp(2.5rem,5vw,4.5rem) 0 clamp(1.5rem,3vw,2.5rem)}
.mvci__h1{font-family:var(--mv-font-display);font-weight:300;font-size:clamp(2.25rem,4.6vw,3.5rem);line-height:1.05;letter-spacing:-.01em;color:var(--mv-ink);margin:0 0 1.25rem;padding:0;max-width:22ch}
.mvci__lead{font-family:var(--mv-font-body);font-size:clamp(1.0625rem,1.6vw,1.3125rem);line-height:1.6;color:var(--mv-ink);margin:0 0 1rem;padding:0;max-width:62ch}
.mvci__sub{font-family:var(--mv-font-body);font-size:1rem;line-height:1.6;color:var(--mv-ink-70,#58595B);margin:0;padding:0;max-width:62ch}
.mvci__sub a{color:var(--mv-copper-deep,#8A6647);text-decoration:none;border-bottom:1px solid var(--mv-copper-band,#A9866A);padding-bottom:1px}
.mvci__sub a:hover{color:var(--mv-ink)}

.mvci__body{padding-bottom:clamp(2rem,4vw,3.5rem)}
.mvci__grid{list-style:none!important;margin:0;padding:0;display:grid;gap:0;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #E3E1DD;border-left:1px solid #E3E1DD}
.mvci__item{list-style:none!important;margin:0;background:#fff;border-right:1px solid #E3E1DD;border-bottom:1px solid #E3E1DD}
.mvci__item::marker{content:none}

.mvci__link{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr);align-items:stretch;height:100%;text-decoration:none;color:inherit}
.mvci__img{display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--mv-paper-warm,#EEEEE8);padding:clamp(1rem,2vw,2rem)}
.mvci__img img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .6s cubic-bezier(.22,.61,.36,1)}
.mvci__link:hover .mvci__img img{transform:scale(1.05)}

.mvci__txt{display:flex;flex-direction:column;padding:clamp(1.5rem,2.5vw,2.5rem)}
.mvci__n{font-family:var(--mv-font-display);font-weight:300;font-size:clamp(1.5rem,2.4vw,2.125rem);line-height:1.1;color:var(--mv-ink);margin-bottom:.4rem}
.mvci__count{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:var(--mv-copper-deep,#8A6647);margin-bottom:1rem}
.mvci__d{font-family:var(--mv-font-body);font-size:.9375rem;line-height:1.65;color:var(--mv-ink);margin-bottom:1.5rem;max-width:44ch}
.mvci__go{font-family:var(--mv-font-data);font-size:.6875rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;color:var(--mv-ink);margin-top:auto;padding-bottom:.35rem;border-bottom:1px solid var(--mv-ink);align-self:flex-start;transition:border-color .25s ease,color .25s ease}
.mvci__link:hover .mvci__go{color:var(--mv-copper-deep,#8A6647);border-bottom-color:var(--mv-copper-band,#A9866A)}

.mvci__foot{border-top:1px solid var(--mv-ink-25,#D5D3D1);padding:clamp(1.5rem,3vw,2.5rem) 0 clamp(2.5rem,5vw,4rem)}
.mvci__note{font-family:var(--mv-font-body);font-size:.9375rem;line-height:1.7;color:var(--mv-ink-70,#58595B);margin:0;padding:0;max-width:72ch}
.mvci__note a{color:var(--mv-copper-deep,#8A6647);text-decoration:underline;text-underline-offset:.2em}

@media (max-width:980px){
  .mvci__grid{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:620px){
  .mvci__link{grid-template-columns:minmax(0,1fr)}
  .mvci__img{aspect-ratio:4/3}
}

