/**
 * MON PORTE — Categories Showcase / Category Card design system.
 *
 * Strictly scoped to .mpc-sec / .mpc-card and descendants. No global
 * element selectors. Base rules equal option defaults; preset classes
 * are fallbacks only (explicit per-instance rules always win).
 * Motion is hover-gated and reduced-motion safe. No JS required.
 */

/* ============ section base ============ */
.mpc-sec {
  display: block;
  position: relative;
  padding: 64px 24px;
  --mpc-dur: 280ms;
  --mpc-ease: cubic-bezier(.22,.61,.36,1);
}
.mpc-w-contained { max-width: 1200px; margin-left: auto; margin-right: auto; }
.mpc-w-wide { max-width: 1400px; margin-left: auto; margin-right: auto; }
.mpc-w-full { max-width: none; }
.mpc-w-custom { margin-left: auto; margin-right: auto; }
.mpc-sec-align-left.mpc-w-contained,
.mpc-sec-align-left.mpc-w-wide,
.mpc-sec-align-left.mpc-w-custom { margin-left: 0; margin-right: auto; }
.mpc-sec-align-right.mpc-w-contained,
.mpc-sec-align-right.mpc-w-wide,
.mpc-sec-align-right.mpc-w-custom { margin-left: auto; margin-right: 0; }
.mpc-ov-h { overflow: hidden; }
.mpc-sec-bgwrap { position: absolute; inset: 0; overflow: hidden; z-index: 0; pointer-events: none; }
.mpc-sec-bg { width: 100%; height: 100%; object-fit: cover; display: block; }
.mpc-sec-ov { position: absolute; inset: 0; }
.mpc-head, .mpc-grid, .mpc-tag { position: relative; z-index: 1; }

/* ============ header ============ */
.mpc-head { margin-bottom: 40px; text-align: center; }
.mpc-align-left { text-align: left; }
.mpc-align-center { text-align: center; }
.mpc-align-right { text-align: right; }
.mpc-eyebrow, .mpc-sec-title, .mpc-sub, .mpc-card-eyebrow,
.mpc-card-title, .mpc-card-desc, .mpc-tag-txt { margin: 0; }
.mpc-eyebrow {
  font-size: 13px; font-weight: 600; letter-spacing: 2px; line-height: 1.4;
  text-transform: uppercase; color: #8A6D5C; margin-bottom: 12px;
}
.mpc-sec-title {
  font-size: 40px; font-weight: 600; line-height: 1.1; color: #1F1E1B;
  margin-bottom: 12px;
  /* UI Polish: editorial section headings join the Playfair voice
  (PDP product-title precedent). Explicit per-instance family choices
  (mpc-ff-* classes / title_family rules) still win; inline
  page-content headings are untouched. */
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
}
.mpc-sub { font-size: 16px; line-height: 1.6; color: #5C554E; }
.mpc-balance, .mpc-t-balance .mpc-card-title, .mpc-dt-balance .mpc-card-title { text-wrap: balance; }

/* ============ grid ============ */
.mpc-grid {
  display: grid;
  grid-template-columns: repeat(var(--mpc-cols, 4), 1fr);
  column-gap: var(--mpc-gap-x, 24px);
  row-gap: var(--mpc-gap-y, 24px);
  align-items: stretch;
}
.mpc-ai-start .mpc-grid { align-items: start; }
.mpc-ai-center .mpc-grid { align-items: center; }
.mpc-ai-end .mpc-grid { align-items: end; }
@media (max-width: 849px) {
  .mpc-grid { grid-template-columns: repeat(var(--mpc-cols-md, 2), 1fr); }
}
@media (max-width: 549px) {
  .mpc-grid { grid-template-columns: repeat(var(--mpc-cols-sm, 1), 1fr); }
}

/* ============ card base ============ */
.mpc-card {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border-radius: 18px;
  border: 0 solid transparent;
  background-color: transparent;
  box-shadow: 0 18px 40px -18px rgba(30,25,20,.25);
  isolation: isolate;
}
.mpc-hm-aspect .mpc-card { aspect-ratio: var(--mpc-ar, 3 / 4); }
@media (max-width: 849px) {
  .mpc-hm-aspect .mpc-card { aspect-ratio: var(--mpc-ar-md, var(--mpc-ar, 3 / 4)); }
}
@media (max-width: 549px) {
  .mpc-hm-aspect .mpc-card { aspect-ratio: var(--mpc-ar-sm, var(--mpc-ar-md, var(--mpc-ar, 3 / 4))); }
}
.mpc-card.mpc-hm-aspect { aspect-ratio: var(--mpc-c-ar, var(--mpc-ar, 3 / 4)); }
@media (max-width: 849px) {
  .mpc-card.mpc-hm-aspect { aspect-ratio: var(--mpc-c-ar-md, var(--mpc-ar-md, var(--mpc-c-ar, var(--mpc-ar, 3 / 4)))); }
}
@media (max-width: 549px) {
  .mpc-card.mpc-hm-aspect { aspect-ratio: var(--mpc-c-ar-sm, var(--mpc-c-ar-md, var(--mpc-ar-md, var(--mpc-c-ar, var(--mpc-ar, 3 / 4))))); }
}

/* ============ media / overlay ============ */
.mpc-media { position: absolute; inset: 0; z-index: 0; }
.mpc-media-pic { display: block; width: 100%; height: 100%; }
.mpc-img { display: block; width: 100%; height: 100%; object-fit: cover; }
.mpc-fit-contain .mpc-img { object-fit: contain; }
.mpc-media img {
  transform: translate(var(--mpc-dx, 0px), var(--mpc-dy, 0px)) scale(calc(var(--mpc-img-s, 1) * var(--mpc-img-hs, 1)));
  transition: transform var(--mpc-dur, 280ms) var(--mpc-ease, ease);
}
.mpc-ov {
  position: absolute; inset: 0; z-index: 1; pointer-events: none;
  /* UI Polish: slightly deeper + earlier editorial gradient so white
  copy stays legible over the lightest photo regions. Photography
  stays visible (top third untouched). Per-instance overlay controls
  (type/color/strength/fade, incl. responsive strength) still win. */
  background: var(--mpc-c-ov, var(--mpc-ov, linear-gradient(180deg, rgba(0,0,0,0) 32%, rgba(20,16,12,.78) 100%)));
  opacity: .85;
  transition: opacity var(--mpc-dur, 280ms) var(--mpc-ease, ease), filter var(--mpc-dur, 280ms) var(--mpc-ease, ease);
}
/* UI Polish: text-local scrim for the lightest image regions. Subtle
enough to vanish over dark areas; keeps type readable where the
gradient alone is thin. */
.mpc-card-title, .mpc-card-desc { text-shadow: 0 1px 14px rgba(20,16,12,.45); }

/* ============ content positions ============ */
.mpc-content {
  position: absolute; z-index: 2;
  display: flex; flex-direction: column; min-width: 0;
  padding: 24px;
}
.mpc-dpos-top-left .mpc-card .mpc-content, .mpc-card.mpc-pos-top-left .mpc-content { top: 0; left: 0; right: 0; align-items: flex-start; }
.mpc-dpos-top-center .mpc-card .mpc-content, .mpc-card.mpc-pos-top-center .mpc-content { top: 0; left: 0; right: 0; align-items: center; text-align: center; }
.mpc-dpos-top-right .mpc-card .mpc-content, .mpc-card.mpc-pos-top-right .mpc-content { top: 0; left: 0; right: 0; align-items: flex-end; text-align: right; }
.mpc-dpos-center-left .mpc-card .mpc-content, .mpc-card.mpc-pos-center-left .mpc-content { top: 50%; left: 0; right: 0; transform: translateY(-50%); align-items: flex-start; }
.mpc-dpos-center .mpc-card .mpc-content, .mpc-card.mpc-pos-center .mpc-content { top: 50%; left: 0; right: 0; transform: translateY(-50%); align-items: center; text-align: center; }
.mpc-dpos-center-right .mpc-card .mpc-content, .mpc-card.mpc-pos-center-right .mpc-content { top: 50%; left: 0; right: 0; transform: translateY(-50%); align-items: flex-end; text-align: right; }
.mpc-dpos-bottom-left .mpc-card .mpc-content, .mpc-card.mpc-pos-bottom-left .mpc-content { bottom: 0; left: 0; right: 0; align-items: flex-start; }
.mpc-dpos-bottom-center .mpc-card .mpc-content, .mpc-card.mpc-pos-bottom-center .mpc-content { bottom: 0; left: 0; right: 0; align-items: center; text-align: center; }
.mpc-dpos-bottom-right .mpc-card .mpc-content, .mpc-card.mpc-pos-bottom-right .mpc-content { bottom: 0; left: 0; right: 0; align-items: flex-end; text-align: right; }
.mpc-dpos-custom .mpc-card .mpc-content {
  left: var(--mpc-d-ox, 50%); top: var(--mpc-d-oy, 50%);
  transform: translate(-50%, -50%); align-items: flex-start;
}
.mpc-card.mpc-pos-custom .mpc-content {
  left: var(--mpc-c-ox, var(--mpc-d-ox, 50%)); top: var(--mpc-c-oy, var(--mpc-d-oy, 50%));
  transform: translate(-50%, -50%); align-items: flex-start;
}

/* ============ card typography base ============ */
.mpc-card-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: 1.5px; line-height: 1.4; text-transform: uppercase; color: #FFF; margin-bottom: 8px; }
.mpc-card-title { font-size: 26px; font-weight: 600; line-height: 1.2; color: #FFF; margin-bottom: 8px; transition: color var(--mpc-dur, 280ms) var(--mpc-ease, ease); }
.mpc-card-desc { font-size: 15px; line-height: 1.55; color: rgba(255,255,255,.85); margin-bottom: 12px; }
.mpc-card-desc:last-child { margin-bottom: 0; }
.mpc-clamp-2 .mpc-card-desc, .mpc-dclamp-2 .mpc-card-desc { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mpc-clamp-3 .mpc-card-desc, .mpc-dclamp-3 .mpc-card-desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.mpc-clamp-4 .mpc-card-desc, .mpc-dclamp-4 .mpc-card-desc { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }

/* ============ CTA ============ */
.mpc-cta-row { display: flex; align-items: center; gap: 12px; }
.mpc-cta {
  position: relative; display: inline-flex; align-items: center;
  font-size: 13px; font-weight: 600; letter-spacing: 1.5px; line-height: 1.4;
  text-transform: uppercase; color: #FFF; text-decoration: none;
  padding-bottom: 6px;
  transition: color var(--mpc-dur, 280ms) var(--mpc-ease, ease);
}
.mpc-cta-txt { position: relative; display: inline-block; }
.mpc-cta::after {
  content: ""; position: absolute; left: 0; bottom: 0;
  width: 100%; height: 1px; background: currentColor;
  transition: width var(--mpc-dur, 280ms) var(--mpc-ease, ease), background-color var(--mpc-dur, 280ms) var(--mpc-ease, ease);
}
.mpc-no-ul .mpc-cta::after { display: none; }
/* parent display masters: hide parent-sourced rows only (custom cards keep theirs) */
.mpc-no-cta .mpc-card:not(.mpc-cta-custom) .mpc-cta-row { display: none; }
.mpc-no-ar .mpc-card:not([class*="mpc-ar-"]) .mpc-arrow-abs,
.mpc-no-ar .mpc-card:not([class*="mpc-ar-"]) .mpc-arrow-inline { display: none; }

/* ============ stretched link ============ */
.mpc-link { position: absolute; inset: 0; z-index: 5; }
.mpc-link-fill { position: absolute; inset: 0; display: block; }
.mpc-link:focus-visible { outline: 2px solid #FFF; outline-offset: -6px; border-radius: inherit; }
.mpc-card:focus-within { outline: 2px solid rgba(255,255,255,.9); outline-offset: 3px; }
.mpc-cta:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }

/* ============ arrow ============ */
.mpc-arrow {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; font-size: 18px;
  border: 1px solid rgba(255,255,255,.6); border-radius: 50%;
  background: rgba(255,255,255,.14); color: #FFF;
  transition: background-color var(--mpc-dur, 280ms) var(--mpc-ease, ease), color var(--mpc-dur, 280ms) var(--mpc-ease, ease), border-color var(--mpc-dur, 280ms) var(--mpc-ease, ease), transform var(--mpc-dur, 280ms) var(--mpc-ease, ease);
}
.mpc-arrow i, .mpc-arrow svg { display: block; line-height: 1; transition: transform var(--mpc-dur, 280ms) var(--mpc-ease, ease); }
.mpc-arc-none { border-color: transparent; background: transparent; border-radius: 0; width: auto; height: auto; }
.mpc-arc-rounded { border-radius: 14px; }
.mpc-arrow-inline { position: static; }
.mpc-arrow-abs { position: absolute; z-index: 4; }
/* parent-driven positions */
.mpc-dar-bottom-right .mpc-card .mpc-arrow-abs, .mpc-card.mpc-ar-bottom-right .mpc-arrow-abs { right: 24px; bottom: 24px; }
.mpc-dar-bottom-left .mpc-card .mpc-arrow-abs, .mpc-card.mpc-ar-bottom-left .mpc-arrow-abs { left: 24px; bottom: 24px; }
.mpc-dar-top-right .mpc-card .mpc-arrow-abs, .mpc-card.mpc-ar-top-right .mpc-arrow-abs { right: 24px; top: 24px; }
.mpc-dar-top-left .mpc-card .mpc-arrow-abs, .mpc-card.mpc-ar-top-left .mpc-arrow-abs { left: 24px; top: 24px; }
.mpc-dar-with-cta .mpc-card .mpc-arrow-abs { position: static; margin-top: 12px; align-self: flex-start; }
.mpc-dar-custom .mpc-card .mpc-arrow-abs { right: var(--mpc-d-aox, 24px); bottom: var(--mpc-d-aoy, 24px); }
.mpc-card.mpc-ar-custom .mpc-arrow-abs { right: var(--mpc-c-aox, var(--mpc-d-aox, 24px)); bottom: var(--mpc-c-aoy, var(--mpc-d-aoy, 24px)); }
/* parent-driven container shapes */
.mpc-darc-none .mpc-card .mpc-arrow-abs { border-color: transparent; background: transparent; border-radius: 0; width: auto; height: auto; }
.mpc-darc-rounded .mpc-card .mpc-arrow-abs { border-radius: 14px; }

/* ============ per-part visibility ============ */
@media (max-width: 549px) {
  .mpc-v-hm, .mpc-v-dt { display: none !important; }
}
@media (max-width: 849px) {
  .mpc-v-d { display: none !important; }
}

/* ============ hover presets (hover-capable only) ============ */
@media (hover: hover) and (pointer: fine) {
  .mpc-hp-zoom .mpc-card .mpc-media img, .mpc-card.mpc-h-zoom .mpc-media img { --mpc-img-hs: 1.04; }
  .mpc-hp-drift .mpc-card .mpc-media img, .mpc-card.mpc-h-drift .mpc-media img { --mpc-img-hs: 1.08; }
  .mpc-hp-drift .mpc-card:hover .mpc-media img, .mpc-card.mpc-h-drift:hover .mpc-media img { --mpc-dx: 8px; --mpc-dy: -6px; }
  .mpc-hp-lift .mpc-card:hover .mpc-content, .mpc-card.mpc-h-lift:hover .mpc-content { --mpc-cy: -4px; }
  .mpc-hp-darken .mpc-card:hover .mpc-ov, .mpc-card.mpc-h-darken:hover .mpc-ov { filter: brightness(.72); }
  .mpc-hp-arrow .mpc-card:hover .mpc-arrow i, .mpc-hp-arrow .mpc-card:hover .mpc-arrow svg,
  .mpc-card.mpc-h-arrow:hover .mpc-arrow i, .mpc-card.mpc-h-arrow:hover .mpc-arrow svg { transform: translateX(3px); }
  .mpc-hp-reveal .mpc-card .mpc-cta, .mpc-card.mpc-h-reveal .mpc-cta { opacity: 0; transform: translateY(8px); }
  .mpc-hp-reveal .mpc-card:hover .mpc-cta, .mpc-hp-reveal .mpc-card:focus-within .mpc-cta,
  .mpc-card.mpc-h-reveal:hover .mpc-cta, .mpc-card.mpc-h-reveal:focus-within .mpc-cta { opacity: 1; transform: none; }
  .mpc-hp-editorial .mpc-card .mpc-media img, .mpc-card.mpc-h-editorial .mpc-media img { --mpc-img-hs: 1.035; }
  .mpc-hp-editorial .mpc-card:hover .mpc-ov, .mpc-card.mpc-h-editorial:hover .mpc-ov { filter: brightness(.8); }
  .mpc-hp-editorial .mpc-card:hover .mpc-content, .mpc-card.mpc-h-editorial:hover .mpc-content { --mpc-cy: -3px; }
  .mpc-hp-editorial .mpc-card:hover .mpc-arrow i, .mpc-hp-editorial .mpc-card:hover .mpc-arrow svg,
  .mpc-card.mpc-h-editorial:hover .mpc-arrow i, .mpc-card.mpc-h-editorial:hover .mpc-arrow svg { transform: translateX(3px); }
}
.mpc-content { transform: translateY(var(--mpc-cy, 0px)); transition: transform var(--mpc-dur, 280ms) var(--mpc-ease, ease); }
.mpc-cta { transition: opacity var(--mpc-dur, 280ms) var(--mpc-ease, ease), transform var(--mpc-dur, 280ms) var(--mpc-ease, ease), color var(--mpc-dur, 280ms) var(--mpc-ease, ease); }
.mpc-card.mpc-h-none { --mpc-dur: 0ms; }

/* ============ slider track (per-breakpoint layout modes) ============
   Grid stays CSS grid. Slider breakpoints turn the same .mpc-track into a
   horizontal strip (pre-init / canvas / no-JS) that native Flickity
   enhances via watchCSS. One card collection, no duplicate markup.
   Post-init Flickity moves cells to .flickity-viewport > .flickity-slider,
   so cell sizing MUST match both structures (direct children pre-init,
   .flickity-slider children post-init). The strip layout applies only
   while NOT enabled; enabled tracks defer to native block layout. */
.mpc-has-slider .mpc-track.flickity-enabled { display: block; overflow: hidden; scroll-snap-type: none; }
/* watchCSS signal: Flickity activates only where content reads flickity.
   Native hidden-signal pattern (display:none does NOT affect Flickity's
   getComputedStyle(:after).content read). The base rule is scoped to
   .mpc-sec (not .mpc-has-slider) so the Builder canvas — whose template
   carries mpc-lay-*-slider classes without mpc-has-slider — can never
   render the literal word "flickity". Each signal rule repeats
   display:none so no cascade order can reveal it. */
.mpc-sec .mpc-track:after { content: ''; display: none; }
.mpc-lay-d-slider .mpc-track:after { content: 'flickity'; display: none; }
.mpc-lay-d-slider .mpc-track:not(.flickity-enabled) {
  display: flex; flex-wrap: nowrap; align-items: stretch;
  column-gap: 0; row-gap: 0;
  width: 100%;
  overflow-x: auto; overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none; -ms-overflow-style: none;
  position: relative;
  scroll-snap-type: x mandatory; justify-content: var(--mpc-sl-justify, flex-start);
}
.mpc-lay-d-slider .mpc-track::-webkit-scrollbar { display: none; }
.mpc-lay-d-slider .mpc-track:not(.flickity-enabled) > .mpc-card,
.mpc-lay-d-slider .mpc-track .flickity-slider > .mpc-card {
  flex: 0 0 auto; min-width: 0;
  width: var(--mpc-sl-w, 25%);
  max-width: var(--mpc-sl-w, 25%);
  margin-right: var(--mpc-sl-gap, 24px);
  scroll-snap-align: start;
}
.mpc-lay-d-slider .mpc-track:not(.flickity-enabled) > .mpc-card:last-child,
.mpc-lay-d-slider .mpc-track .flickity-slider > .mpc-card:last-child { margin-right: 0; }
@media (max-width: 849px) {
  .mpc-sec .mpc-track:after { content: ''; display: none; }
  .mpc-lay-t-slider .mpc-track:after { content: 'flickity'; display: none; }
  .mpc-lay-t-slider .mpc-track:not(.flickity-enabled) {
    display: flex; flex-wrap: nowrap; align-items: stretch;
    column-gap: 0; row-gap: 0;
    width: 100%;
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; -ms-overflow-style: none;
    position: relative;
    scroll-snap-type: x mandatory; justify-content: var(--mpc-sl-justify, flex-start);
  }
  .mpc-lay-t-slider .mpc-track::-webkit-scrollbar { display: none; }
  .mpc-lay-t-slider .mpc-track:not(.flickity-enabled) > .mpc-card,
  .mpc-lay-t-slider .mpc-track .flickity-slider > .mpc-card {
    flex: 0 0 auto; min-width: 0;
    width: var(--mpc-sl-w-t, var(--mpc-sl-w, 50%));
    max-width: var(--mpc-sl-w-t, var(--mpc-sl-w, 50%));
    margin-right: var(--mpc-sl-gap-t, var(--mpc-sl-gap, 24px));
    scroll-snap-align: start;
  }
  .mpc-lay-t-slider .mpc-track:not(.flickity-enabled) > .mpc-card:last-child,
  .mpc-lay-t-slider .mpc-track .flickity-slider > .mpc-card:last-child { margin-right: 0; }
}
@media (max-width: 549px) {
  .mpc-sec .mpc-track:after { content: ''; display: none; }
  .mpc-lay-m-slider .mpc-track:after { content: 'flickity'; display: none; }
  .mpc-lay-m-slider .mpc-track:not(.flickity-enabled) {
    display: flex; flex-wrap: nowrap; align-items: stretch;
    column-gap: 0; row-gap: 0;
    width: 100%;
    overflow-x: auto; overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none; -ms-overflow-style: none;
    position: relative;
    scroll-snap-type: x mandatory; justify-content: var(--mpc-sl-justify, flex-start);
  }
  .mpc-lay-m-slider .mpc-track::-webkit-scrollbar { display: none; }
  .mpc-lay-m-slider .mpc-track:not(.flickity-enabled) > .mpc-card,
  .mpc-lay-m-slider .mpc-track .flickity-slider > .mpc-card {
    flex: 0 0 auto; min-width: 0;
    width: var(--mpc-sl-w-m, var(--mpc-sl-w-t, var(--mpc-sl-w, 84%)));
    max-width: var(--mpc-sl-w-m, var(--mpc-sl-w-t, var(--mpc-sl-w, 84%)));
    margin-right: var(--mpc-sl-gap-m, var(--mpc-sl-gap-t, var(--mpc-sl-gap, 16px)));
    scroll-snap-align: start;
  }
  .mpc-lay-m-slider .mpc-track:not(.flickity-enabled) > .mpc-card:last-child,
  .mpc-lay-m-slider .mpc-track .flickity-slider > .mpc-card:last-child { margin-right: 0; }
}

/* ============ slider arrows (Flickity-generated buttons; card CTA arrows untouched) ============ */
.mpc-has-slider .flickity-prev-next-button {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(20,16,12,.5); border: 1px solid rgba(255,255,255,.45); color: #FFF;
  opacity: 1;
  display: flex; align-items: center; justify-content: center;
}
.mpc-has-slider .flickity-prev-next-button.previous { left: 12px; }
.mpc-has-slider .flickity-prev-next-button.next { right: 12px; }
.mpc-has-slider .flickity-prev-next-button:hover { background: #FFF; border-color: #FFF; color: #1F1E1B; opacity: 1; }
.mpc-has-slider .flickity-prev-next-button:focus-visible { outline: 2px solid #FFF; outline-offset: 2px; }
.mpc-has-slider .flickity-prev-next-button svg { width: 16px; height: 16px; }
.mpc-has-slider.mpc-arrow-minimal .flickity-prev-next-button { background: transparent; border-color: transparent; }
.mpc-has-slider.mpc-arrow-minimal .flickity-prev-next-button:hover { background: rgba(255,255,255,.18); border-color: transparent; color: #FFF; }
.mpc-has-slider.mpc-arrow-dark .flickity-prev-next-button { background: rgba(255,255,255,.9); border-color: transparent; color: #1F1E1B; }
.mpc-has-slider.mpc-arrow-dark .flickity-prev-next-button:hover { background: #1F1E1B; border-color: #1F1E1B; color: #FFF; }
.mpc-has-slider.mpc-arrow-large .flickity-prev-next-button { width: 52px; height: 52px; }
.mpc-has-slider.mpc-arrow-large .flickity-prev-next-button svg { width: 20px; height: 20px; }
.mpc-has-slider.mpc-arrows-outside .flickity-prev-next-button.previous { left: -20px; }
.mpc-has-slider.mpc-arrows-outside .flickity-prev-next-button.next { right: -20px; }
/* arrow visibility per breakpoint (buttons are abs-positioned: display reset is safe) */
.mpc-has-slider.mpc-arv-d-hide .flickity-prev-next-button { display: none; }
@media (max-width: 849px) {
  .mpc-has-slider.mpc-arv-d-hide .flickity-prev-next-button { display: block; }
  .mpc-has-slider.mpc-arv-t-hide .flickity-prev-next-button { display: none; }
}
@media (max-width: 549px) {
  .mpc-has-slider.mpc-arv-t-hide .flickity-prev-next-button { display: block; }
  .mpc-has-slider.mpc-arv-m-hide .flickity-prev-next-button { display: none; }
}

/* ============ slider dots (below by default, optional overlay) ============ */
.mpc-has-slider .flickity-page-dots { position: static; margin: 20px 0 0; padding: 0; text-align: center; }
.mpc-has-slider .flickity-page-dots .dot {
  width: 10px; height: 10px; border-radius: 50%;
  background: var(--mpc-dot-c, currentColor); opacity: .3;
}
.mpc-has-slider .flickity-page-dots .dot.is-selected { opacity: 1; background: var(--mpc-dot-active, var(--mpc-dot-c, currentColor)); }
.mpc-has-slider.mpc-dots-dashes .flickity-page-dots .dot { width: 26px; height: 3px; border-radius: 2px; }
.mpc-has-slider.mpc-dots-simple .flickity-page-dots .dot { width: 6px; height: 6px; }
.mpc-has-slider.mpc-dots-square .flickity-page-dots .dot { width: 9px; height: 9px; border-radius: 2px; }
.mpc-has-slider.mpc-dots-overlay .flickity-page-dots { position: absolute; left: 0; right: 0; bottom: 20px; margin: 0; }
/* dots visibility per breakpoint */
.mpc-has-slider.mpc-dtv-d-hide .flickity-page-dots { display: none; }
@media (max-width: 849px) {
  .mpc-has-slider.mpc-dtv-d-hide .flickity-page-dots { display: block; }
  .mpc-has-slider.mpc-dtv-t-hide .flickity-page-dots { display: none; }
}
@media (max-width: 549px) {
  .mpc-has-slider.mpc-dtv-t-hide .flickity-page-dots { display: block; }
  .mpc-has-slider.mpc-dtv-m-hide .flickity-page-dots { display: none; }
}

/* ============ tagline ============ */
.mpc-tag {
  display: flex; align-items: center; justify-content: center;
  column-gap: 16px; margin-top: 48px; text-align: center;
}
.mpc-tag-left { justify-content: flex-start; text-align: left; }
.mpc-tag-right { justify-content: flex-end; text-align: right; }
.mpc-tag-txt { font-size: 13px; font-weight: 500; letter-spacing: 3px; line-height: 1.5; text-transform: uppercase; color: #8A6D5C; }
.mpc-rule { display: inline-block; width: 48px; height: 1px; background: currentColor; opacity: .6; flex: 0 0 auto; }
@media (max-width: 549px) {
  .mpc-tag-rules-shorten .mpc-rule { max-width: 24px; }
  .mpc-tag-rules-hide .mpc-rule { display: none; }
}

/* ============ style presets (fallbacks only) ============ */
.mpc-preset-warm { background-color: #F7F2EA; }
.mpc-preset-minimal { background-color: #FFFFFF; }
.mpc-preset-minimal .mpc-eyebrow, .mpc-preset-minimal .mpc-tag-txt { color: #8A6D5C; }
.mpc-preset-minimal .mpc-sec-title { color: #1F1E1B; }
.mpc-preset-minimal .mpc-sub { color: #5C554E; }
.mpc-preset-dark { background-color: #211E1A; }
.mpc-preset-dark .mpc-eyebrow, .mpc-preset-dark .mpc-tag-txt { color: #C9AE8C; }
.mpc-preset-dark .mpc-sec-title { color: #F7F2EA; }
.mpc-preset-dark .mpc-sub { color: rgba(247,242,234,.75); }
.mpc-preset-gallery { background-color: #FFFFFF; }
.mpc-preset-gallery .mpc-grid { --mpc-gap-x: 32px; --mpc-gap-y: 32px; }

/* ============ entry animation keyframes ============ */
@keyframes mpc-reveal {
  from { opacity: 0; transform: translateY(26px); }
  to { opacity: 1; transform: none; }
}
@keyframes mpc-blur {
  from { opacity: 0; filter: blur(10px); }
  to { opacity: 1; filter: blur(0); }
}
.animated[data-animate="mp-reveal"] { animation-name: mpc-reveal; animation-duration: .9s; animation-fill-mode: both; }
.animated[data-animate="mp-blur"] { animation-name: mpc-blur; animation-duration: .9s; animation-fill-mode: both; }

/* ============ V1.3 canvas var-cascade (parent defaults as fallback layer) ============
   Explicit per-instance #id rules (style_tag) always win over these class-level
   rules; unset vars fall back to the base values above, so frontend is unchanged. */
.mpc-sec.mpc-hm-fixed .mpc-card { height: var(--mpc-c-h, var(--mpc-d-fh, auto)); aspect-ratio: auto; }
.mpc-sec.mpc-hm-min .mpc-card { min-height: var(--mpc-c-mh, var(--mpc-d-mh, 0)); aspect-ratio: auto; }
.mpc-sec .mpc-card { border-radius: var(--mpc-d-radius, 18px); border-width: var(--mpc-d-border, 0); border-color: var(--mpc-d-border-c, transparent); background-color: var(--mpc-d-bg, transparent); box-shadow: var(--mpc-d-shadow, 0 18px 40px -18px rgba(30,25,20,.25)); }
.mpc-sec .mpc-content { padding: var(--mpc-d-pad-t, 24px) var(--mpc-d-pad-r, 24px) var(--mpc-d-pad-b, 24px) var(--mpc-d-pad-l, 24px); text-align: var(--mpc-d-calign, left); }
.mpc-sec .mpc-content { max-width: var(--mpc-d-cmax, none); }
.mpc-sec .mpc-card-eyebrow { font-size: var(--mpc-d-eb-size, 12px); line-height: var(--mpc-d-eb-lh, 1.4); letter-spacing: var(--mpc-d-eb-ls, 1.5px); font-weight: var(--mpc-d-eb-w, 600); font-style: var(--mpc-d-eb-st, normal); text-transform: var(--mpc-d-eb-tr, uppercase); color: var(--mpc-d-eb-c, #FFF); text-align: var(--mpc-d-eb-align, inherit); max-width: var(--mpc-d-eb-mw, none); }
.mpc-sec .mpc-card-title { font-size: var(--mpc-d-t-size, 26px); line-height: var(--mpc-d-t-lh, 1.2); letter-spacing: var(--mpc-d-t-ls, 0); font-weight: var(--mpc-d-t-w, 600); font-style: var(--mpc-d-t-st, normal); text-transform: var(--mpc-d-t-tr, none); color: var(--mpc-d-t-c, #FFF); text-align: var(--mpc-d-t-align, inherit); max-width: var(--mpc-d-t-mw, none); }
.mpc-sec .mpc-card-desc { font-size: var(--mpc-d-d-size, 15px); line-height: var(--mpc-d-d-lh, 1.55); letter-spacing: var(--mpc-d-d-ls, 0); font-weight: var(--mpc-d-d-w, 400); font-style: var(--mpc-d-d-st, normal); text-transform: var(--mpc-d-d-tr, none); color: var(--mpc-d-d-c, rgba(255,255,255,.85)); text-align: var(--mpc-d-d-align, inherit); max-width: var(--mpc-d-d-mw, none); }
.mpc-sec .mpc-cta-txt { font-size: var(--mpc-d-cta-size, 13px); line-height: var(--mpc-d-cta-lh, 1.4); letter-spacing: var(--mpc-d-cta-ls, 1.5px); font-weight: var(--mpc-d-cta-w, 600); font-style: var(--mpc-d-cta-st, normal); text-transform: var(--mpc-d-cta-tr, uppercase); color: var(--mpc-d-cta-c, #FFF); text-align: var(--mpc-d-cta-align, inherit); max-width: var(--mpc-d-cta-mw, none); }
.mpc-sec .mpc-card:hover .mpc-card-title { color: var(--mpc-d-t-h, #FFF); }
.mpc-sec .mpc-card:hover .mpc-cta { color: var(--mpc-d-cta-h, #FFF); }
.mpc-sec .mpc-cta::after { height: var(--mpc-c-ul-t, var(--mpc-d-ul-t, 1px)); width: var(--mpc-c-ul-w, var(--mpc-d-ul-w, 100%)); background-color: var(--mpc-c-ul-c, var(--mpc-d-ul-c, currentColor)); bottom: var(--mpc-c-ul-o, var(--mpc-d-ul-o, 4px)); }
.mpc-sec .mpc-card:hover .mpc-cta::after { width: var(--mpc-c-ul-hw, var(--mpc-d-ul-hw, 100%)); background-color: var(--mpc-c-ul-hc, var(--mpc-d-ul-hc, currentColor)); }
.mpc-sec .mpc-arrow { font-size: var(--mpc-d-ar-size, 18px); color: var(--mpc-d-ar-c, #FFF); }
.mpc-sec:not(.mpc-darc-none) .mpc-arrow:not(.mpc-arc-none) { width: var(--mpc-d-ar-box, 48px); height: var(--mpc-d-ar-box, 48px); border-width: var(--mpc-d-ar-border, 1px); border-color: var(--mpc-d-ar-bc, rgba(255,255,255,.6)); background-color: var(--mpc-d-ar-bg, rgba(255,255,255,.14)); }
.mpc-sec .mpc-card:hover .mpc-arrow { color: var(--mpc-d-ar-ch, #1F1E1B); }
.mpc-sec:not(.mpc-darc-none) .mpc-card:hover .mpc-arrow:not(.mpc-arc-none) { border-color: var(--mpc-d-ar-bh, #FFF); background-color: var(--mpc-d-ar-gh, #FFF); }
.mpc-sec .mpc-ov { opacity: var(--mpc-c-ov-o, var(--mpc-ov-o, .85)); }

/* ============ reduced motion ============ */
@media (prefers-reduced-motion: reduce) {
  .mpc-sec, .mpc-sec *, .mpc-sec *::before, .mpc-sec *::after {
    transition: none !important; animation: none !important;
  }
  .mpc-hp-reveal .mpc-card .mpc-cta, .mpc-card.mpc-h-reveal .mpc-cta { opacity: 1 !important; transform: none !important; }
  .mpc-has-slider .mpc-track { scroll-behavior: auto; }
}
