/*
Theme Name: Mr. Watches - El Wachero
Theme URI: https://mrwatches.mx
Description: Tema hijo de lujo editorial para Mr. Watches. Diseñado para WooCommerce con enfoque mobile-first, rendimiento y conversión. Construido sobre Astra.
Author: Mr. Watches
Author URI: https://mrwatches.mx
Template: astra
Version: 1.0.3
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mr-watches
Tags: e-commerce, luxury, editorial, minimalist, woocommerce
*/

/* ==========================================================================
   DESIGN SYSTEM — Mr. Watches
   Direction: Editorial luxury, restrained, warm-neutral palette.
   Mobile-first. CSS variables for everything.
   ========================================================================== */

:root {
  /* --- Color --- */
  --mw-surface:        #FAFAF7;  /* warm off-white */
  --mw-surface-alt:    #F2EFE8;  /* slightly deeper warm */
  --mw-text:           #14110F;  /* near-black, warm */
  --mw-text-soft:      #555049;  /* secondary text */
  --mw-text-mute:      #8A857C;  /* muted, captions */
  --mw-border:         #E8E4DD;  /* subtle warm divider */
  --mw-border-strong:  #C9C3B8;  /* visible border */
  --mw-ink:            #1A1A1A;  /* primary action / dark surface */
  --mw-brass:          #8C7853;  /* antique brass — use sparingly */
  --mw-brass-deep:     #6B5A3E;  /* brass on darker bg */
  --mw-success:        #2D5F3F;
  --mw-error:          #8B2E2E;
  --mw-warn:           #B07A2B;

  /* --- Typography --- */
  --mw-font-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;
  --mw-font-body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --mw-font-mono:    "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;

  /* Type scale — fluid via clamp(), mobile-first */
  --mw-h1: clamp(2rem, 5.5vw + 0.5rem, 4rem);          /* 32px → 64px */
  --mw-h2: clamp(1.75rem, 3.5vw + 0.5rem, 2.75rem);    /* 28px → 44px */
  --mw-h3: clamp(1.25rem, 1.5vw + 0.75rem, 1.75rem);   /* 20px → 28px */
  --mw-h4: 1.125rem;                                    /* 18px */
  --mw-body:  1rem;                                     /* 16px */
  --mw-body-lg: 1.0625rem;                              /* 17px */
  --mw-small: 0.875rem;                                 /* 14px */
  --mw-micro: 0.75rem;                                  /* 12px — eyebrow */

  /* --- Spacing scale (8px base) --- */
  --mw-s-1: 0.5rem;   /* 8 */
  --mw-s-2: 1rem;     /* 16 */
  --mw-s-3: 1.5rem;   /* 24 */
  --mw-s-4: 2rem;     /* 32 */
  --mw-s-5: 3rem;     /* 48 */
  --mw-s-6: 4rem;     /* 64 */
  --mw-s-7: 6rem;     /* 96 */
  --mw-s-8: 8rem;     /* 128 */

  /* Section padding */
  --mw-section-y: clamp(4rem, 8vw, 8rem);
  --mw-section-x: clamp(1.25rem, 4vw, 3rem);

  /* --- Layout --- */
  --mw-max-content:  1280px;
  --mw-max-narrow:   720px;
  --mw-max-reading:  640px;
  --mw-max-wide:     1440px;

  /* --- Borders / radius --- */
  --mw-radius: 0px;          /* rectangular by intent */
  --mw-radius-sm: 2px;
  --mw-border-hair: 1px solid var(--mw-border);

  /* --- Motion --- */
  --mw-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --mw-fast: 180ms;
  --mw-med:  280ms;
  --mw-slow: 480ms;

  /* --- Shadows (rarely used) --- */
  --mw-shadow-sm: 0 1px 2px rgba(20, 17, 15, 0.04);
  --mw-shadow-md: 0 8px 24px rgba(20, 17, 15, 0.06);
}

/* ==========================================================================
   RESET / BASE
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body.mw-body,
body {
  margin: 0;
  font-family: var(--mw-font-body);
  font-size: var(--mw-body);
  line-height: 1.6;
  color: var(--mw-text);
  background: var(--mw-surface);
  font-feature-settings: "ss01", "cv11";
}

img, picture, video, svg { max-width: 100%; height: auto; display: block; }

a { color: inherit; text-decoration: none; transition: color var(--mw-fast) var(--mw-ease); }
a:hover { color: var(--mw-brass-deep); }

p { margin: 0 0 var(--mw-s-3); }

/* ==========================================================================
   TYPOGRAPHY
   ========================================================================== */

h1, h2, h3, h4, h5, h6,
.mw-display {
  font-family: var(--mw-font-display);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--mw-text);
  margin: 0 0 var(--mw-s-3);
}

h1, .mw-h1 { font-size: var(--mw-h1); line-height: 1.05; }
h2, .mw-h2 { font-size: var(--mw-h2); line-height: 1.1; }
h3, .mw-h3 { font-size: var(--mw-h3); line-height: 1.2; font-weight: 500; }
h4, .mw-h4 { font-size: var(--mw-h4); line-height: 1.3; font-family: var(--mw-font-body); font-weight: 500; letter-spacing: 0; }

.mw-eyebrow {
  font-family: var(--mw-font-body);
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--mw-text-soft);
  font-weight: 500;
  margin-bottom: var(--mw-s-2);
  display: inline-block;
}

.mw-lead {
  font-size: var(--mw-body-lg);
  line-height: 1.7;
  color: var(--mw-text-soft);
  max-width: var(--mw-max-reading);
}

.mw-pull-quote {
  font-family: var(--mw-font-display);
  font-size: clamp(1.5rem, 3vw, 2.25rem);
  line-height: 1.3;
  font-style: italic;
  color: var(--mw-text);
}

/* ==========================================================================
   LAYOUT PRIMITIVES
   ========================================================================== */

.mw-container {
  width: 100%;
  max-width: var(--mw-max-content);
  margin-inline: auto;
  padding-inline: var(--mw-section-x);
}

.mw-container--narrow { max-width: var(--mw-max-narrow); }
.mw-container--reading { max-width: var(--mw-max-reading); }
.mw-container--wide { max-width: var(--mw-max-wide); }
.mw-container--full { max-width: none; padding-inline: 0; }

.mw-section {
  padding-block: var(--mw-section-y);
}

.mw-section--tight { padding-block: clamp(2.5rem, 5vw, 4rem); }
.mw-section--alt { background: var(--mw-surface-alt); }
.mw-section--dark { background: var(--mw-ink); color: var(--mw-surface); }
.mw-section--dark h1, .mw-section--dark h2, .mw-section--dark h3 { color: var(--mw-surface); }
.mw-section--dark .mw-eyebrow { color: var(--mw-brass); }

.mw-grid { display: grid; gap: var(--mw-s-4); }
.mw-grid--2 { grid-template-columns: 1fr; }
.mw-grid--3 { grid-template-columns: 1fr; }
.mw-grid--4 { grid-template-columns: repeat(2, 1fr); }

@media (min-width: 640px) {
  .mw-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .mw-grid--4 { grid-template-columns: repeat(2, 1fr); gap: var(--mw-s-4); }
}
@media (min-width: 900px) {
  .mw-grid--2 { grid-template-columns: 1fr 1fr; gap: var(--mw-s-6); }
  .mw-grid--3 { grid-template-columns: repeat(3, 1fr); gap: var(--mw-s-5); }
  .mw-grid--4 { grid-template-columns: repeat(4, 1fr); }
}

.mw-split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--mw-s-5);
  align-items: center;
}
@media (min-width: 900px) {
  .mw-split { grid-template-columns: 1fr 1fr; gap: var(--mw-s-7); }
  .mw-split--reverse > :first-child { order: 2; }
  .mw-split--40-60 { grid-template-columns: 4fr 6fr; }
  .mw-split--60-40 { grid-template-columns: 6fr 4fr; }
}

.mw-stack > * + * { margin-top: var(--mw-s-3); }
.mw-stack-lg > * + * { margin-top: var(--mw-s-5); }

/* ==========================================================================
   BUTTONS
   ========================================================================== */

.mw-btn,
.button,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.6em;
  font-family: var(--mw-font-body);
  font-size: var(--mw-micro);
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  padding: 1.1em 2em;
  border: 1px solid var(--mw-ink);
  background: var(--mw-ink);
  color: var(--mw-surface) !important;
  cursor: pointer;
  transition: all var(--mw-med) var(--mw-ease);
  border-radius: var(--mw-radius);
  text-decoration: none;
  line-height: 1;
  min-height: 48px;
}

.mw-btn:hover,
.button:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
  background: var(--mw-text);
  border-color: var(--mw-text);
  color: var(--mw-surface) !important;
  transform: none; /* explicit no-transform — luxury restraint */
}

.mw-btn--ghost,
.button.alt-ghost {
  background: transparent;
  color: var(--mw-ink) !important;
  border-color: var(--mw-ink);
}
.mw-btn--ghost:hover {
  background: var(--mw-ink);
  color: var(--mw-surface) !important;
}

.mw-btn--light {
  background: var(--mw-surface);
  color: var(--mw-ink) !important;
  border-color: var(--mw-surface);
}
.mw-btn--light:hover {
  background: var(--mw-surface-alt);
  color: var(--mw-ink) !important;
}

.mw-btn--link {
  background: transparent;
  border: none;
  color: var(--mw-ink) !important;
  padding: 0;
  font-size: var(--mw-micro);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--mw-ink);
  padding-bottom: 4px;
  min-height: auto;
}
.mw-btn--link:hover {
  background: transparent;
  border-bottom-color: var(--mw-brass);
  color: var(--mw-brass-deep) !important;
}

.mw-btn--full { width: 100%; }

/* ==========================================================================
   HEADER
   ========================================================================== */

.mw-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--mw-surface);
  border-bottom: 1px solid transparent;
  transition: border-color var(--mw-med) var(--mw-ease), background var(--mw-med) var(--mw-ease);
}
.mw-header.is-scrolled {
  border-bottom-color: var(--mw-border);
}
.mw-header__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--mw-s-3);
  padding: var(--mw-s-2) var(--mw-section-x);
  min-height: 72px;
}
@media (min-width: 900px) {
  .mw-header__bar { min-height: 88px; padding-block: var(--mw-s-3); }
}

.mw-logo {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--mw-font-display);
  font-size: 1.5rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  color: var(--mw-text);
  line-height: 1;
}
.mw-logo svg { width: 32px; height: 32px; flex-shrink: 0; }
.mw-logo__mark { stroke: var(--mw-ink); }
.mw-logo__text {
  display: flex;
  flex-direction: column;
  line-height: 1;
}
.mw-logo__name { font-size: 1.25rem; }
.mw-logo__tag {
  font-family: var(--mw-font-body);
  font-size: 0.625rem;
  text-transform: uppercase;
  letter-spacing: 0.25em;
  color: var(--mw-brass-deep);
  margin-top: 4px;
}

@media (min-width: 900px) {
  .mw-logo__name { font-size: 1.5rem; }
}

.mw-nav {
  display: none;
}
@media (min-width: 900px) {
  .mw-nav { display: flex; align-items: center; gap: var(--mw-s-4); }
}
.mw-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--mw-s-4); }
.mw-nav a {
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  color: var(--mw-text);
  padding-block: 6px;
  border-bottom: 1px solid transparent;
  transition: border-color var(--mw-fast) var(--mw-ease), color var(--mw-fast) var(--mw-ease);
}
.mw-nav a:hover { border-bottom-color: var(--mw-brass); color: var(--mw-brass-deep); }
.mw-nav .current-menu-item > a,
.mw-nav .current_page_item > a { border-bottom-color: var(--mw-ink); }

.mw-header__icons {
  display: flex;
  align-items: center;
  gap: var(--mw-s-2);
}
.mw-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border: none;
  background: transparent;
  color: var(--mw-text);
  cursor: pointer;
  position: relative;
  padding: 0;
  transition: color var(--mw-fast) var(--mw-ease);
}
.mw-icon-btn:hover { color: var(--mw-brass-deep); }
.mw-icon-btn svg { width: 20px; height: 20px; }
.mw-cart-count {
  position: absolute;
  top: 4px; right: 4px;
  font-size: 10px;
  background: var(--mw-ink);
  color: var(--mw-surface);
  border-radius: 999px;
  min-width: 16px; height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  font-family: var(--mw-font-body);
  letter-spacing: 0;
  font-weight: 500;
}

.mw-menu-toggle { display: inline-flex; }
@media (min-width: 900px) {
  .mw-menu-toggle { display: none; }
}

/* Mobile drawer */
.mw-drawer {
  position: fixed;
  inset: 0;
  background: var(--mw-surface);
  z-index: 200;
  transform: translateX(100%);
  transition: transform var(--mw-med) var(--mw-ease);
  display: flex;
  flex-direction: column;
}
.mw-drawer.is-open { transform: translateX(0); }
.mw-drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--mw-s-2) var(--mw-section-x);
  min-height: 72px;
  border-bottom: 1px solid var(--mw-border);
}
.mw-drawer__body {
  flex: 1;
  overflow-y: auto;
  padding: var(--mw-s-4) var(--mw-section-x);
}
.mw-drawer__body ul {
  list-style: none;
  margin: 0; padding: 0;
}
.mw-drawer__body li + li { border-top: 1px solid var(--mw-border); }
.mw-drawer__body a {
  display: block;
  padding: var(--mw-s-2) 0;
  font-family: var(--mw-font-display);
  font-size: 1.75rem;
  color: var(--mw-text);
}
.mw-drawer__foot {
  padding: var(--mw-s-3) var(--mw-section-x);
  border-top: 1px solid var(--mw-border);
  display: flex;
  flex-direction: column;
  gap: var(--mw-s-2);
}

body.mw-scroll-lock { overflow: hidden; }

/* ==========================================================================
   HERO
   ========================================================================== */

.mw-hero {
  position: relative;
  min-height: clamp(560px, 80vh, 820px);
  display: grid;
  align-items: end;
  overflow: hidden;
  background: var(--mw-ink);
  color: var(--mw-surface);
}
.mw-hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.mw-hero__media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,17,15,0.15) 0%, rgba(20,17,15,0.55) 100%);
  z-index: 1;
}
.mw-hero__bg {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center;
}
.mw-hero__inner {
  position: relative;
  z-index: 2;
  padding: var(--mw-section-y) var(--mw-section-x);
  width: 100%;
  max-width: var(--mw-max-wide);
  margin-inline: auto;
}
.mw-hero__content { max-width: 600px; }
.mw-hero__eyebrow {
  color: var(--mw-brass);
  margin-bottom: var(--mw-s-3);
}
.mw-hero h1 {
  color: var(--mw-surface);
  margin-bottom: var(--mw-s-3);
}
.mw-hero p {
  color: rgba(250, 250, 247, 0.85);
  font-size: var(--mw-body-lg);
  line-height: 1.6;
  margin-bottom: var(--mw-s-4);
  max-width: 480px;
}
.mw-hero__cta {
  display: flex;
  gap: var(--mw-s-2);
  flex-wrap: wrap;
}

/* Hero placeholder (used until real photography is added) */
.mw-hero-placeholder {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(ellipse at 30% 40%, rgba(140, 120, 83, 0.22), transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(140, 120, 83, 0.15), transparent 60%),
    linear-gradient(135deg, #1A1A1A 0%, #2A2520 50%, #1A1A1A 100%);
  display: grid;
  place-items: center;
  position: relative;
}
.mw-hero-placeholder svg { width: clamp(180px, 30vw, 320px); height: auto; opacity: 0.5; }

/* ==========================================================================
   TRUST STRIP
   ========================================================================== */

.mw-trust {
  border-block: 1px solid var(--mw-border);
  padding-block: var(--mw-s-3);
}
.mw-trust__row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--mw-s-3);
  text-align: center;
}
@media (min-width: 700px) {
  .mw-trust__row { grid-template-columns: repeat(4, 1fr); }
}
.mw-trust__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.mw-trust__icon { width: 28px; height: 28px; color: var(--mw-brass-deep); }
.mw-trust__label {
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--mw-text-soft);
}

/* ==========================================================================
   COLLECTION CARDS (homepage feature)
   ========================================================================== */

.mw-collection-card {
  position: relative;
  display: block;
  color: var(--mw-text);
  overflow: hidden;
  background: var(--mw-surface-alt);
}
.mw-collection-card__media {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--mw-surface-alt);
}
.mw-collection-card__img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--mw-slow) var(--mw-ease);
}
.mw-collection-card:hover .mw-collection-card__img { transform: scale(1.04); }
.mw-collection-card__body {
  padding: var(--mw-s-3) var(--mw-s-1) var(--mw-s-1);
}
.mw-collection-card__title {
  font-family: var(--mw-font-display);
  font-size: 1.5rem;
  font-weight: 500;
  margin: 0 0 4px;
}
.mw-collection-card__desc {
  color: var(--mw-text-soft);
  font-size: var(--mw-small);
  margin: 0 0 var(--mw-s-2);
}
.mw-collection-card__link {
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  border-bottom: 1px solid var(--mw-ink);
  padding-bottom: 3px;
  display: inline-block;
}

/* Placeholder media (no image yet) */
.mw-media-placeholder {
  width: 100%; height: 100%;
  display: grid;
  place-items: center;
  background:
    linear-gradient(135deg, var(--mw-surface-alt) 0%, #E5E0D5 100%);
  position: relative;
}
.mw-media-placeholder::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(135deg,
      transparent 0 22px,
      rgba(140,120,83,0.06) 22px 23px);
}
.mw-media-placeholder svg {
  width: 38%; max-width: 160px; height: auto;
  opacity: 0.35;
  position: relative;
  z-index: 1;
}

/* ==========================================================================
   PRODUCT CARDS (shop & home grids)
   ========================================================================== */

ul.products,
.mw-product-grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--mw-s-3) var(--mw-s-2);
}
@media (min-width: 700px) { ul.products, .mw-product-grid { grid-template-columns: repeat(3, 1fr); gap: var(--mw-s-5) var(--mw-s-3); } }
@media (min-width: 1100px) { ul.products, .mw-product-grid { grid-template-columns: repeat(3, 1fr); gap: var(--mw-s-6) var(--mw-s-4); } }

.mw-product-grid--4 { grid-template-columns: repeat(2, 1fr); }
@media (min-width: 700px) { .mw-product-grid--4 { grid-template-columns: repeat(4, 1fr); } }

.product, .mw-product-card {
  position: relative;
  display: flex;
  flex-direction: column;
}
.mw-product-card__media-wrap,
.product .mw-product-card__media-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  background: var(--mw-surface-alt);
  overflow: hidden;
  margin-bottom: var(--mw-s-2);
}
.mw-product-card__media-wrap img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: opacity var(--mw-med) var(--mw-ease), transform var(--mw-slow) var(--mw-ease);
}
.mw-product-card:hover .mw-product-card__media-wrap img { transform: scale(1.03); }

.mw-product-card__eyebrow {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mw-text-mute);
  margin-bottom: 4px;
  display: block;
}
.mw-product-card__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--mw-font-display);
  font-size: 1.125rem;
  font-weight: 500;
  margin: 0 0 4px;
  color: var(--mw-text);
  line-height: 1.3;
}
.mw-product-card__price,
.woocommerce ul.products li.product .price {
  font-family: var(--mw-font-body);
  font-size: var(--mw-small);
  color: var(--mw-text-soft);
  font-weight: 500;
}
.mw-product-card__price .woocommerce-Price-amount { color: var(--mw-text); }

/* Limited / new badge */
.mw-badge {
  position: absolute;
  top: var(--mw-s-2); left: var(--mw-s-2);
  background: var(--mw-surface);
  color: var(--mw-ink);
  padding: 4px 10px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  border: 1px solid var(--mw-ink);
  z-index: 2;
}
.mw-badge--brass { background: var(--mw-brass-deep); color: var(--mw-surface); border-color: var(--mw-brass-deep); }
.woocommerce span.onsale {
  background: var(--mw-ink);
  color: var(--mw-surface);
  border-radius: 0;
  font-family: var(--mw-font-body);
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  font-weight: 500;
  padding: 4px 10px;
  min-height: auto;
  min-width: auto;
  line-height: 1.6;
  top: var(--mw-s-2);
  left: var(--mw-s-2);
  right: auto;
}

/* ==========================================================================
   EDITORIAL / SPLIT SECTIONS
   ========================================================================== */

.mw-editorial__media {
  aspect-ratio: 4 / 5;
  background: var(--mw-surface-alt);
  overflow: hidden;
}
.mw-editorial__media img { width: 100%; height: 100%; object-fit: cover; }
.mw-editorial__body { max-width: 480px; }

/* ==========================================================================
   JOURNAL CARDS
   ========================================================================== */

.mw-journal-card { display: block; color: var(--mw-text); }
.mw-journal-card__media {
  aspect-ratio: 4 / 3;
  background: var(--mw-surface-alt);
  margin-bottom: var(--mw-s-2);
  overflow: hidden;
}
.mw-journal-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--mw-slow) var(--mw-ease); }
.mw-journal-card:hover .mw-journal-card__media img { transform: scale(1.03); }
.mw-journal-card__cat {
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mw-brass-deep);
  margin-bottom: 8px;
  display: block;
}
.mw-journal-card__title {
  font-family: var(--mw-font-display);
  font-size: 1.375rem;
  font-weight: 500;
  margin: 0 0 8px;
  line-height: 1.3;
}
.mw-journal-card__excerpt {
  color: var(--mw-text-soft);
  font-size: var(--mw-small);
  margin: 0;
}

/* ==========================================================================
   NEWSLETTER
   ========================================================================== */

.mw-newsletter {
  background: var(--mw-surface-alt);
  text-align: center;
}
.mw-newsletter__inner { max-width: 560px; margin-inline: auto; }
.mw-newsletter h2 { margin-bottom: var(--mw-s-2); }
.mw-newsletter p { color: var(--mw-text-soft); margin-bottom: var(--mw-s-4); }

.mw-form-row {
  display: flex;
  flex-direction: column;
  gap: var(--mw-s-2);
  max-width: 480px;
  margin: 0 auto;
}
@media (min-width: 600px) {
  .mw-form-row { flex-direction: row; }
}
.mw-input {
  flex: 1;
  font-family: var(--mw-font-body);
  font-size: var(--mw-body);
  padding: 0 var(--mw-s-2);
  height: 48px;
  border: 1px solid var(--mw-border-strong);
  background: var(--mw-surface);
  color: var(--mw-text);
  border-radius: 0;
  transition: border-color var(--mw-fast) var(--mw-ease);
}
.mw-input:focus {
  outline: none;
  border-color: var(--mw-ink);
}

/* ==========================================================================
   FOOTER
   ========================================================================== */

.mw-footer {
  background: var(--mw-ink);
  color: var(--mw-surface);
  padding: var(--mw-s-7) var(--mw-section-x) var(--mw-s-3);
  margin-top: var(--mw-s-7);
}
.mw-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--mw-s-4);
  max-width: var(--mw-max-content);
  margin-inline: auto;
}
@media (min-width: 700px) {
  .mw-footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: var(--mw-s-5); }
}
.mw-footer__col h4 {
  font-family: var(--mw-font-body);
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 500;
  color: var(--mw-brass);
  margin-bottom: var(--mw-s-2);
}
.mw-footer__col ul { list-style: none; margin: 0; padding: 0; }
.mw-footer__col li { margin-bottom: 10px; }
.mw-footer__col a {
  color: rgba(250,250,247,0.7);
  font-size: var(--mw-small);
  transition: color var(--mw-fast) var(--mw-ease);
}
.mw-footer__col a:hover { color: var(--mw-surface); }

.mw-footer__brand .mw-logo { color: var(--mw-surface); }
.mw-footer__brand .mw-logo__mark { stroke: var(--mw-surface); }
.mw-footer__brand .mw-logo__tag { color: var(--mw-brass); }
.mw-footer__brand p {
  color: rgba(250,250,247,0.65);
  font-size: var(--mw-small);
  margin-top: var(--mw-s-2);
  max-width: 320px;
}

.mw-footer__bottom {
  max-width: var(--mw-max-content);
  margin: var(--mw-s-5) auto 0;
  padding-top: var(--mw-s-3);
  border-top: 1px solid rgba(250,250,247,0.1);
  display: flex;
  flex-direction: column;
  gap: var(--mw-s-2);
  align-items: center;
  text-align: center;
  font-size: var(--mw-micro);
  color: rgba(250,250,247,0.55);
}
@media (min-width: 700px) {
  .mw-footer__bottom { flex-direction: row; justify-content: space-between; text-align: left; }
}
.mw-footer__pay {
  display: flex; gap: 8px; align-items: center;
  color: rgba(250,250,247,0.55);
}
.mw-footer__pay svg { height: 18px; width: auto; opacity: 0.7; }

/* ==========================================================================
   WOOCOMMERCE OVERRIDES — single product, archive, cart
   ========================================================================== */

/* General WC reset to fit the design language */
.woocommerce-products-header__title.page-title {
  font-family: var(--mw-font-display);
  font-size: var(--mw-h1);
  font-weight: 400;
  margin-bottom: var(--mw-s-3);
  text-align: center;
}
.woocommerce .woocommerce-result-count {
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mw-text-soft);
}
.woocommerce .woocommerce-ordering select {
  font-family: var(--mw-font-body);
  font-size: var(--mw-small);
  border: 1px solid var(--mw-border-strong);
  background: var(--mw-surface);
  padding: 8px 28px 8px 12px;
  border-radius: 0;
}

/* Single product page */
.woocommerce div.product {
  padding-block: var(--mw-section-y);
}
.woocommerce div.product .product_title {
  font-family: var(--mw-font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  line-height: 1.1;
  margin-bottom: var(--mw-s-2);
}
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  font-family: var(--mw-font-body);
  font-size: 1.5rem;
  font-weight: 500;
  color: var(--mw-text);
  margin-bottom: var(--mw-s-3);
}
.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--mw-text-soft);
  font-size: var(--mw-body-lg);
  line-height: 1.7;
  margin-bottom: var(--mw-s-4);
  max-width: 480px;
}
.woocommerce div.product form.cart {
  margin-bottom: var(--mw-s-4);
}
.woocommerce div.product form.cart .button {
  width: 100%;
  margin-top: var(--mw-s-2);
}

/* PDP layout */
.mw-pdp {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--mw-s-4);
  max-width: var(--mw-max-wide);
  margin-inline: auto;
  padding-inline: var(--mw-section-x);
}
@media (min-width: 900px) {
  .mw-pdp { grid-template-columns: 1.2fr 1fr; gap: var(--mw-s-6); }
}
.mw-pdp__gallery { background: var(--mw-surface-alt); }
.mw-pdp__gallery-main {
  aspect-ratio: 1 / 1;
  width: 100%;
  background: var(--mw-surface-alt);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.mw-pdp__gallery-thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  padding: 8px;
}
.mw-pdp__thumb {
  aspect-ratio: 1 / 1;
  background: var(--mw-surface);
  border: 1px solid var(--mw-border);
  cursor: pointer;
  overflow: hidden;
}
.mw-pdp__thumb img { width: 100%; height: 100%; object-fit: cover; }
.mw-pdp__thumb.is-active { border-color: var(--mw-ink); }

.mw-pdp__info {
  position: relative;
}
@media (min-width: 1100px) {
  .mw-pdp__info { position: sticky; top: 120px; align-self: start; padding-top: var(--mw-s-2); }
}

.mw-pdp__trust {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--mw-s-2);
  margin-top: var(--mw-s-3);
  padding-top: var(--mw-s-3);
  border-top: 1px solid var(--mw-border);
}
.mw-pdp__trust-item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: var(--mw-small);
  color: var(--mw-text-soft);
}
.mw-pdp__trust-item svg { width: 20px; height: 20px; flex-shrink: 0; color: var(--mw-brass-deep); }

/* Specs table */
.mw-specs {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--mw-small);
  margin-top: var(--mw-s-2);
}
.mw-specs tr { border-bottom: 1px solid var(--mw-border); }
.mw-specs th, .mw-specs td {
  text-align: left;
  padding: 12px 0;
  vertical-align: top;
}
.mw-specs th {
  font-family: var(--mw-font-body);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-size: var(--mw-micro);
  color: var(--mw-text-soft);
  width: 40%;
}
.mw-specs td { color: var(--mw-text); }

/* Sticky mobile add-to-cart */
.mw-sticky-atc {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  background: var(--mw-surface);
  border-top: 1px solid var(--mw-border);
  padding: 10px var(--mw-section-x);
  display: flex;
  gap: var(--mw-s-2);
  align-items: center;
  z-index: 50;
  transform: translateY(110%);
  transition: transform var(--mw-med) var(--mw-ease);
}
.mw-sticky-atc.is-visible { transform: translateY(0); }
.mw-sticky-atc__price {
  font-weight: 500;
  font-size: var(--mw-small);
}
.mw-sticky-atc__btn { flex: 1; }
@media (min-width: 900px) {
  .mw-sticky-atc { display: none; }
}

/* Tabs / accordion on PDP */
.woocommerce-tabs {
  margin-top: var(--mw-s-6);
  max-width: var(--mw-max-content);
  margin-inline: auto;
  padding-inline: var(--mw-section-x);
}
.woocommerce div.product .woocommerce-tabs ul.tabs {
  border-bottom: 1px solid var(--mw-border);
  padding: 0;
  margin-bottom: var(--mw-s-4);
}
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
  margin: 0 var(--mw-s-3) 0 0;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--mw-font-body);
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mw-text-soft);
  padding: var(--mw-s-2) 0;
  display: inline-block;
  border-bottom: 2px solid transparent;
}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li a:hover {
  color: var(--mw-ink);
  border-bottom-color: var(--mw-ink);
}

/* Related products */
.related.products > h2,
.upsells.products > h2 {
  font-family: var(--mw-font-display);
  font-size: var(--mw-h2);
  font-weight: 400;
  text-align: center;
  margin-bottom: var(--mw-s-4);
}

/* Variations */
.woocommerce div.product form.cart .variations {
  border: none;
  margin-bottom: var(--mw-s-3);
}
.woocommerce div.product form.cart .variations label {
  font-family: var(--mw-font-body);
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  font-weight: 500;
  color: var(--mw-text-soft);
}
.woocommerce div.product form.cart .variations select {
  font-family: var(--mw-font-body);
  font-size: var(--mw-body);
  padding: 12px;
  border: 1px solid var(--mw-border-strong);
  background: var(--mw-surface);
  border-radius: 0;
}

/* Quantity input */
.woocommerce .quantity input.qty,
.woocommerce-page .quantity input.qty {
  width: 60px;
  height: 48px;
  border: 1px solid var(--mw-border-strong);
  background: var(--mw-surface);
  font-family: var(--mw-font-body);
  border-radius: 0;
  text-align: center;
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb {
  font-size: var(--mw-micro);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--mw-text-soft);
  margin-bottom: var(--mw-s-3);
  padding-inline: var(--mw-section-x);
  max-width: var(--mw-max-wide);
  margin-inline: auto;
}

/* Notices */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  background: var(--mw-surface-alt);
  border-top: 2px solid var(--mw-ink);
  color: var(--mw-text);
  border-radius: 0;
  font-size: var(--mw-small);
  padding: var(--mw-s-2) var(--mw-s-3);
}
.woocommerce-message::before { color: var(--mw-success); }
.woocommerce-info::before { color: var(--mw-brass-deep); }
.woocommerce-error::before { color: var(--mw-error); }

/* ==========================================================================
   ABOUT PAGE
   ========================================================================== */

.mw-about-hero {
  padding: var(--mw-s-7) var(--mw-section-x) var(--mw-s-5);
  text-align: center;
}
.mw-about-hero__inner { max-width: var(--mw-max-narrow); margin-inline: auto; }
.mw-about-hero h1 { margin-bottom: var(--mw-s-3); }
.mw-about-hero p { color: var(--mw-text-soft); font-size: var(--mw-body-lg); line-height: 1.7; }

.mw-pillars {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--mw-s-5);
}
@media (min-width: 700px) {
  .mw-pillars { grid-template-columns: repeat(3, 1fr); }
}
.mw-pillar h3 { font-family: var(--mw-font-display); margin-bottom: var(--mw-s-2); }
.mw-pillar__num {
  font-family: var(--mw-font-display);
  font-size: 2rem;
  color: var(--mw-brass);
  margin-bottom: var(--mw-s-2);
  display: block;
}

/* ==========================================================================
   COLLECTION HERO (archive)
   ========================================================================== */

.mw-collection-hero {
  text-align: center;
  padding: var(--mw-s-7) var(--mw-section-x) var(--mw-s-5);
  background: var(--mw-surface-alt);
}
.mw-collection-hero__inner { max-width: var(--mw-max-narrow); margin-inline: auto; }
.mw-collection-hero h1 { margin-bottom: var(--mw-s-3); }
.mw-collection-hero p { color: var(--mw-text-soft); font-size: var(--mw-body-lg); line-height: 1.7; }

/* ==========================================================================
   UTILITIES
   ========================================================================== */

.mw-center { text-align: center; }
.mw-mt-0 { margin-top: 0; }
.mw-mb-0 { margin-bottom: 0; }
.mw-mt-3 { margin-top: var(--mw-s-3); }
.mw-mb-3 { margin-bottom: var(--mw-s-3); }
.mw-mt-4 { margin-top: var(--mw-s-4); }
.mw-mb-4 { margin-bottom: var(--mw-s-4); }

.mw-hide-mobile { display: none; }
@media (min-width: 900px) { .mw-hide-mobile { display: initial; } .mw-hide-desktop { display: none; } }

.mw-visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* Reveal-on-scroll baseline */
.mw-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 700ms var(--mw-ease), transform 700ms var(--mw-ease);
}
.mw-reveal.is-visible { opacity: 1; transform: translateY(0); }

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
  .mw-reveal { opacity: 1; transform: none; }
}

/* ==========================================================================
   PRINT
   ========================================================================== */
@media print {
  .mw-header, .mw-footer, .mw-sticky-atc, .mw-newsletter { display: none; }
}

/* ==========================================================================
   CONTACT FORM — editorial, luxury restraint
   ========================================================================== */

.mw-form-status {
	padding: var(--mw-s-3);
	margin-bottom: var(--mw-s-4);
	border-left: 3px solid var(--mw-brass);
	background: var(--mw-surface-alt);
	font-size: var(--mw-small);
	line-height: 1.6;
}
.mw-form-status strong { display: block; margin-bottom: 2px; color: var(--mw-ink); }
.mw-form-status--ok { border-left-color: #6b8e23; }
.mw-form-status--err { border-left-color: #a04040; background: #faf2f2; }

.mw-contact-form {
	display: flex;
	flex-direction: column;
	gap: var(--mw-s-3);
}

.mw-field-group {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.mw-field-label {
	font-family: var(--mw-font-body);
	font-size: var(--mw-micro);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	color: var(--mw-text-soft);
	font-weight: 500;
}

.mw-field-input,
.mw-field-select,
.mw-field-textarea {
	font-family: var(--mw-font-body);
	font-size: var(--mw-body);
	padding: 14px 16px;
	border: 1px solid var(--mw-border-strong);
	background: var(--mw-surface);
	color: var(--mw-ink);
	border-radius: 0;
	transition: border-color var(--mw-fast) var(--mw-ease);
	width: 100%;
	min-height: 52px;
	line-height: 1.5;
}
.mw-field-textarea { min-height: 140px; resize: vertical; padding: 14px 16px; }
.mw-field-input:focus,
.mw-field-select:focus,
.mw-field-textarea:focus {
	outline: none;
	border-color: var(--mw-ink);
}

.mw-field-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--mw-s-3);
}
@media (min-width: 700px) {
	.mw-field-row { grid-template-columns: 1fr 1fr; }
}

.mw-field-actions {
	display: flex;
	align-items: center;
	gap: var(--mw-s-3);
	margin-top: var(--mw-s-2);
	flex-wrap: wrap;
}
.mw-field-fineprint {
	margin: 0;
	font-size: var(--mw-micro);
	color: var(--mw-text-soft);
	font-style: italic;
}

/* Aside box on the right */
.mw-contact-aside {
	padding: var(--mw-s-4);
	background: var(--mw-surface-alt);
	border-top: 3px solid var(--mw-brass);
}
.mw-contact-aside h3 {
	font-size: 1.375rem;
	margin: 0 0 var(--mw-s-4);
}
.mw-contact-aside__block {
	padding: var(--mw-s-2) 0;
	border-bottom: 1px solid var(--mw-border);
}
.mw-contact-aside__block:last-child { border-bottom: none; padding-bottom: 0; }
.mw-contact-aside__block:first-of-type { padding-top: 0; }

.mw-contact-aside__label {
	font-family: var(--mw-font-body);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	color: var(--mw-brass);
	margin-bottom: 6px;
	font-weight: 600;
}
.mw-contact-aside__value {
	font-family: var(--mw-font-display, var(--mw-font-body));
	font-size: 1.125rem;
	color: var(--mw-ink);
	display: block;
	line-height: 1.4;
}
a.mw-contact-aside__value { transition: color var(--mw-fast) var(--mw-ease); }
a.mw-contact-aside__value:hover { color: var(--mw-brass); }
.mw-contact-aside__sub {
	font-size: var(--mw-small);
	color: var(--mw-text-soft);
	margin-top: 4px;
	font-style: italic;
}
