/*
Theme Name: Maluxury Atelier
Author: DapraLab
Description: An editorial, inquiry-led WooCommerce theme for Maluxury Furniture.
Version: 1.1.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maluxury
*/

:root {
  --ml-ivory: #f5f0e7;
  --ml-ivory-deep: #e9dfd0;
  --ml-paper: #fffdf8;
  --ml-ink: #171513;
  --ml-ink-soft: #3e3933;
  --ml-walnut: #553329;
  --ml-oxblood: #6d2427;
  --ml-brass: #9b7b4d;
  --ml-brass-light: #c4aa7a;
  --ml-line: rgba(23, 21, 19, 0.16);
  --ml-line-light: rgba(255, 253, 248, 0.22);
  --ml-display: Iowan Old Style, Baskerville, "Times New Roman", serif;
  --ml-sans: Inter, Avenir, "Helvetica Neue", Helvetica, Arial, sans-serif;
  --ml-page: min(100% - 40px, 1440px);
  --ml-narrow: min(100% - 40px, 840px);
  --ml-space: clamp(72px, 9vw, 140px);
  --ml-shadow: 0 18px 55px rgba(47, 31, 24, 0.12);
  --ml-transition: 220ms cubic-bezier(.2, .75, .3, 1);
}

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

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--ml-ivory);
  color: var(--ml-ink);
  font-family: var(--ml-sans);
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

a:hover {
  color: var(--ml-oxblood);
}

button,
input,
textarea,
select {
  color: inherit;
  font: inherit;
}

button,
input[type="submit"] {
  cursor: pointer;
}

:focus-visible {
  outline: 2px solid var(--ml-oxblood);
  outline-offset: 4px;
}

.ml-section--ink :focus-visible,
.ml-site-footer :focus-visible,
.ml-trade :focus-visible {
  outline-color: var(--ml-brass-light);
}

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.skip-link:focus {
  clip: auto;
  width: auto;
  height: auto;
  margin: 0;
  padding: 12px 18px;
  left: 16px;
  top: 16px;
  z-index: 9999;
  background: var(--ml-paper);
}

.ml-container {
  width: var(--ml-page);
  margin-inline: auto;
}

.ml-narrow {
  width: var(--ml-narrow);
  margin-inline: auto;
}

.ml-section {
  padding-block: var(--ml-space);
}

.ml-section--paper {
  background: var(--ml-paper);
}

.ml-section--ink {
  background: var(--ml-ink);
  color: var(--ml-paper);
}

.ml-eyebrow {
  margin: 0 0 16px;
  color: var(--ml-oxblood);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  line-height: 1.2;
  text-transform: uppercase;
}

.ml-section--ink .ml-eyebrow {
  color: var(--ml-brass-light);
}

.ml-title,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-top: 0;
  color: inherit;
  font-family: var(--ml-display);
  font-weight: 400;
  letter-spacing: -0.025em;
  line-height: 1.04;
}

h1,
.ml-title--hero {
  font-size: clamp(3.1rem, 7.5vw, 7.5rem);
}

h2,
.ml-title--section {
  font-size: clamp(2.35rem, 4.7vw, 5rem);
}

h3 {
  font-size: clamp(1.65rem, 2.6vw, 2.65rem);
}

p {
  margin: 0 0 1.4em;
}

.ml-lede {
  color: var(--ml-ink-soft);
  font-family: var(--ml-display);
  font-size: clamp(1.25rem, 2vw, 1.72rem);
  line-height: 1.42;
}

.ml-section--ink .ml-lede {
  color: rgba(255, 253, 248, 0.76);
}

.ml-button,
.button,
button.button,
input.button,
.wp-element-button {
  display: inline-flex;
  min-height: 50px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 23px 11px;
  border: 1px solid var(--ml-ink);
  border-radius: 0;
  background: var(--ml-ink);
  color: var(--ml-paper);
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.13em;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  transition: background var(--ml-transition), color var(--ml-transition), border-color var(--ml-transition);
}

.ml-button:hover,
.button:hover,
button.button:hover,
input.button:hover,
.wp-element-button:hover {
  border-color: var(--ml-oxblood);
  background: var(--ml-oxblood);
  color: var(--ml-paper);
}

.ml-button--outline {
  background: transparent;
  color: var(--ml-ink);
}

.ml-section--ink .ml-button--outline,
.ml-button--light {
  border-color: var(--ml-paper);
  background: transparent;
  color: var(--ml-paper);
}

.ml-button--text {
  min-height: auto;
  padding: 0 0 5px;
  border: 0;
  border-bottom: 1px solid currentColor;
  background: transparent;
  color: inherit;
}

.ml-button--text:hover {
  border-color: var(--ml-oxblood);
  background: transparent;
  color: var(--ml-oxblood);
}

.ml-section--ink .ml-button--text:hover {
  border-color: var(--ml-brass-light);
  color: var(--ml-brass-light);
}

.ml-button-group {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* Header */
.ml-announcement {
  padding: 8px 20px;
  background: var(--ml-walnut);
  color: var(--ml-paper);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-align: center;
  text-transform: uppercase;
}

.ml-site-header {
  position: relative;
  z-index: 50;
  border-bottom: 1px solid var(--ml-line);
  background: rgba(245, 240, 231, 0.96);
}

.ml-header-main {
  display: grid;
  min-height: 92px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 32px;
}

.ml-brand {
  display: inline-flex;
  flex-direction: column;
  color: var(--ml-ink);
  line-height: 1;
  text-decoration: none;
}

.ml-brand__name {
  font-family: var(--ml-display);
  font-size: clamp(1.18rem, 1.45vw, 1.55rem);
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.ml-brand__descriptor {
  margin-top: 7px;
  color: var(--ml-walnut);
  font-size: 0.57rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.ml-primary-nav {
  justify-self: center;
}

.ml-primary-nav ul,
.ml-primary-nav .menu {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 7px 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ml-primary-nav a {
  display: block;
  padding-block: 8px;
  font-size: 0.67rem;
  font-weight: 700;
  letter-spacing: 0.105em;
  text-decoration: none;
  text-transform: uppercase;
}

.ml-primary-nav a:hover,
.ml-primary-nav .current-menu-item > a {
  color: var(--ml-oxblood);
}

.ml-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ml-cart-link {
  border-bottom: 1px solid currentColor;
  font-size: .67rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-decoration: none;
  text-transform: uppercase;
}

.ml-search-toggle,
.ml-menu-toggle {
  display: inline-grid;
  width: 45px;
  height: 45px;
  place-items: center;
  padding: 0;
  border: 1px solid var(--ml-line);
  background: transparent;
  color: var(--ml-ink);
}

.ml-search-toggle:hover,
.ml-menu-toggle:hover {
  border-color: var(--ml-oxblood);
  color: var(--ml-oxblood);
}

.ml-menu-toggle {
  display: none;
}

.ml-icon {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: square;
  stroke-width: 1.6;
}

.ml-search-panel {
  display: none;
  padding: 25px 0 28px;
  border-top: 1px solid var(--ml-line);
  background: var(--ml-paper);
}

.ml-search-panel.is-open {
  display: block;
}

html:not(.js) .ml-search-toggle {
  display: none;
}

html:not(.js) .ml-search-panel {
  display: block;
}

.ml-search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.ml-search-form input[type="search"] {
  min-width: 0;
  padding: 13px 2px;
  border: 0;
  border-bottom: 1px solid var(--ml-ink);
  border-radius: 0;
  background: transparent;
  font-family: var(--ml-display);
  font-size: clamp(1.2rem, 2.2vw, 1.75rem);
}

/* Hero */
.ml-hero {
  min-height: min(790px, calc(100vh - 126px));
  display: grid;
  overflow: hidden;
  grid-template-columns: minmax(0, 1.07fr) minmax(360px, .93fr);
  border-bottom: 1px solid var(--ml-line);
}

.ml-hero__copy {
  display: flex;
  align-items: center;
  padding: clamp(70px, 8vw, 130px) max(24px, calc((100vw - 1440px) / 2 + 20px));
  padding-right: clamp(38px, 7vw, 105px);
}

.ml-hero__copy-inner {
  max-width: 800px;
}

.ml-hero h1 {
  max-width: 10ch;
  font-size: clamp(3.35rem, 5.45vw, 5.6rem);
  line-height: 0.98;
  margin-bottom: 30px;
}

.ml-hero .ml-lede {
  max-width: 610px;
  margin-bottom: 38px;
}

.ml-hero__visual {
  position: relative;
  min-height: 610px;
  overflow: hidden;
  background: var(--ml-walnut);
}

.ml-hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ml-hero__visual::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(23, 21, 19, .58));
  content: "";
  pointer-events: none;
}

.ml-hero__placeholder {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 68% 31%, rgba(196, 170, 122, .38) 0 7%, transparent 7.3%),
    linear-gradient(135deg, transparent 0 46%, rgba(255,255,255,.07) 46% 48%, transparent 48%),
    linear-gradient(22deg, #311e19 0 35%, #6a4233 35% 64%, #2a1b18 64%);
}

.ml-hero__placeholder::before {
  position: absolute;
  width: 55%;
  height: 42%;
  left: 19%;
  bottom: 14%;
  border: 1px solid rgba(255, 253, 248, .35);
  box-shadow: 26px -26px 0 rgba(155, 123, 77, .15);
  content: "";
}

.ml-hero__caption {
  position: absolute;
  z-index: 2;
  right: 30px;
  bottom: 26px;
  left: 30px;
  color: var(--ml-paper);
  font-size: .67rem;
  letter-spacing: .15em;
  text-transform: uppercase;
}

/* Shared section headers */
.ml-section-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, .42fr);
  align-items: end;
  gap: 50px;
  margin-bottom: clamp(42px, 6vw, 76px);
}

.ml-section-head h2 {
  max-width: 11ch;
  margin-bottom: 0;
  font-size: clamp(2rem, 3.6vw, 3.85rem);
  letter-spacing: -0.04em;
  text-wrap: balance;
}

.ml-section-head__aside {
  max-width: 520px;
  justify-self: end;
}

/* Product cards */
.ml-product-grid,
.woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 2.5vw, 38px) 18px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ml-product-card,
.woocommerce ul.products li.product {
  position: relative;
  float: none;
  width: auto;
  margin: 0;
}

.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none;
}

body.woocommerce ul.products[class*="columns-"] li.product,
body.woocommerce-page ul.products[class*="columns-"] li.product,
body .woocommerce ul.products[class*="columns-"] li.product {
  clear: none;
  float: none;
  width: auto;
  margin: 0;
}

.ml-product-card__media,
.woocommerce ul.products li.product a img {
  position: relative;
  aspect-ratio: 4 / 5;
  width: 100%;
  margin: 0 0 18px;
  overflow: hidden;
  background: var(--ml-ivory-deep);
  object-fit: cover;
}

.ml-product-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 600ms cubic-bezier(.2,.7,.2,1);
}

.ml-product-card:hover .ml-product-card__media img {
  transform: scale(1.025);
}

.ml-product-card h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 7px;
  padding: 0;
  font-family: var(--ml-display);
  font-size: clamp(1.22rem, 1.8vw, 1.55rem);
  line-height: 1.18;
}

.ml-product-card a {
  text-decoration: none;
}

.ml-product-card__meta,
.woocommerce ul.products li.product .price {
  color: var(--ml-ink-soft);
  font-size: .78rem;
  letter-spacing: .04em;
}

.ml-product-card__empty {
  min-height: 380px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 30px;
  border: 1px solid var(--ml-line);
  background:
    linear-gradient(145deg, transparent 40%, rgba(155,123,77,.14) 40% 41%, transparent 41%),
    var(--ml-ivory-deep);
}

.ml-status-badge {
  position: absolute;
  z-index: 4;
  top: 12px;
  left: 12px;
  padding: 7px 9px 6px;
  background: var(--ml-paper);
  color: var(--ml-ink);
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ml-product-inquiry {
  display: inline-block;
  margin-top: 9px;
  border-bottom: 1px solid currentColor;
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .11em;
  text-decoration: none;
  text-transform: uppercase;
}

.ml-empty-state {
  display: grid;
  min-height: 280px;
  place-items: center;
  padding: 50px 24px;
  border: 1px solid var(--ml-line);
  text-align: center;
}

.ml-empty-state__inner {
  max-width: 530px;
}

.ml-empty-state h3 {
  margin-bottom: 12px;
}

.ml-collection-pagination {
  margin-top: clamp(42px, 6vw, 72px);
}

.ml-collection-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.ml-collection-pagination li {
  margin: 0;
}

.ml-collection-pagination a,
.ml-collection-pagination span {
  display: grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding: 8px 12px;
  border: 1px solid var(--ml-line);
  text-decoration: none;
}

.ml-collection-pagination .current,
.ml-collection-pagination a:hover {
  background: var(--ml-ink);
  color: var(--ml-paper);
}

/* Room and style cards */
.ml-room-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 18px;
}

.ml-room-card {
  position: relative;
  min-height: 360px;
  display: flex;
  grid-column: span 4;
  align-items: flex-end;
  overflow: hidden;
  padding: 30px;
  background: var(--ml-walnut);
  color: var(--ml-paper);
  text-decoration: none;
}

.ml-room-card:nth-child(1),
.ml-room-card:nth-child(5) {
  grid-column: span 4;
}

.ml-room-card::before,
.ml-room-card::after {
  position: absolute;
  content: "";
}

.ml-room-card::before {
  inset: 0;
  background-image: linear-gradient(180deg, rgba(23,21,19,.05), rgba(23,21,19,.38)), var(--ml-room-photo), var(--ml-room-image, linear-gradient(145deg, #6e4d3c, #2e201b));
  background-position: center;
  background-size: cover;
  transform: scale(1.001);
  transition: transform 700ms cubic-bezier(.2,.7,.2,1);
}

.ml-room-card::after {
  inset: 0;
  background: linear-gradient(180deg, transparent 30%, rgba(23,21,19,.75));
}

.ml-room-card:hover {
  color: var(--ml-paper);
}

.ml-room-card:hover::before {
  transform: scale(1.035);
}

.ml-room-card__content {
  position: relative;
  z-index: 2;
}

.ml-room-card h3 {
  margin-bottom: 7px;
}

.ml-room-card span {
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.ml-room-card--seating { --ml-room-image: linear-gradient(135deg, #321d1c, #8a5550); }
.ml-room-card--tables { --ml-room-image: linear-gradient(25deg, #332017, #846345); }
.ml-room-card--bedroom { --ml-room-image: linear-gradient(145deg, #6f665c, #2f2a25); }
.ml-room-card--office { --ml-room-image: linear-gradient(42deg, #242321, #6b5a49); }
.ml-room-card--storage { --ml-room-image: linear-gradient(155deg, #483127, #977b55); }
.ml-room-card--sets { --ml-room-image: linear-gradient(45deg, #3a2625, #70545a); }

.ml-path-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.ml-path-card {
  position: relative;
  overflow: hidden;
  min-height: 340px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(30px, 4vw, 58px);
  border: 1px solid rgba(196,170,122,.42);
  border-radius: 4px;
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}

.ml-path-card::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(23,21,19,.12), rgba(23,21,19,.92)), var(--ml-path-photo), linear-gradient(145deg, #2b211e, #171513);
  background-position: center;
  background-size: cover;
  content: "";
  opacity: .46;
  transition: transform 700ms cubic-bezier(.2,.7,.2,1), opacity var(--ml-transition);
}

.ml-path-card:hover::before { opacity: .62; transform: scale(1.035); }

.ml-path-card > * { position: relative; z-index: 1; }

.ml-path-card:last-child {
  border-right: 1px solid rgba(196,170,122,.42);
}

.ml-path-card__number {
  color: var(--ml-brass-light);
  font-family: var(--ml-display);
  font-size: 1.1rem;
}

.ml-path-card p {
  color: rgba(255,253,248,.72);
}

.ml-style-grid {
  display: grid;
  grid-template-columns: 1.25fr .75fr .75fr;
  gap: 18px;
}

.ml-style-card {
  position: relative;
  overflow: hidden;
  min-height: 470px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(28px, 4vw, 52px);
  border: 1px solid rgba(155,123,77,.58);
  border-radius: 4px;
  background: var(--ml-walnut);
  color: var(--ml-paper);
  box-shadow: 0 20px 46px rgba(47,31,24,.18);
}

.ml-style-card::before {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255,253,248,.02), rgba(23,21,19,.75)), var(--ml-style-photo);
  background-position: center;
  background-size: cover;
  content: "";
  opacity: .36;
  transition: transform 700ms cubic-bezier(.2,.7,.2,1), opacity var(--ml-transition);
}

.ml-style-card:hover::before { opacity: .52; transform: scale(1.035); }
.ml-style-card > * { position: relative; z-index: 1; }
.ml-style-card h3, .ml-style-card .ml-eyebrow { text-shadow: 0 1px 12px rgba(255,253,248,.35); }

.ml-style-card:nth-child(1) {
  background: linear-gradient(145deg, rgba(109,36,39,.72), rgba(23,21,19,.92)), var(--ml-walnut);
}

.ml-style-card:nth-child(2) {
  background: linear-gradient(35deg, rgba(85,51,41,.84), rgba(23,21,19,.92)), var(--ml-walnut);
}

.ml-style-card:nth-child(3) {
  background: linear-gradient(155deg, rgba(155,123,77,.72), rgba(23,21,19,.92)), var(--ml-walnut);
}

.ml-style-card p {
  color: rgba(255,253,248,.78);
}

.ml-service-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--ml-line);
  border-bottom: 1px solid var(--ml-line);
}

.ml-service {
  padding: 34px 26px;
  border-right: 1px solid var(--ml-line);
}

.ml-service:last-child {
  border-right: 0;
}

.ml-service h3 {
  margin-bottom: 10px;
  font-size: 1.2rem;
}

.ml-service p {
  margin: 0;
  color: var(--ml-ink-soft);
  font-size: .83rem;
}

.ml-trade {
  display: grid;
  min-height: 560px;
  grid-template-columns: 1fr 1fr;
  background: var(--ml-walnut);
  color: var(--ml-paper);
}

.ml-trade__visual {
  min-height: 420px;
  background:
    linear-gradient(155deg, transparent 45%, rgba(196,170,122,.22) 45% 46%, transparent 46%),
    linear-gradient(20deg, rgba(37,24,23,.38), rgba(104,69,58,.28)),
    var(--ml-trade-photo),
    linear-gradient(20deg, #251817, #68453a);
  background-position: center;
  background-size: cover;
}

.ml-trade__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(50px, 7vw, 110px);
}

.ml-trade__copy p:not(.ml-eyebrow) {
  color: rgba(255,253,248,.76);
}

.ml-editorial-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.ml-editorial-card {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(26px, 3.5vw, 45px);
  border: 1px solid var(--ml-line);
  border-top: 3px solid var(--ml-brass);
  border-radius: 3px;
  background: var(--ml-paper);
  box-shadow: 0 14px 35px rgba(47,31,24,.08);
  text-decoration: none;
  transition: background var(--ml-transition), color var(--ml-transition), transform var(--ml-transition), box-shadow var(--ml-transition);
}

.ml-editorial-card:hover {
  background: var(--ml-ink);
  color: var(--ml-paper);
  box-shadow: 0 20px 42px rgba(47,31,24,.2);
  transform: translateY(-4px);
}

.ml-editorial-card__index {
  color: var(--ml-walnut);
  font-size: .66rem;
  font-weight: 700;
  letter-spacing: .13em;
}

.ml-editorial-card h3 {
  margin: 38px 0 9px;
}

.ml-editorial-card p {
  margin: 0;
  color: var(--ml-ink-soft);
  font-size: .84rem;
}

.ml-editorial-card:hover p {
  color: rgba(255,253,248,.68);
}

.ml-client-notes {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  align-items: center;
  gap: clamp(50px, 9vw, 140px);
}

.ml-client-note-placeholder {
  padding: clamp(40px, 6vw, 82px);
  border: 1px solid var(--ml-line-light);
}

.ml-client-note-placeholder blockquote {
  margin: 0;
  font-family: var(--ml-display);
  font-size: clamp(1.65rem, 3vw, 3.1rem);
  line-height: 1.2;
}

.ml-client-note-placeholder p {
  margin: 24px 0 0;
  color: rgba(255,253,248,.68);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

/* Interior pages */
.ml-page-hero {
  padding: clamp(80px, 11vw, 170px) 0 clamp(55px, 7vw, 105px);
  border-bottom: 1px solid var(--ml-line);
}

.ml-page-hero h1 {
  max-width: 12ch;
  margin-bottom: 20px;
}

.ml-page-hero .ml-lede {
  max-width: 700px;
}

.ml-content {
  padding-block: clamp(60px, 8vw, 120px);
}

.ml-prose {
  width: var(--ml-narrow);
  margin-inline: auto;
}

.ml-prose > * {
  max-width: 100%;
}

.ml-prose a {
  color: var(--ml-oxblood);
}

.ml-prose blockquote {
  margin: 2.3em 0;
  padding-left: 28px;
  border-left: 2px solid var(--ml-brass);
  font-family: var(--ml-display);
  font-size: 1.5rem;
}

.ml-contact-options,
.ml-selected-piece {
  margin-top: clamp(42px, 6vw, 72px);
  padding: clamp(26px, 4vw, 44px);
  border: 1px solid var(--ml-line);
  background: var(--ml-paper);
}

.ml-contact-options h2,
.ml-selected-piece h2 {
  margin-bottom: 16px;
  font-size: clamp(2rem, 4vw, 3.6rem);
}

.ml-contact-options > p:not(.ml-eyebrow),
.ml-selected-piece__details > p:not(.ml-eyebrow) {
  color: var(--ml-ink-soft);
}

.ml-contact-options .ml-button-group {
  margin-top: 28px;
}

.ml-contact .ml-button,
.ml-contact .ml-button:hover {
  color: var(--ml-paper);
}

.ml-contact .ml-button--outline {
  color: var(--ml-ink);
}

.ml-selected-piece {
  display: grid;
  grid-template-columns: minmax(170px, .72fr) minmax(0, 1.28fr);
  align-items: center;
  gap: clamp(26px, 5vw, 58px);
}

.ml-selected-piece__media {
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--ml-ivory-deep);
}

.ml-selected-piece__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ml-selected-piece__reference {
  margin: -4px 0 22px;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ml-selected-piece .ml-button {
  margin-top: 8px;
}

.ml-selected-piece__details:only-child {
  grid-column: 1 / -1;
}

.ml-prose input:not([type="submit"]),
.ml-prose textarea,
.ml-prose select,
.woocommerce input.input-text,
.woocommerce textarea,
.woocommerce select {
  width: 100%;
  padding: 13px 12px;
  border: 1px solid var(--ml-line);
  border-radius: 0;
  background: var(--ml-paper);
}

.ml-search-results {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.ml-search-result {
  padding: 28px;
  border: 1px solid var(--ml-line);
  background: var(--ml-paper);
}

.ml-search-result h2 {
  font-size: 1.7rem;
}

.ml-search-result a {
  text-decoration: none;
}

/* WooCommerce */
.ml-shop-shell {
  width: var(--ml-page);
  margin-inline: auto;
  padding-block: clamp(55px, 7vw, 105px);
}

.woocommerce .woocommerce-breadcrumb {
  margin-bottom: 30px;
  color: var(--ml-ink-soft);
  font-size: .7rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
  margin-bottom: 36px;
}

.woocommerce .woocommerce-ordering select {
  padding: 10px 32px 10px 10px;
  border: 1px solid var(--ml-line);
  border-radius: 0;
  background: transparent;
}

.woocommerce span.onsale {
  min-width: 0;
  min-height: 0;
  padding: 7px 9px;
  border-radius: 0;
  background: var(--ml-oxblood);
  font-size: .6rem;
  letter-spacing: .1em;
  line-height: 1.2;
  text-transform: uppercase;
}

.woocommerce div.product {
  display: flow-root;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
  margin-bottom: 70px;
}

.woocommerce div.product .product_title {
  font-size: clamp(2.5rem, 5vw, 5rem);
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--ml-walnut);
  font-family: var(--ml-display);
  font-size: 1.35rem;
}

.woocommerce div.product .woocommerce-product-details__short-description {
  color: var(--ml-ink-soft);
  font-size: 1.03rem;
}

.woocommerce-product-gallery__image {
  background: var(--ml-ivory-deep);
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
  padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
  border-color: var(--ml-line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.woocommerce div.product .woocommerce-tabs ul.tabs li::after {
  display: none;
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
  border-top-color: var(--ml-brass);
  background: var(--ml-paper);
}

.woocommerce-info::before,
.woocommerce-message::before {
  color: var(--ml-brass);
}

.woocommerce nav.woocommerce-pagination ul,
.woocommerce nav.woocommerce-pagination ul li {
  border-color: var(--ml-line);
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  min-width: 44px;
  padding: 12px;
}

.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce nav.woocommerce-pagination ul li a:hover {
  background: var(--ml-ink);
  color: var(--ml-paper);
}

body.ml-inquiry-mode .cart,
body.ml-inquiry-mode .added_to_cart,
body.ml-inquiry-mode .wc-block-mini-cart,
body.ml-inquiry-mode .woocommerce-mini-cart,
body.ml-inquiry-mode a[href*="/cart"],
body.ml-inquiry-mode a[href*="/checkout"] {
  display: none !important;
}

/* Footer */
.ml-site-footer {
  padding: clamp(60px, 8vw, 110px) 0 28px;
  border-top: 4px solid var(--ml-brass);
  background: linear-gradient(180deg, #1b1412 0%, #11100f 34%);
  color: var(--ml-paper);
}

.ml-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(3, minmax(150px, .6fr));
  gap: 44px;
  padding-bottom: 70px;
}

.ml-footer-intro {
  max-width: 460px;
}

.ml-footer-intro .ml-brand {
  margin-bottom: 22px;
  color: var(--ml-paper);
}

.ml-footer-intro .ml-brand__descriptor {
  color: var(--ml-brass-light);
}

.ml-footer-intro p {
  color: rgba(255,253,248,.64);
}

.ml-footer-column h2 {
  margin-bottom: 22px;
  color: var(--ml-brass-light);
  font-family: var(--ml-sans);
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.ml-footer-column ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.ml-footer-column li + li {
  margin-top: 11px;
}

.ml-footer-column a {
  color: rgba(255,253,248,.76);
  font-size: .83rem;
  text-decoration: none;
}

.ml-footer-column a:hover {
  color: var(--ml-paper);
}

.ml-footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  padding-top: 26px;
  border-top: 1px solid var(--ml-line-light);
  color: rgba(255,253,248,.5);
  font-size: .67rem;
  letter-spacing: .07em;
  text-transform: uppercase;
}

/* WordPress alignment */
.alignwide {
  width: min(100vw - 40px, 1180px);
  max-width: none;
  margin-right: 50%;
  margin-left: 50%;
  transform: translateX(-50%);
}

.alignfull {
  width: 100vw;
  max-width: none;
  margin-right: 50%;
  margin-left: 50%;
  transform: translateX(-50%);
}

/* Responsive */
@media (max-width: 1180px) {
  .ml-header-main {
    gap: 18px;
  }

  .ml-primary-nav ul,
  .ml-primary-nav .menu {
    gap: 5px 11px;
  }

  .ml-primary-nav a {
    font-size: .59rem;
  }

  .ml-header-actions .ml-button {
    display: none;
  }

  .ml-product-grid,
  .woocommerce ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ml-style-grid {
    grid-template-columns: 1fr 1fr;
  }

  .ml-style-card:first-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  :root {
    --ml-page: min(100% - 30px, 1440px);
    --ml-narrow: min(100% - 30px, 840px);
  }

  .ml-header-main {
    min-height: 76px;
    grid-template-columns: auto 1fr auto;
  }

  .ml-menu-toggle {
    display: inline-grid;
    grid-column: 1;
    grid-row: 1;
  }

  .ml-brand {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    text-align: center;
  }

  .ml-header-actions {
    grid-column: 3;
    grid-row: 1;
  }

  .ml-primary-nav {
    grid-column: 1 / -1;
    grid-row: 2;
    width: 100%;
    padding: 0 0 20px;
    background: var(--ml-paper);
  }

  .js .ml-primary-nav {
    position: absolute;
    z-index: 49;
    top: 100%;
    left: 0;
    max-height: calc(100vh - 76px);
    padding: 20px 30px 34px;
    box-shadow: var(--ml-shadow);
    opacity: 0;
    overflow-y: auto;
    pointer-events: none;
    transform: translateY(-10px);
    visibility: hidden;
    transition: opacity var(--ml-transition), transform var(--ml-transition);
  }

  .js .ml-primary-nav.is-open {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    visibility: visible;
  }

  html:not(.js) .ml-menu-toggle {
    display: none;
  }

  .ml-menu-toggle {
    position: relative;
    z-index: 51;
  }

  .ml-primary-nav ul,
  .ml-primary-nav .menu {
    display: block;
  }

  .ml-primary-nav li {
    border-bottom: 1px solid var(--ml-line);
  }

  .ml-primary-nav a {
    padding: 16px 2px;
    font-family: var(--ml-display);
    font-size: 1.35rem;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
  }

  .ml-hero {
    grid-template-columns: 1fr;
  }

  .ml-hero__copy {
    padding: 78px 20px;
  }

  .ml-hero__visual {
    min-height: 62vw;
  }

  .ml-section-head,
  .ml-client-notes {
    grid-template-columns: 1fr;
  }

  .ml-product-grid,
  .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ml-section-head__aside {
    justify-self: start;
  }

  .ml-room-card,
  .ml-room-card:nth-child(1),
  .ml-room-card:nth-child(5) {
    grid-column: span 6;
  }

  .ml-path-grid {
    grid-template-columns: 1fr;
  }

  .ml-path-card {
    min-height: 260px;
    border: 1px solid rgba(196,170,122,.42);
  }

  .ml-path-card:last-child {
    border: 1px solid rgba(196,170,122,.42);
  }

  .ml-service-strip,
  .ml-editorial-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .ml-service:nth-child(2) {
    border-right: 0;
  }

  .ml-service:nth-child(-n+2) {
    border-bottom: 1px solid var(--ml-line);
  }

  .ml-trade {
    grid-template-columns: 1fr;
  }

  .ml-trade__visual {
    min-height: 55vw;
  }

  .ml-footer-grid {
    grid-template-columns: 1.2fr 1fr 1fr;
  }

  .ml-footer-intro {
    grid-column: 1 / -1;
  }

  .ml-search-results {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 620px) {
  .ml-announcement {
    font-size: .58rem;
  }

  .ml-brand__descriptor {
    display: none;
  }

  .ml-header-actions {
    gap: 5px;
  }

  .ml-menu-toggle,
  .ml-search-toggle {
    width: 40px;
    height: 40px;
  }

  .ml-hero__visual {
    min-height: 86vw;
  }

  .ml-button-group .ml-button {
    width: 100%;
  }

  .ml-product-grid,
  .woocommerce ul.products,
  .ml-style-grid,
  .ml-service-strip,
  .ml-editorial-grid,
  .ml-search-results {
    grid-template-columns: 1fr;
  }

  .ml-room-card,
  .ml-room-card:nth-child(1),
  .ml-room-card:nth-child(5) {
    min-height: 310px;
    grid-column: 1 / -1;
  }

  .ml-service {
    border-right: 0;
    border-bottom: 1px solid var(--ml-line);
  }

  .ml-service:last-child {
    border-bottom: 0;
  }

  .ml-style-card:first-child {
    grid-column: auto;
  }

  .ml-style-card {
    min-height: 370px;
  }

  .ml-footer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .ml-footer-intro {
    grid-column: 1 / -1;
  }

  .ml-footer-bottom {
    flex-direction: column;
  }

  .woocommerce div.product div.images,
  .woocommerce div.product div.summary {
    width: 100%;
    float: none;
  }

  .ml-selected-piece {
    grid-template-columns: 1fr;
  }

  .ml-selected-piece__media {
    max-width: 380px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media print {
  .ml-announcement,
  .ml-site-header,
  .ml-site-footer,
  .ml-button,
  .ml-product-inquiry {
    display: none !important;
  }

  body {
    background: white;
    color: black;
  }
}
/* Refined homepage title system */
.ml-hero__copy{align-items:flex-start;justify-content:center;padding:clamp(36px,4vw,58px) clamp(24px,3vw,50px);text-align:center}
.ml-hero__copy-inner{width:100%;max-width:800px;margin-inline:auto}
.ml-hero h1{max-width:none;margin-inline:auto;font-size:clamp(2.75rem,3.8vw,3.8rem);line-height:1;margin-bottom:30px}
.ml-hero .ml-lede{margin-inline:auto}
.ml-hero .ml-button-group{justify-content:center}
.ml-section-head{grid-template-columns:minmax(0,1fr) minmax(230px,.38fr);gap:clamp(24px,3.5vw,50px)}
.ml-section-head h2{max-width:none;font-size:clamp(1.8rem,3.3vw,3.55rem);letter-spacing:-.04em;text-wrap:nowrap;white-space:nowrap}
#client-notes-title{max-width:none;font-size:clamp(1.3rem,2.3vw,2.45rem);letter-spacing:-.045em;white-space:nowrap}
@media (max-width:900px){
  .ml-hero__copy{padding:clamp(42px,7vw,58px) 20px 58px}
  .ml-hero h1{max-width:22ch;font-size:clamp(2.1rem,7.5vw,3.4rem)}
  .ml-hero .ml-eyebrow{margin-bottom:11px}
  .ml-section-head,.ml-client-notes{grid-template-columns:1fr}
  .ml-section-head{gap:20px;margin-bottom:clamp(34px,5vw,48px)}
  .ml-section-head h2{font-size:clamp(1.8rem,5vw,2.45rem);white-space:nowrap}
}
@media (max-width:620px){
  .ml-hero__copy{padding:38px 20px 52px}
  .ml-hero h1{max-width:none;margin-bottom:22px;font-size:clamp(1.7rem,7.5vw,2.2rem);line-height:1.02}
  .ml-section-head h2{font-size:clamp(1.8rem,9vw,2.4rem);letter-spacing:-.05em}
  .ml-section-head #stories-title{font-size:clamp(1.08rem,5.15vw,1.5rem);letter-spacing:-.055em}
  #client-notes-title{font-size:clamp(1.08rem,5.15vw,1.5rem);letter-spacing:-.055em}
}
@media (max-width:620px){.ml-hero h1{font-size:clamp(1.7rem,7.5vw,2.2rem)}}

/* Homepage-only client review mode */
@media (min-width: 901px) {
  .ml-hero {
    min-height: 0;
  }

  .ml-hero__visual {
    min-height: 0;
  }
}

.ml-preview-hold {
  display: grid;
  min-height: calc(100vh - 126px);
  place-items: center;
  padding: clamp(84px, 13vw, 168px) 20px;
  background: linear-gradient(135deg, rgba(196, 170, 122, .1), transparent 46%), var(--ml-paper);
  text-align: center;
}

.ml-preview-hold__inner {
  max-width: 720px;
}

.ml-preview-hold .ml-eyebrow {
  margin-bottom: 18px;
}

.ml-preview-hold h1 {
  margin-bottom: 22px;
  font-size: clamp(3.1rem, 6.8vw, 6.5rem);
  line-height: .92;
}

.ml-preview-hold .ml-lede {
  max-width: 570px;
  margin: 0 auto 34px;
}


@media (min-width: 901px) {
  .ml-hero {
    align-items: start;
  }

  .ml-hero__visual {
    aspect-ratio: 1.2 / 1;
    align-self: start;
  }
}
