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