/*
Theme Name: CME Art Studio
Theme URI: https://cmeartstudio.com
Author: CME Art Studio
Description: Earthy, textured WooCommerce theme for original paintings and fine art prints. Big gallery masthead, a rotating gallery wall of starred paintings, softly lit display niches, full-screen viewing, and a "See it on a wall" preview that hangs each painting (or a whole collection) to scale in a real room. Edit text, photos and colors under Appearance → Customize → CME Art Studio.
Version: 1.2.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cme-art-studio
WC requires at least: 8.0
*/

/* ---------- Tokens ---------- */
:root {
  --cme-paper: #EFE6D8;
  --cme-paper-2: #F7F1E6;
  --cme-linen: #E3D6C2;
  --cme-cream: #FBF6EE;
  --cme-ink: #3B2F25;
  --cme-ink-2: #4A3B2E;
  --cme-muted: #5F4F41;
  --cme-eyebrow: #6B4E36;
  --cme-accent: #8A4527;
  --cme-accent-dark: #6E361E;
  --cme-moss: #4F5A43;
  --cme-ochre: #C9A15A;
  --cme-line: rgba(59, 47, 37, .16);
  --cme-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --cme-sans: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --cme-gutter: clamp(16px, 5vw, 72px);
  --cme-max: 1440px;
  --cme-noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.09'/%3E%3C/svg%3E");
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--cme-sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--cme-ink);
  background-color: var(--cme-paper);
  background-image:
    var(--cme-noise),
    radial-gradient(ellipse 60% 40% at 15% 8%, rgba(201,161,90,.16), transparent 70%),
    radial-gradient(ellipse 50% 35% at 90% 50%, rgba(124,139,111,.13), transparent 70%),
    radial-gradient(rgba(90,64,40,.07) 1px, transparent 1.3px),
    repeating-linear-gradient(97deg, rgba(120,90,60,.035) 0 2px, transparent 2px 7px);
  background-size: 220px 220px, 100% 1400px, 100% 1400px, 7px 7px, auto;
  background-repeat: repeat, no-repeat, no-repeat, repeat, repeat;
}
img { max-width: 100%; height: auto; }
a { color: var(--cme-accent); }
a:hover { color: var(--cme-accent-dark); }
:focus-visible { outline: 3px solid var(--cme-ochre); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--cme-serif); font-weight: 500; line-height: 1.12; letter-spacing: -.015em; margin: 0 0 .5em; color: var(--cme-ink); }
.serif { font-family: var(--cme-serif); }
.screen-reader-text, .cme-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 1000; width: auto; height: auto; clip: auto; padding: 10px 16px; background: var(--cme-cream); color: var(--cme-ink); }

.cme-wrap { width: 100%; max-width: var(--cme-max); margin: 0 auto; padding-left: var(--cme-gutter); padding-right: var(--cme-gutter); }
.cme-eyebrow { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--cme-eyebrow); }
.cme-lead { font-size: 19px; line-height: 1.6; color: #5A4A3C; margin: 0; }
.linen {
  background-color: var(--cme-linen);
  background-image: repeating-linear-gradient(0deg, rgba(90,64,40,.05) 0 1px, transparent 1px 4px), repeating-linear-gradient(90deg, rgba(90,64,40,.05) 0 1px, transparent 1px 4px);
}
.moss {
  background-color: var(--cme-moss);
  background-image: radial-gradient(rgba(0,0,0,.12) 1px, transparent 1.3px), repeating-linear-gradient(97deg, rgba(255,255,255,.03) 0 2px, transparent 2px 7px);
  background-size: 6px 6px, auto;
}

/* ---------- Buttons ---------- */
.cme-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 52px; padding: 0 28px; border-radius: 999px;
  font-family: var(--cme-sans); font-size: 16px; font-weight: 600; line-height: 1.2;
  text-decoration: none; cursor: pointer; border: 1.5px solid transparent;
  transition: background-color .15s, color .15s, border-color .15s;
}
.cme-btn--primary { background: var(--cme-accent); color: var(--cme-cream); }
.cme-btn--primary:hover { background: var(--cme-accent-dark); color: var(--cme-cream); }
.cme-btn--ghost { background: transparent; color: var(--cme-ink); border-color: var(--cme-ink); }
.cme-btn--ghost:hover { background: var(--cme-ink); color: var(--cme-cream); }
.cme-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 600; text-decoration: none; color: var(--cme-accent); }
.cme-link:hover { text-decoration: underline; }
.cme-icon { width: 18px; height: 18px; flex-shrink: 0; }

.cme-pills { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.cme-pill {
  display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 22px;
  border-radius: 999px; border: 1.5px solid rgba(59,47,37,.35); background: transparent;
  color: var(--cme-ink); font-size: 15px; font-weight: 600; text-decoration: none;
}
.cme-pill:hover { border-color: var(--cme-ink); color: var(--cme-ink); }
.cme-pill.is-active { background: var(--cme-ink); border-color: var(--cme-ink); color: var(--cme-cream); }
.cme-pill--series.is-active { background: var(--cme-moss); border-color: var(--cme-moss); }
.cme-pill__count { font-size: 13px; font-weight: 500; opacity: .75; }

/* ---------- Header ---------- */
.cme-header { position: relative; z-index: 20; border-bottom: 1px solid var(--cme-line); }
.cme-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 96px; }
.cme-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--cme-ink); }
.cme-logo:hover { color: var(--cme-ink); }
.cme-logo__mark { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 6px; background: var(--cme-accent); color: var(--cme-cream); font-family: var(--cme-serif); font-size: 16px; font-weight: 600; letter-spacing: .02em; }
.cme-logo__name { font-family: var(--cme-serif); font-size: 26px; font-weight: 500; letter-spacing: -.01em; line-height: 1.1; }
.cme-logo img.custom-logo { max-height: 56px; width: auto; display: block; }
.cme-nav ul { display: flex; gap: 40px; margin: 0; padding: 0; list-style: none; }
.cme-nav a { display: inline-block; padding: 6px 0; font-size: 16px; font-weight: 500; color: var(--cme-ink); text-decoration: none; border-bottom: 2px solid transparent; }
.cme-nav a:hover, .cme-nav .current-menu-item > a, .cme-nav .current-menu-ancestor > a, .cme-nav .is-current > a { border-bottom-color: var(--cme-accent); }
.cme-nav .current-menu-item > a, .cme-nav .is-current > a { font-weight: 600; }
.cme-nav .sub-menu { display: none; }
.cme-header__tools { display: flex; align-items: center; gap: 4px; }
.cme-iconbtn { position: relative; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; color: var(--cme-ink); background: none; border: 0; cursor: pointer; text-decoration: none; }
.cme-iconbtn:hover { color: var(--cme-accent); }
.cme-iconbtn svg { width: 22px; height: 22px; }
.cme-cart-count { position: absolute; top: 4px; right: 1px; min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; background: var(--cme-accent); color: var(--cme-cream); font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; line-height: 1; }
.cme-menu-toggle { display: none; }
.cme-search { display: none; padding: 0 0 20px; }
.cme-search.is-open { display: block; }
.cme-search form { display: flex; gap: 10px; max-width: 560px; margin-left: auto; }
.cme-search input[type="search"] { flex: 1; }

/* ---------- Forms (shared) ---------- */
input[type="text"], input[type="email"], input[type="search"], input[type="tel"], input[type="number"], input[type="password"], input[type="url"], select, textarea {
  font-family: var(--cme-sans); font-size: 16px; color: var(--cme-ink);
  min-height: 48px; padding: 10px 16px; border-radius: 8px;
  border: 1.5px solid rgba(59,47,37,.28); background: #FFFDF8;
}
textarea { min-height: 120px; }
button, input[type="submit"] { font-family: var(--cme-sans); }

/* ---------- Main + sections ---------- */
.cme-main { display: block; min-height: 50vh; }
.cme-section { padding-top: 104px; padding-bottom: 104px; }
.cme-section--tight { padding-top: 0; }
.cme-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 40px; flex-wrap: wrap; }
.cme-section-head h2 { font-size: clamp(34px, 4vw, 48px); margin: 8px 0 0; }
.cme-center { display: flex; justify-content: center; margin-top: 40px; }

/* ---------- Frames & cards ---------- */
.cme-frame {
  display: inline-block; line-height: 0; max-width: 100%;
  padding: 14px; background: var(--cme-paper-2);
  border: 5px solid var(--cme-ink);
  box-shadow: 0 16px 34px rgba(59,47,37,.22), 0 2px 6px rgba(59,47,37,.18);
}
.cme-frame img { display: block; width: calc(var(--h, 260px) * var(--r, 4 / 5)); max-width: 100%; height: auto; aspect-ratio: var(--r, 4 / 5); }
.cme-frame__empty { display: flex; align-items: center; justify-content: center; width: 170px; height: 210px; line-height: 1.3; text-align: center; font-size: 13px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--cme-muted); background: #E9DDCB; padding: 12px; }

.cme-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 44px 32px; margin: 0; padding: 0; list-style: none; }
.cme-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
.cme-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.cme-card { display: flex; flex-direction: column; gap: 14px; text-decoration: none; color: var(--cme-ink); }
.cme-card:hover { color: var(--cme-ink); }
.cme-card:hover .cme-frame { transform: translateY(-3px); box-shadow: 0 22px 40px rgba(59,47,37,.26), 0 2px 6px rgba(59,47,37,.18); }
.cme-card .cme-frame { transition: transform .2s, box-shadow .2s; }
.cme-card__stage { position: relative; height: 360px; display: flex; align-items: center; justify-content: center; padding: 30px; border-radius: 4px; }
.cme-card__stage { --h: 260px; }
.cme-grid--5 .cme-card__stage { height: 290px; padding: 22px; }
.cme-grid--5 .cme-card__stage .cme-frame { padding: 10px; border-width: 4px; }
.cme-grid--5 .cme-card__stage { --h: 206px; }
.cme-badge { position: absolute; top: 14px; left: 14px; padding: 6px 12px; border-radius: 999px; color: var(--cme-cream); font-size: 12px; font-weight: 600; letter-spacing: .04em; line-height: 1.2; }
.cme-badge--original { background: var(--cme-accent); }
.cme-badge--print { background: var(--cme-moss); }
.cme-badge--sold { background: var(--cme-ink); }
.cme-card__text { display: flex; flex-direction: column; gap: 3px; }
.cme-card__title { font-family: var(--cme-serif); font-size: 21px; font-weight: 500; line-height: 1.25; }
.cme-grid--5 .cme-card__title { font-size: 19px; }
.cme-card__meta { font-size: 14px; color: var(--cme-muted); }
.cme-card__price { font-size: 16px; font-weight: 600; margin-top: 3px; }
.cme-card__price del { opacity: .6; font-weight: 400; margin-right: 6px; }
.cme-card__price ins { text-decoration: none; }

.cme-empty { padding: 40px; border: 1.5px dashed rgba(59,47,37,.3); border-radius: 6px; text-align: center; color: var(--cme-muted); background: rgba(247,241,230,.6); }
.cme-empty strong { display: block; font-family: var(--cme-serif); font-size: 22px; font-weight: 500; color: var(--cme-ink); margin-bottom: 6px; }

/* ---------- Home: hero ---------- */
.cme-hero { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px; align-items: center; padding-top: 88px; padding-bottom: 104px; }
.cme-hero__copy { display: flex; flex-direction: column; gap: 26px; max-width: 580px; }
.cme-hero__copy h1 { font-size: clamp(42px, 5.2vw, 68px); line-height: 1.04; letter-spacing: -.02em; margin: 0; }
.cme-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 6px; }
.cme-hero__art { position: relative; min-height: 600px; display: flex; align-items: center; justify-content: center; padding: 48px; border-radius: 4px; }
.cme-hero__art .cme-frame { padding: 26px; border-width: 8px; }
.cme-hero__art { --h: 470px; }
.cme-hero__tag { position: absolute; left: -28px; bottom: 40px; display: flex; flex-direction: column; gap: 3px; padding: 18px 22px; background: var(--cme-paper-2); border-radius: 4px; box-shadow: 0 10px 28px rgba(59,47,37,.18); text-decoration: none; color: var(--cme-ink); max-width: 300px; }
.cme-hero__tag:hover { color: var(--cme-ink); }
.cme-hero__tag-eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cme-eyebrow); }
.cme-hero__tag-title { font-family: var(--cme-serif); font-size: 22px; font-weight: 500; line-height: 1.2; }
.cme-hero__tag-meta { font-size: 14px; color: #5A4A3C; }

/* ---------- Home: format cards ---------- */
.cme-formats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; padding-bottom: 112px; }
.cme-format { display: flex; gap: 36px; align-items: center; padding: 40px; background: var(--cme-paper-2); border-radius: 4px; text-decoration: none; color: var(--cme-ink); }
.cme-format:hover { color: var(--cme-ink); }
.cme-format:hover .cme-link { text-decoration: underline; }
.cme-format__stage { flex-shrink: 0; width: 210px; height: 240px; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 16px; }
.cme-format__stage .cme-frame { padding: 10px; }
.cme-format__stage { --h: 176px; }
.cme-format__stage--pair .cme-frame { padding: 6px; border-width: 4px; }
.cme-format__stage--pair { --h: 104px; }
.cme-format__stage--pair .cme-frame { max-width: 48%; }
.cme-format__stage--pair .cme-frame:last-child { --h: 132px; }
.cme-format__body { display: flex; flex-direction: column; gap: 12px; }
.cme-format__label { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cme-accent); }
.cme-format--prints .cme-format__label, .cme-format--prints .cme-link { color: var(--cme-moss); }
.cme-format__label svg { width: 26px; height: 26px; }
.cme-format h2 { font-size: 34px; margin: 0; }
.cme-format p { margin: 0; font-size: 16px; color: #5A4A3C; }

/* ---------- Home: bio ---------- */
.cme-bio { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; align-items: center; padding-top: 104px; padding-bottom: 104px; }
.cme-bio__photo { grid-column: span 5; display: flex; justify-content: center; }
.cme-bio__photo img, .cme-bio__placeholder { width: 100%; max-width: 420px; aspect-ratio: 7 / 8; object-fit: cover; border: 10px solid var(--cme-paper-2); box-shadow: 0 18px 40px rgba(59,47,37,.2); display: block; }
.cme-bio__placeholder { display: flex; align-items: center; justify-content: center; background: #CDB89C; color: var(--cme-ink-2); font-size: 15px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; text-align: center; padding: 20px; }
.cme-bio__copy { grid-column: 7 / span 6; display: flex; flex-direction: column; gap: 20px; }
.cme-bio__copy h2 { font-size: clamp(34px, 4vw, 46px); margin: 0; }
.cme-bio__text { font-size: 18px; line-height: 1.7; color: var(--cme-ink-2); }
.cme-bio__text p { margin: 0 0 1em; }
.cme-bio__text p:last-child { margin-bottom: 0; }

/* ---------- Trust strip ---------- */
.cme-trust { display: flex; gap: 48px; padding-top: 56px; padding-bottom: 56px; }
.cme-trust__item { flex: 1 1 0; display: flex; gap: 16px; align-items: flex-start; }
.cme-trust__icon { flex-shrink: 0; width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid rgba(251,246,238,.5); display: flex; align-items: center; justify-content: center; color: #F1D9A8; }
.cme-trust__icon svg { width: 26px; height: 26px; }
.cme-trust__title { font-size: 17px; font-weight: 600; color: var(--cme-cream); }
.cme-trust__text { font-size: 15px; line-height: 1.5; color: #E3D9C7; margin: 2px 0 0; }

/* ---------- Footer ---------- */
.cme-footer { background: var(--cme-ink); color: #E3D9C7; padding-top: 88px; padding-bottom: 44px; }
.cme-footer a { color: #E3D9C7; text-decoration: none; }
.cme-footer a:hover { color: var(--cme-cream); text-decoration: underline; }
.cme-footer__top { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px; }
.cme-footer__signup { grid-column: span 6; display: flex; flex-direction: column; gap: 16px; }
.cme-footer__signup h2 { color: var(--cme-cream); font-size: 38px; margin: 0; }
.cme-footer__signup p { margin: 0; font-size: 17px; line-height: 1.6; }
.cme-footer__signup .cme-btn--primary { background: var(--cme-ochre); color: #2A2119; }
.cme-footer__signup .cme-btn--primary:hover { background: #D9B573; color: #2A2119; }
.cme-footer__signup .cme-btn--ghost { color: var(--cme-cream); border-color: rgba(251,246,238,.55); }
.cme-footer__signup .cme-btn--ghost:hover { background: var(--cme-cream); color: var(--cme-ink); }
.cme-footer__signup input[type="email"], .cme-footer__signup input[type="text"] { background: rgba(251,246,238,.08); color: var(--cme-cream); border-color: rgba(227,217,199,.4); border-radius: 999px; }
.cme-footer__col { display: flex; flex-direction: column; gap: 12px; font-size: 16px; }
.cme-footer__col:nth-child(2) { grid-column: 9 / span 2; }
.cme-footer__col:nth-child(3) { grid-column: 11 / span 2; }
.cme-footer__col h3 { font-family: var(--cme-sans); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--cme-ochre); margin: 0 0 4px; }
.cme-footer__col ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cme-footer__bottom { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-top: 56px; padding-top: 28px; border-top: 1px solid rgba(227,217,199,.18); font-size: 14px; color: #BFB19C; }
.cme-footer__brand { font-family: var(--cme-serif); font-size: 19px; color: var(--cme-cream); }

/* ---------- Shop pages ---------- */
.cme-shop-head { padding-top: 56px; display: flex; flex-direction: column; gap: 14px; }
.cme-shop-head h1 { font-size: clamp(40px, 5vw, 60px); letter-spacing: -.02em; margin: 0; }
.cme-shop-head .cme-lead { max-width: 700px; font-size: 18px; }
.cme-shop-head .term-description p { margin: 0; }
.cme-crumbs { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 28px; font-size: 14px; color: var(--cme-muted); }
.cme-crumbs a { color: var(--cme-muted); }
.cme-crumbs [aria-current] { color: var(--cme-ink); }
.cme-tabs { display: flex; gap: 40px; margin-top: 40px; border-bottom: 1px solid rgba(59,47,37,.2); }
.cme-tab { display: inline-flex; align-items: center; min-height: 52px; margin-bottom: -1px; border-bottom: 2.5px solid transparent; font-size: 17px; font-weight: 500; color: var(--cme-muted); text-decoration: none; }
.cme-tab:hover { color: var(--cme-ink); }
.cme-tab.is-active { border-bottom-color: var(--cme-accent); font-weight: 700; color: var(--cme-ink); }
.cme-shop-body { padding-top: 40px; padding-bottom: 104px; }
.cme-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 28px; flex-wrap: wrap; font-size: 15px; color: var(--cme-muted); }
.cme-toolbar .woocommerce-result-count, .cme-toolbar .woocommerce-ordering { float: none; margin: 0; }
.cme-toolbar select { border-radius: 999px; min-height: 44px; padding: 0 40px 0 18px; }
.cme-series-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; margin: 32px 0 8px; flex-wrap: wrap; }
.cme-series-head h2 { font-size: clamp(32px, 4vw, 44px); margin: 0 0 8px; }
.cme-series-head p { margin: 0; max-width: 640px; font-size: 17px; color: #5A4A3C; }
.cme-series-head__meta { font-size: 15px; color: var(--cme-muted); white-space: nowrap; }
.cme-collection { margin-top: 28px; padding-top: 28px; border-top: 1px solid rgba(59,47,37,.18); }
.cme-collection__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 20px; flex-wrap: wrap; }
.cme-collection__head h3 { font-size: 30px; margin: 4px 0 4px; }
.cme-collection__head p { margin: 0; font-size: 16px; color: #5A4A3C; }
.cme-collection__eyebrow { margin: 0; font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--cme-eyebrow); }
.woocommerce-pagination, .cme-pagination { margin-top: 56px; text-align: center; }
.woocommerce-pagination ul.page-numbers, .cme-pagination .page-numbers { display: inline-flex; gap: 8px; list-style: none; padding: 0; margin: 0; border: 0 !important; }
.woocommerce-pagination ul.page-numbers li { border: 0 !important; }
.woocommerce-pagination .page-numbers a, .woocommerce-pagination .page-numbers span, .cme-pagination a.page-numbers, .cme-pagination span.page-numbers {
  display: inline-flex !important; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px !important;
  border-radius: 999px; border: 1.5px solid rgba(59,47,37,.3) !important; color: var(--cme-ink) !important; text-decoration: none; font-weight: 600; background: transparent !important;
}
.woocommerce-pagination .page-numbers span.current, .cme-pagination span.current { background: var(--cme-ink) !important; color: var(--cme-cream) !important; border-color: var(--cme-ink) !important; }

/* ---------- Single product ---------- */
.cme-single .woocommerce-notices-wrapper:empty { display: none; }
.cme-single div.product { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px 64px; padding-top: 32px; padding-bottom: 80px; position: relative; }
.cme-single div.product > * { min-width: 0; }
.cme-single div.product .woocommerce-product-gallery { grid-column: 1; grid-row: 1 / span 2; width: auto !important; float: none !important; margin: 0 !important; }
.cme-single div.product .summary { grid-column: 2; width: auto !important; float: none !important; margin: 0 !important; display: flex; flex-direction: column; gap: 18px; }
.cme-single div.product .woocommerce-tabs, .cme-single div.product > .clear, .cme-single div.product > section { grid-column: 1 / -1; }
.cme-single span.onsale { display: none; }
.cme-single .woocommerce-product-gallery__wrapper { margin: 0; }
.cme-gallery-stage .woocommerce-product-gallery__image { display: flex !important; align-items: center; justify-content: center; }
.cme-single .woocommerce-product-gallery .flex-viewport, .cme-single .woocommerce-product-gallery > .woocommerce-product-gallery__wrapper {
  background-color: var(--cme-linen);
  background-image: repeating-linear-gradient(0deg, rgba(90,64,40,.05) 0 1px, transparent 1px 4px), repeating-linear-gradient(90deg, rgba(90,64,40,.05) 0 1px, transparent 1px 4px);
  border-radius: 4px;
}
.cme-single .woocommerce-product-gallery__image > a { display: flex !important; align-items: center; justify-content: center; padding: clamp(24px, 5vw, 64px); min-height: clamp(340px, 60vw, 760px); }
.cme-single .woocommerce-product-gallery__image img {
  width: auto !important; max-width: 100%; height: auto !important; max-height: 620px; margin: 0 auto;
  padding: clamp(12px, 2vw, 26px) !important; background: var(--cme-paper-2); border: 6px solid var(--cme-ink);
  box-shadow: 0 18px 40px rgba(59,47,37,.22), 0 2px 6px rgba(59,47,37,.18); box-sizing: border-box;
}
.cme-single .woocommerce-product-gallery__trigger { top: 14px !important; right: 14px !important; background: var(--cme-paper-2) !important; border-radius: 50%; }
.cme-single .flex-control-thumbs { display: flex; flex-wrap: wrap; gap: 12px; margin: 14px 0 0 !important; padding: 0; list-style: none; }
.cme-single .flex-control-thumbs li { width: 88px !important; height: 88px; float: none !important; margin: 0 !important; background: var(--cme-linen); border-radius: 4px; overflow: hidden; }
.cme-single .flex-control-thumbs img { width: 100%; height: 100%; object-fit: cover; opacity: .6; cursor: pointer; }
.cme-single .flex-control-thumbs img.flex-active, .cme-single .flex-control-thumbs img:hover { opacity: 1; }
.cme-single .summary .product_title { font-size: clamp(38px, 4vw, 52px); letter-spacing: -.02em; line-height: 1.05; margin: 0; }
.cme-single .summary > .price { font-size: 26px; font-weight: 600; color: var(--cme-ink); margin: 0; }
.cme-single .summary > .price del { opacity: .55; font-weight: 400; }
.cme-single .summary > .price ins { text-decoration: none; }
.cme-single .woocommerce-product-details__short-description { font-size: 16px; line-height: 1.65; color: var(--cme-ink-2); }
.cme-single .woocommerce-product-details__short-description p { margin: 0 0 .8em; }
.cme-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cme-chip { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; background: var(--cme-linen); color: var(--cme-ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.cme-chip:hover { background: #D8C8B0; color: var(--cme-ink); }
.cme-also { display: flex; flex-direction: column; gap: 10px; padding: 16px 18px; border: 1.5px solid rgba(59,47,37,.22); border-radius: 8px; }
.cme-also__label { font-size: 14px; font-weight: 600; }
.cme-also a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 44px; font-weight: 600; text-decoration: none; }
.cme-also a span { font-weight: 500; color: var(--cme-muted); font-size: 14px; }
.cme-single form.cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin: 0 !important; }
.cme-single form.variations_form { display: block; }
.cme-single table.variations { width: 100%; border: 0; margin: 0 0 12px !important; border-collapse: collapse; }
.cme-single table.variations th, .cme-single table.variations td { display: block; padding: 0 !important; text-align: left; border: 0; line-height: 1.4 !important; }
.cme-single table.variations th label { font-size: 14px; font-weight: 600; display: block; margin: 12px 0 8px; }
.cme-single table.variations select { width: 100%; max-width: 360px; margin: 0 !important; }
.cme-single .reset_variations { display: inline-block; margin-top: 8px; font-size: 14px; }
.cme-single .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 12px; }
.cme-single .woocommerce-variation-price .price { font-size: 22px; font-weight: 600; color: var(--cme-ink); }
.cme-single .quantity input.qty { width: 84px; min-height: 58px; border-radius: 999px; text-align: center; }
.cme-single .single_add_to_cart_button, .woocommerce .cme-single button.button.alt, .cme-single button.single_add_to_cart_button.button.alt {
  flex: 1 1 220px; min-height: 58px !important; padding: 0 28px !important; border: 0 !important; border-radius: 999px !important;
  background: var(--cme-accent) !important; color: var(--cme-cream) !important; font-family: var(--cme-sans); font-size: 17px !important; font-weight: 700 !important; cursor: pointer;
}
.cme-single .single_add_to_cart_button:hover { background: var(--cme-accent-dark) !important; }
.cme-single .single_add_to_cart_button.disabled { opacity: .55 !important; }
.cme-single p.stock { font-size: 15px; font-weight: 600; margin: 0; color: var(--cme-moss); }
.cme-single p.stock.out-of-stock { color: var(--cme-ink); }
.cme-ship-note { display: flex; gap: 12px; align-items: flex-start; padding: 16px 18px; background: var(--cme-paper-2); border-radius: 6px; font-size: 15px; line-height: 1.5; color: var(--cme-ink-2); }
.cme-ship-note svg { width: 26px; height: 26px; color: var(--cme-moss); flex-shrink: 0; }
.cme-single .woocommerce-tabs { padding-top: 12px; }
.cme-single .woocommerce-tabs ul.tabs { display: flex; gap: 32px; margin: 0 0 24px !important; padding: 0 !important; list-style: none; border-bottom: 1px solid rgba(59,47,37,.2); overflow: visible; }
.cme-single .woocommerce-tabs ul.tabs::before, .cme-single .woocommerce-tabs ul.tabs::after, .cme-single .woocommerce-tabs ul.tabs li::before, .cme-single .woocommerce-tabs ul.tabs li::after { display: none !important; }
.cme-single .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; border-radius: 0 !important; }
.cme-single .woocommerce-tabs ul.tabs li a { display: inline-flex !important; align-items: center; min-height: 48px; padding: 0 !important; margin-bottom: -1px; border-bottom: 2.5px solid transparent; color: var(--cme-muted) !important; font-weight: 500 !important; text-decoration: none; }
.cme-single .woocommerce-tabs ul.tabs li.active a { border-bottom-color: var(--cme-accent); color: var(--cme-ink) !important; font-weight: 700 !important; }
.cme-single .woocommerce-Tabs-panel { max-width: 820px; font-size: 17px; line-height: 1.7; color: var(--cme-ink-2); }
.cme-single .woocommerce-Tabs-panel > h2:first-child { display: none; }
.cme-single table.shop_attributes { width: 100%; border-collapse: collapse; border-top: 1px solid rgba(59,47,37,.18); }
.cme-single table.shop_attributes th, .cme-single table.shop_attributes td { text-align: left; padding: 14px 0; border-bottom: 1px solid rgba(59,47,37,.18); font-style: normal; background: none !important; }
.cme-single table.shop_attributes th { width: 34%; font-weight: 500; color: var(--cme-muted); }
.cme-single table.shop_attributes td p { margin: 0; padding: 0; }
.cme-related { padding-top: 72px; padding-bottom: 88px; border-top: 1px solid var(--cme-line); }
.cme-related--linen { border-top: 0; }
.cme-related h2 { font-size: clamp(30px, 3.4vw, 40px); margin: 8px 0 0; }
.cme-colcard { display: flex; flex-direction: column; gap: 16px; padding: 20px; background: var(--cme-paper-2); border-radius: 4px; text-decoration: none; color: var(--cme-ink); }
.cme-colcard:hover { color: var(--cme-ink); }
.cme-colcard__mosaic { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: 120px 120px; gap: 8px; }
.cme-colcard__mosaic > * { overflow: hidden; background: #E9DDCB; }
.cme-colcard__mosaic > *:first-child { grid-column: span 2; grid-row: span 2; }
.cme-colcard__mosaic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cme-colcard__foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.cme-colcard__title { font-family: var(--cme-serif); font-size: 24px; font-weight: 500; }
.cme-colcard__meta { font-size: 14px; color: var(--cme-muted); }
.cme-colcard--more { justify-content: center; align-items: center; text-align: center; background: transparent; border: 1.5px dashed rgba(59,47,37,.35); min-height: 250px; }

/* ---------- Pages / generic content ---------- */
.cme-page { padding-top: 56px; padding-bottom: 104px; }
.cme-page__title { font-size: clamp(40px, 5vw, 60px); letter-spacing: -.02em; margin: 0 0 32px; }
.cme-content { font-size: 18px; line-height: 1.75; color: var(--cme-ink-2); }
.cme-content > * { max-width: 820px; }
.cme-content > .alignwide, .cme-content > .alignfull, .cme-content > .wp-block-woocommerce-cart, .cme-content > .wp-block-woocommerce-checkout, .cme-content > .woocommerce, .cme-content > .wp-block-columns { max-width: none; }
.cme-content h2 { font-size: 34px; margin-top: 1.4em; }
.cme-content h3 { font-size: 26px; margin-top: 1.3em; }
.cme-content img { border-radius: 4px; }
.cme-content .wp-block-button__link, .cme-content .wp-element-button, .wc-block-components-button:not(.is-link), .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
  background: var(--cme-accent) !important; color: var(--cme-cream) !important; border-radius: 999px !important; border: 0 !important;
  font-family: var(--cme-sans) !important; font-weight: 700 !important; min-height: 48px; padding: 12px 26px !important; text-decoration: none;
}
.wc-block-components-button:not(.is-link):hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--cme-accent-dark) !important; color: var(--cme-cream) !important; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner { border-radius: 8px; background: var(--cme-paper-2) !important; color: var(--cme-ink) !important; border-top-color: var(--cme-moss) !important; }
.woocommerce-message::before, .woocommerce-info::before { color: var(--cme-moss) !important; }
.woocommerce-store-notice, p.demo_store { background: var(--cme-moss) !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
  .cme-grid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cme-format { flex-direction: column; align-items: flex-start; }
  .cme-nav ul { gap: 28px; }
}
@media (max-width: 960px) {
  body { font-size: 16px; }
  .cme-header__inner { min-height: 72px; }
  .cme-menu-toggle { display: flex; }
  .cme-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: var(--cme-paper-2); border-bottom: 1px solid var(--cme-line); box-shadow: 0 16px 30px rgba(59,47,37,.12); }
  .cme-nav.is-open { display: block; }
  .cme-nav ul { flex-direction: column; gap: 0; padding: 8px var(--cme-gutter) 16px; }
  .cme-nav a { display: flex; align-items: center; min-height: 52px; font-size: 18px; border-bottom: 1px solid var(--cme-line); }
  .cme-nav li:last-child a { border-bottom: 0; }
  .cme-logo__name { font-size: 22px; }
  .cme-logo__mark { width: 38px; height: 38px; font-size: 14px; }
  .cme-hero { grid-template-columns: 1fr; gap: 32px; padding-top: 24px; padding-bottom: 56px; }
  .cme-hero__art { order: -1; min-height: 0; padding: 36px 20px; }
  .cme-hero__art .cme-frame { padding: 16px; border-width: 6px; }
  .cme-hero__art { --h: 320px; }
  .cme-hero__tag { position: static; margin-top: -8px; max-width: none; }
  .cme-hero__ctas .cme-btn { flex: 1 1 100%; }
  .cme-formats { grid-template-columns: 1fr; gap: 20px; padding-bottom: 64px; }
  .cme-format { padding: 24px; gap: 20px; }
  .cme-format__stage { width: 100%; }
  .cme-section { padding-top: 64px; padding-bottom: 64px; }
  .cme-grid, .cme-grid--3, .cme-grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 14px; }
  .cme-card__stage, .cme-grid--5 .cme-card__stage { height: 220px; padding: 16px; }
  .cme-card__stage .cme-frame, .cme-grid--5 .cme-card__stage .cme-frame { padding: 7px; border-width: 4px; }
  .cme-card__stage, .cme-grid--5 .cme-card__stage { --h: 160px; }
  .cme-badge { top: 8px; left: 8px; padding: 4px 9px; font-size: 11px; }
  .cme-card__title, .cme-grid--5 .cme-card__title { font-size: 17px; }
  .cme-card__meta { font-size: 13px; }
  .cme-card__price { font-size: 14px; }
  .cme-bio { grid-template-columns: 1fr; padding-top: 48px; padding-bottom: 48px; gap: 24px; }
  .cme-bio__photo, .cme-bio__copy { grid-column: auto; }
  .cme-bio__photo img, .cme-bio__placeholder { max-width: 280px; }
  .cme-trust { flex-direction: column; gap: 24px; padding-top: 40px; padding-bottom: 40px; }
  .cme-footer { padding-top: 48px; }
  .cme-footer__top { grid-template-columns: 1fr 1fr; }
  .cme-footer__signup { grid-column: 1 / -1; }
  .cme-footer__col:nth-child(2), .cme-footer__col:nth-child(3) { grid-column: auto; }
  .cme-footer__signup h2 { font-size: 28px; }
  .cme-tabs { gap: 28px; margin-top: 28px; }
  .cme-single div.product { grid-template-columns: 1fr; gap: 24px; padding-bottom: 48px; }
  .cme-single div.product .woocommerce-product-gallery, .cme-single div.product .summary { grid-column: 1; grid-row: auto; }
  .cme-single .woocommerce-product-gallery__image img { max-height: 420px; }
  .cme-related { padding-top: 48px; padding-bottom: 56px; }
  .cme-colcard__mosaic { grid-template-rows: 90px 90px; }
  .cme-grid--3 .cme-colcard--more { min-height: 160px; }
}
@media (max-width: 560px) {
  .cme-grid--3 { grid-template-columns: 1fr; }
  .cme-footer__signup form { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- WooCommerce color overrides ---------- */
.woocommerce .cme-single div.product p.price, .woocommerce .cme-single div.product span.price, .cme-single div.product .summary .price { color: var(--cme-ink); }
.woocommerce .cme-single div.product .stock { color: var(--cme-moss); }
.woocommerce .cme-single div.product .stock.out-of-stock { color: var(--cme-ink); }
.woocommerce span.onsale { background: var(--cme-accent); }
@media (max-width: 960px) {
  .cme-hero__art { flex-direction: column; gap: 0; }
  .cme-hero__tag { align-self: stretch; margin-top: 20px; }
  .cme-logo__name { font-size: 20px; white-space: nowrap; }
}
@media (max-width: 380px) { .cme-logo__name { font-size: 18px; } .cme-logo__mark { width: 34px; height: 34px; font-size: 12px; } }

/* ---------- Homepage fade ---------- */
.cme-fader { display: grid; place-items: center; width: 100%; }
.cme-slide { grid-area: 1 / 1; display: flex; align-items: center; justify-content: center; width: 100%; opacity: 0; visibility: hidden; transition: opacity 1.4s ease, visibility 0s linear 1.4s; }
.cme-slide.is-active { opacity: 1; visibility: visible; transition: opacity 1.4s ease, visibility 0s; }
.cme-dots { position: absolute; left: 0; right: 0; bottom: 16px; display: flex; justify-content: center; gap: 4px; }
.cme-dot { width: 28px; height: 28px; padding: 0; border: 0; background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.cme-dot::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: rgba(59,47,37,.28); transition: background .2s, transform .2s; }
.cme-dot.is-active::before { background: var(--cme-ink); transform: scale(1.2); }
.cme-dot:hover::before { background: rgba(59,47,37,.55); }
@media (max-width: 960px) {
  .cme-slide { flex-direction: column; }
  .cme-hero__art[data-cme-fader] { padding-bottom: 52px; }
}
@media (prefers-reduced-motion: reduce) { .cme-slide, .cme-slide.is-active { transition: none; } }

/* =========================================================================
   v1.2 — gallery masthead, gallery wall, niches, lightbox, see it on a wall
   ========================================================================= */

/* ---------- Top bar + masthead ---------- */
.cme-topbar { background: #2B1D15; color: #E9DCC8; font-size: 13px; letter-spacing: .04em; }
.cme-topbar__inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 42px; }
.cme-topbar a { display: inline-flex; align-items: center; min-height: 42px; color: #E8B96A; font-weight: 600; text-decoration: none; white-space: nowrap; }
.cme-topbar a:hover { color: #F3CF8C; text-decoration: underline; }
.cme-header { border-bottom: 0; }
.cme-masthead { position: relative; display: flex; flex-direction: column; align-items: center; padding-top: 26px; }
.cme-header--home .cme-masthead { padding-top: 44px; }
.cme-masthead__brand { display: flex; flex-direction: column; align-items: center; text-align: center; }
.cme-masthead__eyebrow { margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: .3em; text-transform: uppercase; color: var(--cme-eyebrow); }
.cme-wordmark { margin: 0; font-family: var(--cme-serif); font-weight: 500; line-height: 1; letter-spacing: -.025em; font-size: clamp(40px, 4.4vw, 58px); }
.cme-header--home .cme-wordmark { font-size: clamp(52px, 7.4vw, 104px); }
.cme-wordmark a { color: #2B1D15; text-decoration: none; }
.cme-wordmark a:hover { color: #2B1D15; }
.cme-masthead__brush { display: block; width: min(380px, 60vw); height: 22px; margin-top: 8px; fill: #A8521F; opacity: .9; }
.cme-masthead .cme-logo img.custom-logo { max-height: 110px; }
.cme-masthead .cme-header__tools { position: absolute; right: var(--cme-gutter); top: 16px; }
.cme-header--home .cme-masthead .cme-header__tools { top: 34px; }
.cme-masthead .cme-nav { width: 100%; margin-top: 20px; border-top: 1px solid rgba(43,29,21,.35); border-bottom: 1px solid rgba(43,29,21,.35); box-shadow: 0 3px 0 -2px rgba(43,29,21,.35), 0 -3px 0 -2px rgba(43,29,21,.35); }
.cme-header--home .cme-masthead .cme-nav { margin-top: 30px; }
.cme-masthead .cme-nav ul { justify-content: center; gap: clamp(28px, 4vw, 56px); padding: 10px 0; }
.cme-masthead .cme-nav a { display: inline-flex; align-items: center; min-height: 44px; padding: 0; font-size: 14px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #2B1D15; }

/* ---------- Home: gallery wall + headline ---------- */
.cme-hero2 { padding-top: 48px; padding-bottom: 96px; }
.cme-gwall { position: relative; aspect-ratio: 1296 / 620; overflow: hidden; box-shadow: inset 0 0 70px rgba(43,29,21,.12); }
.cme-gwall__rail { position: absolute; left: 0; right: 0; top: 4.8%; height: 6px; background: #7A5A40; box-shadow: 0 2px 3px rgba(43,29,21,.3); }
.cme-gwall__wires { position: absolute; inset: 0; width: 100%; height: 100%; stroke: #6B4E36; stroke-width: 1; }
.cme-gwall__wires line { vector-effect: non-scaling-stroke; }
.cme-gwall__frames { margin: 0; padding: 0; list-style: none; }
.cme-gwall__slot { position: absolute; left: var(--x); top: var(--y); width: var(--w); height: var(--h); }
.cme-gwall__frame { display: block; width: 100%; height: 100%; padding: clamp(5px, .95vw, 13px); background: #F7F1E6; border: 5px solid #3B2F25; box-shadow: 0 16px 34px rgba(0,0,0,.28), 0 2px 6px rgba(0,0,0,.2); transition: transform .25s, box-shadow .25s; }
.cme-gwall__slot.is-big .cme-gwall__frame { border-width: 7px; padding: clamp(8px, 1.3vw, 18px); }
.cme-gwall__frame:hover { transform: translateY(-3px); box-shadow: 0 22px 40px rgba(0,0,0,.3), 0 2px 6px rgba(0,0,0,.2); }
.cme-gwall__frame img { display: block; width: 100%; height: 100%; object-fit: contain; transition: opacity .7s ease; }
.cme-gwall__slot.is-changing img { opacity: 0; }
.cme-gwall__note { position: absolute; right: 16px; bottom: 14px; padding: 6px 12px; border-radius: 999px; background: rgba(251,246,238,.9); font-size: 12px; font-weight: 600; color: #2B1D15; }
.cme-gwall__empty { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; margin: 0; padding: 40px; text-align: center; font-size: 17px; color: var(--cme-muted); }
.cme-hero2__copy { display: flex; flex-direction: column; align-items: center; gap: 22px; max-width: 960px; margin: 0 auto; padding-top: 64px; text-align: center; }
.cme-hero2__copy h1 { margin: 0; font-size: clamp(36px, 4.4vw, 56px); line-height: 1.08; letter-spacing: -.02em; }
.cme-hero2__copy .cme-lead { max-width: 640px; }
.cme-hero2__copy .cme-hero__ctas { justify-content: center; }

/* ---------- Home: series cards ---------- */
.cme-band { padding-top: 88px; padding-bottom: 96px; }
.cme-scard { display: flex; flex-direction: column; gap: 18px; height: 100%; padding: 22px; background: var(--cme-cream); color: var(--cme-ink); text-decoration: none; box-shadow: 0 1px 0 rgba(43,29,21,.08); transition: transform .2s, box-shadow .2s; }
.cme-scard:hover { color: var(--cme-ink); transform: translateY(-3px); box-shadow: 0 18px 34px rgba(43,29,21,.14); }
.cme-scard__pics { display: grid; grid-template-columns: 1.85fr 1fr; grid-template-rows: 1fr 1fr; gap: 8px; height: 300px; }
.cme-scard__pics > span { overflow: hidden; background: #E9DDCB; }
.cme-scard__pics > span:first-child { grid-row: span 2; }
.cme-scard__pics img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cme-scard__foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; margin-top: auto; }
.cme-scard__title { display: block; font-family: var(--cme-serif); font-size: 30px; font-weight: 500; line-height: 1.15; }
.cme-scard__sub { display: block; margin-top: 4px; font-size: 15px; color: var(--cme-muted); }
.cme-scard__count { font-size: 14px; font-weight: 700; color: var(--cme-accent); white-space: nowrap; }

/* ---------- Display niches (every product card) ---------- */
.cme-card { display: flex; flex-direction: column; gap: 14px; }
.cme-niche {
  position: relative; height: 340px; display: flex; align-items: center; justify-content: center; padding: 46px 34px 34px;
  background-color: #D8C9B1;
  background-image: radial-gradient(ellipse 55% 60% at 50% 0%, rgba(255,246,226,.85), rgba(255,246,226,0) 72%), linear-gradient(rgba(0,0,0,0) 70%, rgba(59,40,25,.10));
}
.cme-niche::before { content: ""; position: absolute; left: 50%; top: 0; width: 64px; height: 9px; margin-left: -32px; border-radius: 0 0 5px 5px; background: linear-gradient(#C9A36A, #8E6B3E); box-shadow: 0 3px 6px rgba(0,0,0,.2); }
.cme-niche__art { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.cme-niche__img { display: block; width: auto; height: auto; max-width: 100%; max-height: 100%; box-shadow: 0 18px 30px rgba(50,30,15,.38), 0 3px 6px rgba(50,30,15,.25); transition: transform .2s, box-shadow .2s; }
.cme-card:hover .cme-niche__img { transform: translateY(-3px); box-shadow: 0 24px 38px rgba(50,30,15,.4), 0 3px 6px rgba(50,30,15,.25); }
.cme-niche .cme-badge { top: 12px; left: 12px; }
.cme-zoom { position: absolute; right: 12px; top: 12px; z-index: 2; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(251,246,238,.92); color: #2B1D15; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15); transition: background .15s, transform .15s; }
.cme-zoom:hover { background: #FBF6EE; transform: scale(1.06); }
.cme-zoom svg { width: 18px; height: 18px; }
.cme-card__text { display: flex; flex-direction: column; gap: 2px; color: var(--cme-ink); text-decoration: none; }
.cme-card__text:hover { color: var(--cme-ink); }
.cme-card__text:hover .cme-card__title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.cme-card__row { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.cme-card__row .cme-card__price { margin: 0; color: var(--cme-accent); font-size: 15px; font-weight: 700; white-space: nowrap; }
.cme-niche .cme-frame__empty { width: 60%; height: 70%; }

/* ---------- Quote band ---------- */
.cme-quote { background: var(--cme-accent); color: var(--cme-cream); }
.cme-quote__inner { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 40px; align-items: center; padding-top: 88px; padding-bottom: 88px; }
.cme-quote__art { grid-column: span 4; display: flex; justify-content: center; }
.cme-quote__art .cme-frame { border-color: #1E140E; --h: 380px; }
.cme-quote__copy { grid-column: 6 / span 7; margin: 0; display: flex; flex-direction: column; gap: 20px; }
.cme-quote__eyebrow { margin: 0; font-size: 13px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #F2CF95; }
.cme-quote blockquote { margin: 0; }
.cme-quote blockquote p { margin: 0; font-family: var(--cme-serif); font-size: clamp(28px, 3.2vw, 44px); line-height: 1.18; font-style: italic; }
.cme-quote figcaption { font-size: 17px; color: #F3E3D3; }
.cme-quote.is-draft blockquote p { font-size: 22px; font-style: normal; opacity: .85; }

/* ---------- Home: picture it at home ---------- */
.cme-homewall { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.cme-homewall__copy { display: flex; flex-direction: column; gap: 16px; }
.cme-homewall__copy h2 { margin: 0; font-size: clamp(34px, 3.6vw, 44px); }
.cme-homewall__copy p { margin: 0; font-size: 17px; line-height: 1.6; color: #5A4A3C; }

/* ---------- See it on a wall ---------- */
.cme-wall { position: relative; }
.cme-wall__stage { position: relative; aspect-ratio: 1600 / 1360; overflow: hidden; background: #E6DFD3; box-shadow: 0 14px 34px rgba(43,29,21,.18); }
.cme-wall__room { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.cme-wall__pieces { position: absolute; inset: 0; }
.cme-wall__piece { position: absolute; box-shadow: 4px 8px 14px rgba(40,28,18,.36), 1px 2px 3px rgba(40,28,18,.3); transition: left .45s ease, top .45s ease, width .45s ease, height .45s ease; }
.cme-wall__piece img { display: block; width: 100%; height: 100%; object-fit: cover; }
.cme-wall__piece::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(60,45,30,.10), rgba(255,248,235,0) 45%, rgba(255,250,240,.05)); pointer-events: none; }
.cme-wall__piece::after { content: ""; position: absolute; top: .6%; bottom: -.6%; left: 100%; width: var(--e, 2%); background: linear-gradient(90deg, rgba(40,30,22,.6), rgba(40,30,22,.4)); }
.cme-wall__label { position: absolute; left: 12px; top: 12px; max-width: calc(100% - 80px); margin: 0; padding: 6px 12px; border-radius: 16px; background: rgba(251,246,238,.93); color: #2B1D15; font-size: 12.5px; font-weight: 600; line-height: 1.35; }
.cme-wall__full { position: absolute; right: 12px; top: 12px; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(251,246,238,.93); color: #2B1D15; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.cme-wall__full svg { width: 18px; height: 18px; }
.cme-wall__modes { position: absolute; left: 12px; bottom: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.cme-wall__modes button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid rgba(43,29,21,.3); background: #FBF6EE; color: #2B1D15; font-family: var(--cme-sans); font-size: 15px; font-weight: 600; cursor: pointer; }
.cme-wall__modes button span { font-size: 13px; font-weight: 500; opacity: .75; }
.cme-wall__modes button[aria-pressed="true"] { background: var(--cme-moss); border-color: var(--cme-moss); color: var(--cme-cream); }
.cme-wall.is-full { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(21,15,11,.94); }
.cme-wall.is-full .cme-wall__stage { width: min(100%, calc((100vh - 40px) * 1600 / 1360)); }
.cme-noscroll, .cme-noscroll body { overflow: hidden; }

/* Artwork page tabs */
.cme-single div.product .cme-viewer { grid-column: 1; grid-row: 1 / span 2; min-width: 0; }
.cme-viewer__tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.cme-viewer__tabs button { min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1.5px solid rgba(43,29,21,.3); background: transparent; color: #2B1D15; font-family: var(--cme-sans); font-size: 15px; font-weight: 600; cursor: pointer; }
.cme-viewer__tabs button[aria-selected="true"] { background: #2B1D15; border-color: #2B1D15; color: var(--cme-cream); }
.cme-viewer__hint { margin: 12px 0 0; font-size: 14px; color: var(--cme-muted); }
.cme-single .reset_variations { display: inline-flex; align-items: center; min-height: 44px; margin-top: 10px; padding: 0 18px; border-radius: 999px; border: 1.5px solid rgba(59,47,37,.3); color: var(--cme-ink); font-size: 14px; font-weight: 600; text-decoration: none; }
.cme-single .reset_variations:hover { border-color: var(--cme-ink); color: var(--cme-ink); }

/* ---------- Full-screen viewer ---------- */
.cme-lb { position: fixed; inset: 0; z-index: 1001; display: flex; align-items: center; justify-content: center; padding: 72px 96px 24px; background: #150F0B; background-image: radial-gradient(ellipse 50% 60% at 50% 40%, rgba(255,215,160,.10), rgba(0,0,0,0) 70%); color: #F3E6D2; }
.cme-lb[hidden] { display: none; }
.cme-lb__fig { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; width: 100%; height: 100%; margin: 0; }
.cme-lb__img { display: block; max-width: 100%; max-height: calc(100vh - 200px); object-fit: contain; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.cme-lb__cap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px; width: 100%; max-width: 1100px; }
.cme-lb__text { display: flex; flex-direction: column; gap: 2px; }
.cme-lb__title { font-family: var(--cme-serif); font-size: 24px; }
.cme-lb__meta, .cme-lb__count { font-size: 14px; color: #BBA88E; }
.cme-lb__link { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: 999px; background: #F3E6D2; color: #1F1712; font-weight: 700; text-decoration: none; }
.cme-lb__link:hover { background: #FBF6EE; color: #1F1712; }
.cme-lb__link[hidden] { display: none; }
.cme-lb__btn { position: absolute; display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; padding: 0; border-radius: 50%; border: 1.5px solid rgba(251,246,238,.35); background: rgba(251,246,238,.08); color: #FBF6EE; cursor: pointer; }
.cme-lb__btn:hover { background: rgba(251,246,238,.18); }
.cme-lb__btn[hidden] { display: none; }
.cme-lb__btn svg { width: 24px; height: 24px; }
.cme-lb__close { top: 16px; right: 20px; }
.cme-lb__prev { left: 20px; top: calc(50% - 28px); }
.cme-lb__next { right: 20px; top: calc(50% - 28px); }

/* ---------- Studio ---------- */
.cme-photo { position: relative; margin: 0; }
.cme-studio { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 32px 40px; align-items: start; padding-top: 0; }
.cme-studio__tall { grid-column: span 4; }
.cme-studio__tall img { display: block; width: 100%; aspect-ratio: 400 / 620; object-fit: cover; border: 10px solid var(--cme-cream); box-shadow: 0 16px 34px rgba(43,29,21,.22); }
.cme-studio__tall .cme-zoom { right: 22px; top: 22px; }
.cme-studio__copy { grid-column: 5 / span 8; display: flex; flex-direction: column; gap: 22px; padding-top: 24px; }
.cme-studio__copy h2 { margin: 0; font-size: clamp(34px, 4vw, 46px); }
.cme-studio__text { max-width: 640px; font-size: 17px; line-height: 1.65; color: #5A4A3C; }
.cme-studio__text p { margin: 0 0 1em; }
.cme-studio__text p:last-child { margin-bottom: 0; }
.cme-studio__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cme-studio__pair img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; box-shadow: 0 10px 24px rgba(43,29,21,.18); }
.cme-studio__pair figcaption { margin-top: 8px; font-size: 14px; color: var(--cme-muted); }
.cme-owner-note { margin: 0; padding: 12px 16px; border: 1.5px dashed rgba(43,29,21,.35); border-radius: 6px; background: rgba(251,246,238,.6); font-size: 14px; color: var(--cme-muted); }

/* ---------- v1.2 responsive ---------- */
@media (max-width: 1180px) {
  .cme-niche { height: 300px; padding: 42px 26px 28px; }
  .cme-scard__pics { height: 240px; }
}
@media (max-width: 960px) {
  .cme-topbar__inner { font-size: 12px; min-height: 38px; }
  .cme-topbar__inner > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .cme-masthead, .cme-header--home .cme-masthead { flex-direction: row; justify-content: space-between; align-items: center; min-height: 72px; padding-top: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--cme-line); }
  .cme-masthead__brand { align-items: flex-start; text-align: left; min-width: 0; }
  .cme-masthead__eyebrow, .cme-masthead__brush { display: none; }
  .cme-wordmark, .cme-header--home .cme-wordmark { font-size: clamp(26px, 7vw, 40px); white-space: nowrap; }
  .cme-masthead .cme-header__tools, .cme-header--home .cme-masthead .cme-header__tools { position: static; }
  .cme-masthead .cme-nav, .cme-header--home .cme-masthead .cme-nav { margin: 0; border-top: 0; box-shadow: 0 16px 30px rgba(59,47,37,.12); }
  .cme-masthead .cme-nav ul { flex-direction: column; gap: 0; padding: 8px var(--cme-gutter) 16px; }
  .cme-masthead .cme-nav a { display: flex; min-height: 52px; font-size: 15px; border-bottom: 1px solid var(--cme-line); }
  .cme-hero2 { padding-top: 20px; padding-bottom: 56px; }
  .cme-hero2__copy { padding-top: 36px; gap: 18px; }
  .cme-band { padding-top: 56px; padding-bottom: 64px; }
  .cme-scard__pics { height: 220px; }
  .cme-niche { height: 230px; padding: 30px 14px 18px; }
  .cme-niche::before { width: 44px; margin-left: -22px; height: 7px; }
  .cme-niche .cme-badge { top: 8px; left: 8px; }
  .cme-zoom { right: 6px; top: 6px; width: 40px; height: 40px; }
  .cme-card__row { flex-direction: column; gap: 2px; }
  .cme-card__row .cme-card__price { font-size: 14px; }
  .cme-quote__inner { grid-template-columns: 1fr; gap: 28px; padding-top: 56px; padding-bottom: 56px; }
  .cme-quote__art, .cme-quote__copy { grid-column: auto; }
  .cme-quote__art .cme-frame { --h: 260px; padding: 12px; }
  .cme-homewall { grid-template-columns: 1fr; gap: 24px; }
  .cme-studio { grid-template-columns: 1fr; gap: 24px; }
  .cme-studio__tall, .cme-studio__copy { grid-column: auto; }
  .cme-studio__tall { max-width: 420px; }
  .cme-studio__tall img { aspect-ratio: 4 / 5; }
  .cme-studio__copy { padding-top: 0; }
  .cme-single div.product .cme-viewer { grid-column: 1; grid-row: auto; }
  .cme-lb { padding: 64px 12px 90px; }
  .cme-lb__img { max-height: calc(100vh - 250px); }
  .cme-lb__prev, .cme-lb__next { top: auto; bottom: 16px; }
  .cme-lb__cap { padding: 0 4px; }
  .cme-lb__title { font-size: 20px; }
}
@media (max-width: 760px) {
  .cme-gwall { aspect-ratio: 640 / 560; }
  .cme-gwall__rail { top: 3.6%; }
  .cme-gwall__wires { display: none; }
  .cme-gwall__slot { display: none; }
  .cme-gwall__slot.is-phone { display: block; left: var(--mx); top: var(--my); width: var(--mw); height: var(--mh); }
  .cme-gwall__frame, .cme-gwall__slot.is-big .cme-gwall__frame { border-width: 4px; padding: 6px; }
  .cme-gwall__note { left: 50%; right: auto; transform: translateX(-50%); bottom: 10px; font-size: 11px; white-space: nowrap; }
  .cme-wall__label { font-size: 11px; left: 8px; top: 8px; max-width: calc(100% - 64px); }
  .cme-wall__full { right: 8px; top: 8px; }
  .cme-wall__modes { left: 8px; bottom: 8px; gap: 6px; }
  .cme-wall__modes button { padding: 0 14px; font-size: 14px; }
}
@media (max-width: 480px) {
  .cme-wall__modes button span { display: none; }
  .cme-studio__pair { grid-template-columns: 1fr; }
  .cme-topbar__inner > span { display: none; }
  .cme-topbar__inner { justify-content: center; }
}
