/* ==========================================================================
   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}


/* ============================ MV CHECKOUT BUTTON GUARD =====================
   Reported 2026-08-21: no Place order button visible at checkout. The button
   IS in the markup - WooCommerce renders it - so this makes it impossible to
   hide, whatever else the cascade is doing. Literal colours, no custom
   properties: a var() that fails to resolve drops the whole declaration and
   leaves white text on white, which is one way to get an invisible button.
   ========================================================================= */
#place_order,
.woocommerce #place_order,
.woocommerce-checkout #place_order,
button#place_order,
input#place_order,
.form-row.place-order #place_order{
  display:inline-block!important;visibility:visible!important;opacity:1!important;
  position:static!important;transform:none!important;pointer-events:auto!important;
  width:auto!important;height:auto!important;min-height:3rem!important;
  overflow:visible!important;clip:auto!important;clip-path:none!important;
  text-indent:0!important;font-size:.8125rem!important;line-height:1.2!important;
  padding:1em 2em!important;margin-top:1rem!important;
  background:#231F20!important;background-color:#231F20!important;
  color:#FFFFFF!important;border:1px solid #231F20!important;border-radius:0!important;
  text-transform:uppercase;letter-spacing:.16em;font-weight:500!important;
  cursor:pointer!important}
#place_order:hover{background:#AB9974!important;background-color:#AB9974!important;
  border-color:#AB9974!important;color:#FFFFFF!important}
.form-row.place-order,
#payment .place-order,
#payment .form-row.place-order,
.woocommerce-checkout #payment .form-row.place-order{
  display:block!important;visibility:visible!important;opacity:1!important;
  height:auto!important;max-height:none!important;overflow:visible!important}


/* ============================== MV CART BUTTON GUARD =======================
   Same treatment as the checkout button, for the cart page's Proceed to
   checkout link. Literal colours, nothing that can fail to resolve, and
   nothing that depends on an ancestor class being present.
   ========================================================================= */
.checkout-button,
.wc-proceed-to-checkout a,
.wc-proceed-to-checkout .button,
a.checkout-button,
.woocommerce .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a{
  display:block!important;visibility:visible!important;opacity:1!important;
  position:static!important;transform:none!important;pointer-events:auto!important;
  width:100%!important;max-width:100%!important;height:auto!important;
  min-height:3.25rem!important;line-height:1.25!important;
  overflow:visible!important;clip:auto!important;clip-path:none!important;
  text-indent:0!important;text-align:center!important;text-decoration:none!important;
  font-size:.875rem!important;font-weight:500!important;
  text-transform:uppercase;letter-spacing:.16em;
  padding:1.1em 1.5em!important;margin:1.25rem 0 0!important;
  background:#231F20!important;background-color:#231F20!important;
  color:#FFFFFF!important;border:1px solid #231F20!important;border-radius:0!important;
  box-shadow:none!important;cursor:pointer!important}
.checkout-button:hover,.wc-proceed-to-checkout a:hover{
  background:#AB9974!important;background-color:#AB9974!important;
  border-color:#AB9974!important;color:#FFFFFF!important}
.wc-proceed-to-checkout,.cart_totals,.cart-collaterals{
  display:block!important;visibility:visible!important;opacity:1!important;
  height:auto!important;max-height:none!important;overflow:visible!important}
