
/* Marry Me — lightweight cart + checkout layer */
:root {
  --mm-ink: #4f4038;
  --mm-muted: #8b796d;
  --mm-gold: #b38a5d;
  --mm-cream: #f4ebd9;
  --mm-card: rgba(255,255,255,.58);
  --mm-border: rgba(92,75,65,.16);
  --mm-danger: #9c3f3f;
  --mm-success: #376e55;
}
.mm-cart-link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--mm-ink); text-decoration: none;
  font: 600 .78rem/1 "Instrument Sans", sans-serif;
  letter-spacing: .12em; text-transform: uppercase;
  padding: 11px 14px; border: 1px solid var(--mm-border);
  border-radius: 999px; background: rgba(255,255,255,.36);
  white-space: nowrap; transition: .2s ease;
}
.mm-cart-link:hover { border-color: rgba(179,138,93,.55); transform: translateY(-1px); }
.mm-cart-count {
  min-width: 22px; height: 22px; padding: 0 6px; display:inline-grid; place-items:center;
  border-radius:999px; background: var(--mm-ink); color:#fff; font-size:.68rem; letter-spacing:0;
}
.mm-purchase-panel {
  margin-top: 28px; padding: 22px; border: 1px solid var(--mm-border);
  border-radius: 16px; background: var(--mm-card); box-shadow: 0 12px 32px rgba(77,61,51,.08);
  font-family: "Instrument Sans", sans-serif;
}
.mm-purchase-panel h3 { margin:0 0 8px; color:var(--mm-ink); font-family:"Fraunces", serif; font-size:1.65rem; font-weight:600; }
.mm-purchase-meta { margin:0 0 18px; color:var(--mm-muted); font-size:.82rem; line-height:1.55; }
.mm-purchase-row { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.mm-qty-wrap { display:grid; gap:6px; color:var(--mm-muted); font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.mm-qty-input { width:76px; height:44px; border:1px solid rgba(92,75,65,.25); border-radius:10px; background:#fffaf1; color:var(--mm-ink); padding:0 12px; font:600 .95rem "Instrument Sans", sans-serif; }
.mm-primary-btn, .mm-secondary-btn {
  min-height:44px; border-radius:10px; padding:0 20px; cursor:pointer;
  font:700 .76rem "Instrument Sans",sans-serif; letter-spacing:.12em; text-transform:uppercase;
  transition:transform .18s ease, box-shadow .18s ease, background .22s ease, border-color .22s ease, color .22s ease;
}
.mm-primary-btn {
  border:1px solid var(--mm-teal, #0b6b63);
  background:linear-gradient(155deg, var(--mm-teal, #0b6b63), var(--mm-teal-dark, #084a45));
  color:#fff;
  box-shadow:0 6px 16px rgba(11,107,99,.22);
}
.mm-primary-btn:hover:not(:disabled) {
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(11,107,99,.32);
  border-color:var(--mm-teal-dark, #084a45);
}
.mm-primary-btn:active:not(:disabled) { transform:translateY(0) scale(.98); box-shadow:0 4px 10px rgba(11,107,99,.22); }
.mm-primary-btn:disabled { opacity:.48; cursor:not-allowed; box-shadow:none; }
.mm-secondary-btn {
  border:1.5px solid var(--mm-gold, #b8905a);
  background:transparent;
  color:var(--mm-ink);
  text-decoration:none;
  display:inline-grid;
  place-items:center;
}
.mm-secondary-btn:hover {
  background:linear-gradient(155deg, var(--mm-gold, #b8905a), #a3773f);
  border-color:#a3773f;
  color:#fff;
  transform:translateY(-2px);
  box-shadow:0 10px 22px rgba(184,144,90,.3);
}
.mm-secondary-btn:active { transform:translateY(0) scale(.98); box-shadow:0 4px 10px rgba(184,144,90,.22); }
.mm-cart-toast { margin-top:12px; color:var(--mm-success); font-size:.8rem; min-height:1.2em; }

/* ---- Add to Cart shape-morph micro-interaction (V1) ----
   States are driven by data-state on the button: "" (idle) -> "cart"
   -> "truck" -> "done" -> back to "". JS lives in commerce.js. */
.mm-atc-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  overflow: hidden;
  border-radius: 999px !important;
  width: var(--mm-atc-rest-w, auto);
  transition:
    width 420ms cubic-bezier(.22, 1, .36, 1),
    padding 420ms cubic-bezier(.22, 1, .36, 1),
    background-color 320ms ease,
    border-color 320ms ease,
    box-shadow 320ms ease;
}
.mm-atc-label {
  white-space: nowrap;
  transition: opacity 180ms ease, transform 180ms ease;
}
.mm-atc-glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0;
  position: relative;
  transition: width 260ms cubic-bezier(.22, 1, .36, 1);
}
.mm-atc-icon {
  width: 17px;
  height: 17px;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(.4);
  opacity: 0;
  transition: opacity 200ms ease, transform 200ms ease, left 620ms cubic-bezier(.45, 0, .2, 1);
}
.mm-atc-icon svg { width: 100%; height: 100%; display: block; }

.mm-atc-btn[data-state="cart"],
.mm-atc-btn[data-state="truck"],
.mm-atc-btn[data-state="done"] {
  padding: 0 !important;
}
.mm-atc-btn[data-state="cart"],
.mm-atc-btn[data-state="truck"] {
  width: 46px !important;
}
.mm-atc-btn[data-state="cart"] .mm-atc-label,
.mm-atc-btn[data-state="truck"] .mm-atc-label,
.mm-atc-btn[data-state="done"] .mm-atc-label {
  opacity: 0;
  transform: translateY(4px);
  position: absolute;
}
.mm-atc-btn[data-state="cart"] .mm-atc-glyph,
.mm-atc-btn[data-state="truck"] .mm-atc-glyph,
.mm-atc-btn[data-state="done"] .mm-atc-glyph {
  width: 17px;
}
.mm-atc-btn[data-state="cart"] .mm-atc-cart {
  opacity: 1;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  animation: mmAtcPop 260ms cubic-bezier(.34, 1.56, .64, 1);
}

/* truck stage: widen into a track, slide the truck across it */
.mm-atc-btn[data-state="truck"] {
  width: 128px !important;
}
.mm-atc-btn[data-state="truck"] .mm-atc-cart {
  opacity: 0;
  transform: translate(-50%, -50%) scale(.5);
}
.mm-atc-btn[data-state="truck"] .mm-atc-glyph {
  width: 100%;
}
.mm-atc-btn[data-state="truck"] .mm-atc-truck {
  opacity: 1;
  left: calc(100% - 22px);
  transform: translate(-50%, -50%) scale(1);
}
.mm-atc-btn:not([data-state="truck"]) .mm-atc-truck {
  left: 20px;
}

/* done stage: settle into a pill, success color, checkmark */
.mm-atc-btn[data-state="done"] {
  width: var(--mm-atc-rest-w, auto) !important;
  padding: 0 20px !important;
  background: var(--mm-success) !important;
  border-color: var(--mm-success) !important;
  color: #fff !important;
}
.mm-atc-btn[data-state="done"] .mm-atc-label {
  opacity: 1;
  position: static;
  transform: none;
  color: #fff;
}
.mm-atc-btn[data-state="done"] .mm-atc-glyph { width: 17px; }
.mm-atc-btn[data-state="done"] .mm-atc-truck { opacity: 0; }
.mm-atc-btn[data-state="done"] .mm-atc-check {
  opacity: 1;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  animation: mmAtcPop 260ms cubic-bezier(.34, 1.56, .64, 1);
}

@keyframes mmAtcPop {
  0% { transform: translate(-50%, -50%) scale(.3); }
  70% { transform: translate(-50%, -50%) scale(1.15); }
  100% { transform: translate(-50%, -50%) scale(1); }
}

/* Cart badge bump — plays whenever the bag/wishlist count actually changes. */
[data-mm-cart-count].mm-bump,
.mm-bag-count.mm-bump,
.nav-cart-count.mm-bump {
  animation: mmCartBump 420ms cubic-bezier(.34, 1.56, .64, 1);
}
@keyframes mmCartBump {
  0% { transform: scale(1); }
  30% { transform: scale(1.45); }
  55% { transform: scale(.92); }
  100% { transform: scale(1); }
}

@media (prefers-reduced-motion: reduce) {
  .mm-atc-btn, .mm-atc-label, .mm-atc-glyph, .mm-atc-icon,
  [data-mm-cart-count].mm-bump, .mm-bag-count.mm-bump, .nav-cart-count.mm-bump {
    transition: none !important;
    animation: none !important;
  }
}

/* ---- Buy Now confirm micro-interaction (V2) ----
   Idle -> data-state="confirm": the piece itself (ring/earring/necklace/
   bracelet, chosen in commerce.js by which product template the page is)
   drops into a paper shopping bag that pops in and gives a little "catch"
   bounce right as the item lands -> back to idle, roughly in step with the
   JS-driven navigation delay (MM_BUY_FX_DURATION). */
.mm-buy-btn {
  position: relative;
  overflow: hidden;
}
.mm-buy-btn[data-state="confirm"] {
  transform: scale(.97);
  transition: transform 160ms ease;
}
.mm-buy-label {
  transition: opacity 140ms ease;
}
.mm-buy-btn[data-state="confirm"] .mm-buy-label {
  opacity: 0;
}
.mm-buy-glyph {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
}
.mm-buy-btn[data-state="confirm"] .mm-buy-glyph {
  opacity: 1;
}
.mm-buy-bag {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 20px;
  height: 20px;
  transform: translate(calc(-50% + 9px), -50%) scale(.5);
  opacity: 0;
}
.mm-buy-btn[data-state="confirm"] .mm-buy-bag {
  animation: mmBagAppear 200ms ease-out 60ms forwards, mmBagCatch 260ms ease-out 420ms;
}
.mm-buy-bag svg { width: 100%; height: 100%; display: block; }
.mm-buy-item {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 16px;
  transform: translate(calc(-50% - 11px), -50%) scale(.9) rotate(-8deg);
  opacity: 0;
}
.mm-buy-btn[data-state="confirm"] .mm-buy-item {
  animation: mmItemToBag 460ms cubic-bezier(.5, 0, .3, 1) 100ms forwards;
}
.mm-buy-item svg { width: 100%; height: 100%; display: block; }

@keyframes mmBagAppear {
  0% { opacity: 0; transform: translate(calc(-50% + 9px), -50%) scale(.5); }
  100% { opacity: 1; transform: translate(calc(-50% + 9px), -50%) scale(1); }
}
@keyframes mmBagCatch {
  0% { transform: translate(calc(-50% + 9px), -50%) scale(1); }
  35% { transform: translate(calc(-50% + 9px), -50%) scale(1.22, .82); }
  65% { transform: translate(calc(-50% + 9px), -50%) scale(.92, 1.08); }
  100% { transform: translate(calc(-50% + 9px), -50%) scale(1); }
}
@keyframes mmItemToBag {
  0% { opacity: 0; transform: translate(calc(-50% - 11px), -50%) scale(.9) rotate(-8deg); }
  15% { opacity: 1; transform: translate(calc(-50% - 9px), calc(-50% - 3px)) scale(1) rotate(-4deg); }
  75% { opacity: 1; transform: translate(calc(-50% + 7px), calc(-50% - 1px)) scale(.85) rotate(6deg); }
  100% { opacity: 0; transform: translate(calc(-50% + 9px), calc(-50% + 2px)) scale(.25) rotate(14deg); }
}
@media (prefers-reduced-motion: reduce) {
  .mm-buy-btn, .mm-buy-label, .mm-buy-glyph, .mm-buy-bag, .mm-buy-item {
    transition: none !important;
    animation: none !important;
  }
}

/* ---- Request This / Custom Quote confirm micro-interaction (V1) ----
   Idle -> data-state="sending" (paper plane flies across and fades) ->
   data-state="sent" (settles into a checkmark, label swaps to "Request
   Sent") -> back to idle. Icon slot sits inline with the label (like Add
   to Cart's cart/truck/check icon), not overlaid on top of it, so both are
   visible together once "sent". */
.mm-req-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  overflow: hidden;
  transition: gap 220ms cubic-bezier(.22, 1, .36, 1);
}
.mm-req-btn[data-state="sending"],
.mm-req-btn[data-state="sent"] {
  gap: 8px;
}
.mm-req-glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0;
  position: relative;
  transition: width 220ms cubic-bezier(.22, 1, .36, 1);
}
.mm-req-btn[data-state="sending"] .mm-req-glyph,
.mm-req-btn[data-state="sent"] .mm-req-glyph {
  width: 15px;
}
.mm-req-icon {
  width: 15px;
  height: 15px;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) scale(.5);
  opacity: 0;
}
.mm-req-icon svg { width: 100%; height: 100%; display: block; }
.mm-req-btn[data-state="sending"] .mm-req-plane {
  animation: mmReqPlaneSend 280ms cubic-bezier(.5, 0, .3, 1) forwards;
}
.mm-req-btn[data-state="sent"] .mm-req-check {
  animation: mmReqPop 300ms cubic-bezier(.34, 1.56, .64, 1) forwards;
}
@keyframes mmReqPlaneSend {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.5) rotate(-10deg); }
  35% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(0deg); }
  100% { opacity: 0; transform: translate(calc(-50% + 10px), calc(-50% - 8px)) scale(.7) rotate(16deg); }
}
@keyframes mmReqPop {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.4); }
  70% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .mm-req-btn, .mm-req-glyph, .mm-req-icon {
    transition: none !important;
    animation: none !important;
  }
}

.mm-commerce-shell { width:min(1120px, calc(100% - 36px)); margin:46px auto 80px; color:var(--mm-ink); font-family:"Instrument Sans",sans-serif; }
.mm-commerce-title { text-align:center; font:500 clamp(2.4rem,6vw,4rem)/1.05 "Fraunces",serif; letter-spacing:.05em; margin:0 0 10px; }
.mm-commerce-subtitle { text-align:center; color:var(--mm-muted); margin:0 auto 38px; max-width:680px; line-height:1.7; }
.mm-cart-layout, .mm-checkout-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.8fr); gap:28px; align-items:start; }
.mm-panel { border:1px solid var(--mm-border); border-radius:18px; background:rgba(255,255,255,.5); box-shadow:0 14px 34px rgba(77,61,51,.07); overflow:hidden; }
.mm-panel-pad { padding:24px; }
.mm-panel h2 { margin:0 0 18px; font:600 1.7rem "Fraunces",serif; }
.mm-cart-item { display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:18px; padding:20px 0; border-bottom:1px solid var(--mm-border); align-items:center; }
.mm-cart-item:first-child { padding-top:0; }
.mm-cart-item:last-child { border-bottom:0; padding-bottom:0; }
.mm-cart-thumb { width:92px; height:92px; border-radius:12px; object-fit:cover; background:#efe4d2; border:1px solid var(--mm-border); }
.mm-cart-thumb-fallback { display:grid; place-items:center; font-family:"Fraunces",serif; font-size:1.6rem; color:var(--mm-muted); }
.mm-cart-name { margin:0 0 5px; font:600 1.22rem "Fraunces",serif; }
.mm-cart-variant { margin:0 0 9px; color:var(--mm-muted); font-size:.76rem; line-height:1.5; }
.mm-cart-price { font-size:.86rem; font-weight:600; }
.mm-item-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:10px; }
.mm-item-actions button { border:1px solid var(--mm-border); background:#fffaf1; color:var(--mm-ink); border-radius:8px; min-width:34px; height:34px; cursor:pointer; }
.mm-item-actions .mm-remove { padding:0 10px; color:var(--mm-danger); }
.mm-item-qty { min-width:24px; text-align:center; font-weight:700; }
.mm-item-total { text-align:right; font-weight:700; white-space:nowrap; }
.mm-summary-row { display:flex; justify-content:space-between; gap:20px; margin:11px 0; color:var(--mm-muted); font-size:.88rem; }
.mm-summary-row strong { color:var(--mm-ink); }
.mm-summary-total { border-top:1px solid var(--mm-border); margin-top:18px; padding-top:18px; font-size:1rem; }
.mm-summary-total strong { font-size:1.2rem; }
.mm-summary-note { color:var(--mm-muted); font-size:.72rem; line-height:1.55; margin:12px 0 0; }
.mm-full-btn { width:100%; margin-top:18px; }
.mm-empty-cart { text-align:center; padding:54px 24px; }
.mm-empty-cart h2 { font:600 2rem "Fraunces",serif; margin:0 0 8px; }
.mm-empty-cart p { color:var(--mm-muted); line-height:1.6; }
.mm-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.mm-field { display:grid; gap:7px; margin-bottom:16px; }
.mm-field label, .mm-field legend { color:var(--mm-muted); font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.mm-field-control { position:relative; }
.mm-field input, .mm-field select, .mm-field textarea {
  width:100%; min-height:46px; border:1.5px solid rgba(92,75,65,.2); border-radius:11px;
  background:#fffaf1; color:var(--mm-ink); padding:12px 14px; font:400 .92rem "Instrument Sans",sans-serif; outline:none;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.mm-field-control input { padding-right:40px; }
.mm-field textarea { min-height:88px; resize:vertical; }
.mm-field input:hover, .mm-field select:hover, .mm-field textarea:hover { border-color:rgba(92,75,65,.36); }
.mm-field input:focus, .mm-field select:focus, .mm-field textarea:focus {
  border-color:var(--mm-gold); background:#fffdf9; box-shadow:0 0 0 4px rgba(179,138,93,.14);
}
.mm-field.is-valid .mm-field-control input,
.mm-field.is-valid > .mm-field-control > select { border-color:var(--mm-success); }
.mm-field.is-valid .mm-field-control input:focus { box-shadow:0 0 0 4px rgba(55,110,85,.14); }
.mm-field.is-invalid .mm-field-control input,
.mm-field.is-invalid > .mm-field-control > select { border-color:var(--mm-danger); }
.mm-field.is-invalid .mm-field-control input:focus { box-shadow:0 0 0 4px rgba(156,63,63,.14); }
.mm-field-status {
  position:absolute; right:12px; top:50%; width:18px; height:18px;
  transform:translateY(-50%) scale(.6); opacity:0; pointer-events:none;
  transition: opacity .16s ease, transform .16s ease;
}
.mm-field-status.mm-field-check { color:var(--mm-success); }
.mm-field-status.mm-field-alert { color:var(--mm-danger); }
.mm-field.is-valid .mm-field-status.mm-field-check,
.mm-field.is-invalid .mm-field-status.mm-field-alert {
  opacity:1; transform:translateY(-50%) scale(1);
}
.mm-field-error { min-height:1em; color:var(--mm-danger); font-size:.7rem; }
.mm-phone-control { display:flex; gap:8px; position:relative; }
.mm-phone-control input { flex:1 1 auto; }
.mm-phone-code { flex:0 0 auto; display:flex; align-items:center; gap:6px; min-height:46px; padding:0 10px; border:1.5px solid rgba(92,75,65,.2); border-radius:11px; background:#fffaf1; font:600 .85rem "Instrument Sans",sans-serif; color:var(--mm-ink); cursor:pointer; }
.mm-phone-code:hover { border-color:rgba(92,75,65,.36); }
.mm-phone-code svg:last-child { color:var(--mm-muted); margin-left:2px; }
.mm-flag { display:inline-flex; width:20px; height:14px; border-radius:3px; overflow:hidden; box-shadow:0 0 0 1px rgba(0,0,0,.08); flex:none; }
.mm-flag svg { display:block; width:100%; height:100%; }
.mm-phone-dropdown { position:absolute; left:0; top:calc(100% + 6px); z-index:25; width:260px; background:#fffdf9; border:1px solid rgba(92,75,65,.2); border-radius:12px; box-shadow:0 14px 32px rgba(60,45,35,.16); overflow:hidden; }
.mm-phone-search { width:100%; box-sizing:border-box; border:0; border-bottom:1px solid rgba(92,75,65,.14); padding:10px 12px; font:400 .82rem "Instrument Sans",sans-serif; outline:none; background:#fff; }
.mm-phone-options { max-height:220px; overflow-y:auto; }
.mm-phone-option { display:flex; align-items:center; gap:9px; width:100%; border:0; background:none; padding:8px 12px; font:400 .8rem "Instrument Sans",sans-serif; color:var(--mm-ink); cursor:pointer; text-align:left; }
.mm-phone-option:hover, .mm-phone-option:focus-visible { background:rgba(179,138,93,.1); }
.mm-phone-option-name { flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mm-phone-option-dial { color:var(--mm-muted); font-size:.72rem; }
.mm-phone-no-match { padding:14px; text-align:center; color:var(--mm-muted); font-size:.8rem; }

.mm-email-suggest { position:absolute; left:0; right:0; top:calc(100% + 4px); z-index:20; background:#fffdf9; border:1px solid rgba(92,75,65,.2); border-radius:11px; box-shadow:0 10px 26px rgba(60,45,35,.14); overflow:hidden; }
.mm-email-suggest-item { display:block; width:100%; text-align:left; border:0; background:none; padding:9px 14px; font:400 .85rem "Instrument Sans",sans-serif; color:var(--mm-muted); cursor:pointer; }
.mm-email-suggest-item strong { color:var(--mm-ink); font-weight:600; }
.mm-email-suggest-item:hover, .mm-email-suggest-item:focus-visible { background:rgba(179,138,93,.1); }

.mm-field-calendar-icon { position:absolute; right:14px; top:50%; transform:translateY(-50%); color:var(--mm-muted); pointer-events:none; width:18px; height:18px; }
.mm-calendar { position:absolute; left:0; top:calc(100% + 6px); z-index:25; width:280px; background:#fffdf9; border:1px solid rgba(92,75,65,.2); border-radius:14px; box-shadow:0 16px 36px rgba(60,45,35,.18); padding:14px; }
.mm-cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font:600 .85rem "Instrument Sans",sans-serif; color:var(--mm-ink); }
.mm-cal-nav { border:0; background:none; width:26px; height:26px; border-radius:8px; cursor:pointer; color:var(--mm-ink); }
.mm-cal-nav:hover { background:rgba(179,138,93,.14); }
.mm-cal-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px; }
.mm-cal-weekdays span { text-align:center; font-size:.65rem; font-weight:700; color:var(--mm-muted); text-transform:uppercase; }
.mm-cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.mm-cal-day { border:0; background:none; height:32px; border-radius:8px; font:400 .78rem "Instrument Sans",sans-serif; color:var(--mm-ink); cursor:pointer; }
.mm-cal-day:hover:not(:disabled) { background:rgba(179,138,93,.14); }
.mm-cal-day.is-selected { background:var(--mm-ink); color:#fff; font-weight:700; }
.mm-cal-day.is-past { color:#c9bfb3; cursor:not-allowed; }
.mm-cal-day.is-empty { cursor:default; }
.mm-cal-foot { display:flex; justify-content:space-between; margin-top:10px; padding-top:10px; border-top:1px solid rgba(92,75,65,.14); }
.mm-cal-clear, .mm-cal-today { border:0; background:none; color:var(--mm-gold); font:600 .72rem "Instrument Sans",sans-serif; text-transform:uppercase; letter-spacing:.05em; cursor:pointer; }
.mm-cal-clear:hover, .mm-cal-today:hover { text-decoration:underline; }
@media (prefers-reduced-motion: reduce) {
  .mm-field input, .mm-field select, .mm-field textarea, .mm-field-status { transition:none !important; }
}
.mm-radio-card { display:flex; gap:10px; align-items:flex-start; padding:13px; border:1px solid var(--mm-border); border-radius:10px; background:rgba(255,250,241,.7); margin-bottom:10px; cursor:pointer; }
.mm-radio-card input { margin-top:3px; }
.mm-radio-card strong { display:block; font-size:.86rem; }
.mm-radio-card small { display:block; color:var(--mm-muted); margin-top:4px; line-height:1.45; }
.mm-demo-notice { padding:13px 15px; border-radius:10px; background:rgba(179,138,93,.1); color:#755a3f; font-size:.78rem; line-height:1.55; margin-bottom:16px; }
.mm-checkout-state { margin-top:14px; padding:12px 14px; border-radius:10px; font-size:.82rem; display:none; }
.mm-checkout-state.is-visible { display:block; }
.mm-checkout-state.is-processing { background:rgba(179,138,93,.12); color:#755a3f; }
.mm-checkout-state.is-error { background:rgba(156,63,63,.1); color:var(--mm-danger); }
.mm-checkout-state.is-success { background:rgba(55,110,85,.1); color:var(--mm-success); }
.mm-order-success { text-align:center; padding:52px 28px; }
.mm-order-success .mm-order-mark { width:62px; height:62px; border-radius:50%; display:grid; place-items:center; margin:0 auto 18px; background:rgba(55,110,85,.12); color:var(--mm-success); font-size:1.8rem; }
.mm-order-success h2 { font:600 2.2rem "Fraunces",serif; margin:0 0 8px; }
.mm-order-success p { color:var(--mm-muted); line-height:1.65; }
.mm-order-id { display:inline-block; margin:10px 0; padding:8px 12px; border-radius:8px; background:#fffaf1; border:1px solid var(--mm-border); font-weight:700; letter-spacing:.08em; }
.mm-content-page { width:min(900px, calc(100% - 36px)); margin:48px auto 90px; color:var(--mm-ink); }
.mm-content-page h1 { text-align:center; font:500 clamp(2.5rem,7vw,4.5rem) "Fraunces",serif; margin:0 0 12px; }
.mm-content-page .lead { text-align:center; color:var(--mm-muted); max-width:680px; margin:0 auto 42px; line-height:1.7; }
.mm-content-card { padding:28px; border:1px solid var(--mm-border); border-radius:18px; background:rgba(255,255,255,.48); margin:18px 0; }
.mm-content-card h2 { font:600 1.7rem "Fraunces",serif; margin:0 0 10px; }
.mm-content-card p, .mm-content-card li { color:#6f5d51; line-height:1.75; }
@media (max-width:900px) {
  .mm-cart-layout, .mm-checkout-layout { grid-template-columns:1fr; }
  .mm-cart-link { margin-left:auto; }
}
@media (max-width:640px) {
  .mm-field-grid { grid-template-columns:1fr; }
  .mm-cart-item { grid-template-columns:72px 1fr; }
  .mm-cart-thumb { width:72px; height:72px; }
  .mm-item-total { grid-column:2; text-align:left; }
  .mm-purchase-row { align-items:stretch; }
  .mm-primary-btn, .mm-secondary-btn { flex:1 1 150px; }
}
@media (max-width:820px) {
  .mm-brand { order:1; }
  .mm-cart-link { order:2; margin-left:auto; padding:9px 11px; }
  .mm-menu-toggle { order:3; margin-left:0; }
  .mm-main-menu { order:4; }
}


/* =========================================================
   Product detail purchase controls — beside Metal Color
   ========================================================= */
.mm-purchase-topbar {
  grid-template-columns: minmax(125px, .65fr) minmax(300px, 1.35fr);
}

.mm-purchase-topbar > .metal-selector,
.mm-purchase-topbar > .metal-label {
  min-width: 0;
}

.mm-purchase-topbar .mm-purchase-panel {
  min-width: 0;
  margin: 0;
  border-radius: 14px;
}

.mm-purchase-topbar .mm-purchase-panel h3 {
  margin-bottom: 5px;
  font-size: 1.35rem;
  line-height: 1.05;
}

.mm-purchase-topbar .mm-purchase-meta {
  margin-bottom: 10px;
  font-size: .72rem;
  line-height: 1.45;
}



.mm-purchase-topbar .mm-qty-wrap {
  font-size: .61rem;
}



.mm-purchase-topbar .mm-primary-btn,
.mm-purchase-topbar .mm-secondary-btn {
  font-size: .67rem;
  letter-spacing: .09em;
}

.mm-purchase-topbar .mm-cart-toast {
  font-size: .7rem;
}

@media (max-width: 900px) {
  .mm-purchase-topbar {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .mm-purchase-topbar > .metal-selector,
  .mm-purchase-topbar > .metal-label {
    justify-self: center;
    text-align: center;
  }

  .mm-purchase-topbar .mm-purchase-panel {
    width: 100%;
  }
}

@media (max-width: 520px) {
  .mm-purchase-topbar .mm-purchase-panel {
    padding: 13px;
  }

  .mm-purchase-topbar .mm-purchase-panel h3 {
    font-size: 1.25rem;
  }

  .mm-purchase-topbar .mm-purchase-row {
    align-items: stretch;
  }

  .mm-purchase-topbar .mm-primary-btn,
  .mm-purchase-topbar .mm-secondary-btn {
    flex: 1 1 120px;
  }
}


/* =========================================================
   Compact product purchase area
   Metal Color -> Quantity / Add to Cart / Buy Now
   -> Wishlist / Size Guide / Compare
   ========================================================= */
.mm-purchase-topbar .mm-purchase-panel {
  padding: 10px 12px 11px;
  background: transparent;
  border: 0;
  box-shadow: none;
}



.mm-purchase-topbar .mm-cart-toast {
  margin-top: 6px;
  min-height: 0;
}

/* Old heading/meta are intentionally not rendered anymore. */
.mm-purchase-panel > h3,
.mm-purchase-panel > .mm-purchase-meta {
  display: none !important;
}

@media (max-width: 900px) {
  .mm-purchase-topbar .mm-purchase-panel {
    padding: 8px 0 0;
  }
}


/* =========================================================
   FINAL PRODUCT PURCHASE ORDER
   Metal Color first -> purchase controls directly after it.
   Quantity + Add to Cart + Buy Now stay on one row.
   Wishlist / Size Guide / Compare stay directly underneath.
   ========================================================= */
.mm-purchase-topbar {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  width: 100% !important;
  margin: 0 0 18px !important;
}

.mm-purchase-topbar > .metal-selector,
.mm-purchase-topbar > .metal-label {
  order: 1 !important;
  width: 100% !important;
  margin: 0 !important;
  align-self: center !important;
  justify-self: auto !important;
  text-align: center !important;
}

.mm-purchase-topbar > .mm-purchase-panel {
  order: 2 !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: center !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.mm-purchase-topbar .mm-purchase-row {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: flex-end !important;
  justify-content: center !important;
  gap: 9px !important;
  width: max-content !important;
  max-width: 100% !important;
}

.mm-purchase-topbar .mm-qty-wrap {
  flex: 0 0 auto !important;
}

.mm-purchase-topbar .mm-qty-input {
  width: 76px !important;
  height: 42px !important;
}

.mm-purchase-topbar .mm-primary-btn,
.mm-purchase-topbar .mm-secondary-btn {
  flex: 0 0 auto !important;
  min-height: 42px !important;
  padding: 0 16px !important;
  white-space: nowrap !important;
}

.mm-purchase-topbar .mm-cart-toast {
  text-align: center !important;
}

@media (max-width: 520px) {
  .mm-purchase-topbar {
    gap: 10px !important;
  }

  .mm-purchase-topbar > .mm-purchase-panel {
    width: 100% !important;
  }

  .mm-purchase-topbar .mm-purchase-row {
    width: 100% !important;
    gap: 6px !important;
  }

  .mm-purchase-topbar .mm-qty-input {
    width: 62px !important;
  }

  .mm-purchase-topbar .mm-primary-btn,
  .mm-purchase-topbar .mm-secondary-btn {
    min-width: 0 !important;
    padding: 0 10px !important;
    font-size: .62rem !important;
    letter-spacing: .065em !important;
  }
}

/* =========================================================
   Online checkout — downpayment + 0% bank installment flow
   ========================================================= */
.mm-checkout-page { margin-top:118px; }
.mm-checkout-heading { max-width:760px; margin:0 auto 30px; text-align:center; }
.mm-checkout-kicker { margin:0 0 7px; color:#a77d45; font:700 .64rem/1.2 "Instrument Sans",sans-serif; letter-spacing:.17em; text-transform:uppercase; }
.mm-checkout-heading .mm-commerce-title { margin-bottom:8px; }
.mm-checkout-heading .mm-commerce-subtitle { max-width:720px; margin-inline:auto; }
.mm-checkout-form .mm-panel-pad { padding:28px; }
.mm-checkout-section + .mm-checkout-section { margin-top:30px; padding-top:28px; border-top:1px solid var(--mm-border); }
.mm-section-heading { display:flex; align-items:flex-start; gap:12px; margin-bottom:18px; }
.mm-step-number { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; flex:0 0 30px; color:#0b5e56; background:rgba(11,94,86,.08); border:1px solid rgba(11,94,86,.12); font:700 .72rem "Instrument Sans",sans-serif; }
.mm-section-heading h2 { margin:0; font:600 1.55rem/1 "Fraunces",serif; color:var(--mm-ink); }
.mm-section-heading p { margin:4px 0 0; color:var(--mm-muted); font-size:.72rem; line-height:1.5; }
.mm-field label span { font-weight:400; letter-spacing:0; text-transform:none; color:#9a8a7f; }
.mm-choice-card,.mm-payment-plan-card { transition:border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.mm-choice-card:has(input:checked),.mm-payment-plan-card:has(input:checked) { border-color:rgba(11,94,86,.38); background:rgba(11,94,86,.045); box-shadow:0 0 0 3px rgba(11,94,86,.05); }
.mm-payment-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.mm-payment-plan-card { margin:0; min-height:118px; }
.mm-payment-plan-card > span { display:flex; flex-direction:column; min-width:0; }
.mm-installment-card { border-color:rgba(198,161,91,.28); }
.mm-bank-row { display:flex; flex-wrap:wrap; gap:5px; margin-top:9px; }
.mm-bank-row b { display:inline-flex; align-items:center; min-height:24px; padding:4px 8px; border:1px solid rgba(198,161,91,.32); border-radius:999px; background:#fffaf1; color:#7d6034; font-size:.58rem; letter-spacing:.045em; }
.mm-downpayment-method,.mm-installment-bank { margin-top:18px; padding:17px; border:1px solid rgba(92,75,65,.11); border-radius:13px; background:rgba(255,250,241,.45); }
.mm-downpayment-method h3 { margin:0 0 10px; color:var(--mm-ink); font:600 .82rem/1.3 "Instrument Sans",sans-serif; }
.mm-method-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.mm-method-grid .mm-radio-card { margin:0; }
.mm-installment-note { padding:11px 12px; border-radius:9px; background:rgba(198,161,91,.08); color:#755a3f; font-size:.7rem; line-height:1.55; }
.mm-confirm-card { margin-top:20px; }
.mm-place-order-btn { min-height:48px; font-weight:700; }
.mm-checkout-summary-panel { align-self:start; position:sticky; top:105px; }
.mm-summary-sticky-head { margin-bottom:15px; }
.mm-summary-eyebrow { display:block; margin-bottom:4px; color:#a77d45; font-size:.58rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.mm-checkout-items { display:grid; gap:12px; }
.mm-checkout-summary-item { display:grid; grid-template-columns:52px minmax(0,1fr) auto; gap:10px; align-items:center; }
.mm-checkout-summary-item img,.mm-checkout-summary-fallback { width:52px; height:52px; border-radius:10px; object-fit:cover; background:#f6efe4; border:1px solid rgba(92,75,65,.1); }
.mm-checkout-summary-fallback { display:grid; place-items:center; color:#a77d45; font:600 1rem "Fraunces",serif; }
.mm-checkout-summary-item > div { display:grid; gap:2px; min-width:0; }
.mm-checkout-summary-item strong { color:var(--mm-ink); font-size:.73rem; line-height:1.25; }
.mm-checkout-summary-item small { color:var(--mm-muted); font-size:.61rem; line-height:1.35; white-space:normal; }
.mm-checkout-summary-item span { color:#9a887d; font-size:.58rem; }
.mm-checkout-summary-item > b { font-size:.68rem; white-space:nowrap; }
.mm-summary-divider { height:1px; margin:17px 0; background:var(--mm-border); }
.mm-summary-highlight { margin-top:16px; padding:11px 12px; border-radius:10px; background:rgba(11,94,86,.06); color:#0b5e56; }
.mm-summary-highlight strong { color:#0b5e56; }
.mm-payment-summary-card { margin-top:17px; padding:13px 14px; border:1px solid rgba(198,161,91,.22); border-radius:11px; background:rgba(255,250,241,.65); display:grid; gap:4px; }
.mm-payment-summary-card span { color:#9a7950; font-size:.57rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.mm-payment-summary-card strong { color:var(--mm-ink); font-size:.75rem; line-height:1.35; }
.mm-payment-summary-card small { color:var(--mm-muted); font-size:.64rem; line-height:1.4; }

@media (max-width:900px){
  .mm-checkout-summary-panel{position:static;order:-1}.mm-payment-plan-grid{grid-template-columns:1fr}.mm-payment-plan-card{min-height:0}.mm-method-grid{grid-template-columns:1fr}
}
@media (max-width:640px){
  .mm-checkout-page{margin-top:95px}.mm-checkout-form .mm-panel-pad{padding:20px 16px}.mm-section-heading h2{font-size:1.4rem}.mm-checkout-summary-item{grid-template-columns:46px minmax(0,1fr)}.mm-checkout-summary-item img,.mm-checkout-summary-fallback{width:46px;height:46px}.mm-checkout-summary-item>b{grid-column:2}
}
.mm-cart-payment-perks { margin-top:16px; padding:12px 13px; display:grid; gap:4px; border:1px solid rgba(198,161,91,.22); border-radius:10px; background:rgba(255,250,241,.72); }
.mm-cart-payment-perks strong { color:#0b5e56; font-size:.72rem; }
.mm-cart-payment-perks span { color:var(--mm-muted); font-size:.64rem; line-height:1.4; }

/* Physical-card payment notice */
.mm-physical-card-notice{margin-top:14px;padding:14px 16px;border:1px solid rgba(11,94,86,.16);border-radius:12px;background:rgba(11,94,86,.055);color:#5b4a3e}
.mm-physical-card-notice strong{display:block;margin-bottom:5px;color:#0b5e56;font:600 .78rem/1.35 "Instrument Sans",sans-serif}
.mm-physical-card-notice p{margin:0;font-size:.72rem;line-height:1.65}

.mm-checkout-track-link{margin:.65rem 0 0;text-align:center;color:#837064;font-size:.76rem}.mm-checkout-track-link a{color:#0b5e56;font-weight:700;text-underline-offset:3px}



/* Luxury back navigation for utility pages */
.page-back-btn {
  display:block;
  width:max-content;
  margin: 22px 0 8px;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#6f5a4b;
  text-decoration:none;
}
.page-back-btn:hover { color:#0f766e; }
