/* ==========================================================================
   MNM's Peculiar Designs — theme styles (The Free Website Guys)
   ========================================================================== */

:root {
	--color-background: #0d0d0d;
	--color-foreground: #eeebe6;
	--color-card: #141414;
	--color-primary: #ee3b4c;
	--color-secondary: #1c1c1c;
	--color-muted-foreground: #aca9a1;
	--color-border: #383838;
	--color-input: #424242;
	--color-accent: #489353;
	--color-surface-deep: #000000;
	--color-hero-foreground: #f6f4f1;
	--color-primary-foreground: #ffffff;
	--color-accent-foreground: #ffffff;
	--color-hero-overlay: #000000;
	--font-display: 'Oswald', sans-serif;
	--font-body: 'Barlow', sans-serif;
	--radius: 0.25rem;
	--radius-md: calc(var(--radius) - 2px);
	--transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);
	--ring: 0 0 0 2px var(--color-background), 0 0 0 4px var(--color-primary);
}

/* ---------- Reset (preflight parity) ---------- */
*, *::before, *::after { box-sizing: border-box; border-width: 0; border-style: solid; border-color: var(--color-border); }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; scroll-behavior: smooth; max-width: 100%; }
body { margin: 0; line-height: inherit; min-width: 320px; max-width: 100%; background-color: var(--color-background); color: var(--color-foreground); font-family: var(--font-body); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; margin: 0; font-family: var(--font-display); letter-spacing: 0; text-transform: uppercase; }
p, ol, ul, figure, blockquote, dl, dd { margin: 0; }
ol, ul { list-style: none; padding: 0; }
a { color: inherit; text-decoration: inherit; }
img, svg, video { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }
button, input, select, textarea { font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; color: inherit; margin: 0; padding: 0; letter-spacing: inherit; }
button, select { text-transform: none; }
button, [type='button'], [type='submit'] { -webkit-appearance: button; background-color: transparent; background-image: none; cursor: pointer; }
button:disabled { cursor: default; }
textarea { resize: vertical; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; }
.text-primary { color: var(--color-primary); }
.break-all { word-break: break-all; }
.underline { text-decoration-line: underline; }
.container-wide { width: 100%; max-width: 80rem; margin-left: auto; margin-right: auto; padding-left: 1.5rem; padding-right: 1.5rem; }
@media (min-width: 1024px) { .container-wide { padding-left: 2rem; padding-right: 2rem; } }

/* ---------- Animation utilities (ported keyframes) ---------- */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }
@keyframes slideUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes mnm-dialog-in { from { opacity: 0; transform: translate3d(-50%, -48%, 0) scale3d(0.95, 0.95, 1); } }
@keyframes mnm-dialog-out { to { opacity: 0; transform: translate3d(-50%, -48%, 0) scale3d(0.95, 0.95, 1); } }
@keyframes mnm-reveal-fallback { to { opacity: 1; transform: none; } }
.animate-fade-in { animation: fadeIn 0.6s var(--transition-smooth) forwards; }
.animate-slide-up { animation: slideUp 0.6s var(--transition-smooth) forwards; }

/* Scroll reveal (opacity + 18px rise, 0.5s, once) */
.mnm-reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out; animation: mnm-reveal-fallback 0.5s ease-in-out 2.5s forwards; }
.mnm-reveal.is-visible { opacity: 1; transform: none; animation: none; }
body.is-customizer .mnm-reveal { opacity: 1; transform: none; animation: none; }

/* ---------- Buttons ---------- */
.btn, .site-nav__list a, .mobile-nav__list a, .footer-nav__list a {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; white-space: nowrap;
	border-radius: var(--radius-md); font-family: var(--font-display); font-size: 1rem; line-height: 1.5rem; font-weight: 500;
	height: 2.5rem; padding: 0.5rem 1rem; text-transform: none; text-decoration: none;
	transition: color 0.15s var(--transition-smooth), background-color 0.15s var(--transition-smooth), border-color 0.15s var(--transition-smooth), text-decoration-color 0.15s var(--transition-smooth);
}
.btn:focus-visible, .site-nav__list a:focus-visible, .mobile-nav__list a:focus-visible, .footer-nav__list a:focus-visible { outline: none; box-shadow: var(--ring); }
.btn:disabled { pointer-events: none; opacity: 0.5; }
.btn svg { width: 1rem; height: 1rem; flex-shrink: 0; pointer-events: none; }
.btn--primary {
	color: var(--color-primary-foreground); background-color: var(--color-primary);
	background-image: linear-gradient(135deg, hsl(from var(--color-primary) h calc(s + 7) calc(l + 5)) 0%, hsl(from var(--color-primary) h calc(s + 3) calc(l - 14)) 100%);
	background-size: 160% 100%; background-position: 0% 0%;
	box-shadow: 0 2px 10px color-mix(in srgb, hsl(from var(--color-primary) h calc(s + 3) calc(l - 14)) 35%, transparent);
}
.btn--primary:hover { background-position: 90% 0%; box-shadow: 0 4px 18px color-mix(in srgb, hsl(from var(--color-primary) h calc(s + 3) calc(l - 14)) 50%, transparent); }
.btn--primary:focus-visible { box-shadow: var(--ring), 0 2px 10px color-mix(in srgb, hsl(from var(--color-primary) h calc(s + 3) calc(l - 14)) 35%, transparent); }
.btn--outline { border: 1px solid var(--color-input); background-color: var(--color-background); }
.btn--outline:hover, .btn--ghost:hover { background-color: var(--color-accent); color: var(--color-accent-foreground); }
.btn--link { color: var(--color-primary); text-underline-offset: 4px; }
.btn--link:hover { text-decoration-line: underline; }
.btn--lg { height: 2.75rem; padding-left: 2rem; padding-right: 2rem; }
.btn--icon { height: 2.5rem; width: 2.5rem; padding: 0; }
.btn--hero { height: 3.5rem; text-transform: uppercase; }
.btn--hero-outline { background-color: transparent; color: var(--color-hero-foreground); border-color: color-mix(in srgb, var(--color-hero-foreground) 40%, transparent); }
.btn--hero-outline:hover { background-color: var(--color-accent); color: var(--color-accent-foreground); }

/* ---------- Form controls ---------- */
.input, .field { width: 100%; border-radius: var(--radius-md); border: 1px solid var(--color-input); background-color: var(--color-background); font-size: 1rem; line-height: 1.5rem; }
.input { display: flex; height: 2.5rem; padding: 0.5rem 0.75rem; }
.input.field { padding: 0.75rem; }
.field { padding: 0.75rem; }
.input::placeholder, .field::placeholder { color: var(--color-muted-foreground); opacity: 1; }
.input:focus-visible { outline: none; box-shadow: var(--ring); }
.field:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--color-primary); }
.field--resize { resize: vertical; }
[aria-invalid='true'] { border-color: var(--color-primary); }
.field-label { display: block; font-size: 1rem; line-height: 1.5rem; margin-bottom: 0.5rem; }
.field-error { color: var(--color-primary); font-size: 1rem; line-height: 1.5rem; margin-top: 0.5rem; }

/* ---------- Announcement ---------- */
.announcement { position: relative; background-color: var(--color-surface-deep); color: var(--color-foreground); border-bottom: 1px solid var(--color-border); }
.announcement__text { padding: 0.75rem 3.5rem; text-align: center; font-size: 0.875rem; line-height: 1.625; text-transform: uppercase; }
.announcement__close { position: absolute; right: 0.25rem; top: 50%; transform: translateY(-50%); }

/* ---------- Header ---------- */
.site-header { position: sticky; top: 0; z-index: 40; border-bottom: 1px solid var(--color-border); background-color: color-mix(in srgb, var(--color-background) 95%, transparent); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
.site-nav { display: flex; height: 7rem; align-items: center; justify-content: space-between; gap: 1rem; }
.site-brand { display: flex; min-width: 0; align-items: center; gap: 0.75rem; }
.site-brand__logo { height: 5rem; width: 5rem; object-fit: contain; flex-shrink: 0; }
.site-brand__text { display: none; font-family: var(--font-display); font-size: 1rem; line-height: 1.25; }
@media (min-width: 640px) { .site-brand__text { display: block; } }
.site-nav__desktop { display: none; }
.site-nav__list { display: flex; align-items: center; gap: 1.5rem; }
.site-nav__list a { color: var(--color-foreground); text-transform: uppercase; text-underline-offset: 4px; }
.site-nav__list a:hover, .footer-nav__list a:hover { text-decoration-line: underline; }
@media (min-width: 1024px) { .site-nav__desktop { display: flex; } .menu-toggle, .mobile-nav { display: none !important; } }
.site-nav__actions { display: flex; align-items: center; gap: 0.25rem; }
.cart-button { position: relative; }
.theme-cart-count { position: absolute; right: 0; top: 0; display: flex; height: 1.25rem; min-width: 1.25rem; align-items: center; justify-content: center; border-radius: 9999px; background-color: var(--color-primary); color: var(--color-primary-foreground); font-size: 0.875rem; line-height: 1.25rem; }
.theme-cart-count:empty { display: none; }
.mobile-nav { border-top: 1px solid var(--color-border); padding: 0.75rem 0; display: flex; flex-direction: column; }
.mobile-nav__list { display: flex; flex-direction: column; }
.mobile-nav__list a { justify-content: flex-start; height: 3rem; text-transform: uppercase; }
.mobile-nav__list a:hover { background-color: var(--color-accent); color: var(--color-accent-foreground); }

/* ---------- Hero ---------- */
.resin-hero { position: relative; display: flex; align-items: center; min-height: 100vh; min-height: 100svh; }
.resin-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 72% center; }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, color-mix(in srgb, var(--color-hero-overlay) 94%, transparent) 0%, color-mix(in srgb, var(--color-hero-overlay) 80%, transparent) 30%, color-mix(in srgb, var(--color-hero-overlay) 18%, transparent) 75%); }
.resin-hero__inner { position: relative; padding-top: 5rem; padding-bottom: 5rem; }
.resin-hero__content { max-width: 36rem; }
.resin-hero__eyebrow { color: var(--color-primary); font-size: 1rem; line-height: 1.5rem; text-transform: uppercase; margin-bottom: 1.25rem; display: flex; align-items: center; gap: 0.75rem; }
.resin-hero__rule { width: 2rem; height: 1px; background-color: var(--color-primary); }
.resin-hero__title { font-family: var(--font-display); font-size: 3rem; line-height: 1.06; color: var(--color-hero-foreground); }
@media (min-width: 640px) { .resin-hero__title { font-size: 3.75rem; line-height: 1; } }
@media (min-width: 1024px) { .resin-hero__title { font-size: 4.5rem; line-height: 1; } }
.resin-hero__text { color: color-mix(in srgb, var(--color-hero-foreground) 85%, transparent); font-size: 1.125rem; line-height: 1.625; max-width: 28rem; margin-top: 1.75rem; }
.resin-hero__actions { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.25rem; }
.resin-hero__note { color: color-mix(in srgb, var(--color-hero-foreground) 65%, transparent); font-size: 0.875rem; line-height: 1.25rem; margin-top: 2rem; }
.resin-hero__chevron { position: absolute; bottom: 1.25rem; right: 1.5rem; color: var(--color-hero-foreground); }
.resin-hero__chevron svg { width: 1.5rem; height: 1.5rem; }
@media (max-width: 639px) {
	.hero-shade { background: linear-gradient(90deg, color-mix(in srgb, var(--color-hero-overlay) 94%, transparent), color-mix(in srgb, var(--color-hero-overlay) 60%, transparent)); }
	.resin-hero__img { object-position: 72% center; }
}

/* ---------- Sections ---------- */
.section { scroll-margin-top: 7rem; }
.section--card { background-color: var(--color-card); }
.section--secondary { background-color: var(--color-secondary); }
.section--contact { border-top: 1px solid var(--color-border); }
.section-eyebrow { color: var(--color-primary); font-size: 14px; line-height: 1.5; text-transform: uppercase; }
.section-title { font-size: 2.25rem; line-height: 2.5rem; margin-top: 1rem; }
@media (min-width: 768px) { .section-title { font-size: 3rem; line-height: 1; } }
.section-head { text-align: center; }
.section-head--collections { margin-bottom: 2.5rem; }
.section-head--services { margin-bottom: 3rem; }
.section-head--shop { margin-bottom: 2.5rem; }
.section__inner--collections { padding-top: 4rem; padding-bottom: 4rem; }
.section__inner--services, .section__inner--shop { padding-top: 5rem; padding-bottom: 5rem; }
.section__inner--contact { padding-top: 5rem; padding-bottom: 5rem; }
@media (min-width: 768px) {
	.section__inner--collections { padding-top: 6rem; padding-bottom: 6rem; }
	.section__inner--services, .section__inner--shop { padding-top: 6rem; padding-bottom: 6rem; }
	.section__inner--contact { padding-top: 7rem; padding-bottom: 7rem; }
}

/* About */
.about { max-width: 48rem; margin: 0 auto; text-align: center; padding: 5rem 1.5rem; }
@media (min-width: 768px) { .about { padding-top: 7rem; padding-bottom: 7rem; } }
.about__title { font-size: 2.25rem; line-height: 1.25; margin-top: 1rem; margin-bottom: 1.75rem; }
@media (min-width: 768px) { .about__title { font-size: 3rem; line-height: 1; } }
.about__lead { color: var(--color-muted-foreground); font-size: 1.125rem; line-height: 1.625; }
.about__p { color: var(--color-muted-foreground); line-height: 1.625; margin-top: 1.25rem; }
.about__link { margin-top: 1.5rem; }

/* Collections */
.tile-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 768px) { .tile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.collection-tile { position: relative; aspect-ratio: 3 / 4; isolation: isolate; }
.collection-tile__btn { width: 100%; height: 100%; padding: 0; border-radius: 0; white-space: normal; text-align: left; position: relative; display: inline-flex; overflow: visible; }
.collection-tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.collection-shade { position: absolute; inset: 0; background: linear-gradient(0deg, color-mix(in srgb, var(--color-hero-overlay) 95%, transparent), color-mix(in srgb, var(--color-hero-overlay) 0%, transparent) 65%); }
.collection-tile__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.5rem; color: var(--color-hero-foreground); display: block; }
.collection-tile__text { display: block; font-size: 0.875rem; line-height: 1.25rem; color: color-mix(in srgb, var(--color-hero-foreground) 75%, transparent); margin-bottom: 0.75rem; font-family: var(--font-body); }
.collection-tile__name { display: block; font-family: var(--font-display); font-size: 1.875rem; line-height: 2.25rem; text-transform: uppercase; margin-bottom: 1rem; }
.collection-tile__cta { display: flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; line-height: 1.25rem; text-transform: uppercase; color: var(--color-primary); }
.collection-tile__cta svg { width: 1rem; height: 1rem; }

/* Services */
.service-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
@media (min-width: 768px) { .service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.service { border-top: 1px solid var(--color-border); padding-top: 1.75rem; }
.service__icon { height: 2.25rem; width: 2.25rem; color: var(--color-primary); margin-bottom: 1.5rem; }
.service__title { font-size: 1.5rem; line-height: 2rem; margin-bottom: 1rem; }
.service__text { color: var(--color-muted-foreground); line-height: 1.625; }
.services__more { text-align: center; margin-top: 2.5rem; }

/* Shop */
.shop-title { margin-bottom: 1.25rem; }
.shop-subtitle { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); }
.shop-search { max-width: 28rem; margin: 0 auto 1.5rem; position: relative; }
.shop-search__icon { position: absolute; top: 0.75rem; left: 0.75rem; height: 1rem; width: 1rem; color: var(--color-muted-foreground); }
.shop-search__input { padding-left: 2.5rem; }
.shop-cats { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.5rem; }
.price-filter { max-width: 24rem; margin: 1.5rem auto; }
.price-filter__toggle { text-align: center; }
#price-toggle[aria-expanded='true'] svg { transform: rotate(180deg); }
.price-filter__panel { padding: 1rem 0; }
.price-filter__labels { display: flex; justify-content: space-between; margin-top: 0.75rem; font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); }
.price-range-wrapper { position: relative; height: 1.25rem; width: 100%; touch-action: none; user-select: none; }
.range-track-bg, .range-track-fill { position: absolute; height: 0.5rem; top: 50%; transform: translateY(-50%); pointer-events: none; }
.range-track-bg { left: 0; right: 0; border-radius: 9999px; background-color: var(--color-secondary); }
.range-track-fill { background-color: var(--color-primary); }
.range-input { position: absolute; left: 0; top: 0; width: 100%; height: 100%; margin: 0; -webkit-appearance: none; appearance: none; background: transparent; pointer-events: none; }
.range-input::-webkit-slider-runnable-track { background: transparent; height: 100%; }
.range-input::-moz-range-track { background: transparent; }
.range-input::-webkit-slider-thumb { -webkit-appearance: none; appearance: none; pointer-events: auto; height: 1.25rem; width: 1.25rem; border-radius: 9999px; border: 2px solid var(--color-primary); background-color: var(--color-background); cursor: pointer; transition: color 0.15s var(--transition-smooth), background-color 0.15s var(--transition-smooth), border-color 0.15s var(--transition-smooth); }
.range-input::-moz-range-thumb { pointer-events: auto; box-sizing: border-box; height: 1.25rem; width: 1.25rem; border-radius: 9999px; border: 2px solid var(--color-primary); background-color: var(--color-background); cursor: pointer; }
.range-input:focus-visible { outline: none; }
.range-input:focus-visible::-webkit-slider-thumb { box-shadow: var(--ring); }
.range-input:focus-visible::-moz-range-thumb { box-shadow: var(--ring); }
.range-input--max { z-index: 3; }
.range-input--min { z-index: 4; }

.theme-product-grid { display: grid; grid-template-columns: 1fr; column-gap: 1.5rem; row-gap: 2.5rem; }
@media (min-width: 640px) { .theme-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .theme-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.product-card { min-width: 0; }
.product-card__media { position: relative; aspect-ratio: 3 / 4; background-color: var(--color-secondary); margin-bottom: 1.25rem; }
.product-card__view { height: 100%; width: 100%; padding: 0; border-radius: 0; }
.product-card__add { position: absolute; bottom: 0.75rem; right: 0.75rem; }
.product-card__row { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.75rem; }
.product-card__name { height: auto; padding: 0; text-align: left; color: var(--color-foreground); white-space: normal; justify-content: flex-start; font-family: var(--font-body); font-size: 1rem; }
.product-card__price { font-size: 1rem; line-height: 1.5rem; flex-shrink: 0; }
.product-card__note { font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); margin-top: 0.5rem; }
.product-visual { width: 100%; height: 100%; object-fit: cover; display: block; }
.product-visual--empty { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; background-color: var(--color-secondary); color: var(--color-muted-foreground); font-size: 0.875rem; line-height: 1.25rem; }
.product-visual__icon { height: 4rem; width: 4rem; }
.shop-empty { text-align: center; padding: 4rem 0; }
.shop-empty p { color: var(--color-muted-foreground); }

/* Contact */
.contact-head { max-width: 42rem; margin: 0 auto; text-align: center; }
.contact-title { font-size: 2.25rem; line-height: 2.5rem; margin-top: 1rem; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .contact-title { font-size: 3rem; line-height: 1; } }
.contact-head__text { color: var(--color-muted-foreground); font-size: 1.125rem; line-height: 1.625; }
.contact-grid { display: grid; gap: 3rem; align-items: start; margin: 3.5rem auto 0; max-width: 64rem; }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; } }
.contact-info__title { font-size: 1.5rem; line-height: 2rem; margin-bottom: 1.5rem; }
.steps > * + * { margin-top: 1.5rem; }
.steps__item { display: flex; gap: 1rem; }
.steps__num { font-family: var(--font-display); color: var(--color-primary); font-size: 1.125rem; line-height: 1; padding-top: 0.25rem; flex-shrink: 0; }
.steps__title { font-family: var(--font-display); text-transform: uppercase; font-size: 1rem; line-height: 1.5rem; }
.steps__text { font-size: 1rem; line-height: 1.625; color: var(--color-muted-foreground); margin-top: 0.25rem; }
.contact-details { border-top: 1px solid var(--color-border); margin-top: 2.25rem; padding-top: 1.75rem; font-size: 1rem; line-height: 1.5rem; }
.contact-details > * + * { margin-top: 1rem; }
.contact-details__link { display: flex; gap: 0.75rem; align-items: center; }
.contact-details__link--email { max-width: 100%; }
.contact-details__link--muted { color: var(--color-muted-foreground); }
.contact-details__icon { height: 1rem; width: 1rem; flex-shrink: 0; }
.contact-details--footer { border: 0; margin-top: 0; padding-top: 0; }
.contact-details--footer > * + * { margin-top: 1rem; }
.contact-details__icon--footer { width: 1rem; height: 24px; }
.social-links { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.social-links--pad { padding-top: 0.5rem; }
.social-links--pad-lg { padding-top: 1.25rem; }

/* Order form */
.order-form { border: 1px solid var(--color-border); background-color: var(--color-background); padding: 1.5rem; }
.order-form > * + * { margin-top: 1.25rem; }
@media (min-width: 640px) { .order-form { padding: 2rem; } }
.order-form__row { display: grid; gap: 1rem; }
@media (min-width: 640px) { .order-form__row { grid-template-columns: minmax(0, 1fr) 5.5rem; } .order-form__row--single { grid-template-columns: minmax(0, 1fr); } }
.order-form__count-row { display: flex; justify-content: space-between; gap: 0.75rem; margin-top: 0.5rem; }
.order-form__count-row .field-error { margin-top: 0; }
.order-form__count { font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); flex-shrink: 0; margin-left: auto; }
.photo-choose { width: 100%; cursor: pointer; }
.photo-selected { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; border: 1px solid var(--color-border); padding: 0.75rem; font-size: 1rem; line-height: 1.5rem; }
.photo-selected__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.photo-hint { font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); margin-top: 0.5rem; }
.order-form__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; padding-top: 0.25rem; }
.order-form__send { flex: 1 1 0%; min-width: 11rem; }
.order-form__copy { padding-left: 0; padding-right: 0; }
.order-form__copy > span { display: inline-flex; align-items: center; gap: 0.5rem; }
.order-form__sent { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); }

/* ---------- Footer ---------- */
.site-footer { background-color: var(--color-surface-deep); color: var(--color-foreground); border-top: 1px solid var(--color-border); }
.site-footer__grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding-top: 3.5rem; padding-bottom: 3.5rem; }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.site-footer__logo { display: inline-block; }
.site-footer__logo-img { width: 8rem; height: 8rem; object-fit: contain; }
.site-footer__name { font-family: var(--font-display); font-size: 1.5rem; line-height: 2rem; margin-top: 1rem; }
.site-footer__tagline { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); margin-top: 0.5rem; }
.site-footer__heading { font-size: 1rem; line-height: 1.5rem; margin-bottom: 1rem; }
.site-footer__heading--touch { margin-bottom: 1.25rem; }
.site-footer__touch { min-width: 0; }
.footer-nav__list { display: flex; flex-direction: column; align-items: flex-start; }
.footer-nav__list a { padding-left: 0; padding-right: 0; color: var(--color-foreground); color: var(--color-foreground); text-underline-offset: 4px; }
.site-footer__bar { border-top: 1px solid var(--color-border); }
.site-footer__bar-inner { padding-top: 1.5rem; padding-bottom: 1.5rem; display: flex; flex-direction: column; justify-content: space-between; gap: 0.75rem; font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); }
@media (min-width: 640px) { .site-footer__bar-inner { flex-direction: row; } }

/* ---------- Dialogs ---------- */
body.dialog-open { overflow: hidden; }
.dialog__overlay { position: fixed; inset: 0; z-index: 50; background-color: rgba(0, 0, 0, 0.8); }
.dialog[data-state='open'] .dialog__overlay { animation: fadeIn 0.15s ease; }
.dialog[data-state='closed'] .dialog__overlay { animation: fadeOut 0.15s ease forwards; }
.dialog__content {
	position: fixed; left: 50%; top: 50%; z-index: 50; display: grid; width: 100%; max-width: 32rem; gap: 1rem;
	transform: translate3d(-50%, -50%, 0); border: 1px solid var(--color-border); background-color: var(--color-background); padding: 1.5rem;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}
@media (min-width: 640px) { .dialog__content { border-radius: var(--radius); } }
.dialog[data-state='open'] .dialog__content { animation: mnm-dialog-in 0.2s ease; }
.dialog[data-state='closed'] .dialog__content { animation: mnm-dialog-out 0.2s ease forwards; }
.dialog__content:focus { outline: none; }
.dialog__content--product { max-width: 48rem; max-height: 90vh; max-height: 90dvh; overflow-y: auto; }
.dialog__content--contact { max-height: 90vh; max-height: 90dvh; overflow-y: auto; }
.dialog__content--cart { left: auto; right: 0; top: 0; transform: none; height: 100vh; height: 100dvh; max-width: 28rem; border-radius: 0; display: flex; flex-direction: column; gap: 0; }
.admin-bar .dialog__content--cart { top: 32px; height: calc(100dvh - 32px); }
@media (max-width: 782px) { .admin-bar .dialog__content--cart { top: 46px; height: calc(100dvh - 46px); } }
.dialog__close { position: absolute; right: 1rem; top: 1rem; border-radius: 0.125rem; opacity: 0.7; transition: opacity 0.15s; line-height: 0; color: inherit; }
.dialog__close:hover { opacity: 1; }
.dialog__close:focus { outline: none; box-shadow: var(--ring); }
.dialog__close svg { height: 1rem; width: 1rem; }
.dialog__header { display: flex; flex-direction: column; gap: 0.375rem; text-align: center; }
@media (min-width: 640px) { .dialog__header { text-align: left; } }
.dialog__header--cart { padding-bottom: 1.25rem; border-bottom: 1px solid var(--color-border); }
.dialog__title { font-size: 1.125rem; font-weight: 600; line-height: 1; letter-spacing: -0.025em; }
.dialog__title--lg { font-size: 1.875rem; }
.dialog__desc { font-size: 1rem; line-height: 1.625; color: var(--color-muted-foreground); }
.dialog__desc--pad { padding-top: 0.75rem; }

.product-dialog { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .product-dialog { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.product-dialog__image { aspect-ratio: 1 / 1; }
.product-dialog__info { display: flex; flex-direction: column; justify-content: center; }
.product-dialog__price { font-size: 1.25rem; line-height: 1.75rem; margin: 1.25rem 0; }
.product-dialog__desc > * + * { margin-top: 0.75rem; }
.product-dialog__details { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); margin-bottom: 1.25rem; }
.product-dialog__details li + li, .product-dialog__details p + p { margin-top: 0.5rem; }
.product-dialog__details li::before { content: '— '; }
.product-dialog__options { display: grid; gap: 1rem; margin-bottom: 1.25rem; }
.product-dialog__info > .field-error { margin: 0 0 1rem; }
.product-dialog__custom { border: 1px solid var(--color-border); background-color: color-mix(in srgb, var(--color-secondary) 60%, transparent); padding: 1rem; margin-bottom: 1.5rem; }
.product-dialog__custom-title { font-size: 1rem; line-height: 1.5rem; font-weight: 500; }
.product-dialog__custom-text { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); margin-top: 0.25rem; }

.contact-modal-form > * + * { margin-top: 1rem; }
.contact-modal-form__note { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); }
.contact-modal-form__submit { width: 100%; }

.cart-body { display: flex; flex-direction: column; flex: 1 1 0%; min-height: 0; transition: opacity 0.15s var(--transition-smooth); }
.cart-body[aria-busy='true'] { opacity: 0.6; pointer-events: none; }
.cart-error { padding-top: 1rem; }
.cart-item__meta { font-size: 0.875rem; line-height: 1.25rem; color: var(--color-muted-foreground); margin-top: 0.125rem; }
.cart-empty { flex: 1 1 0%; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 1.25rem; }
.cart-empty svg { width: 3rem; height: 3rem; color: var(--color-muted-foreground); }
.cart-items { flex: 1 1 0%; overflow-y: auto; padding: 1.5rem 0; }
.cart-items > * + * { margin-top: 1.5rem; }
.cart-item { display: flex; gap: 1rem; }
.cart-item__thumb { width: 5rem; height: 6rem; flex-shrink: 0; }
.cart-item__info { flex: 1 1 0%; min-width: 0; }
.cart-item__name { font-size: 1rem; line-height: 1.5rem; }
.cart-item__price { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); margin-top: 0.25rem; }
.cart-item__controls { display: flex; align-items: center; gap: 0.25rem; margin-top: 0.5rem; }
.cart-item__qty { font-size: 1rem; line-height: 1.5rem; width: 1.5rem; text-align: center; }
.cart-item__remove { margin-left: auto; }
.cart-footer { border-top: 1px solid var(--color-border); padding-top: 1.25rem; }
.cart-footer > * + * { margin-top: 1rem; }
.cart-footer__row { display: flex; justify-content: space-between; }
.cart-footer__note { font-size: 1rem; line-height: 1.5rem; color: var(--color-muted-foreground); }
.cart-footer .btn { width: 100%; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
	.mnm-reveal { opacity: 1; transform: none; }
}

.page-wrap { padding-top: 4rem; padding-bottom: 4rem; }
.page-title { font-size: 2.25rem; line-height: 2.5rem; margin-bottom: 1.5rem; }
.entry-content { line-height: 1.625; color: var(--color-muted-foreground); }

/* ---------- Single product page ---------- */
.single-product { padding-bottom: 5rem; }
.crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 1.5rem 0; font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-muted-foreground); }
.crumbs a { transition: color 0.15s var(--transition-smooth); }
.crumbs a:hover { color: var(--color-foreground); }
.crumbs a:focus-visible { outline: none; box-shadow: var(--ring); }
.crumbs__current { color: var(--color-foreground); }
.single-product__notices:not(:empty) { margin-bottom: 1.5rem; }
.single-product__layout { display: grid; gap: 2.5rem; align-items: start; padding-bottom: 5rem; }
@media (min-width: 1024px) {
	.single-product__layout { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 4rem; }
	.single-product__gallery { position: sticky; top: 8.5rem; }
	.admin-bar .single-product__gallery { top: calc(8.5rem + 32px); }
}
.single-product__main { aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius); background-color: var(--color-secondary); }
.single-product__thumbs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.75rem; margin-top: 1rem; }
.single-product__thumb { aspect-ratio: 1 / 1; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-md); opacity: 0.6; transition: opacity 0.15s var(--transition-smooth), border-color 0.15s var(--transition-smooth); }
.single-product__thumb:hover, .single-product__thumb[aria-pressed='true'] { opacity: 1; }
.single-product__thumb[aria-pressed='true'] { border-color: var(--color-primary); }
.single-product__thumb:focus-visible { outline: none; box-shadow: var(--ring); }
.single-product__cat { letter-spacing: 0.2em; margin-bottom: 0.75rem; }
.single-product__title { font-size: 2.5rem; line-height: 1.05; margin-bottom: 1rem; }
@media (min-width: 768px) { .single-product__title { font-size: 3rem; } }
.single-product__price { font-size: 1.25rem; line-height: 1.75rem; margin-bottom: 1.75rem; }
.single-product__desc { color: var(--color-muted-foreground); line-height: 1.625; margin-bottom: 2rem; }
.single-product__desc > * + * { margin-top: 0.75rem; }
.single-product__label { display: block; font-size: 0.875rem; line-height: 1.25rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--color-muted-foreground); margin-bottom: 0.625rem; }
.single-product__options { gap: 1.25rem; margin-bottom: 1.5rem; }
.single-product__error { margin: 0 0 1rem; }
.single-product__qty { margin-bottom: 1.5rem; }
.qty-stepper { display: inline-flex; align-items: center; border: 1px solid var(--color-input); border-radius: var(--radius-md); }
.qty-stepper__input { width: 3rem; height: 2.5rem; text-align: center; background: transparent; -moz-appearance: textfield; appearance: textfield; }
.qty-stepper__input::-webkit-outer-spin-button, .qty-stepper__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty-stepper__input:focus-visible { outline: none; box-shadow: var(--ring); }
.single-product__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.single-product__actions .btn { flex: 1 1 12rem; }
.single-product__details { border-top: 1px solid var(--color-border); margin-top: 2rem; padding-top: 2rem; }
.single-product__list { color: var(--color-muted-foreground); line-height: 1.625; }
.single-product__list li + li, .single-product__list p + p { margin-top: 0.5rem; }
.single-product__list li::before { content: '— '; color: var(--color-primary); }
.single-product__badges { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; border-top: 1px solid var(--color-border); margin-top: 2rem; padding-top: 1.75rem; text-align: center; }
.single-product__badge { display: flex; flex-direction: column; align-items: center; gap: 0.625rem; font-size: 0.8125rem; line-height: 1.25rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-muted-foreground); }
.single-product__badge-icon { width: 1.5rem; height: 1.5rem; color: var(--color-primary); }
.single-product__related { border-top: 1px solid var(--color-border); padding-top: 4rem; }
.single-product__related-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 2.5rem; }
.single-product__related-title { margin-top: 0; }
.single-product__related-link { padding: 0; height: auto; }

/* ---------- WooCommerce pages (single product, shop, cart, checkout, account) ---------- */
.woocommerce-cart .entry-content, .woocommerce-checkout .entry-content, .woocommerce-account .entry-content { color: var(--color-foreground); }
.mnm-woo .product_title { font-size: 2.25rem; line-height: 1.1; margin-bottom: 1rem; }
.mnm-woo .woocommerce-product-details__short-description { color: var(--color-muted-foreground); margin: 1rem 0; }
.mnm-woo .woocommerce-product-details__short-description li::before { content: '— '; }
.woocommerce .mnm-woo div.product p.price, .woocommerce .mnm-woo div.product span.price, .woocommerce .mnm-woo ul.products li.product .price { color: var(--color-foreground); font-size: 1.25rem; }
.woocommerce .mnm-woo div.product form.cart .variations select, .mnm-woo .quantity .qty, .woocommerce form .form-row .input-text, .woocommerce form .form-row select {
	border: 1px solid var(--color-input); border-radius: var(--radius-md); background-color: var(--color-background); color: var(--color-foreground); padding: 0.5rem 0.75rem;
}
.woocommerce .mnm-woo div.product form.cart .variations label, .woocommerce .mnm-woo div.product form.cart .reset_variations { color: var(--color-foreground); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background-color: var(--color-primary); color: var(--color-primary-foreground); border-radius: var(--radius-md); font-family: var(--font-display); font-weight: 500;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover { background-color: var(--color-accent); color: var(--color-accent-foreground); }
.woocommerce button.button.alt.disabled, .woocommerce button.button.alt:disabled { background-color: var(--color-primary); opacity: 0.5; }
.woocommerce .mnm-woo div.product .woocommerce-tabs ul.tabs li { background-color: var(--color-secondary); border-color: var(--color-border); }
.woocommerce .mnm-woo div.product .woocommerce-tabs ul.tabs li.active { background-color: var(--color-background); border-bottom-color: var(--color-background); }
.woocommerce .mnm-woo div.product .woocommerce-tabs ul.tabs li a { color: var(--color-foreground); }
.woocommerce .mnm-woo div.product .woocommerce-tabs ul.tabs::before, .woocommerce .mnm-woo div.product .woocommerce-tabs ul.tabs li::before, .woocommerce .mnm-woo div.product .woocommerce-tabs ul.tabs li::after { border-color: var(--color-border); }
.woocommerce table.shop_attributes th, .woocommerce table.shop_attributes td { color: var(--color-foreground); border-color: var(--color-border); }
.woocommerce table.shop_attributes tr:nth-child(even) th, .woocommerce table.shop_attributes tr:nth-child(even) td { background: var(--color-secondary); }
.woocommerce-message, .woocommerce-info, .woocommerce-error { background-color: var(--color-card); color: var(--color-foreground); border-top-color: var(--color-primary); }
.woocommerce-message::before, .woocommerce-info::before { color: var(--color-primary); }
.mnm-woo ul.products li.product .woocommerce-loop-product__title { font-family: var(--font-body); text-transform: none; color: var(--color-foreground); }
.wc-block-components-text-input input, .wc-block-components-textarea, .wc-blocks-components-select .wc-blocks-components-select__select, .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
	background-color: var(--color-background) !important; color: var(--color-foreground) !important; border-color: var(--color-input) !important;
}
.wc-block-components-text-input label, .wc-blocks-components-select__label, .wc-block-components-combobox .wc-block-components-combobox-control label { color: var(--color-muted-foreground) !important; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity { background-color: var(--color-primary); border-color: var(--color-background); color: var(--color-primary-foreground); box-shadow: none; }
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity span { color: var(--color-primary-foreground); }
.wc-block-components-button:not(.is-link) { background-color: var(--color-primary); color: var(--color-primary-foreground); border-radius: var(--radius-md); }
.wc-block-components-button:not(.is-link):hover { background-color: var(--color-accent); color: var(--color-accent-foreground); }
