/* MadCommerce shared foundations. Definitions only: never theme an unrelated host. */
:root{--mc-font:Inter,"Segoe UI",system-ui,sans-serif;--mc-ink:#192640;--mc-muted:#62708a;--mc-canvas:#f4f6fc;--mc-surface:#fff;--mc-primary:#5b4bc4;--mc-primary-hover:#493ba4;--mc-primary-soft:#eeecff;--mc-border:#dfe5f0;--mc-positive:#13745b;--mc-positive-soft:#e5f5ed;--mc-warning:#785b16;--mc-warning-soft:#fff7e5;--mc-radius-sm:8px;--mc-radius:14px;--mc-radius-lg:20px;--mc-space-1:8px;--mc-space-2:12px;--mc-space-3:16px;--mc-space-4:24px;--mc-space-5:32px;--mc-shadow:0 5px 20px #15244108;--mc-focus:3px solid #8273db}
.mc-guide{list-style:none;padding:0;counter-reset:mc-step}.mc-guide>li{counter-increment:mc-step;position:relative;padding:20px 24px 20px 64px;margin:12px 0;border:1px solid var(--mc-border);border-radius:var(--mc-radius);background:var(--mc-surface);box-shadow:var(--mc-shadow)}.mc-guide>li:before{content:counter(mc-step);position:absolute;left:20px;top:22px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--mc-primary-soft);color:var(--mc-primary);font-weight:700}.mc-guide h2{margin-top:0}.mc-guide [data-ready=true]:before{background:var(--mc-positive-soft);color:var(--mc-positive)}.mc-guide [data-ready=true]{border-color:#c6e1d3}.mc-progress{display:inline-block;padding:5px 10px;border-radius:99px;background:var(--mc-primary-soft);color:var(--mc-primary);font-size:12px;font-weight:600}.mc-flow fieldset{border:0;padding:0;margin:0 0 28px}.mc-flow legend{font-size:18px;font-weight:650;color:var(--mc-ink);margin-bottom:16px}.mc-flow small{display:block;color:var(--mc-muted);line-height:1.6}

.mc-badges{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;align-items:center;clear:both}.mc-badge{display:inline-block;line-height:1.3;font-weight:650;max-width:100%;overflow-wrap:anywhere;box-sizing:border-box}.mc-badge-top_right,.mc-badge-bottom_right{margin-inline-start:auto}.mc-badge-mobile{display:none}@media(max-width:48rem){.mc-badge-mobile{display:inline-block}.mc-badge-desktop{display:none}}

.mc-badge[hidden]{display:none!important}.mc-countdown-before,.mc-countdown-after,.mc-countdown-deadline{display:block}.mc-countdown-deadline{font-size:12px;font-weight:400;margin-top:4px}.mc-badge[role=timer] [data-mc-countdown-value]{font-variant-numeric:tabular-nums;white-space:nowrap}

/* Badge motion is opt-in. Each page provides a CSS-only stop control. */
.mc-motion-toggle{accent-color:var(--mc-primary)}.mc-motion-label{display:inline-block;margin:0 0 4px;font-weight:600;color:var(--mc-ink)}.mc-motion-hint{display:block;margin:0 0 var(--mc-space-3);color:var(--mc-muted);line-height:1.5}
.mc-badge.mc-motion-bounce{animation:mc-badge-bounce var(--mc-badge-motion-duration,1000ms) infinite ease-in-out}
.mc-badge.mc-motion-breathing{animation:mc-badge-breathing var(--mc-badge-motion-duration,1000ms) infinite ease-in-out}
.mc-badge.mc-motion-jiggle{animation:mc-badge-jiggle var(--mc-badge-motion-duration,1000ms) infinite ease-in-out}
.mc-badge.mc-motion-rotate{animation:mc-badge-rotate var(--mc-badge-motion-duration,1000ms) infinite linear}
.mc-badge.mc-motion-shake{animation:mc-badge-shake var(--mc-badge-motion-duration,1000ms) infinite linear}
.mc-badge.mc-motion-sway{animation:mc-badge-sway var(--mc-badge-motion-duration,1000ms) infinite ease-in-out}
.mc-badge.mc-motion-tilt{animation:mc-badge-tilt var(--mc-badge-motion-duration,1000ms) infinite ease-in-out}
.mc-badge.mc-motion-wave{animation:mc-badge-wave var(--mc-badge-motion-duration,1000ms) infinite ease-in-out}
/* Pulse a static shadow's opacity instead of repainting a blur each frame. */
.mc-badge.mc-motion-shadow-pulse{position:relative}
.mc-badge.mc-motion-shadow-pulse::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:0 4px 8px #0006;opacity:0;pointer-events:none;animation:mc-badge-shadow-pulse var(--mc-badge-motion-duration,1000ms) infinite ease-in-out}
@keyframes mc-badge-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes mc-badge-breathing{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes mc-badge-jiggle{0%,100%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(1px) rotate(1deg)}50%{transform:translateX(-1px) rotate(-1deg)}75%{transform:translateX(1px) rotate(.5deg)}}
@keyframes mc-badge-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes mc-badge-shadow-pulse{0%,100%{opacity:.5;transform:translateY(-1px) scale(.98)}50%{opacity:1;transform:translateY(1px) scale(1.02)}}
@keyframes mc-badge-shake{0%,100%{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-2px)}20%,40%,60%,80%{transform:translateX(2px)}}
@keyframes mc-badge-sway{0%,100%{transform:translateX(-3px)}50%{transform:translateX(3px)}}
@keyframes mc-badge-tilt{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
@keyframes mc-badge-wave{0%,100%{transform:translateX(0)}25%{transform:translateX(2px)}75%{transform:translateX(-2px)}}
.mc-motion-toggle:checked~.mc-motion-content .mc-badge[data-mc-motion],.mc-motion-toggle:checked~.mc-motion-content .mc-badge[data-mc-motion]::after{animation:none!important}
@media(prefers-reduced-motion:reduce){.mc-badge[data-mc-motion],.mc-badge[data-mc-motion]::after{animation:none!important;transition:none!important}}

.mc-image-choice{display:block;max-width:160px;height:auto}.mc-badge img[data-mc-image]{display:block;width:100%;max-width:100%;height:auto;border-radius:inherit}.mc-badge img.mc-badge-image-live{display:none}
@media(prefers-reduced-motion:no-preference){.mc-badge[data-mc-image-motion]>.mc-badge-image-live{display:block}.mc-badge[data-mc-image-motion]>.mc-badge-image-still{display:none}}
.mc-motion-toggle:checked~.mc-motion-content .mc-badge-image-live{display:none!important}.mc-motion-toggle:checked~.mc-motion-content .mc-badge-image-still{display:block!important}

/* Product media uses the same spacing, surfaces and focus treatment in both engines. */
.mc-photo-grid,.mc-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:var(--mc-space-4);margin-block:var(--mc-space-3)}.mc-photo-grid>fieldset{min-width:0;border:1px solid var(--mc-border);border-radius:var(--mc-radius);padding:var(--mc-space-3);background:var(--mc-surface)}.mc-photo-grid legend{font-weight:650;color:var(--mc-ink);padding-inline:var(--mc-space-1)}.mc-product-gallery{margin-block:var(--mc-space-3)}.mc-product-image-frame{position:relative;margin:0;min-width:0;border-radius:var(--mc-radius);overflow:hidden;background:var(--mc-canvas)}.mc-product-photo{display:block;width:100%;height:auto;max-height:36rem;object-fit:contain}.mc-product-image-frame figcaption{padding:var(--mc-space-2) var(--mc-space-3);color:var(--mc-muted);background:var(--mc-surface);overflow-wrap:anywhere}.mc-product-gallery summary{cursor:pointer;padding-block:var(--mc-space-2);color:var(--mc-primary);font-weight:650}.mc-product-gallery summary:focus-visible{outline:var(--mc-focus);outline-offset:3px}.mc-review-grid>section{min-width:0}

/* Photo overlays stay inside the main-photo area, separate from captions and gallery items. */
.mc-product-photo-frame{position:relative;isolation:isolate}.mc-badge-overlays{position:absolute;inset:0;z-index:2;pointer-events:none}.mc-badge-corner{position:absolute;left:0;right:0;display:flex;flex-direction:column;gap:0;align-items:flex-start;pointer-events:none}.mc-badge-corner-top_left,.mc-badge-corner-top_right{top:0}.mc-badge-corner-bottom_left,.mc-badge-corner-bottom_right{bottom:0}.mc-badge-corner-top_right,.mc-badge-corner-bottom_right{align-items:flex-end}.mc-badge-overlays .mc-badge{flex:none;min-width:0;pointer-events:none}

/* Keep private editor thumbnails at their intrinsic size. */
.mc-photo-preview{display:block;width:auto;max-width:100%;height:auto;margin-inline:auto;object-fit:contain}
.mc-review-card{border:1px solid var(--mc-border);border-radius:var(--mc-radius);padding:1.25rem;margin:1rem 0;background:var(--mc-surface)}.mc-review-card>header{display:flex;align-items:center;justify-content:flex-start;gap:.8rem;margin-bottom:.7rem}.mc-review-card h3,.mc-review-card header p{margin:.2rem 0}.mc-review-avatar{display:grid;place-items:center;flex:0 0 2.75rem;height:2.75rem;border-radius:50%;background:var(--mc-primary-soft);color:var(--mc-primary);font-weight:700}.mc-review-stars{display:inline-block;color:var(--mc-primary);letter-spacing:.12em;font-size:1.15rem}.mc-review-body{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7}.mc-review-response{margin-top:1rem;padding:1rem;border-left:3px solid var(--mc-primary);border-radius:var(--mc-radius-sm);background:var(--mc-primary-soft)}.mc-review-response h4{margin:0 0 .5rem}.mc-review-response p{margin-bottom:0}.mc-rating-options{display:flex;flex-wrap:wrap;gap:.5rem}.mc-rating-options label{display:flex;align-items:center;gap:.5rem;min-height:44px;border:1px solid var(--mc-border);border-radius:var(--mc-radius-sm);padding:.5rem .8rem}.mc-review-summary{font-size:.9rem}

/* Review spreadsheet layouts share the same foundations in both surfaces. */
.mc-sheet-wrap{overflow:auto;max-width:100%;border:1px solid var(--mc-border);border-radius:var(--mc-radius);margin-block:16px;position:relative}.mc-sheet-wrap:focus-visible{outline:var(--mc-focus);outline-offset:3px}.mc-review-sheet{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%}.mc-review-sheet th,.mc-review-sheet td{padding:12px;vertical-align:top;border-bottom:1px solid var(--mc-border);box-sizing:border-box}.mc-review-sheet thead th{position:sticky;top:0;z-index:2;background:var(--mc-canvas);text-align:start}.mc-review-sheet tr>th:first-child{position:sticky;inset-inline-start:0;width:192px;min-width:192px;max-width:192px;z-index:1;background:var(--mc-surface);overflow-wrap:anywhere}.mc-review-sheet thead tr>th:first-child{z-index:3;background:var(--mc-canvas)}.mc-review-sheet td label{display:block}.mc-review-sheet td input,.mc-review-sheet td select,.mc-review-sheet td textarea{box-sizing:border-box;max-width:100%;width:100%;min-width:0}.mc-review-sheet tbody tr:focus-within>td{background:var(--mc-primary-soft)}
.mc-review-sheet .mc-sheet-w96{width:96px;min-width:96px;max-width:96px}.mc-review-sheet .mc-sheet-w128{width:128px;min-width:128px;max-width:128px}.mc-review-sheet .mc-sheet-w160{width:160px;min-width:160px;max-width:160px}.mc-review-sheet .mc-sheet-w192{width:192px;min-width:192px;max-width:192px}.mc-review-sheet .mc-sheet-w256{width:256px;min-width:256px;max-width:256px}.mc-review-sheet .mc-sheet-w320{width:320px;min-width:320px;max-width:320px}.mc-review-sheet .mc-sheet-w384{width:384px;min-width:384px;max-width:384px}.mc-review-sheet .mc-sheet-w448{width:448px;min-width:448px;max-width:448px}.mc-review-sheet .mc-sheet-w512{width:512px;min-width:512px;max-width:512px}.mc-review-sheet .mc-sheet-w640{width:640px;min-width:640px;max-width:640px}
